JMeter (3) —— JMeter錄製腳本並壓力測試用戶登錄場景以CAS SSO爲例(101 Tutorial)

JMeter (3) —— JMeter錄製腳本並壓力測試用戶登錄場景以CAS SSO爲例(101 Tutorial)


主要內容

  • JMeter錄製腳本並進行壓力測試用戶登錄場景,並以CAS SSO單點登錄爲例

環境與參考

jvm版本: 1.8.0_65css

jmeter版本: 2.13html

firefox版本: 39.0.3java

參考來源:web

jmeter官方網站apache

cnblogs: JMeter基礎之—錄製腳本瀏覽器

51testing: Jmeter 快速入門教程(四)--錄製複雜web測試腳本服務器

準備

請參照JMeter (1) —— JMeter與WebDriver安裝與測試(101 Tutorial) 安裝好JMeter。cookie

須要注意的是:網絡

  • 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。

結束

相關文章
相關標籤/搜索