如何編寫測試團隊通用的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使用中很簡單的功能,雖然簡單,但作用卻很大。

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM