初識
組成
https://www.cnblogs.com/marton/p/11220650.html
做壓力測試的時候最好不要加斷言,因爲我們關心的是程序穩定,不是準確,
當然不是說準確不重要.準確性在在功能測試的時候就測試完成了.可以利用postman yapi等.
線程組
負載發生器,用多線程或多進程的方式模擬用戶併發訪問.
邏輯控制器
腳本邏輯判斷控制.
控制滿足什麼條件執行哪一步操作.
比如用if控制器,奇數瀏覽主頁,偶數編號下單
實戰:
我們先定義一個用戶自定義變量
添加變量
判斷變量
這裏需要注意,它已經提示我們使用__jexl3或者__groovy
格式
${__groovy(${變量名}邏輯比較)}
例如:${__groovy(${isAccessBaidu}==1)}
多個的話 用關係符號連接,例如
${__groovy(${isAccessBaidu}==1 && ${admin}!=0)}
https://www.cnblogs.com/saryli/p/9875553.html
結果:
配置管理
例如上面的添加用戶變量
還有就是參數化,cookie管理等.
用JDBC連接一下mysql數據庫
下載jdbc驅動
直接去maven倉庫下載
找一個符合自己數據庫的版本
將下載的jar包放到自己jmeter安裝路徑lib路徑下的ext文件
重啓jmeter
添加jmeter連接數據庫配置
jdbc:mysql://ip:port/dbname
寫一個sql語句
運行
查看結果(提前加個監聽器):
請求預處理
通過前置處理器
添加一個shell腳本取樣器
簡單的打印一下變量
執行
打印到哪裏去了呢?
如果你是用jmeter.bat啓動的話.會有一個命令行窗口
這個就是相當於控制檯
集合點 和 定時併發
定時器: 用於操作和操作之間的設置等待時間
我們添加一個簡單的定時器
過5秒鐘開始執行
你可以看着結果查看數,當點擊執行後,是不是過一會纔出結果的
各種請求發送
在Sampler(取樣器中)
這些東西都是自帶的jar包實現的,要是想有其他功能,可以添加環境變量
debug
可以看到一些中間結果變量等
實現關聯
就是上一步結果用到這次
用後置處理器
提取Sampler發出請求得到的響應結果中的數據.
先建立一個請求.
然後添加後置處理器.
然後我們把拿到的結果給下一個處理.比如給shell處理器,打印出來.
運行結果
控制檯結果:
數據預判
就是斷言.判斷結果和我們的預期是否一樣.
但是用的並不多,因爲jmeter關注的是性能,並且高併發下難免有失敗的,特別是服務器塊崩潰的時候.
做接口測試的時候可以使用這個斷言.
我們運行後肯定不包含這個字符串.
然後我們運行一個成功的.
請求成功是不顯示斷言結果的.
監控數據可視化
這裏監控的是請求結果.
要是想監控服務器,需要做擴展.
我們常用的是: 查看結果數,聚合報告之類.
如果用到了類似圖形結果的查看器,需要點擊不停頓開始按鈕.
JMeter函數助手
有很多助手.
舉例:
隨機數(__Random)
參數化(_CSVRead)
計數器(__counter)
唯一數(__UUID)
__Random
新建一個shell取樣器演示一下:
運行結果:
_Random String
__UUID
其他的也是類似.