目录
JMeter参数化简介
概念
当使用JMeter进行测试时,测试数据的准备是一项重要的工作。若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据。
参数化:是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递参数的场景,在脚本运行时指定参数的取值范围和规则。
脚本在运行时,根据需要选取不同的参数值作为输入,该方式称为数据驱动测试(Data Driven Test),而参数的取值范围被称为数据池(Data Pool)。
使用场景对比
参数化方式 | 使用场景 |
---|---|
User Parameters | Test Plan中执行过程中会发生变化的parameters。适用于参数取值范围很小的时候使用 |
CSV Data Set Config | 适用于参数取值范围较大的时候使用,该方法具有更大的灵活性 |
User Defined Variables | 一般用于Test Plan中不需要随请求迭代的参数设置,如:Host、Port Number |
Function Helper中的函数 | 可作为其他参数化方式的补充项,如:随机数生成的函数${__Random(,)} |
方式1 - User Parameters(用户参数)
实例
1、创建测试计划:Parameters
2、添加线程组:User Parameters
3、添加http请求
4、添加User Parameters功能模块:
选中“线程组” 右键点击–> “添加” --> “前置处理器” --> “用户参数”,内容配置如下:
5、修改HTTP请求。"$"符号+“参数名”方式引用 “用户参数” 中配置的参数
6、修改线程组。设置线程数=3,即3个虚拟用户数,对应“用户参数”中设置的3个User
7、添加【查看结果树】 监控执行过程。执行结果如下:
依次查看3个Request的“Response Body”的内容,分别是【用户参数】的3组value。说明HTTP Request调用【用户参数】是无序的相等的概率事件。
User Parameters 作用域
参数化添加位置 | 作用域 |
---|---|
Test Plan | Test Plan下所有的HTTP Request都可以调用参数,调用方式"$"符号+“参数名”。 |
Thread Group | Thread Group下所有的HTTP Request都可以调用参数,调用方式"$"符号+“参数名”。 |
HTTP Request | 只有当前的HTTP Request可以调用参数。 |
User Parameters 配置项详解
配置项 | 取值or选择项 |
---|---|
名称 | 可以修改。 |
每次迭代更新一次 | 控制参数取值的变化规则。 勾选该选项,则参数的值在每个迭代中保持不变,在新的迭代开始时取下一个可用值。 不勾选该选项,则参数的值在每个其作用域内的Sampler发出请求时取下一个可用值。 |
添加/删除变量 | 这里定义的变量,可以直接引用。 |
添加/删除用户 | 每个用户代表参数的一组value。循环读取User内容。 |
向上/向下 | 变量行可以上下移动。越靠上的参数越先被调用。 |
方式2 - User Defined Variables(用户定义变量)
实例
1、添加线程组:User Defined Variables
2、添加http请求
3、添加User Defined Variables功能模块:
选中“线程组” 右键单击–> “添加” --> “配置元件” --> “用户定义的变量”,内容配置如下:
4、修改HTTP请求。"$"符号+“参数名”方式引用 “用户定义的变量” 中配置的参数
5、添加【查看结果树】 监控执行过程。执行结果如下:
查看http请求,参数域名 www.baidu.com 引用成功
User Defined Variables 配置项详解
配置项 | 取值or选择项 |
---|---|
详细 | 单组Variable的详情。 |
从剪切板添加 | 从 粘贴板/剪切板 新增变量。 |
添加/删除 | 新增/删除变量 |
向上/向下 | 当前参数行向上/向下移动一行。 |
方式3 - CSV Data Set Config(CSV数据配置)
实例
1、添加线程组:CSV Data Set Config
2、添加http请求
3、添加 CSV Data Set Config 功能模块:
选中“线程组” 右键单击–> “添加” --> “配置元件” --> “CSV数据文件配置”,内容配置如下:
data.csv文件内容如下:
4、修改HTTP请求。"$“符号+“参数名”方式引用 “CSV数据文件配置”” 中配置的参数
5、修改线程组。设置线程数=3,即3个虚拟用户数,对应“用户参数”中设置的3个User
6、添加【查看结果树】 监控执行过程。执行结果如下:
CSV Data Set Config 配置项详解
配置项 | 取值or选择项 |
---|---|
名称 | 可以重命名。 |
文件名 | 从本地目录选择包含对应参数的CSV文件。为本地文件的绝对路径。 |
文件编码 | UTF-8、UTF-16、ISO-8859-15、US-ASCII、Edit。根据需要选择编码格式。Edit模式可以录入选项外的编码格式。 |
变量名 | CSV文件中的所有参数列名。列名直接默认用“,”分隔。 |
忽略首行 (只在设置了变量名称后才生效) | 忽略CSV文件的第一行。默认不启用。 若是CSV文件第一行为title时,启用。 |
分隔符(用 ‘\t’ 代替制表符) | 分隔符,默认用“,”分隔。用“\t”来代表键盘上的Tab键。 |
是否允许带引号? | 双引号相关。设置为True,则会将CVS文件中的双重双引号只读取一个;设置为False,则会将CVS文件间中的所有双引号当为有效字符传入。 |
遇到文件结束符再次循环? | 到CSV文件尾出,是否循环读取参数。 |
遇到文件结束符停止线程? | 到CSV文件尾出,是否停止线程。“遇到文件结束符再次循环”为false时才有用。 |
线程共享模式 | CSV文件的共享范围:当前线程组,当前线程,编辑。 |