Jmeter場景設置與啓動方式
性能測試場景是用來模擬模擬真實用戶操做的工做單元,因此場景設計必定要切合用戶的操做邏輯,jmeter主要是經過線程組配合其餘組件來一塊兒完成場景的設置。html
線程組設置
Jmeter線程組其實是簡歷一個線程池,而後根據用戶的設置完成線程池的初始化,在運行時作各類邏輯處理java
上圖是一個線程組的配置界面,下面咱們對具體的參數進行說明shell
name和comments
是名稱和註釋的配置,這裏根據本身要測試的場景設置就好,最好是見名知意服務器
Action to be taken after a sampler error
在取樣器錯誤後要執行的操做,也就是說在某一個請求出錯後的異常處理方式,有5中方式併發
-
Continue, 繼續,取樣器模擬的請求出錯後,繼續運行oop
在大量用戶併發請求時,服務器可能會出現錯誤響應,這屬於正常現象,此時要把錯誤記錄下來,繼續後面的請求性能
-
start next Thread Loop 若是出錯,則統一腳本中的剩下的請求將不在執行,直接從新開始,好比有個場景,須要先登陸後發文,這個時候若是登陸失敗了,那麼發帖就不會成功,因此不必繼續執行,直接開始下一輪測試就好,此時就能夠設置這個錯誤處理方式。測試
-
stop thread 中止線程,若是遇到取樣器模擬的某個請求失敗,則中止當前線程,再也不執行,好比配置了40個線程,某個線程的請求失敗,則中止當前線程,剩餘的線程繼續執行,若是失敗的越多,則中止的越多,運行狀態的線程就會愈來愈少,那服務器的負載就會不夠,測試結果也不具有參考性了,所通常不設置這個。命令行
-
stop test 中止測試,若是某一個線程的一個請求失敗了,則中止掉全部線程,也就是說測試要中止,可是每一個線程任然會執行完當前場景,好比當前場景爲登錄發文,有個線程登錄失敗,其餘線程也執行到了登錄,錯誤發生後,其餘線程仍是會繼續執行發文操做。線程
-
stop test Now 當即中止測試,若是有線程請求失敗,則當即中止全部線程,再也不繼續執行
Thread Properties 線程屬性設置
-
線程數 Number of Threads(users)
運行的線程數設置,一個線程對應一個用戶
-
Ramp-up period(seconds)線程啓動開始運行的時間間隔,單位是秒,全部線程在多長時間內開始運行
好比說設置了50個線程,Ramp-up period設置10秒,那麼每秒就會啓動5個線程,若是設置0秒,那麼50線程就會當即啓動。
-
Loop count 請求的重複次數,若是選擇infinite,那麼請求將會一直執行下去,除非中止或者崩潰,若是選擇填入具體次數,那就能夠控制循序的次數了。
-
sam user on each iteration 每次迭代有使用相同的用戶,這個配置是5.2版本之後新加的,以前的版本沒有這個選項,因此會有一個問題,模擬的用戶並非和真實場景同樣是相互獨立的,他默認在每一個線程中是複用用戶,給你們推薦一篇文章https://www.cnblogs.com/nmb123/p/12266697.html
-
Delay Thread creation until needed
JMeter 全部的線程是一開始就建立完成的,只是遞增的時候會按照上面的規則遞增。若是選擇了這個選項,則不會在一開始建立全部線程,只有在須要時纔會建立。
若是不選擇,在啓動場景時,JMeter 會用更多的 CPU 來建立線程,它會影響前面的一些請求的響應時間,由於壓力機的 CPU 在作其餘事情嘛。若是選擇了的話,就會在使用時再建立,CPU 消耗會平均一些,可是這時會有另外一個隱患,就是會稍微影響正在跑的線程
-
Specify Thread lifetime 線程運行時間,這個配置只有Loop count 請求的重複次數,配置了infinite,纔會生效,不然仍是Loop count 控制線程的執行
- Duration(seconds)設置線程組運行多長時間,單位是秒
- StartUp delay(seconds)設置線程啓動延時時間,單位是秒
場景運行
Jmeter的運行方式分爲兩種,一種是GUI可視化界面運行,另外一種是命令行運行,這兩種都支持本地化運行即單體運行和遠程運行。這裏咱們主要介紹遠程執行和jmeter命令行運行。
遠程運行配置
-
遠程配置
遠程運行節點端口配置:
server_port=1099 server.rmi.localport=1099
運行:
./jmeter-server -Djava.rmi.server.hostname=本機ip
-
本地配置
remote_hosts配置
remote_hosts=ip:port,ip:prot,... ip和port都是遠程執行機的ip和server的運行端口
運行:
java -jar ApacheJMeter.jar -n -t Thread\ Group.jmx -r -l result.jtl -R ip
-R 指定要哪臺機器運行測試腳本
命令行
命令行執行./jmeter -?能夠輸出命令行參數選項,這裏只介紹一些比較經常使用的,更多用法看官方文檔
- -l 記錄測試結果到文件,指定文件地址和名稱,可使相對路徑也能夠是絕對路徑
- -d 指定jmeter home路徑
- -R 開啓遠程負載機,指定負載機的ip
- -n 指定非GUI方式運行
- -t 指定jmeter腳本文件路徑
- -L 指定日誌級別
歡迎你們去 個人博客 瞅瞅,裏面有更多關於測試實戰的內容哦!!