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 }