您的位置:首页 > 其它

『动善时』JMeter基础 — 26、使用txt文件实现JMeter参数化

2021-05-29 09:40 99 查看

[toc]

之前我们都是使用

.csv
格式的数据文件实现了JMeter的参数化,今天我们演示使用
.txt
格式的数据文件实现JMeter的参数化。

需求:我们以一个登陆接口为例。

发送登录请求的时候,我们需要传递两个参数:

phone
password

针对这个登录接口设计5条用例,如下:

  1. 正常登录。
  2. 手机号未注册,即:手机号填写错误。
  3. 手机号不合法,即:手机号填写错误位数不对或为空。
  4. 手机号或密码错误,即:密码错误。
  5. 密码不合法,即:密码为空。

1、测试计划中的元件

添加元件操作步骤

  1. 创建测试计划。
  2. 创建线程组:
    选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
  3. 在线程组中,添加配置元件"HTTP信息头管理器"组件:
    选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP信息头管理器
  4. 在线程组中,添加配置元件
    CSV Data Set Config
    组件:
    选中“线程组”右键 —> 添加 —> 配置元件 —> CSV数据文件设置
  5. 在线程组中,添加取样器“HTTP请求”组件:
    选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求
  6. 在线程组中,添加监听器“察看结果树”组件:查看结果,
    选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树

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

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

2、数据文件内容

创建一个

.txt
文件,名为
login_data.txt
,然后根据需求编辑数据文件内容,这次我们不加列表明。

然后使用

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

最终所得到的

.txt
格式文件的内容如下:

3、线程组元件内容

如果需要使用

.txt
文件中所有的数据,需要设置线程组的线程数或循环次数。

因为在CSV数据文件设置组件,有

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

如下图所示:

4、HTTP信息头管理器组件内容

因为我们要使用Post请求发送Json数据,所以需要在请求头中设置

Content-Type=application/json

如果我们不在请求头中进行设置,默认请求头的

Content-Type
值为
text/plain
。(这在前面的Post请求文章中有详细的说明)

如下图所示:

5、CSV数据文件设置组件内容

如下图所示:

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

  • 文件名:就直接浏览选择文件即可,也就是使用数据文件的绝对路径。
  • 文件编码选择
    UTF-8
  • 变量名称:这里定义的就是参数化变量的引用名称,要与数据文件中的列相对应,中间用逗号分割。
  • 忽略首行:选择False,因为这次我们没有添加列名。如果数据文件中首行写的是变量名称,选择忽略首行。
  • 分隔符:如果
    .txt
    文件中的数据,使用的是逗号隔开,就是默认值。如果是制表符,就用
    \t
    表示。
  • 是否允许带引号?:如果变量值中有引号就选择True,没有则默认False即可。
  • 其他一般默认选择。如果需求看上面说明中写的很详细,按工作中实际情况选择。

6、HTTP请求组件内容

在JMeter中使用参数化变量的格式:

${变量名}

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

我们可以看到

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

7、脚本运行结果

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

我们可以看到,一共发送了5次请求,每次请求使用的参数值都是不同的,并且返回结果的预期也与我们设想的一样。

这样就演示了,使用

.txt
文件作为数据文件,实现JMeter中的参数化。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