Jmeter软件测试3--发送二进制报文

 一直用Jmeter测试post接口,但报文信息都是明文方式,今天测试兄弟求助二进制报文如何使用Jmeter测试,查看了项目源码,报文中不仅采用二进制,而且还用java.util.zip进行了压缩,从晚上找的资料说是可以通过修改Jmeter配置实现,但测试并未成功,因此采用Jmeter定制Java请求方式实现,步骤如下:

1.新建Java工程

2.主要用到的jar包

3.新建代码如下:

 1 package com.test.jmeter;
 2 
 3 import java.io.IOException; 
 4 
 5 import javacommon.util.ResultClass;
 6 import javacommon.util.send.InnerSendZip;
 7 
 8 import org.apache.http.client.ClientProtocolException; 
 9 import org.apache.jmeter.config.Arguments; 
10 import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; 
11 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; 
12 import org.apache.jmeter.samplers.SampleResult; 
13 
14 public class Jmeter_Byte extends AbstractJavaSamplerClient { 
15 
16 private static String label = "ByteResponse ";    //定义label名称,显示在jmeter的结果窗口
17 private String url;
18 private String data;
19 
20     public void setupTest() {
21         // 定义测试初始值,setupTest只在测试开始前使用
22         System.out.println("setupTest");
23     }
24 
25     @Override
26     public SampleResult runTest(JavaSamplerContext arg0) {
27 
28         url = arg0.getParameter("url");
29         data = arg0.getParameter("data");
30         SampleResult sr;
31         sr = new SampleResult();
32         sr.setSampleLabel(label);
33         ResultClass resultClass = new ResultClass();
34         sr.sampleStart();
35         // 调用被压测接口的方法
36         resultClass = InnerSendZip.sendData(url, data,8000,90000);
37         if (resultClass.getResult() == 0) {
38             sr.setSuccessful(true);
39         }else {
40             sr.setSuccessful(false);
41         }
42         sr.sampleEnd(); // jmeter 结束统计响应时间标记
43         sr.setResponseCode(String.valueOf(resultClass.getResultCode()));//响应值
44         sr.setResponseMessage(resultClass.getResultDesc());//响应信息
45         return sr;
46     }
47 
48     public void teardownTest(JavaSamplerContext arg0) {
49         super.teardownTest(arg0);
50     }
51 
52     public Arguments getDefaultParameters() {
53         // 参数定义,显示在前台,也可以不定义
54         Arguments params = new Arguments();
55         params.addArgument("url","http://127.0.0.1:8080/Interface/api/CisInnerSync?platform=cis&correlateid=2fd5473db72740bfa18b68abc09409e9");
56         params.addArgument("data","{\"areaNo\":\"TEST\",\"bit_rate\":\"1.5\",\"xmlPath\":\"ftp://ti111:123456@192.168.4.135/ADI/test/20161115/杭州/XML/第二次二十岁02.xml\",\"tsPath\":\"ftp://t1111:123456@192.168.4.135/ADI/第二次二十岁02.ts\",\"priviewTsPath\":\"\",\"imagePath\":\"ftp://tiest:123456@192.168.4.135/ADI/test/20161115/杭州/海报/第二次二十岁02.jpg\"}");
57         return params;
58     }
59 }

4.完成后打成jar包放入Jmeter {Jmeter}\lib\ext目录下

4.重启Jmeter,并新建测试线程

5.查看结果

 

 6.技术参考链接如下:

http://www.cnblogs.com/liu-ke/p/4325607.html

 

posted @ 2016-11-21 20:43  lmaplet  阅读(4621)  评论(1编辑  收藏  举报