• 14
  • 15
分享
  • 常见的Jmeter参数化方式总结,总有一个你不知道——软件测试圈
  • 曼倩诙谐 2021-01-22 15:07:11 字数 1931 阅读 1571 收藏 15

  参数化概念

  测试工作中,通常会使用不同的数据发送请求测试不同的场景来实现测试的全面性,这就需要对一些字段进行参数化,以使每次迭代都使用不同的数据来满足我们的测试需求。

  Jmeter做为常用的功能、性能测试工具之一,其参数化方式也是相对比较灵活,主要分为4种:用户参数、用户自定义变量、CSV数据文件、函数助手,下面将详细介绍这4种参数化方式的使用方法。

  参数化方式

  一、用户参数

  1.使用场景

  适用于参数取值范围很小的场景,例如测试模拟较少用户登陆某系统交易。

  2.操作步骤

  (1)添加用户参数功能模块

1.png

  (2)设置参数变量、用户值

2.png

  注意勾选每次迭代更新一次,否则每次都使用同样的数据;

  (3)配置HTTP请求中的参数值或消息体数据中参数化字段

3.png

  HTTP请求中要么通过设置参数要么使用消息体数据通过报文方式发送请求,无论哪种方式,参数化值应与用户参数中变量名一致。

  (4)查看结果树

4.png

  线程组中的线程数设置为2,点击执行,可以通过查看结果树查看参数使用情况:

5.png

6.png

  二、用户变量

  1.使用场景

  一般用于Test Plan中不需要随请求迭代变化的参数设置,如:服务器地址、端口。

  2.操作步骤

  (1)添加用户自定义变量功能模块

7.png

  (2)配置用户自定义变量参数值

  这里以配置不同服务器地址和端口为例:

8.png

  (3)配置HTTP请求中参数值或消息体数据中参数化字段

9.png

  当发送请求服务器地址发生改变时,只需要更改服务器参数化值即可向不同的服务器发送请求。当然,用户自定义变量也可以来参数化登陆用户、交易金额、账户等场景。

  (4)查看结果树

  当服务器名称设置为${host1},端口设置为${post1}时,访问百度服务器:

10.png

  当服务器名称设置为${host2},端口设置为${post2}时,访问火狐服务器:

11.png

  三、CSV数据文件

  1.使用场景

  适用于参数取值范围较大的场景,该方法在参数化大量数据时灵活性高、操作便捷,在需要遍历上千个账户场景时经常使用。

  2.操作步骤

  (1)准备参数化文件

  参数化文件一般为txt或者csv格式,每一行代表一条数据,每条数据可包含多个属性,不同属性之间需用分隔符间隔,CSV数据文件对数据量无要求,当需要参数化的数量量较大时,应使用这种参数化方式:

12.png

  (2)添加CSV 数据文件设置功能模块

13.png

  (3)配置CSV 数据文件参数

14.png

  文件参数配置详细说明如下:

15.png

  备注说明:

  遇到文件结束符再次循环与遇到文件结束符停止线程的关联关系:

  当遇到文件结束符再次循环项为true时,遇到文件结束符停止线程项无意义,因为前面项控制了要一直循环读取;

  当遇到文件结束符再次循环项为false时,遇到文件结束符停止线程项为true时,当线程为4个,参数值为3个时,会执行请求3次;

  当遇到文件结束符再次循环项为false时,遇到文件结束符停止线程项为false时,当线程为4个,参数值为3个时,会执行请求4次,但是最后一次请求会报错,因为第4次请求无参数;

  (4)配置HTTP请求中参数值或消息体数据中参数化字段

16.png

  (5)查看结果树

  线程组线程数设置为3,循环次数设置为1,可以看到执行结果中参数取值与CSV文中的数据一致:

17.png

18.png

19.png

  四、函数助手

  1.使用场景

  当参数为随机数或者报文含有流水号字段(每次迭代不能重复)等场景时,可使用函数助手生成所需数据,当所需字段数据长度较长且不能重复时,通常将时间函数与计数器结合,拼接为合适长度的有效数据。

  Jmeter提供了丰富的内置函数,大体可以分为以下7种类型,这里以时间函数与计数器结合为例详细介绍使用步骤。

20.png

  2.操作步骤

  (1)根据需要,配置函数

21.png

  打开函数助手对话框后,选择时间函数,然后输入想要的时间格式,例如yyyyMMddHHmmss或者MMddHHmmss,点击生成,即可生成可引用的参数化函数:

