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 }
posted on 2019-12-27 20:18  慢乌龟  阅读(741)  评论(0编辑  收藏  举报