JMeter定制Sampler
1.背景
相信大家在使用JMeter工具测试的时候,经常会遇到自带采样器无法满足测试要求的情况。面对这种情况,通常的办法是使用万能的自定义Java Request的达到测试目的。这个方法有个弊端,只要是改动了底层逻辑代码,就要重新打包,还要重启JMeter以便新字节码得以加载到JVM中。很麻烦,如果接口很多的话,能让你烦到吐血而且对于代码薄弱的人来说,感觉像是在看天书,有木有。
2.目的
针对以上情况,就有了定制开发Sampler的想法。大家一定要明确两点:
- 你要发的这种请求,JMeter自带采样器不能满足你测试。
- 这种发起交易的方式,在你今后测试过程中经常会用。
基于以上两点,我才觉得可以定制一个采样器,反之意义不大。(开发功底薄弱的可以“贿赂”下开发同学,帮忙写插件。大家好才是真的好!)
3.思路
- 定制开发一个Sampler大致思路如下:

- 教大家一个最简单的思路,直接将JMeter的源码包反编译,找到相关采样器源码,简单的看看,就知道怎么写了。
4.实战
如何搭建插件开发环境,我就不再赘述了,大家自行百度下,比如需要那些jar包,可以使用Maven形式,也可以自己将指定的包copy到自己的工程中,进行构建。
- 编写两个类

我们看看xxxSamplerGui类中一些重点内容:

主要方法:

直接返回采样器的名字,在GUI页面看到的采样器名就是这里定义的。

该方法创建一个新的Sampler,然后将界面中的数据设置到这个新的Sampler实例中。

用于把界面的数据移到Sampler中,在调用自己的实现方法之前,请先调用一下super.configureTestElement(element),这个会帮助移到一些缺省的数据。

在reset新界面的时候调用,用于重置GUI界面控件中需要显示的一些缺省的值。
我们再看看xxxSampler类中一些重点内容:

主要方法:


大致就是要编写以上内容,写的不是特别详细,其实主要就是写个思路,希望能帮助大家(唯一的快的方法就是要自己多看JMeter底层源码,读懂源码后,写这些再写这些代码,轻而易举)。
JMeter定制Sampler的更多相关文章
- Jmeter——SMTP Sampler发送邮件
在平时测试过程中,也会出一些测试报告,那jmeter在不依托其他工具的情况下,可不可以发送邮件呢,自然是可以的. 我们直接使用SMTP Sampler即可. SMTP Sampler参数 我们来添加个 ...
- jmeter SMTP Sampler取样器发送测试结果邮件
原理: 先用结果类监听器(用表格察看结果.聚合报告)将测试结果以csv文件保存到本地. 然后再用SMTP Sampler取样器把本地的测试结果文件发送到指定邮箱 具体步骤如下: 1.下载javamai ...
- JMeter之修改Sampler响应数据的编码格式
转 JMeter之修改Sampler响应数据的编码格式 问题:JMeter的sampler响应数据中有中文时,会解析出错. JMeter的Sampler中的响应数据默认的编码格式是:ISO-8859- ...
- 转 JMeter之修改Sampler响应数据的编码格式
问题:JMeter的sampler响应数据中有中文时,会解析出错. JMeter的Sampler中的响应数据默认的编码格式是:ISO-8859-1.来自文件: jmeter.properties中的语 ...
- jmeter(四)Sample之http请求
启动jmeter,建立一个测试计划 这里再次说说怎么安装和启动jmeter吧,昨天下午又被人问到怎样安装和使用,我也是醉了:在我看来,百度能解决百分之八十的问题,特别是基础的问题... 安装:去官网下 ...
- JMeter学习(二十五)HTTP属性管理器HTTP Cookie Manager、HTTP Request Defaults
Test Plan的配置元件中有一些和HTTP属性相关的元件:HTTP Cache Manager.HTTP Authorization Manager.HTTP Cookie Manager.HTT ...
- 【jmeter】HTTP属性管理器HTTP Cookie Manager、HTTP Request Defaults
Test Plan的配置元件中有一些和HTTP属性相关的元件:HTTP Cache Manager.HTTP Authorization Manager.HTTP Cookie Manager.HTT ...
- JMeter使用指南--转
JMeter使用指南 本文重点介绍JMeter工具在测试中地位以及其中一些难以理解或者手册中含糊不清的感念,读者可以通过本文了解这些概念,然后再根据自己的需要查阅JMeter中各个组件的具体用法来完成 ...
- Jmeter软件测试3--发送二进制报文
一直用Jmeter测试post接口,但报文信息都是明文方式,今天测试兄弟求助二进制报文如何使用Jmeter测试,查看了项目源码,报文中不仅采用二进制,而且还用java.util.zip进行了压缩,从晚 ...
随机推荐
- BASE64Encoder及BASE64Decoder的正确用法
一直以来Base64的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder的sun.misc.BASE64Encoder/BASE64Decoder类.这人个类 ...
- Sending Operations to Multiple Threads_翻译
The speed and efficiency of a long-running, data-intensive operation often improves when you split i ...
- QRowTable表格控件(二)-红涨绿跌
目录 一.开心一刻 二.概述 三.效果展示 四.任务需求 五.指定列排序 六.排序 七.列对其方式 八.相关文章 原文链接:QRowTable表格控件(二)-红涨绿跌 一.开心一刻 一天,五娃和六娃去 ...
- linux server 发送邮件
用linux服务器发送邮件centos1.安装mailx 和sendmail,系统一般会安装的yum -y isntall mailx sendmail 2.修改/etc/mail.rcset fro ...
- 【题解】旅行-C++
Description 某趟列车的最大载客容量为V人,沿途共有n个停靠站,其中始发站为第1站,终点站为第n站.在第1站至第n-1站之 间,共有m个团队申请购票搭乘,若规定:(1)对于某个团队的购票申请 ...
- cozmo 入坑日记及开发环境搭建
前几日,朋友在群里发了一个机器人的小视频,视频里机器人可以对话,可以推箱子,开心以后会哈哈大笑,非常有趣. 详细了解里一下,这是个叫 cozmo 的智能机器人,可以配合 SDK 用 python 编程 ...
- vector是序列式容器而set是关联式容器。set包含0个或多个不重复不排序的元素。
1.vector是序列式容器而set是关联式容器.set包含0个或多个不重复不排序的元素.也就是说set能够保证它里面所有的元素都是不重复的.另外对set容器进行插入时可以指定插入位置或者不指定插入位 ...
- Java设计模式——工厂设计模式
工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory M ...
- 通过sysbench工具实现MySQL数据库的性能测试
1.背景 sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试.sysbench 支持的测试有CPU运算性能测试.内存分配及传输速度测试.磁盘IO性能测试.POS ...
- linux初学者-软件安装与管理篇
linux初学者-软件安装与管理篇 在linux的学习和工作中需要安装许多的软件.在redhat的linux操作系统下,软件一般都是rpm格式的.以下将介绍一些软件安装和管理的内容. 1.软件名称 在 ...