当前位置 博文首页 > 繁华似锦Fighting:『动善时』JMeter基础 — 23、JMeter中使用“

    繁华似锦Fighting:『动善时』JMeter基础 — 23、JMeter中使用“

    作者:繁华似锦Fighting 时间:2021-05-26 18:21

    目录
    • 1、用户自定义变量介绍
    • 2、使用“用户自定义变量”实现参数化
      • (1)测试计划内包含的元件
      • (2)数据文件内容
      • (3)测试计划界面内容
      • (4)线程组元件内容
      • (5)CSV数据文件设置组件内容
      • (6)HTTP请求组件内容
      • (7)脚本运行结果

    1、用户自定义变量介绍

    我们可以看到前面一篇文章的例子中,数据文件login_data.csv的后三个参数都是一样的,我们可以把这些变量提取出来,放在一个公共的位置,方便我们随时提取。(凡是可以输入的位置,都可以使用参数化变量)

    在JMeter中,有两个地方可以设置这种公共的变量:

    • 一种是在“测试计划”界面中设置“用户自定义变量”。
    • 一种是在配置元件中的“用户自定义变量”组件中添加变量。

    之前我们介绍过,JMeter中常用的参数化方式有四种,

    1. CSV数据文件设置(CSV Data Set Config):这种方式是通常所指的参数化。数据存储在文件中,该种参数化方式取值范围大,灵活性强,适用于大量测试数据时的使用。
    2. 用户参数(User Parameter):适用于参数取值范围很小,需要少量测试数据时使用。
    3. 用户自定义变量(User Defined Variables):更多用于设置全局变量,常用于数据库地址,测试环境、开发环境地址等常量配置。
    4. 函数助手:可使用函数生成随机数字和随机字符串实现参数化。

    本文我们以在“测试计划”界面中设置“用户自定义变量”为例,演示批量实现用户的登陆操作。

    2、使用“用户自定义变量”实现参数化

    (1)测试计划内包含的元件

    添加元件操作步骤

    1. 创建测试计划,并且在测试计划中添加“用户自定义变量”数据。
    2. 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
    3. 在测试计划(也可以是线程组)里面添加配置元件CSV Data Set Config组件:选中“线程组”右键 —> 添加 —> 配置元件 —> CSV 数据文件设置
    4. 在线程组里面,添加取样器“HTTP请求”组件:选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求
    5. 在线程组里面,添加监听器“察看结果树”组件:查看结果,选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树

    最终测试计划中的元件如下:

    image

    点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

    (2)数据文件内容

    先用Excel表格编辑所需的请求参数,内容如下:

    image

    我们需要把该文件保存为.csv格式。

    最后使用Notepad++打开该文件,然后点击“编码” —> 转为UTF-8编码,防止中文乱码。

    最终所得到的.csv格式文件的内容如下:

    image

    (3)测试计划界面内容

    在“测试计划”界面中,把公共的变量设置“用户自定义变量”中,如下图所示:

    image

    和在“HTTP请求”组件中添加数据的操作一样,这样在该测试计划中的所有组件都可以使用这些变量。

    (4)线程组元件内容

    如果需要使用CSV文件中所有的数据,需要设置线程组元件的线程数或循环次数。

    因为在CSV数据文件设置组件中,有Recycle on EOFStop thread on EOF选项的关系,所以设置线程数和循环次数都可以实现,使用数据文件中的每一组数据进行测试。

    image

    (5)CSV数据文件设置组件内容

    image

    我一般常用操作,简单说明:

    • 文件名:就直接浏览选择文件即可,也就是使用数据文件的绝对路径。
    • 文件编码选择UTF-8
    • 变量名称:就是把数据文件的每个变量名都填写上,中间用逗号分割。
    • 忽略首行:选择True,如果CSV文件中首行写的是变量名称,选择忽略首行。
    • 分隔符:如果CSV文件中的数据,使用的是逗号隔开,就默是默认值。如果是制表符,就用\t表示。
    • 是否允许带引号?:如果变量值中有引号就选择True,没有则默认False即可。
    • 其他一般默认选择。如果需求看上面说明中写的很详细,按工作中实际情况选择。

    (6)HTTP请求组件内容

    在JMeter中使用参数化变量的格式:${变量名}

    编辑登录接口内容,信息如下图所示:

    image

    我们可以看到${变量名}中的变量名,是以CSV数据文件设置组件中变里名称中定义变量名为准。如果不在变里名称栏中定义任何内容,就以数据文件中的标题列名为变量名。

    (7)脚本运行结果

    该测试脚本运行结果如下图所示:

    image

    说明:后三个参数submitback_actact,是从测试计划中设置的“用户自定义变量”所获取的。

    以上就完成了在JMeter中通过“用户自定义变量”实现参数化的示例。

    bk