1. 程式人生 > 其它 >Jmeter開發SDK測試外掛

Jmeter開發SDK測試外掛

1Jmeter開發SDK測試外掛

1 什麼是SDK?

基本定義:SDK:概念:軟體開發工具包(外語首字母縮寫:SDK、外語全稱:Software Development Kit)一般都是一些軟體工程師為特定的軟體包、軟體框架、硬體平臺、作業系統等建立應用軟體時的開發工具的集合。 我的理解,其實說通俗點就是,客戶端SDK當開發引入SDK以後,根據SDK本身的DMEO進行程式碼開發,而不需要關注本省呼叫的SDK的邏輯實現。

以我們公司本次測試Java SDK為例

商戶模式下,進行一次交易查詢。 只需配置私鑰,公鑰。呼叫SDK客戶端即可實現。

2 SDK應該怎麼進行測試

2.1三種方案實現

  1. 通過Jmeter原聲BeanShell指令碼實現(引用外部SDK Jar包)
  2. 通過開發GUI外掛實現,封裝一些公用的方法實現(相比較第一種,只是節省了一部分重複的工作量)
  3. 整合前面的兩種方案,通過開發Jmeter提供新的請求Sample去實現,測試人員無需關係SDK本身的引用等基礎配置。只需關係測試業務資料的測試資料準備就可以實現SDK本身自動化測試了。

3 如何開發SDK外掛

3.1 引用

以下兩個引用,會引用到,後續會詳細講解,大家可以先去官網看一下具體的使用。

Jmeter-Sample:Class AbstractSampler

Jmeter-Gui:

Class AbstractSamplerGui

3.2 開發環境

  • jdk: 1.8以上
  • Eclipse
  • 引入外部jar包 ApacheJmeter_core.jar
  • commons-lang3-3.4.jar
  • log4j-1.6.1.jar

3.3 程式碼開發

新建專案工程目錄
**[BspayGUI.java]**
public class BspayGUI extends AbstractSamplerGui{
//定義一些請求引數
private JLabeledTextField requestMethod;
private JLabeledTextField rsaPrivatekey;
private JLabeledTextField rsaPublicKey;
@override
public void modifyTestElement(TestElement t){
//該方法需要重寫,實現請求值的初始化
}
@override
public void clearGui
(){
//clear
}

**[BspaySampler.java]
**public class BspaySampler extends AbstractSampler{
@override
public SampleResult sample(Entry entry){
  SampleResult result = new SampleResult();
  result.setSampleLable(getName());
  result.setDataEncoding("utf-8");
  StringBuffer returnMsg = new StringBuffer("");
  StringBuffer sendMsg = new StringBuffer("");
//SDK 測試封裝的呼叫邏輯
//Jmeter 本身的業務呼叫結果處理
...
result.setSuccessful(true);
result.setSamplerData(sendMSg.toString);
result.setResponseData(returnMsg.toString(),"utf-8")
return result;
...
}
}

**[Util.java]**
這個就是各個專案實現的具體實現類,一般開發那邊的指令碼拿過來修改一下即可。

3.4 專案匯出JAR包

匯出JAR包以後,放入jmeter/bin/lib目錄下,重啟既可以呼叫SDK,自動化測試了。

後續測試同學,只需要關注JSON裡面的業務引數設計,而無需關係SDK本身的內容