参数化测试 :把测试数据组织起来,用 不同的测试数据调用相同的测试方法。
Jmeter中常用的参数化方式:
1.用户定义的变量
2.用户参数
3.csv 数据
4.函数
JMeter参数化——用户定义的变量用户定义的变量是定义为全局变量的意思,使用用户定义的变量的步骤。
测试计划---线程组---配置元件---用户定义的变量
例题:请 求: https://www.baidu.com
要求:使用用户定义的变量配置被测系统的协议、域名
*** 作步骤:
(1)添加线程组
(2)添加用户定义的变量 (点击添加)
(3)添加http请求 引用定义的变量名 格式: ${变量名}
(4)添加查看结果树 点击启动即可
JMeter参数化——用户参数测试计划---线程组---前置处理器---用户参数--http请求---查看结果树
针对同一组参数,当不同的用户来访问时,可以获取不同的值
例题:请求: https://www.baidu.com
要求:第一个用户请求附带参数:name=“张三”&age=28;第二个用户请求附带参数:name="李四"&age=30
*** 作步骤:
(1)添加线程组(线程数设置为2 ,2个用户)
(2)添加用户参数
第一列添加多个变量名,后续每一列为一组用户的数据
(3)添加http请求 引用定义的变量名 格式:${变量名}
(4)添加查看结果树,点击启动
JMeter参数化——csv数据让不同用户在多次循环时,可以取不同的值。
测试计划---线程组---配置元件---CSV数据文件设置--添加http请求---查看结果树
请求: https://www.baidu.com
要求: 循环请求3次,每次请求时附带参数username,password,code的值不相同
csv文件内容
(1)定义csv数据文件
(2)添加线程组,设置循环次数(设置循环次数为3)
(3)添加http请求
(4)添加查看结果树
JMeter参数化——函数 (__counter)计数函数,一般做执行次数统计使用。保证不同的用户及多次循环时,都可以取到不同的值
测试计划---线程组---生成_counter函数--添加http请求(使用_counter函数)---查看结果树
例题:请求 : 访问百度首 页 http ://www.baidu.com/S?num=1
要求:每个用户每次循环执行该脚本都可以使用不同的值
(1)添加线程组,设置虚拟用户数和循环次数
(2)生成_counter函数 ,选择值为FALSE,点击生成
(3)添加http请求 使用_counter函数
(4)添加查看结果树
**************************************************************************************************************
总结:什么是参数化?
把测试数据组织起来,用不同的测试数据调用 相同的测试方法。4 种参数化方式有何不同?如何选择适当的方式?
用户定义的变量:
- 作用:定义全局变量
- 局限性:每次取值(无论是否相同的用户)都是固定值
用户参数:
- 作用:保证不同的用户针对同一组参数,可以取到不同的值
- 局限性:同一个用户在多次循环时,取到相同的值
CSV 数据文件设置:
- 作用:保证不同的用户及同一用户多次循环时,都可以取到不同的值
- 局限性:需要手动进行测试数据的设置
函数:
- 作用:保证不同的用户及多次循环时,都可以取到不同的值,不需要提前设置
- 局限性:输入数据有特定的业务要求时无法使用(如:登录时的用户名密码)
断言:让程序自动判断预期结果和实际结果是否一致。
Jmeter中常用断言:响应断言、Json断言、持续时间断言 Jmeter断言----响应断言(任意格式的响应结果进行断言)测试计划 --> 线程组--> HTTP请求 --> (右键添加) 断言 --> 响应断言
例题请求: https:// www.baidu.com
检查:让程序检查响应数据中是否包含“百度一下,你就知道”
测试计划 --> 线程组--> HTTP请求 --> (右键添加) 断言 --> 响应断言
参 数 介 绍:
- Assert JSON Path exists:用于断言的JSON元素的路径 (实际结果)
- Additionally assert value:如果您想要用某个值生成断言,请选择复选框
- Match as regular expression:使用正则表达式断言
- Expected Value:期望值 (期望结果)
- Expect null:如果希望为空,请选择复选框
- Invert assertion (will fail if above conditions met):反转断言(如果满足以上条件则失败)
测试计划 --> 线程组--> HTTP请求 --> (右键添加) 断言 --> 断言持续时间
持续时间(毫秒):HTTP请求允许的 最大响应时间( 单位:毫秒)。 超过则认为失败
---------------------------------------------------------------------------------------------------------------------------------
总结:(1)什么是断言?
让程序 自动判断 预期结果和实际 结果是否一致 。
(2)3 种断言方式有何不同?如何选择适当的方式?
响应断言:
- 场景:可以针对 任意格式的响应数据进行断言
JSON 断言:
- 场景:当响应数据为 JSON 格式时,优先使用JSON断言
断言持续时间:
- 场景:检查HTTP请求的 响应时间是否满足要求时,使用断言持续时间
提示:
- Jmeter会自动判断响应状态码(如果状态码为4xx/5xx,判定为失败)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)