• 14
  • 15
分享
  • 常见的Jmeter参数化方式总结,总有一个你不知道——软件测试圈
  • 曼倩诙谐 2021-01-22 15:07:11 字数 1931 阅读 1294 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 有部分数据直接插入数据库是不可以的,需要加密处理,例如密码都指定为加密后的数据字符串。今天我们来学习一下如何利用JMeter生成加密数据并写入MySQL数据库中。如何JMeter如何连接数据库,可以看我之前写的随笔,JMeter接口测试-JDBC测试。一:添加线程组,再添加JDBC Connection Configuration(右键测试计划-->配置元件-->JDBC Connection Configuration),并配置数据库连接信息二:导入mysql驱动包,下载好mysql的驱动包(mysql-connector-java-5.1.22-bin.jar),放到jmete...
            0 0 650
            分享
          •   软件测试相较于前几年,其实已经产生了非常大的变化。早期谈到软件测试,大家最先映入脑海的就是“IT打杂工”,干着没啥技术性可言的手工点点点测试,拿着最底层互联网打工人的3-4K薪水,应该说在2014-2015年以前,大部分“测试员”都抬不起头。直到近些年,互联网的发展以倍速递增,如今的互联网领域已经不再是BAT三家独大,而是成了"BATJ+TMD"多分天下的状态。除此之外一些新兴电商、娱乐、生活服务、出行等领域也涌现了大量优秀的互联网企业。  互联网的这种快速发展,也迅速带动了高阶自动化软件测试领域的发展。随之而来的就是早期的功能测试人员被大量淘汰,测试领域目前对自动化测...
            0 0 459
            分享
          •   测试课程免费送,点击下方链接填写测试行业调查问卷,提交后即刻获得!链接:http://vote.51testing.com/  软件测试行业供需现状  随着敏捷、DevOps等开发模式的引入以及大数据治理与应用、人工智能机器学习与深度学习的应用的发展、软件交付周期逐渐缩短、技术复杂度不断提升对测试人员质量保障与效率提升等方面提出了越来越高的要求。因此,对人员的要求也是在不断提高的,一方面响应基础功能需求的手工测试人员基本饱和,另一方面懂测试的测试开发面试达标者比例过低。  软件测试行业的发展现状  通过之前对近几年《软件测试行业现状报告》的解读,以及结合对当下软件测试左移与右移思考,总结了...
            1 1 1474
            分享
          •   要了解越权测试,首先要先了解什么是越权攻击。  越权攻击顾名思义就是超越了自己的权限范围,是指用户通过某种方式获取到了不属于自己的权限。越权攻击分为水平越权和垂直越权。  下面我们先来说一下水平越权  水平越权:攻击者尝试访问与他权限相同的用户资源。比如说在修改用户信息时,在浏览器上用户可以看到该用户的ID是多少,如下图:  这里如果攻击者通过猜测或者其他途径获取到了其他用户的ID是多少,那么就可以在浏览器的地址栏里将ID直接换成要攻击的用户ID,就可以访问被攻击用户的用户信息并对其进行修改。  再举一个例子,比如说一个用户在某网站上买了一件商品,但是地址填错了,要去修改地址。  我们看到...
            12 12 2163
            分享
          •   测试设计规范是一个定义了与测试项目相关的测试条件、详细的测试方法和高级测试用例的文档。它确定了要运行哪些测试套件和测试用例,以及要跳过哪些。  使用测试设计规范,可以简化对当前测试周期的理解。这个文档回答了像“我们在做什么?”,“我们怎么做?”和“为什么要这样做?”这样的简单问题。然而,要达到这个结果,必须正确地将许多事物融入到创建规范中,使其变得完美合理。  在软件行业中,"规范"这个词对任何人来说可能并不陌生。根据理论定义,规范是关于设计和制造某物所涉及的详细描述和材料。规范已经采取了多种形式,并为不同部门提供了多种不同的服务。对于开发者来说,软件需求规范(SRS)...
            0 0 169
            分享
      • 51testing软件测试圈微信