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. 【搜索】POJ-3050 基础DFS

    一.题目 Description The cows play the child's game of hopscotch in a non-traditional way. Instead of a ...

  2. charles抓取移动端app数据

    pc端为mac 移动端为android pc端 1.下载charles并安装 安利一个超好的良心网站(好多好用的软件都可以在上面找到,并且免费): http://xclient.info/search ...

  3. Scrum Meeting Beta - 10

    Scrum Meeting Beta - 10 NewTeam 2017/12/11 地点:新主楼F座二楼 任务反馈 团队成员 完成任务 计划任务 安万贺 完成了作业详情的本地存储Issue #165 ...

  4. 结对编程:四则运算。组员:闫浩楠 杨钰宁 开发语言:C语言

    需求分析:1.能够自动出题并给出答案 2.包含“+,—,*,/,()” 的四则运算. 3.显示题目的答案 结构设计:1.自动出题用随机数生成语句实现:包括随机生成数字.运算符号和题目长度 2.用变量约 ...

  5. 用node研究axios前后端交互状态码规则

    研究状态码规则围绕我的脑袋有些时间了. 加上最近比较不忙,开始了这方面的研究. 后端用的是直接跑过的node框架,express.可以直接参考express官方网站:http://www.expres ...

  6. [转帖] Oracle JDK 11 正式发布.. 版本号真快

    Java 11 / JDK 11 正式发布! oschina 发布于 2018年09月26日 收藏 19 评论 38   在您的既有IT基础设施上按需构建人工智能更高效>>>   美 ...

  7. Memcache CAS协议介绍及使用

    1.什么是CAS 所谓CAS,check and set,在写操作时,先检查是否被别的线程修改过. 基本原理非常简单,一言以蔽之,就是"版本号".每个存储的数据对象,多有一个版本号 ...

  8. dbgrid控件如何能在左边显示行号?

    procedure TMSWageEdit.aqyMSWageEditCalcFields(DataSet: TDataSet);begin  inherited;  with DataSet do  ...

  9. js本地储存userData实例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  10. rabbitmq .erlang.cookie文件疑惑

    1.安装方式常见的rabbitmq安装方式有两种:rpm安装和二进制安装(编译安装). 2..erlang.cookie是什么.erlang.cookie是erlang实现分布式的必要文件,erlan ...