怎麼在伺服器執行jmeter腳本
① 如何用ant執行jmeter腳本
1、下載ant
2、配置環境變數
以windows下配置為例
①配置ant環境變數
ANT_HOME=D:Program Filesapache-ant-1.10.0
CLASSPATH=%ANT_HOME%lib
Path=%ANT_HOME%in
②檢查ant是否配置成功:命令行輸入ant -version
3、將JMeter的extras目錄中ant-jmeter-1.1.1.jar包拷貝至ant安裝目錄下的lib目錄中
4、修改JMeter的bin目錄下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
5、新建一個腳本存放目錄,以及報告存放目錄report,將*.jmx(已經調試OK的腳本)拷貝此目錄
6、在創建的目錄下新建一個build.xml文件(ant自動構建文件)
7、cmd進入腳本上面創建的目錄。(即build.xml所在的目錄)
8、輸入:ant 或 ant run(run為build.xml中的task名),即可執行腳本並生成報告
② 淺學Jmeter性能測試:使用代理伺服器錄制腳本
右上角設置->高級->系統->打開您計算機的代理設置->連接->區域網設置->勾選「為LAN使用代理伺服器」->地址輸入:127.0.0.1->端友知口輸入:8888->勾選『』對於本地地址不使用代理伺服器->確定。好敏消
PS:設置代理時要關掉抓包工具,因為它也是一個代理伺服器。
註:jmeter自帶代理伺服器
1、設置代理
啟動Jmeter->測試計劃->右鍵添加「非測試元件」->選擇HTTP代理伺服器->設置埠:8888->Test Plan Creation-> 目標控制器選擇「後面創建的自定義線程組」。
2、創建線程組存放腳本
測試計劃->右鍵添加「Threads」->選擇「線程組」-> 自定義線程組名稱 ->保存。
3、提前設置過濾
通常會碰到錄制完腳本後查看Jmeter有多餘的請求,我們可提前設置過濾去掉不需要的請求。
在HTTP代理伺服器頁面,點擊"Requests Filtering",找到「排除模式」後添加並輸入多個正則表達式 ,每行一個(.*\.php.* 或 .*\.js.* 或 .*\.png.* 或 .*\.gif.* 或 .*\.txt.* )。設置完成後,再重新啟動代理錄制腳本即可。
PS:話說之前學到的正則表達式終於用上了~
4、錄制腳本
在jmeter代理伺服器里「啟動」伺服器->彈出窗口點擊ok->操作瀏覽器里目標網頁->結束錄制需要的模塊後,點擊jmeter「停止」,在Jmeter里查看腳本。
5、優化腳本
錄制完成後,可能還存在一些漏網之魚,可根據實際需要增刪請求或配置。
PS:刪除了多餘的請求;配置了監聽器-查看結果樹後,有些請求失敗了,添加了cookie管理器後全都請求成功。
註:B/S錄制完腳本一定要添加cookie管理器
6、瀏覽器增加證書(如果有需求訪問Https,無可省略)
右上角設置->高級->隱私設置與安全性->證書->受信任的證書頒發機構->導入->在jmeter文件夾 bin 目錄下 選擇證拿亮書(只要開啟過代理伺服器,都會生成證書)。
錄制完成後,一定要記得關閉代理伺服器,否則上不了網。問題來了,如何取消代理伺服器的設置呢?
右上角設置->高級->系統->打開您計算機的代理設置->連接->區域網設置->取消勾選「為LAN使用代理伺服器」->確定。
③ JMeter之代理伺服器錄制腳本
在JMeter中可以使用自身就帶的HTTP代理伺服器組件錄制腳本,可以錄制在WEB上的操作,也可以錄制在手機App上的操作。
1、測試計劃內包含的元件
添加元件操作步驟:
創建測試計劃
創建線程組:選中「測試計劃」右鍵 —> 添加 —> 線程(用戶) —> 線程組。
在線程組中,添加配置原件「HTTP Cookie管理器」組件:選中「線程組」右鍵 —> 添加 —> 配置元件 —> HTTP Cookie管理器。
說明:如果錄制的操作包括 用戶登錄操作 ,則需要添加「HTTP Cookie管理器」,添加之後不需要任何配置,錄制後,腳本中便保存用戶登錄的相關信息。
在測試計劃下,添加非測試元件「HTTP代理伺服器」組件:選中「測試計劃」右鍵 —> 添加 —> 非測試元件 —> HTTP代理伺服器。
在HTTP代理伺服器組件下,添加監聽器「察看結果樹」組件:選中「HTTP代理伺服器」右鍵 —> 添加 —> 監聽器 —> 察看結果樹。
最終測試計劃中的元件如下:
點擊運行按鈕,會提示你先保存該腳本,腳本保存完成後會直接自動運行該腳本。
2、HTTP代理伺服器的設置內容
在HTTP代理伺服器組件中,我們需要編輯:
埠: 默認8888,一般使用默認即可。主要不能與本地其他服務的埠號沖突,否則啟動不了。
HTTPS Domains: 我的理解就是,設置代理伺服器的主機IP地址或者域名。因為在我們本地使用,一般就是 localhost 或者127.0.0.1即可,當然不填寫也是可以的。(此填寫的地址一定要能夠連接外網)
設置目標控制器: 也就是錄制的組件存儲到什麼位置。這個一定要選,下圖中選擇了存儲到目標線程組中。
配置完的界面內容,如上圖所示。
3、設置瀏覽器的代理伺服器
每個瀏覽器都可以設置伺服器的代理,以Chrome瀏覽器為例。【設置需要區分是否為區域網】
點擊右上角的設置 —> 高級 —> 系統 —> 最下面的『』打開您計算機的代理設置『』,點擊右側圖標,就可以進入到代理伺服器的設置頁面了。
選要選中手動配置代理伺服器,然後輸入代理伺服器的地址或者域名,還有埠號。
這里的配置,要和上面JMeter的HTTP代理伺服器中的埠和HTTPS Domains的配置要對應上。
這樣的話,瀏覽器中的操作,會先發送到JMeter中的HTTP代理伺服器,在通過網路進行傳輸。這樣JMeter中就可以錄制下我們的操作,生成腳本了。
如下圖所示:
4、錄制腳本
以上內容設置完畢後,在瀏覽器地址欄中輸入要錄制腳本的地址。
然後在JMeter中的HTTP代理伺服器界面,點擊啟動按鈕。
提示:在HTTP代理伺服器界面點擊「啟動」時,Meter將生成自己的證書。證書生成可能需要一些時間,在此期間,GUI將無響應。證書生成完成後,GUI將顯示一個彈出對話框,其中包含根CA證書的詳細信息,證書有效期為7天。該證書需要由瀏覽器安裝,以便接受JMeter生成的主機證書。
如下圖所示:
瀏覽器配置證書: 瀏覽器中導入證書 ,jmeter安裝目錄下的ApacheJMeterTemporaryRootCA.crt
之後開始在網站上進行操作,所有操作發出的請求,都會錄制到JMeter腳本中。
操作完成之後,到JMeter的HTTP代理伺服器中點擊「停止」,然後將瀏覽器的代理設置恢復原樣即可。
不恢復的話,會導致你無法使用瀏覽器訪問外網。
如下圖所示:【錄制時彈出的控制器,不用進行設置,關閉時 點擊 停止 即可】
5、查看錄制的腳本
在JMeter中我們可以看到已經 記錄 了許多請求對應的信息,包括PHP、js、.jpg、.png、.txt等請求。
如下圖所示:
我們可以看到,我們只進行了簡單的幾步操作,卻錄制這么的請求。是因為JMeter錄制很多非關鍵性的請求,這就需要我們進行一些優化。
錄制腳本的優化有兩個步驟:
在錄制的時候,做一些過濾和排除操作。
在錄制後的腳本中手動優化,刪除不需要的組件,增加自己需要的組件。
1)伺服器名稱或IP與目標網站不同的、無關的,可以刪除。
2)js/css/png/jpeg等這類請求刪掉。
3)沒有傳遞任何數據的請求可以屏蔽掉,等流程能回放成功了,這些再刪除。如果回放不成功,再一個一個打開,進行檢查。
6、HTTP代理伺服器的排除模式
在測試腳本中有一些錄制的信息是沒有任何作用的,所以我們在錄制腳本的時候,就可以通過HTTP代理伺服器的排除模式,排除一些不需要的請求信息,如css、gif、png等請求。
例如:
在包含模式添加填上 .*\.jsp,只在請求JSP文件時錄制腳本。
這里通常都是設置JSP或者HTML,可以根據具體情況進行填寫。
在排除模式處填上.*\.js ,在請求js文件時不錄制腳本。
這里通常都是設置js、jpg、png、gif、css等,這些類型文件請求都是不需要錄制的。
當然我們也可以點擊添加建議排除按鈕,會自動生成一個過濾的正則表達式。
如下圖所示:
添加上這些時候,錄制出來的腳本,多餘的累贅會減少很多。
7、保存腳本
腳本錄制完成後,需要進行腳本的保存。
把腳本保存到本地,可以分享給其他成員,進行查看、編輯、回放等操作。