如何編寫測試團隊通用的Jmeter腳本

平時學習、工作過程中,編寫的一些jmeter腳本,相信大多數都遇到過這個問題。那就是:如果換一臺電腦運行,文件路徑不一樣,會導致運行失敗。

前不久,自己就真真切切遇到過一回,A同學寫了個腳本用於壓測,需要其他測試同學協助下,結果部分人員沒有提前調試代碼,導致運行的時候報錯。

主要的原因就是,A同學寫的腳本不能通用,以自己本機的路徑來編寫的,而其他同學的文件路徑不一樣,導致報錯。

後面我實在看不下去了,把腳本改動了下,壓測順利結束。

那麼這個問題是否有解決的辦法呢,自然是有的,而且很簡單。

我們來看詳細

獲取文件目錄

用戶定義變量

我們先來看第一種方式,直接使用beanshell函數,將變量放到用戶定義的變量中,如下所示;腳本運行後,可以在日誌中查看到獲取到的腳本路徑。

代碼如下所示:

${__BeanShell(import org.apache.jmeter.services.FileServer;FileServer.getFileServer().getBaseDir();,)}

添加的這行代碼,後續直接用shellPath字段來替換掉固定文件path就ok了

beanshell處理器

在線程組中添加beanshell後置處理器,配置如下:

代碼如下所示:

import org.apache.jmeter.services.FileServer;

String path = FileServer.getFileServer().getBaseDir();

log.info(path);

HTTP默認請求頭

通常一個腳本中,不止一個接口請求。我們每個請求都得有host、protocol,如果這些通用參數都寫在每個請求裏,變動一次,那這改動量可就太大了。

對於這個問題,我們可以使用HTTP默認請求頭,將host、protocol配置好,在後續的請求中就不會再填寫host、protocol。

如果參數有改動,那也只需要改動一次而已,大大提高效率。配置如下所示:

功能應用

針對開篇講到的案列,問題出現點,我們來一一解答

CSV參數化

腳本是打包在一個文件夾傳遞的,腳本中引用一個參數化文件。文件的路徑爲A同學的固定路徑,可其他同學拿到腳本,存放的路徑並不一致,那直接運行的話,必然會報錯。

對於這個點,我們來改造如下,腳本路徑使用變量shellPath替換即可,如下所示:

附件上傳

腳本中還有個附件上傳請求,文件路徑也是固定的,同理,用我們定義的變量shellPath替換即可,如下所示:

刪除數據

腳本運行過程中,會保存一些字段數據,但爲了不影響新一輪測試,所以在測試前,會把歷史數據給刪除。

同樣的,我們要刪除的文件路徑也替換成變量shellPath,如下所示:

以上只是jmeter使用中很簡單的功能,雖然簡單,但作用卻很大。

如果腳本不通用,即使在自己電腦上正常運行,換一臺設備,就又得再調試,不是我們想要的效果。

在編寫腳本時,還是需要編寫通用的腳本,一些小細節,忽略不得。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章