JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)
2016-01-09 11:05
417 查看
JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)
主要内容
JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点登陆为例环境与参考
jvm版本: 1.8.0_65jmeter版本: 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 (1) —— Mac下配置CAS到Tomcat(服务端)
CAS (2) —— Mac下配置CAS到Tomcat(客户端)
CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
CAS (7) —— Mac下配置CAS 4.x集群及JPATicketRegistry(服务端)
测试
注意:我们这里只是以CAS单点登陆为应用场景进行测试,此测试可以推广到其他的web应用的登陆场景,也可以扩展到更为丰富的流程或场景中。准备
修改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
在工作站(WorkBench)下添加“HTTP(S) Test Script Recorder”
配置“HTTP(S) Test Script Recorder”
配置浏览器代理
Firefox -> Preferences -> Advanced -> Network -> Connection -> Settings... ->
录制
点击“HTTP(S) Test Script Recorder”最下面的Start按钮确认
直接用我们配置好的浏览器访问供测试的CAS环境。
录制完成后,我们会在选择好的目标控制器(Test Controller)下找到录制好的配置:
完成后点击“Stop”按钮
修改
仔细的童鞋发现,Recorder会将很多http请求都录制下来,包括对css和js文件的请求,我们可以去掉一些不必要的。修改完成后的线程组http请求配置如下图:测试
配置线程组添加监听器Listener(Test Plan -> Add -> Listener -> *)
View Results Tree
Graph Results
Summary Report
Response Time Graph
点击运行
结果
View Results TreeGraph Results
Summary Report
Response Time Graph
录制测试cnblogs登陆
我们同样可以cnblogs为目标系统,用JMeter来录制并测试cnblogs的登陆过程,在此不赘述,感兴趣的童鞋自己尝试一下。问题
此种方式解决了JMeter (2) —— JMeter与WebDriver测试用户登陆以CAS SSO为例(101 Tutorial)一文中的问题扩展
在使用“HTTP(S) Test Script Recorder”这种方式录制好脚本,并修改后可以模拟一个浏览器客户端向服务器发送请求,由于每个线程发送请求的过程不依赖于某个特定配置好的Web Driver,所以不会存在“并发或重复执行中Cookie Session无法清除的问题 ”。当我们将并发线程数增加(),循环次数也增加时(),就会遇到文章Sahi (3) —— 压力测试Load Test以CAS SSO登陆场景为例(103 Tutorial) 中提到这个4.1.3版本CAS Server的一个bug。结束
相关文章推荐
- tcpdump的简单应用
- R 语言绘图001-基础参数
- //@"6",@"34",@"56","78"存入数组,并进行排序降序输出结果
- Maven学习----Dependency scope
- Java toString()方法
- 《创业小败局》笔记
- KMP算法代码
- Java杂记2--abstract类与接口
- LeetCode N-Queens II
- 股票涨跌和买卖预测计算公式
- centos6.5最小化安装后优化措施
- [文章摘要]Semantic Enrichment of Movement Behavior with Foursquare–A Visual Analytics Approach
- Html 字体大小单位 px em pt
- Ubuntu系统中上查看MD5,SHA1
- qt坐标系统见解
- Android学习路径图
- 基础野:细说浮点数
- 考核5 把字符串存入字典 数组对首字母排序 数组删除
- 修改Android系统默认关闭“验证应用”功能
- Java 并发编程