JMeter五种参数化方式

JMeter参数化概念

  • 当使用JMeter进行测试时,测试数据的准备是一项重要的工作。如要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据。
  • 参数化:时自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递参数的场景,在脚本运行时指定参数的取值范围和规则。
  • 脚本在运行时,根据需要选取不同的参数值作为输入,该方式称为数据驱动测试,而参数的取值范围被称为数据池。

JMeter参数化方式之使用场景对比

 参数化方式使用场景
1User Parameters适用于参数取值范围很小的时候使用
2CSV Data Set Config适用于参数取值范围较大的时候使用,该方法具有更大的灵活性
3User Defined Variables一般用于Test Plan中不需要随请求迭代的参数设置,如:Host、Port Number
4Function Helper中的函数可作为其他参数化方式的补充项,如:随机数生成的函数${__Random(,,)}

用户参数(User Parameters)

  1. 用户自定义变量
  2. 在请求中引用变量,在JMeter中变量引用语法:${变量名}

案例:

  1. 请求地址:http://v.juhe.cn/historyWeather/citys
  2. 请求方式:post
  3. 参数:key、province_id
  4. 参数化的数据:province_id

HTTP取样器-->前置处理器--->添加用户参数--->设置参数项、参数值

配置HTTP请求中引用变量id

设置线程数=5,即5个虚拟用户数,对应用户参数中设置的5个用户

添加结果树,执行,查看请求和响应结果

请求数据

响应结果

函数生成变量

菜单栏--->函数助手对话框,选择参数化所需的函数,配置函数

配置HTTP取样的请求参数

添加结果树,Run,查看结果

请求参数

响应结果

CSV数据文件配置

案例:

  1. 请求地址:http://api.fanyi.baidu.com/api/trans/vip/translate
  2. 请求方式:post
  3. 参数:q、from、to、appid、salt、sign
  4. 参数化的数据:q、sign

HTTP取样器--->配置元件--->CSV数据文件设置

预先准备好要参数化的数据

配置CSV数据文件

Configure the CSV Data Source配置项&功能

配置项取值or选择项
Filename参数化文件的读取位置,即保存参数化数据的文件目录。可为绝对路径,也可为相对路径。在分布式测试中,还是利用相对路径比较方便,因为有的机器可能安装路径不一样,同时可避免脚本迁移时需要修改路径
File Encoding编码格式,选择utf-8
Variable Names变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开,例如username,passwd。参数化文件中同样有对应的两列数据。)
Ignore first line忽略第一行数据(类似LR中第一行数据是变量名称,如果你的配置文件中为了记忆第一行也是变量名,可以选择是忽略该行数据)
DelimiterVariable Names中的参数分隔符,默认为英文逗号
Allow quoted data?是否允许引用数据,默认false。选项为“true”时对全角字符的处理可能会出现乱码
Recycle on EOF?是否循环读取参数文件内容;因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入
Stop thread on EOF?当Recycle on EOF为False时(读取文件到结尾),停止进程,当Recycle on EOF为True时,此项无意义
Sharing mode共享模式,即参数文件的作用域:All Threads;Current Thread Group;Current Thread

设置HTTP取样器的请求参数

设置线程组的线程执行的总次数为4

添加结果树,Run,查看结果

请求参数

查看结果

BeanShell变量

定义变量语法

  • //定义JMeter变量
  • vars.put(String key,Sting value);
  • //从Jmeter中获取变量
  • vars.get(String key);
  • //写入信息到JMeter
  • log.info("hello");

案例:

  1. 请求地址:http://api.fanyi.baidu.com/api/trans/vip/translate
  2. 请求方式:post
  3. 参数:q、from、to、appid、salt、sign
  4. 参数化的数据:q、sign

HTTP取样器--->前置处理器--->添加BeanShell预处理程序,编写Beanshell脚本

设置HTTP取样器的请求参数

添加结果树,Run,查看相应结果

请求

响应结果

用户自定义变量

案例:

  1. 请求地址:http://api.fanyi.baidu.com/api/trans/vip/translate
  2. 请求方式:post
  3. 参数:q、from、to、appid、salt、sign
  4. 参数化的数据:q、sign

线程组---> 添加 ---->  配置元件---->用户自定义变量,配置用户自定义变量的参数和值

配置HTTP取样器中的请求参数

添加结果树,Run,查看响应结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值