22.png

  (2)配置用户自定义变量

  一般将生成的可引用参数化函数设置为用户自定义变量的值:

23.png

  (3)添加计数器功能模块

24.png

  (4)配置计数器模块的参数

  如果我们需要一个长度为20位且不能重复的流水号,那么我们就可以用时间函数生成16位的数值,用计数器生成6位顺序值,将两者拼接起来,即可生成一个长度为20位且不重复的数据:

25.png

  (5)配置HTTP请求中参数值或消息体数据中参数化字段

  将时间函数与计数器组合为resqno变量,这样即使为多并发时,resqno变量也不会重复:

26.png

  (6)查看结果树

27.png

28.png

  以上就是Jmeter常用的4种参数化方式,希望在日常测试工作中能对小伙伴们提供一些帮助!


作者:徐伟   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 软件测试是软件生存周期中必不可少的环节,软件的典型生存周期可以用下图来形容:软件测试的目的是尽可能早的发现软件缺陷并确保其得以修复,因此软件测试是提高软件质量的重要手段,大量的经验实践证明,软件测试越早参与到软件开发过程中,开发出来的软件质量相对越高,时间和物力也越经济。根据软件工程的基本理论,多模块程序的测试共包括以下4个层次:各阶段测试的具体内容会在以后章节具体介绍,下面介绍一下软件测试的经典技术。软件测试的经典技术分为黑盒测试和白盒测试技术。其中黑盒测试技术忽略程序内部结构,看不到程序的代码细节,只针对程序的功能进行测试,黑盒测试的方法有:具体方法会在以后章节中具体介绍,敬请期待。说完黑...
            11 11 2768
            分享
          •   一、测试的流程  WEB测试和app应用测试从流程上来说,没有区别。都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动。从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试,性能测试,安全性测试,GUI测试等测试类型。  二、web测试和app测试具体区别  1、兼容性测试的区别  在WEB端是兼容浏览器,在应用端兼容的是手机设备而且相对应的兼容性测试工具也不相同,WEB因为是测试兼容浏览器,所以需要使用不同的浏览器进行兼容性测试(常见的是兼容IE6,IE8,铬,火狐)如果是手机端,那么就需要兼容不同品牌,不同分辨率,不同的Android版本甚...
            0 0 801
            分享
          •   虽然苹果公司错误地将iPad Air中的M2芯片列为 10 核 GPU 而不是 9 核 GPU,但它在MacBook Air发布会上和营销材料中宣称的性能是准确的。在提供给9to5Mac的一份声明中,苹果表示,它所分享的有关 iPad Air 性能的细节始终是基于9核GPU测算出的。  我们正在更新 Apple.com 以更正 M2 iPad Air 的核心数量。M2 iPad Air 的所有性能均准确无误,并基于 9 核 GPU。  苹果公司的网站称,M2 芯片&quo...
            0 0 547
            分享
          •   先说重点:想要拥有被人羡慕的地位,就需要拥有足够的实力资本,所以需要我辈软件测试从业者的共同努力和发展才能实现的。  回到主题:关于软件测试行业的地位如何,那么我们来看看测试行业的平均薪资就可以很直接地得到答案。  目前:测试行业的薪资已经和开发不相上下;并且在同样10年工龄面前,测试的薪资将会超过开发。  一、国内测试给人感觉地位较低的原因  出现这个问题的主要原因就是我国互联网行业的发展历史导致的。  国内互联网行业初期,软件产品种类匮乏,用户量也比较小。  因此很多软件产品不需要经过那么专业系统的测试检测,就上线发行给用户使用,因此导致软件测试人员相对较少的和不那么专业。  而且就算...
            0 0 1312
            分享
          • 读者提问:阿常你好,想请教一下,面试时让简单介绍一下你最近参与的一个项目,怎么回答比较好 ?阿常回答:可参考如下格式:最近这段时间(X年X月~X年X月),我负责测试了 XX 项目,核心业务是 XX,面向的用户群体是 XX ,用户量在 XX 左右,团队 XX 人,XX 个 产品,XX 个 开发,XX 个 测试,前端使用的技术栈是 XX,后端使用的技术栈是 XX,测试使用的技术栈是 XX,我主要负责的工作是 接口 + 性能 ,涉及测试工具 XX 等等。阿常碎碎念:以上问答素材来源于知识星球 软件测试圈:为软件测试答疑解惑。看完今天的分享对...
            0 0 1390
            分享
      • 51testing软件测试圈微信