zoukankan      html  css  js  c++  java
  • 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}libext目录下

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

    5.查看结果

     6.技术参考链接如下:

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

  • 相关阅读:
    基于express框架的Token实现方案
    书籍整理
    openfire4.0.2开发环境搭建(windows)
    Express4.x动态的销毁或者替换中间件(app.unuse)
    mysql学习笔记(三)----函数
    mysql学习笔记(二)----数据类型
    mysql学习笔记(一)----建表操作
    Windows-mysql5.7安装
    JavaScript学习笔记–(new关键字)
    n枚硬币问题(找假币)
  • 原文地址:https://www.cnblogs.com/lmaplet/p/6086883.html
Copyright © 2011-2022 走看看