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

1.新建Java工程

2.主要用到的jar包

3.新建代码如下:

 package com.test.jmeter;

 import java.io.IOException; 

 import javacommon.util.ResultClass;
import javacommon.util.send.InnerSendZip; import org.apache.http.client.ClientProtocolException;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult; public class Jmeter_Byte extends AbstractJavaSamplerClient { private static String label = "ByteResponse "; //定义label名称,显示在jmeter的结果窗口
private String url;
private String data; public void setupTest() {
// 定义测试初始值,setupTest只在测试开始前使用
System.out.println("setupTest");
} @Override
public SampleResult runTest(JavaSamplerContext arg0) { url = arg0.getParameter("url");
data = arg0.getParameter("data");
SampleResult sr;
sr = new SampleResult();
sr.setSampleLabel(label);
ResultClass resultClass = new ResultClass();
sr.sampleStart();
// 调用被压测接口的方法
resultClass = InnerSendZip.sendData(url, data,8000,90000);
if (resultClass.getResult() == 0) {
sr.setSuccessful(true);
}else {
sr.setSuccessful(false);
}
sr.sampleEnd(); // jmeter 结束统计响应时间标记
sr.setResponseCode(String.valueOf(resultClass.getResultCode()));//响应值
sr.setResponseMessage(resultClass.getResultDesc());//响应信息
return sr;
} public void teardownTest(JavaSamplerContext arg0) {
super.teardownTest(arg0);
} public Arguments getDefaultParameters() {
// 参数定义,显示在前台,也可以不定义
Arguments params = new Arguments();
params.addArgument("url","http://127.0.0.1:8080/Interface/api/CisInnerSync?platform=cis&correlateid=2fd5473db72740bfa18b68abc09409e9");
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\"}");
return params;
}
}

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

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

5.查看结果

6.技术参考链接如下:

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

Jmeter软件测试3--发送二进制报文的更多相关文章

  1. java socket解析和发送二进制报文工具(附java和C++转化问题)

    解析: 首先是读取字节: /** * 读取输入流中指定字节的长度 * <p/> * 输入流 * * @param length 指定长度 * @return 指定长度的字节数组 */ pu ...

  2. Jmeter软件测试1--webservice测试

    写在前言 程序猿一枚,原本就是负责安安静静的撸代码,后来公司让兼任下测试的工作,还得照顾下面的几个测试兄弟,无奈本人毫无软件测试理论知识,下面的测试兄弟也是初级水平,又面临公司要求做webservic ...

  3. Asp.net Core中SignalR Core预览版的一些新特性前瞻,附源码(消息订阅与发送二进制数据)

    目录 SignalR系列目录(注意,是ASP.NET的目录.不是Core的) 前言 一晃一个月又过去了,上个月有个比较大的项目要验收上线.所以忙的脚不沾地.现在终于可以忙里偷闲,写一篇关于Signal ...

  4. jmeter向ActiveMQ发送消息_广播/订阅(Topics 队列)

    问题描述:测试中需要模拟大量设备的消息上报到平台,但是实际测试中没有那么多设备,所以采取用jmeter直接往ActiveMQ模拟发送设备消息 解决思路:获取平台采取的是Queues还是Topics : ...

  5. JMeter 中实现发送Java请求

    JMeter 中实现发送Java请求 1.  步骤1 新建JAVA项目 File -> New -> Java Project 如上图,填写Project Name,然后Next,打开以J ...

  6. Java 用HTTP的方式发送JSON报文请求

    前言: 项目调用第三方接口时,通常是用socket或者http的通讯方式发送请求:http 为短连接,客户端发送请求都需要服务器端回送响应,请求结束后,主动释放链接.Socket为长连接:通常情况下S ...

  7. Java模拟POST请求发送二进制数据

    在进行程序之间数据通信时我们有时候就需要自定义二进制格式,然后通过HTTP进行二进制数据交互.交互的示例代码如下: public static void main(String[] args) { S ...

  8. [ActionScript 3.0] AS利用ByteArray向PHP发送二进制数据生成图片

    flash as3向php发送二进制数据,通过php保存成图片. AS端: package { import com.JPEGEncoder.JPGEncoder; import flash.disp ...

  9. TCP协议详解7层和4层解析(美团,阿里) 尤其是三次握手,四次挥手 具体发送的报文和状态都要掌握

    如果想了解HTTP的协议结构,原理,post,get的区别(阿里面试题目),请参考:HTTP协议 结构,get post 区别(阿里面试) 这里有个大白话的解说,可以参考:TCP/IP协议三次握手和四 ...

随机推荐

  1. 【性能测试】【Jmeter】学习(3)——查看测试结果

    监听器——聚合报告 聚合报告添加步骤:(右键点击每一个操作步骤--->“添 加”---->“监听器”---->“聚合报告”) Label:每个 JMeter 的 element(例如 ...

  2. HDOJ/HDU 2163 Palindromes(判断回文串~)

    Problem Description Write a program to determine whether a word is a palindrome. A palindrome is a s ...

  3. Python的函数式编程-传入函数、排序算法、函数作为返回值、匿名函数、偏函数、装饰器

    函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  4. MongoDB库设计原则及实践

    MongoDB数据模型选择• CAP定理(Consistency ,Availability 和Partition Tolerance )– Consistency(一致性):数据一致更新,所有数据变 ...

  5. Lab-Data-Systems-for-Biomanufacturing 生物制药企业实验室数据系统(Starlims)

  6. 笔记本PS/2键盘无法使用,试下这个方法

    用360清理了一下系统,再开机键盘就不灵了,鼠标却可以用. 打开设备管理器,看到PS/2标准键盘有个黄色的感叹号. 属性显示PS/2 标准键盘 Windows 无法加载这个硬件的设备驱动程序.驱动程序 ...

  7. Ajax交互demo1

    一.概念 Ajax异步请求刷新. 浏览器在用户不知道的情况下,偷偷地跟服务器交互,然后返回数据给浏览器显示. 异步过程:当HTTP请求发送后,通过Ajax技术使用的XMLHttpRequest对象来发 ...

  8. 蜗牛—JSP学习之JavaBean初识

    初识: <%@ page language="java" import="java.util.*" pageEncoding="utf-8&qu ...

  9. boost库在工作(37)网络UDP服务端之七

    前面介绍的都是网络TCP的服务器和客户端,其实还有UDP的服务器和客户端,同时也有同步和异步之分.UDP与TCP最大的区别,就是TCP是基于连接的,而UDP是无连接的.这里所谓的连接是指对方中断服务时 ...

  10. http://poj.org/problem?id=2253

    floyd的应用求每条路径两点之间最大距离的最小值 #include <iostream> #include <cstdio> #include <algorithm&g ...