1. 适用场景

Jmeter工具当前支持的协议或协议所支持的传输方式及传输内容不能满足当前项目的测试要求时,就需要根据实际要求手动编写java测试代码(实现对应的Jmeter规范),以插件方式加载到Jmeter中作为一种自定义的取样器执行测试。

2. 开发步骤

   1)新建java工程,引入Jmeter/lib下的jar包及自定义或第三方的jar包到该工程的构建路径中

   2)创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient类并且覆写以下四个方法:

public Arguments getDefaultParameters() --设置用户需要传入java程序的参数并制定默认值,在Jmeter中会加载定义的参数且显示设定的默认值

如果用户在jmeter java请求界面中输入了新值,代码中通过JavaSamplerContext对象获取

public void setupTest(JavaSamplerContext arg0)--每个线程测试前执行一次做一些初始化工作

public void teardownTest(JavaSamplerContext arg0)--的每个线程测试结束后调用做一些清理工作

public SampleResult runTest(JavaSamplerContext arg0)--开始测试,从arg0可以获取参数值,编写核心业务逻辑--对数据进行处理封装发送,根据获取到的服务端响应结果对监听器写入数据

3)收集服务器返回结果进行校验并将校验结果写入SampleResult对象

SampleResult对象初始化:

必须在runTest方法中初始化,不能放在setupTest中初始化,否则如果线程组中设置循环次数>1时执行测试Jmeter会报错导致测试无法执行

SampleResult数据写入:

sr.setSuccessful(true);    --请求的状态(是否成功)

sr.setResponseData(res)    --请求的响应数据

4)打包并将此jar包放入$JMETER_HOME\lib\ext下

Eclipse-选择项目右键-Export-Runnable JAR file-Extract require libraries into...-Finish

5)打开Jmeter创建线程组添加java请求,在右侧的java请求页面中字段‘类名称’下拉列表中显示步骤4中导入的jar包的包名及类名

package jmeter.hcb.plugin;

public class PerftestForEncrypt2 extends AbstractJavaSamplerClient {

Jmeter javaRequest插件开发的更多相关文章

  1. JMeter的JavaRequest探究

    1.背景 最近笔者的一位老朋友咨询了一个问题:在自定义的Java请求中如何编写多个请求?老朋友反应他们发送请求只能基于这种Java请求形式(代码调需用三方封装的jar包).这个问题恰巧不久前在笔者所在 ...

  2. JMeter自定义采样器插件开发

    JMeter自定义采样器插件开发 目录 JMeter自定义采样器插件开发 1. 简介 2. 需求简介 3.成品展示 成功展示 失败展示 4. 准备开发环境 4.1 准备pom文件 4.2 新建Java ...

  3. JMeter源码集成到Eclipse

    由于JMeter纯Java开发,界面也是基于Swing或AWT搞出来的,所以想更深层次的去了解这款工具或对于想了解JMeter插件开发或二次开发的童鞋们来说,读读JMeter的源码估计是必不可少的,所 ...

  4. [转载]JMeter源码导入Eclipse

    转载自:http://www.cnblogs.com/taoSir/p/5144274.html 由于JMeter纯Java开发,界面也是基于Swing或AWT搞出来的,所以想更深层次的去了解这款工具 ...

  5. jmeter之自定义java请求性能测试

    一.环境准备         1.新建一个java工程         2.导入jar包:ApacheJMeter_core.jar     ApacheJMeter_java.jar         ...

  6. Jmeter函数组件开发

    插件开发方法有两种: 一.在jmeter官网下载jmeter源码,在源码里面新加函数,然后导出jar: 二.不下载源码,直接导入jmeter相应的jar包,即可开发.(推荐) 下面介绍第二种开发方法: ...

  7. Jmeter编写Base64加密函数

    方法一: 使用Beanshell Sampler.BSF Sampler等实现,现已Base64加密为例,脚本如下: import sun.misc.BASE64Decoder; String res ...

  8. 性能测试Jmeter压测ZooKeeper-自定义java请求

     要想通过自定义java请求来压测ZooKeeper,那么我们就需要做两件事情,第一我们需要知道java如何操作ZooKeeper,第二就是怎么能将我们写的jar包让jmeter识别,首先我们先来干第 ...

  9. jmeter源码导入eclipse并执行

    由于JMeter纯Java开发,界面也是基于Swing或AWT搞出来的,所以想更深层次的去了解这款工具或对于想了解JMeter插件开发或二次开发的童鞋们来说,读读JMeter的源码估计是必不可少的,所 ...

随机推荐

  1. Android开发--第一个活动

    一.创建工程   1 项目名:MyActivity 包名:com.iflytek.myactivity 2 为了便于学习,不勾选Create Activity.然后finish,工程创建完成 END ...

  2. jieba库的应用

    #!/usr/bin/python# -*- coding:utf-8 -*- import imp,sys imp.reload(sys)from matplotlib.font_manager i ...

  3. js访问对象属性的两种方法

    var obj={name:'fuuf',age:19} 第一种,用.访问 obj.name 第二种 用[]访问 obj['name']  //此时name是字符串,要加引号 注意事项 使用第二种方法 ...

  4. Python入门:类与类的继承

    类,是一些有共同特征和行为事物的抽象概念的总和. 1. 定义一个类: 我们使用class来定义一个类,和之前说过的定义函数用def类似.在类里面给变量赋值时,专业术语称之为类的属性. 比如拿可口可乐来 ...

  5. express和数据库(MySQL)的交互(二)

    一.安装express前面都讲了 1.express. cnpm || npm install express --save 2.中间件 a.cnpm || npm install body-pars ...

  6. Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次)

    总体规划 服务器规划 1.建议使用两台硬件配置一模一样的服务器来作为 RAC 环境的两个物理节点 2.服务器至少需要配置两块物理网卡 3.服务器规划表: 节点 主机名 本地磁盘大小 操作系统 内存大小 ...

  7. css中定位功能的特性

    它有四大特性,页面找不到盒子的情况 1.z-index值表示谁压着谁,数值大的压盖数值小的 2.只有定位了的元素,才有z-index.也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-inde ...

  8. mysql二进制日志的开启和使用

    二进制日志(BINLOG)记录了所有的ddl和dml语句,但不包括数据查询语句.语句以“事件”的形式保存,描述数据更改过程. 环境:win8   mysql5.6.23 1.mysql开启二进制日志 ...

  9. MT【140】是否存在常数$\textbf{C}$

    \(\textbf{天下事有难易乎?为之,则难者亦易矣 不为,则易者亦难矣------<为学>}\) (中国第59届国际数学奥林匹克国家集训队2018.3.20日测试题) 证明:存在常数\ ...

  10. 一类dp的网格模型

    关于形如\(f_{i,j} = \sum_{t=1}^{|w|}\sum_{k=1}^{|v|}f_{i+w_t,j+v_k}\),其中\(w_t,v_k\)为一个定值的\(dp\)转移. 可以考虑放 ...