1.編寫java類要引入jmeter的包
2.編寫類要繼承AbstractJavaSamplerClient
3.實現如下方法:
public Arguments getDefaultParameters();定義可用參數及默認值;
public void setupTest(JavaSamplerContext arg0):可選,測試前執行,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0);必選,實現自定義請求;
public void teardownTest(JavaSamplerContext arg0):可選,測試結束時調用;
4.編寫完類,打成jar包,放入lib\ext目錄下, jmeter即可發起java請求(如果報其他類沒有找到的錯誤,返回java工程,找到java工程是否引用了其他第三方包,需要將這些包也一並放到jmeter的ext目前下,這些類才能正常被調用)
1 package com.hpay.gjt.api.test; 2 3 import org.apache.jmeter.config.Arguments; 4 import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; 5 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; 6 import org.apache.jmeter.samplers.SampleResult; 7 8 import com.hpay.gjt.api.util.CFCAUtil; 9 10 import org.slf4j.Logger; 11 import org.slf4j.LoggerFactory; 12 13 public class SignDemo extends AbstractJavaSamplerClient{ 14 private static final Logger logger = LoggerFactory.getLogger(SignDemo.class); 15 16 //加簽 17 public static String sign(String sourceData,String PRI_CERT_PATH,String PRI_CERT_PWD){ 18 try { 19 System.out.println("加簽原始數據sourceData="+sourceData); 20 String signature = CFCAUtil.sign(PRI_CERT_PATH, PRI_CERT_PWD, sourceData); 21 return signature; 22 } catch (Exception e) { 23 e.printStackTrace(); 24 System.out.println("ERROR:========加簽異常"); 25 return ""; 26 } 27 } 28 29 private String sourceData; 30 private String PRI_CERT_PATH; 31 private String PRI_CERT_PWD; 32 33 @Override 34 //定義可用參數及默認值; 35 public Arguments getDefaultParameters() { 36 Arguments params = new Arguments(); 37 params.addArgument("sourceData", "1.0.0|343222|201912231403195448|20191223|20191223140319|10|100|張三|6216261000000000018|00|||||||736a319r"); 38 params.addArgument("PRI_CERT_PATH","V:\\123.pfx"); 39 params.addArgument("PRI_CERT_PWD", "123456"); 40 return params; 41 } 42 @Override 43 //獲取輸入值 44 public void setupTest(JavaSamplerContext arg0) { 45 sourceData = arg0.getParameter("sourceData"); 46 PRI_CERT_PATH = arg0.getParameter("PRI_CERT_PATH"); 47 PRI_CERT_PWD = arg0.getParameter("PRI_CERT_PWD"); 48 } 49 @Override 50 //調用簽名方法 51 public SampleResult runTest(JavaSamplerContext arg0) { 52 SampleResult result= new SampleResult(); 53 54 String respData = sign(sourceData, PRI_CERT_PATH, PRI_CERT_PWD); 55 logger.info(respData); 56 result.setResponseData(respData,"utf-8"); 57 return result; 58 } 59 public static void main (String[] args) { 60 //調用調試 61 Arguments params = new Arguments(); 62 params.addArgument("sourceData", "1.0.0|343222|201912231403195448|20191223|20191223140319|10|100|全渠道|6216261000000000018|00|||||||736a319r"); 63 params.addArgument("PRI_CERT_PATH", "V:\\123.pfx"); 64 params.addArgument("PRI_CERT_PWD", "123456"); 65 JavaSamplerContext arg0 = new JavaSamplerContext(params); 66 SignDemo test = new SignDemo(); 67 test.setupTest(arg0); 68 test.runTest(arg0); 69 } 70 }