·性能測試的腳本加強:
·事務:引入事務的目的是爲了度量響應時間和TPS。在Jmeter中,對於事務的處理是分兩種狀況:·事務只是一個請求:只須要修改請求的名稱,使其具備惟一性。不須要其它額外的操做。·事務包含多個請求:則須要使用邏輯控制器--事務控制器。·PS:建議勾選Generate parent sample,這樣獲得的時間會更加準確。
·檢查點:在Jmeter,檢查點一般都是經過斷言組件來實現的。經常使用的斷言組件就是:響應斷言。·響應斷言:·模式匹配:須要注意的就是:·包括和SubString的意義至關。服務器的響應中包含指定的預期值。·匹配和Equals的意義至關。服務器端響應等於or符合指定的預期值。
·包括和匹配是支持正則表達式的,而SubString和Equals是不支持正則表達式的。·要測試的模式:就是預期值。·思考時間:在Jmeter中,經常使用的思考時間組件有兩個:·固定定時器:單位是毫秒·高斯隨機定時器:做用就是:用來模擬:固定延遲+-2×誤差值。最小值等於0.
PS:通常來講,在性能測試過程當中,咱們每每建議經過隨機思考時間的方式來模擬負載。
·集合點:在Jmeter中,集合點是經過定時器--Synchronizing Timer組件實現。·Number of Users:一次集合的人數。默認值爲0,表示集合人數等於線程組中的線程總數。·Timeout:超時時間,是指第一個到達集合點的線程的等待時間,若是時間到達,則全部到達集合點的線程都會釋放執行後續的請求。默認值爲0,表示不超時,即必須等到足夠的線程纔會釋放。
PS:以上組件的使用,必定要注意組件的做用域問題。
·Jmeter的場景相關的操做:·聯機負載和IP欺騙:
·聯機負載:Jmeter自己的性能問題,致使不少時候咱們都須要採用分佈式(聯機負載)的方式來進行性能測試。
·前提條件:·控制機和負載機、負載機和被測服務器之間的網絡是通暢。·控制機和負載機上具備相同的jmeter環境。
·操做步驟:·第一步:啓動負載機上的Jmeter-server.bat。PS:默認狀況下,server端採用的通訊端口是1099,不被佔用便可。若是須要修改該端口,則修改jmeter.properties文件中的server_port屬性便可。要求端口未被佔用。若是負載機的server_port被修改,則控制機上添加負載機的時候,host:port中的port也要對應修改。(不須要修改控制機上的server_port屬性)。
·第二步:在控制機上添加負載機。是經過修改控制機的jmeter.properties文件來實現。屬性:remote_hosts。示例:remote_hosts=127.0.0.1#remote_hosts=localhost:1099,localhost:2010remote_hosts=192.168.2.212:8000,192.168.2.100:1099PS:表示新增兩臺負載機,分別是2.212:8000,2.100:1099多臺負載機之間使用逗號分隔。 修改以後,須要重啓jmeter。
·第三步:啓動。在jmeter中,遠程啓動有兩種方式:·遠程啓動:選中某一臺負載機,運行腳本。·遠程所有啓動:直接啓動全部的負載機運行腳本。
·注意事項:一、從jmeter4.0開始,分佈式負載開始支持基於https的模式(默認)。該模式下,須要額外進行操做:·在控制機上運行bin目錄下的腳本:create-rmi-keystore.bat則會在bin目錄下生成密鑰文件:rmi_keystore.jks·將密鑰文件rmi_keystore.jks複製到負載機的Jmeter的bin目錄便可。
固然,也能夠經過修改控制機與負載機的配置文件jmeter.properties,設置不使用https模式,而是採用http模式。#server.rmi.ssl.disable=false默認值是false,表示使用ssl模式。若是不但願使用,則修改成:server.rmi.ssl.disable=truePS:控制機和負載機都修改。
二、聯機負載時,腳本的運行環境是負載機。這就意味着咱們在作聯機負載時,要儘量的保證負載機和控制機的環境的一致性。常見的有:·系統環境變量·基礎環境,好比說jmeter版本和JDK版本。·第三方文件(參數文件),須要人爲的複製分發到負載機。腳本中的訪問路徑:·若是控制機和負載機的操做系統類型一致,則建議使用絕對路徑。·若是控制機和負載機的操做系統類型不一致,則只能使用相對路徑。·在本地(控制機上),當前路徑是腳本所在路徑。·在遠程(負載機上),當前路徑是Jmeter的bin目錄所在路徑。
三、遠程所有啓動時,若是負載機的數量大於等於兩臺。腳本是分別、獨立、同步在不一樣的負載機上運行的。這就意味着,對於服務器而言,承受的壓力是:線程組設計的壓力×負載機的數量。
四、若是須要獲取錯誤響應,則須要修改模式爲:standard。默認狀況下,負載機是隻會將一些特定的數據反饋給控制機的,一般不會包含服務器的響應。則須要修改如下配置(包括控制機和負載機)。jmeter.save.saveservice.output_format=xmljmeter.save.saveservice.response_data.on_error=true
#Remote batching supportmode=Standard
·IP欺騙:Jmeter的http請求也是能夠實現IP欺騙的。具體操做:·在負載機上,綁定IP地址。·在腳本中,http請求的實現模式要切換到httpclient模式。·Source IP Address中,填寫綁定好的IP地址便可。PS:通常都是把綁定好的IP地址,寫入參數文件,實現參數化。
·注意事項:參考LR講課。
·監控:·監聽器:·Summary report和聚合報告:在實際的測試過程當中,咱們通常是不會使用查看結果樹組件,一般使用的是Summary report和聚合報告。·Summary report和聚合報告的指標解釋:·Label:請求名稱。·# Samples:請求所執行的次數。·Average:請求的平均響應時間·Min:請求的最小響應時間·Max:請求的最大響應時間·Std.Dev.:標準方差。PS:以上時間的單位都是毫秒。·error%:出錯請求的比例。·Throughput:吞吐量,就是至關於LR中的TPS。PS:若是該值很小,會自動變動單位爲/min(每分鐘).
·Received KB/sec:每秒鐘接收到的字節大小。·Sent KB/sec:每秒鐘發送的字節大小。·Avg.Bytes:平均每一個請求所產生的字節大小。
·聚合報告對比與Summary Report:·Median:中位值,又叫50% line,即50%的用戶的響應時間小於等於該值。·90%line(9五、99):是指90%的用戶(請求)的響應時間是小於等於該值。PS:比例是能夠經過jmeter.properties配置文件進行修改的。配置文件關鍵字:#aggregate_rpt_pct1=90#aggregate_rpt_pct2=95#aggregate_rpt_pct3=99PS:#表示註釋,表示不起效(默認值).正則表達式