jmeter之導入jar包


使用場景:當用jmeter發請求的時候,請求頭里面需要添加sign簽名,sign簽名的生成規則一般都是通過請求參數拼接加密得到的,這時候我們就需要自己寫個sign簽名的方法,導成jar包在jmeter中去引用。

(在網上看到說使用jmeter自帶的函數助手也能實現該功能,但是我試了下好像不行,不知道是不是哪里弄錯了。。)

一、准備好jar包

(前提是自己電腦上已經裝好Java環境了哦~)

1、在idea中新建一個Maven項目,就寫一個自己測試的類吧

剛開始的目錄結構如下所示

Hello類是我寫的一個用來生成sign簽名的類,Test類是為了測試Hello類中的方法是否可以被調用調通。

 2、將寫好的類導出jar包

在idea中,點擊 File -> Project Structure

在project structure中選擇 Artifacts-> +號 -> JAR -> From modules with dependencies...

 然后選擇程序執行的入口(這邊我選擇的時Hello類,前提是Hello類中要有main方法。試了下如果選擇的是別的有main方法的類導出的jar包執行時會報錯,不知道為什么?)

我的配置如下的第二張和第三張圖片所示:

 

 

 點擊apply->ok

點擊 Build -> Build Artifacts

 點擊...jar -> Build

 至此,jar包就打包好了,然后cmd進入到jar包所在目錄驗證jar包是否能夠正確運行。

java -jar test-code.jar 下圖中看到正常執行,說明導出的jar包是正確的

 二、jmeter中導入jar包並使用

因為我的接口請求頭需要用到sign簽名,所以我這邊使用的是Beanshell預處理程序

(在發送請求前通過這個預處理程序生成sign簽名等其他的需要的參數,個人理解是預處理程序就相當於Java寫接口測試的前置操作)

1、將第一部分生成的jar包導入到jmeter目錄\apache-jmeter-5.0\lib\ext下

2、打開jmeter,添加一個線程組,在線程組下添加一個BeanShell PreProcessor和一個http取樣器

3、在beanshell PreProcessor中導入我們的jar包,調用里面的生成sign方法,把結果保存在jmeter變量中,下面兩個方法是beanshell中我們最常用到的:

  • vars.get(String paramStr):獲得變量值
  • vars.put(String key,String value):,將數據存到jmeter變量中

上圖中的3個變量,在http信息頭管理中有調用,如下:

 請求頭中調用結果如下:

說明調用成功~

****** 這個例子是使用Beanshell PreProcessor的,使用Beanshell Sampler是一樣的結果,都是可以成功的。(感興趣自己可以試一下)

三、什么是Beanshell?

  • BeanShell是一種完全符合Java語法規范的腳本語言,並且又擁有自己的一些語法和方法;
  • BeanShell是一種松散類型的腳本語言(這點和JS類似);
  • BeanShell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java源代碼解釋器,具有對象腳本語言特性,非常精簡的解釋器jar文件大小為175k。
  • BeanShell執行標准Java語句和表達式,另外包括一些腳本命令和語法。

更多功能可以去官網查看,官網:http://www.BeanShell.org/


免責聲明!

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



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