zoukankan      html  css  js  c++  java
  • JMeter定制Sampler

    1.背景

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

    2.目的

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

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

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

    3.思路

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

    image

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

    4.实战

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

    • 编写两个类

    image

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

    image

    主要方法:

    image

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

    image

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

    image

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

    image

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

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

    image

    主要方法:

    image

    image

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

  • 相关阅读:
    linux 中more、less 和 most 的区别
    mysql数据备份之 xtrabackup
    Web登录中的信心安全问题
    Yii2.0教程应用结构篇 —— 入口脚本
    HTML基础之JS
    HTML基础之DOM操作
    HTML基础之CSS
    HTML基础之HTML标签
    Python之unittest参数化
    Python之单元测试unittest
  • 原文地址:https://www.cnblogs.com/leebaul/p/11305555.html
Copyright © 2011-2022 走看看