Jmeter如何实现参数名称和个数动态变化的接口请求

发布时间:2020-07-02 16:29:53 作者:809316839
来源:网络 阅读:1489

  Jmeter是一款开源的性能测试工具,目前是行业内使用率最高的性能测试工具之一,Jmeter是使用JAVA语言开发的,本文介绍如何使用JAVA语言开发自己需要的扩展函数


JDK环境 Jmeter依赖包版本 Maven仓库版本
1.8 4.0 3.5.3

一、新建Maven项目

1.File》New》Project,选择Maven》Maven Project,一直点击Next,此处Package包名一定要以.functions格式结束,否则开发出来的函数,Jmeter读取不到
Jmeter如何实现参数名称和个数动态变化的接口请求
Jmeter如何实现参数名称和个数动态变化的接口请求
2.配置Pom文件,Pom文件配置的Jmeter4.0版本,只要保存了Pom文件,系统就会自动下载和关联相应的jar包,Pom配置文件如下:
Jmeter如何实现参数名称和个数动态变化的接口请求
3.保存Pom文件之后,系统会自动下载关联的依赖文件,如下图:
Jmeter如何实现参数名称和个数动态变化的接口请求
Jmeter如何实现参数名称和个数动态变化的接口请求
4.此时,由于对pom文件进行了修改,项目顶层会出现一把×,并且编译可能就会报错,需要执行Maven》Update Project更新外部依赖的Jar包

Jmeter如何实现参数名称和个数动态变化的接口请求
1.2. 首先在Jmeter.test.functions包下创建一个类,类名称为Save_Body_Data,需要继承AbstractFunction类,然后实现父类的四个方法

      private static final List<String> desc = new LinkedList<String>();  /*该变量用来获取对参数值输入进行描述*/

      private static final String KEY = "__Media_Save_Body_Data";  /*这个是在函数助手上显示的函数名称*/

      static {
          desc.add("请输入第一个参数,类似variable=value,其中变量值可以写成变量格式,格式为${value},如果有多个参数,只需要用&连接"
                + "类似variable=value&variable1=value1,第一个参数也可以置空,然后在Body data中填写也行");  
          desc.add("请输入第二个参数,该参数为变化的序列id,需要和jmeter中获取的变量名保持一致");  
          desc.add("请输入第三个参数,该参数为申明重复参递增参数名是否一样,填否则序列递增,如id[0]、id[1],不填则默认相同"); 
          desc.add("请输入第四个参数,该参数值是用来在jmeter的Body_Data用来调用的,可以根据需要自定义,不填则默认为第二个参数名"); 
          desc.add("请输入第五个参数,该参数为序列的连接字符比如%、&,不填则默认为&");
          /*该描述是针对函数的输入值进行描述*/
      }

Jmeter如何实现参数名称和个数动态变化的接口请求

三、编译、打包

  1. 编写代码完成,就可以进行编译、打包操作了,右键点击项目》Run As》Maven build
    Jmeter如何实现参数名称和个数动态变化的接口请求
  2. 在Goals中输入package,然后点击Apply》Run执行编译,打包操作
    Jmeter如何实现参数名称和个数动态变化的接口请求
  3. 编译打包完成,在target目录会生成一个jar包,如下图所示
    Jmeter如何实现参数名称和个数动态变化的接口请求
    Jmeter如何实现参数名称和个数动态变化的接口请求

    四、验证开发的函数是否正常

    1. 首先把Jmeter.test.functions函数放到jmeter的\lib\ext目录
      Jmeter如何实现参数名称和个数动态变化的接口请求
    2. 然后启动jmeter,进入选项》函数助手对话框,选择_Media_Save_Body_Data,输入参数值,点击生成按钮(点了生成,系统就会生成一个函数,然后就相当于做了复制功能,可以拷贝到需要调用的地方)本次 只输入第二个参数值(该值必须为上一个接口定义的变量名称,稍后介绍如何使用该函数)
      Jmeter如何实现参数名称和个数动态变化的接口请求
    3. 首先需要在上一个接口添加JSON Extractor元件,用来获取变化的参数值,
      Jmeter如何实现参数名称和个数动态变化的接口请求
    4. 然后使用BeanShell Sampler调用生成的函数,该sample执行成功之后,就会生成我们要的字段效果
      Jmeter如何实现参数名称和个数动态变化的接口请求
    5. 手工请求参数如下
      Jmeter如何实现参数名称和个数动态变化的接口请求
    6. 通过代码实现的参数只需要用参数名称=值然后每个参数使用&连接即可
      Jmeter如何实现参数名称和个数动态变化的接口请求
    7. 执行结果,如下:
      Jmeter如何实现参数名称和个数动态变化的接口请求
      Jmeter如何实现参数名称和个数动态变化的接口请求
      • 函数功能介绍
        1、本次开发的函数实现的效果为通过传入5个参数,其中只有第二个为必填项,其它参数可以为空
        2、第一个参数可以为空,当为空的时候,则需要把parameters中的参数和值在body data中手动写入,本次就是在body data中手工写入了不会变化的参数名,你也可以直接把这些参数传入到第一个参数,格式为funid=imp_provider&destfunid=pur_apply_provider&parentId=${apply_id}
        &pagetype=import&eventcode=import&user_id=${user}&dataType=json
        3、第二个参数为获取的变量名称,该名称一定要和jmeter中json path中定义的参数名一致,这样才能获取到jmeter中变化的参数
        4、第三个参数为判断重复变化的参数名称的格式是一样还是序列递增,比如id[0],id[1],默认不填相同,如果是序列递增,只需要填否
        Jmeter如何实现参数名称和个数动态变化的接口请求
        5、第四个参数则是用来保存整个函数封装的字符串,默认不填则会把所有字符串封装到第二个参数中,填写了则封装在该参数中,需要在body data中调用该变量,调用方式为${变量名}
        6、第五个参数则为各个参数的连接方式,默认不填则为&

Jmeter.test.functions.jar下载方法见文章末尾介绍
完整源码如下:
Jmeter如何实现参数名称和个数动态变化的接口请求


   如果文章对你有帮助,可以在右下角点击关注功能,欢迎转发、拍砖,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制,微信公众号与本平台文章同步,方便大家查阅


QQ技术交流群:加群请输入验证信息51CTO
              Jmeter如何实现参数名称和个数动态变化的接口请求


微信二维码关注公众号:

            Jmeter如何实现参数名称和个数动态变化的接口请求


关注之后,回复资源下载,即可获取本人共享的各种资源下载地址

Jmeter如何实现参数名称和个数动态变化的接口请求

推荐阅读:
  1. springboot 请求接口 Date类型参数
  2. JMeter接口测试_参数化

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jmeter 接口自动化 性能测试

上一篇:传输信道加密Stunnel配置

下一篇:Oracle中国区大裁员:云转型是关键词

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》