Jmeter07.Jmeter参数化
在Jmeter性能测试中,要测试的数据往往不是固定值,若要求每次迭代的数据不一样时,则需进行参数化。在实际测试中会将准备好的数据自动填充到定义好的参数里。
用户参数
添加方式:添加-》前置处理器-》用户参数
添加用户参数
用户参数设置:
设置变量name和age,每个变量分别设置5个值。
用户参数设置注意:需要勾选
每次迭代更新一次
,否则会固定使用第一个值。
当准备好数据后,就需要在相关的地方用变量来代替这些值。使用变量的方式为:
${变量名}
。添加一个HTTP请求取样器,在请求参数中将添加如下数据:取样器设置
此处调用的接口实现了这样一个简单的功能:将传入的参数以json格式输出出来。该服务器接口通过flask实现,代码如下(不需要关注):
from flask import Flask, request
app = Flask(__name__)
@app.route('/data')
def get_data():
name = request.args.get('name')
age = request.args.get('age')
return {
'name': name,
'age':age
}
执行测试后,查看结果树:
响应数据
csv数据文件设置
Jmeter可以通过csv数据格式的文件来进行参数化。这里使用的文件并不要求必须是以csv为后缀的文件,只要文件符合csv数据格式就能够使用。
- 准备csv文件data.csv
该文件存放可供测试的数据:
name,age
张三,18
李四,25
王五,78
-
启动Jmeter,添加测试计划、线程组,并在组下线程组下添加“CSV数据文件设置”元件。
添加“CSV数据文件设置“元件 -
配置“CSV数据文件设置”元件
添加“csv数据文件设置”元件后,需要对该元件进行设置,才能够使用。
元件设置界面
元件配置项:
文件名:要引用的csv格式的文件
文件编码:csv文件的文件编码
变量名称:csv文件的每列数据设置对应的变量名。如果不设置将默认使用第一行的数据作为变量名,读取数据时,会忽略首行。
忽略首行:是否忽略第一行数据,设置True则会从第二行开始读取数据。
分隔符:csv文件中多个变量之间的分隔符,默认逗号。
遇到文件结束符再次循环:文件读完重头开始读
遇到文件结束符停止线程:文件读完将线程停止。
线程共享模式:指csv文件里的数据是以怎样的方式共享的。
按照上图,添加csv文件,其它项采用默认配置。这样该文件的数据就被分配到name
和age
变量里。
-
添加HTTP请求取样器,并设置变量引用。
HTTP请求取样器设置
5.添加“查看结果树”元件用于查看请求。
添加查看结果树
6.执行测试,并查看结果树。
响应数据
通过上图可以看到csv文件中的数据,成功应用在HTTP请求的变量中。
__Random函数
通过函数助手的__Random函数也可以实现参数化。
-
通过函数助手,生成__Random表达式,该表达式主要用于生成随机数。
image.png
设置最大最小值后,点击“生成”按钮会生成一个表达式,将该表达式复制到需要用到随机数的地方。
-
在http请求中应用随机数
随机数使用
3.执行,查看结果树。
响应信息