51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1437|回复: 1
打印 上一主题 下一主题

如何使用txt文件实现JMeter参数化

[复制链接]
  • TA的每日心情
    无聊
    12 小时前
  • 签到天数: 946 天

    连续签到: 5 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-2-23 10:02:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      之前我们都是使用.csv格式的数据文件实现了JMeter的参数化,今天我们演示使用.txt格式的数据文件实现JMeter的参数化。
      需求:我们以一个登陆接口为例。
      发送登录请求的时候,我们需要传递两个参数:phone和password。
      针对这个登录接口设计5条用例,如下:
      正常登录。
      手机号未注册,即:手机号填写错误。
      手机号不合法,即:手机号填写错误位数不对或为空。
      手机号或密码错误,即:密码错误。
      密码不合法,即:密码为空。

      1、[url=]测试[/url]计划中的元件
      添加元件操作步骤:
      创建测试计划。
      创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组。
      在线程组中,添加配置元件"HTTP信息头管理器"组件:选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP信息头管理器。
      在线程组中,添加配置元件CSV Data Set Config组件:选中“线程组”右键 —> 添加 —> 配置元件 —> CSV数据文件设置。
      在线程组中,添加取样器“HTTP请求”组件:选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求。
      在线程组中,添加监听器“察看结果树”组件:查看结果,选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树。
      最终测试计划中包含的元件如下:

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

      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中的参数化。








    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-11-5 19:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2022-4-25 15:21:04 | 只看该作者
    我想请问,我假如我并发5个用户登录,登录会产生token,登录后再提取token测另一个接口,这个token怎么参数化?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-10 21:41 , Processed in 0.064191 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表