zoukankan      html  css  js  c++  java
  • JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)

    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。

    结束

  • 相关阅读:
    es删除索引
    真人快打11技能键位
    点到线段的距离
    行列快乐值
    按钮变色
    取数求和
    机器分配
    田忌赛马 问题
    雷达
    最小字典序
  • 原文地址:https://www.cnblogs.com/richaaaard/p/5113796.html
Copyright © 2011-2022 走看看