JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)


主要内容

  • JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点登陆为例

环境与参考

jvm版本: 1.8.0_65

jmeter版本: 2.13

firefox版本: 39.0.3

参考来源:

jmeter官方网站

cnblogs: JMeter基础之—录制脚本

51testing: Jmeter 快速入门教程(四)--录制复杂web测试脚本

准备

请参照JMeter (1) —— JMeter与WebDriver安装与测试(101 Tutorial) 安装好JMeter。

需要注意的是:

  • JMeter的版本
  • jar依赖冲突
  • firefox版本

待测试的CAS环境

架构

配置

请参照以下文章搭建配置好CAS单点登陆的本地环境。

测试

注意:我们这里只是以CAS单点登陆为应用场景进行测试,此测试可以推广到其他的web应用的登陆场景,也可以扩展到更为丰富的流程或场景中。

准备

  1. 修改JMeter配置jmeter.properties

    /usr/local/Cellar/jmeter/2.13/libexec/bin

    关键配置 CookieManager.save.cookies=true

     # CookieManager behaviour - should cookies with null/empty values be deleted?
    # Default is true. Use false to revert to original behaviour
    #CookieManager.delete_null_cookies=true # CookieManager behaviour - should variable cookies be allowed?
    # Default is true. Use false to revert to original behaviour
    #CookieManager.allow_variable_cookies=true # CookieManager behaviour - should Cookies be stored as variables?
    # Default is false
    #CookieManager.save.cookies=false
    # Richard modify 2016-01-06
    CookieManager.save.cookies=true

    也可以顺便将需要的log打开

     log_level.jmeter=INFO
    log_level.jmeter.junit=DEBUG
    #log_level.jmeter.control=DEBUG
    #log_level.jmeter.testbeans=DEBUG
    #log_level.jmeter.engine=DEBUG
    #log_level.jmeter.threads=DEBUG
    #log_level.jmeter.gui=WARN
    #log_level.jmeter.testelement=DEBUG
    #log_level.jmeter.util=WARN
    #log_level.jmeter.protocol.http=DEBUG
    # For CookieManager, AuthManager etc:
    # Richard modify 2016-01-06
    log_level.jmeter.protocol.http.control=DEBUG
    #log_level.jmeter.protocol.ftp=WARN
    #log_level.jmeter.protocol.jdbc=DEBUG
    #log_level.jmeter.protocol.java=WARN
    #log_level.jmeter.testelements.property=DEBUG
    log_level.jorphan=INFO

    记得在配置保存后重启jmeter

  2. 在工作站(WorkBench)下添加“HTTP(S) Test Script Recorder”

  3. 配置“HTTP(S) Test Script Recorder”

  4. 配置浏览器代理

    Firefox -> Preferences -> Advanced -> Network -> Connection -> Settings... ->

录制

  1. 点击“HTTP(S) Test Script Recorder”最下面的Start按钮

    确认

    直接用我们配置好的浏览器访问供测试的CAS环境。

    录制完成后,我们会在选择好的目标控制器(Test Controller)下找到录制好的配置:

  2. 完成后点击“Stop”按钮

修改

仔细的童鞋发现,Recorder会将很多http请求都录制下来,包括对css和js文件的请求,我们可以去掉一些不必要的。修改完成后的线程组http请求配置如下图:

测试

  • 配置线程组

  • 添加监听器Listener(Test Plan -> Add -> Listener -> *)

    • View Results Tree

    • Graph Results

    • Summary Report

    • Response Time Graph

  • 点击运行

结果

  • View Results Tree

  • Graph Results

  • Summary Report

  • Response Time Graph

录制测试cnblogs登陆

我们同样可以cnblogs为目标系统,用JMeter来录制并测试cnblogs的登陆过程,在此不赘述,感兴趣的童鞋自己尝试一下。

问题

扩展

在使用“HTTP(S) Test Script Recorder”这种方式录制好脚本,并修改后可以模拟一个浏览器客户端向服务器发送请求,由于每个线程发送请求的过程不依赖于某个特定配置好的Web Driver,所以不会存在“并发或重复执行中Cookie Session无法清除的问题 ”。当我们将并发线程数增加(),循环次数也增加时(),就会遇到文章Sahi (3) —— 压力测试Load Test以CAS SSO登陆场景为例(103 Tutorial) 中提到这个4.1.3版本CAS Server的一个bug。

结束

JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)的更多相关文章

  1. Jmeter使用代理服务器录制脚本

    Mark一下Jmeter使用代理服务器录制脚本,以备自己可以翻阅,也可以帮助其他人了解一下Jmeter的这个功能.其实录制脚本只是在我们工作中的一个小插曲而已,只是为了能快速看到应用程序跑的逻辑及实现 ...

  2. JMeter (2) —— JMeter与WebDriver测试用户登陆以CAS SSO为例(101 Tutorial)

    JMeter (2) -- JMeter与WebDriver测试用户登陆以CAS SSO为例(101 Tutorial) 主要内容 JMeter与WebDriver测试用户登陆以CAS SSO为例 环 ...

  3. Jmeter(二十八) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy1(详解教程)

    1.简介 在使用jmeter自动录制脚本时会产生很多无用的请求,所以推荐使用badboy录制脚本之后保存为jmx文件,在jmeter中打开使用.因此宏哥在这里介绍一下Badboy这款工具,本来打算不做 ...

  4. 基于webdriver的jmeter性能测试-通过jmeter实现jar录制脚本的性能测试

    续接--基于webdriver的jmeter性能测试-Eclipse+Selenium+JUnit生成jar包 在进行测试前先将用于支持selenium录制脚本运行所需的类包jar文件放到jmeter ...

  5. Jmeter之Badboy录制脚本及简化脚本http请求(三)

    测试脚本的精简对于测试来说是一项基础的能力,因为你得看懂一行脚本代表的是什么意思,是怎么运行的,做了什么内容.才能得到对应的测试结果分析. 上一节介绍的代理服务器的录制童鞋们也明白了,有点麻烦,而且不 ...

  6. Jmeter接口测试-badboy录制脚本(二)

    1.脚本录制,采用badboy进行录制,操作步骤很简单 2.badboy简介: Badboy是一款免费WEB自动化测试工具. 官方下载地址:http://www.badboy.com.au badbo ...

  7. JMeter基础之—录制脚本

    Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多: l       开源,他是一款开源的免费软 ...

  8. JMeter:生成漂亮的接口/压力测试的HTML报告

    JMeter生成HTML网页报告(非gui模式操作) 我们做性能测试的时候会经常使用一些性能测试工具,比如loardrunner和jmeter,我个人比较喜欢Jmeter这个工具,jmeter之前版本 ...

  9. 【转】JMeter基础之——录制脚本

    Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多: ● 开源,他是一款开源的免费软件,使用它你 ...

随机推荐

  1. MySQL中 optimize table '表名'的作用

    语法: optimize table '表名' 一,原始数据 1,数据量 2,存放在硬盘中的表文件大小 3,查看一下索引信息 索引信息中的列的信息说明. Table :表的名称.Non_unique: ...

  2. 【转载并整理】mysql排序

    由于oracle中有排序函数,可以使用over的语句方便排序,但是mysql中没有 这里碰到几个mysql的概念:用户变量.系统变量.if语句.函数GROUP_CONCAT 1. 可以使用定义变量(@ ...

  3. 安装 Vbundle 的笔记

    Vbundle 挺好用的,能够很方便管理Vim的一些插件.虽然Vbundle的安装方法看的很简单,但是它的配置却让我弄了很久,现在记录如下,方便后面安装时再出现相同的问题: 我按照这里的官方提示的安装 ...

  4. 正则和xpath在网页中匹配字段的效率比较

    1. 测试页面是  https://www.hao123.com/,这个是百度的导航 2. 为了避免网络请求带来的差异,我们把网页下载下来,命名为html,不粘贴其代码. 3.测试办法: 我们在页面中 ...

  5. mysql存储过程批量向表插入数据

    业务需要,往某个表中批量插入数据,使用存储过程插入 首先,要建立一张mysql表,表明为phone_number, 三个字段,id 自增,number 就是要插入的表格,is_used 表示十分已经使 ...

  6. JEECG中t:dictSelect的extendJson用法

    1.t:dictSelect的各个属性值如下: 属性名 类型 描述 是否必须 默认值 title string 标题 否 null field string 控件字段名字 是 null typeGro ...

  7. jQueryWEUI自定义对话框-带有textarea

    jQueryWEUI  示例下载 在jQueryWEUI中提供了很多类型的对话框, 可以去访问看一下. 今天记录的则是,自己定义的一个带有文本域的对话框,这样,可以不通过调转页面,实现一些信息的提交. ...

  8. 微信支付错误,页面URL末注册

    最近在做个项目用到微信支付的JSSDK支付时候碰到“URL末注册的问题”,可是我已经在公众平台里的支付目录里添加了,测试了几次都是这个问题,最后才发现原来是大小写的问题,还有我的支付页面是ASP.NE ...

  9. [na]tcp&udp扫描原理(nmap常用10条命令)

    nmap软件使用思路及常见用法 Nmap高级用法与典型场景 namp -sn 4种包 使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网( ...

  10. C#实现RSA加密与解密、签名与认证

    一.RSA简介 RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力 ...