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。

    结束

  • 相关阅读:
    HDU 5585 Numbers
    HDU 3308 LCIS
    POJ 2991 Crane
    POJ 1436 Horizontally Visible Segments
    POJ 3667 Hotel
    HaiHongOJ 1003 God Wang
    【SDOI 2008】 递归数列
    5月19日省中提高组题解
    【HDU 1588】 Gauss Fibonacci
    【POJ 3233】Matrix Power Series
  • 原文地址:https://www.cnblogs.com/richaaaard/p/5113796.html
Copyright © 2011-2022 走看看