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。

結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM