1.背景

相信大家在使用JMeter工具测试的时候,经常会遇到自带采样器无法满足测试要求的情况。面对这种情况,通常的办法是使用万能的自定义Java Request的达到测试目的。这个方法有个弊端,只要是改动了底层逻辑代码,就要重新打包,还要重启JMeter以便新字节码得以加载到JVM中。很麻烦,如果接口很多的话,能让你烦到吐血而且对于代码薄弱的人来说,感觉像是在看天书,有木有。

2.目的

针对以上情况,就有了定制开发Sampler的想法。大家一定要明确两点:

  1. 你要发的这种请求,JMeter自带采样器不能满足你测试。
  2. 这种发起交易的方式,在你今后测试过程中经常会用。

基于以上两点,我才觉得可以定制一个采样器,反之意义不大。(开发功底薄弱的可以“贿赂”下开发同学,帮忙写插件。大家好才是真的好!)

3.思路

  • 定制开发一个Sampler大致思路如下:

  • 教大家一个最简单的思路,直接将JMeter的源码包反编译,找到相关采样器源码,简单的看看,就知道怎么写了。

4.实战

如何搭建插件开发环境,我就不再赘述了,大家自行百度下,比如需要那些jar包,可以使用Maven形式,也可以自己将指定的包copy到自己的工程中,进行构建。

  • 编写两个类

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

主要方法:

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

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

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

在reset新界面的时候调用,用于重置GUI界面控件中需要显示的一些缺省的值。

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

主要方法:

大致就是要编写以上内容,写的不是特别详细,其实主要就是写个思路,希望能帮助大家(唯一的快的方法就是要自己多看JMeter底层源码,读懂源码后,写这些再写这些代码,轻而易举)。

JMeter定制Sampler的更多相关文章

  1. Jmeter——SMTP Sampler发送邮件

    在平时测试过程中,也会出一些测试报告,那jmeter在不依托其他工具的情况下,可不可以发送邮件呢,自然是可以的. 我们直接使用SMTP Sampler即可. SMTP Sampler参数 我们来添加个 ...

  2. jmeter SMTP Sampler取样器发送测试结果邮件

    原理: 先用结果类监听器(用表格察看结果.聚合报告)将测试结果以csv文件保存到本地. 然后再用SMTP Sampler取样器把本地的测试结果文件发送到指定邮箱 具体步骤如下: 1.下载javamai ...

  3. JMeter之修改Sampler响应数据的编码格式

    转 JMeter之修改Sampler响应数据的编码格式 问题:JMeter的sampler响应数据中有中文时,会解析出错. JMeter的Sampler中的响应数据默认的编码格式是:ISO-8859- ...

  4. 转 JMeter之修改Sampler响应数据的编码格式

    问题:JMeter的sampler响应数据中有中文时,会解析出错. JMeter的Sampler中的响应数据默认的编码格式是:ISO-8859-1.来自文件: jmeter.properties中的语 ...

  5. jmeter(四)Sample之http请求

    启动jmeter,建立一个测试计划 这里再次说说怎么安装和启动jmeter吧,昨天下午又被人问到怎样安装和使用,我也是醉了:在我看来,百度能解决百分之八十的问题,特别是基础的问题... 安装:去官网下 ...

  6. JMeter学习(二十五)HTTP属性管理器HTTP Cookie Manager、HTTP Request Defaults

    Test Plan的配置元件中有一些和HTTP属性相关的元件:HTTP Cache Manager.HTTP Authorization Manager.HTTP Cookie Manager.HTT ...

  7. 【jmeter】HTTP属性管理器HTTP Cookie Manager、HTTP Request Defaults

    Test Plan的配置元件中有一些和HTTP属性相关的元件:HTTP Cache Manager.HTTP Authorization Manager.HTTP Cookie Manager.HTT ...

  8. JMeter使用指南--转

    JMeter使用指南 本文重点介绍JMeter工具在测试中地位以及其中一些难以理解或者手册中含糊不清的感念,读者可以通过本文了解这些概念,然后再根据自己的需要查阅JMeter中各个组件的具体用法来完成 ...

  9. Jmeter软件测试3--发送二进制报文

    一直用Jmeter测试post接口,但报文信息都是明文方式,今天测试兄弟求助二进制报文如何使用Jmeter测试,查看了项目源码,报文中不仅采用二进制,而且还用java.util.zip进行了压缩,从晚 ...

随机推荐

  1. EF 使用遇到过的错误记录备忘

    1. is only supported for sorted input in LINQ to Entities  The method :只支持排序输入实体LINQ 的方法 是使用skip()时没 ...

  2. 产品经理人的持续交付和DevOps实践

    如果你正处于下列情形中 ,那这篇文章是为你准备的: 你目前身处技术行业,你是产品经理,并且,你明白特性分支是什么,CD代表什么,DevOps文化是什么样子的. 或者,你已经在实施敏捷,团队每周都会与您 ...

  3. js继承的6种方式

    想要继承,就必须要提供个父类(继承谁,提供继承的属性) 一.原型链继承 重点:让新实例的原型等于父类的实例. 特点:1.实例可继承的属性有:实例的构造函数的属性,父类构造函数属性,父类原型的属性.(新 ...

  4. Asp.net之实现自定义跨域

    跨域是指在浏览器的同源策略下导致前端和接口部署在不同域下导致无法直接访问的问题. 针对跨域有多种解决方案常见的有: JSNOP: 可参考Jquery实现,缺点是需要后端支持:   Access-Con ...

  5. Python趣用—配平化学方程式

    不知不觉已经毕业多年了,不知道大家是否还记得怎么配平化学方程式呢?反正小编我是已经记不太清了,所以今天的文章除了分享如何用python配平化学方程式,顺带着还会复习 一些化学方程式的知识,希望广大化学 ...

  6. redis的下载与安装(linux版)

    redis的下载与安装(linux版) 1.下载路径 https://redis.io/download 2.上传到linux并且解压 3.进入解压之后的redis,并且make && ...

  7. MySQL常用工具、日志及读写分离

    MySQL常用工具.日志及读写分离 1.MySQL中常用工具 1.1 mysql 1.1.1连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 mys ...

  8. Java:jdbc连接mysql数据库

    安装eclipse和mysql的步骤这里不赘述了. 1.一定要下jar包 要想实现连接数据库,要先下载mysql-connector-java-5.1.47(或者其他版本)的jar包.低版本的jar包 ...

  9. ironic+nova详解

    ironic+nova详解 说明: Openstack 的安装步骤省略,按照社区的文档即可搭建出一套相对稳定的使用环境.本文档基于Newton版本. 假设现在已经有一套可用的Newton环境, 以下的 ...

  10. 【Android】java.lang.StackOverflowError: stack size 8MB

    最近遇到的问题,报了两个错误,如下: java.lang.StackOverflowError: stack size 8MB android.os.TransactionTooLargeExcept ...