几种常见的Jmeter参数化方式
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试,领取资料可加:Matongxue_8
码同学抖音号:小码哥聊软件测试
很多人在写jmeter脚本时,接口的参数都是固定的,比如id=1,但是这样并不能真正模拟多个用户来发起请求。因此接口参数需要使用动态的参数。
Jmeter支持丰富的参数化函数和组件,可以使用“函数助手”来帮我们生成对应的函数,接下来介绍一些常用的参数化函数。
随机数函数
随机数字是一种比较常见的参数化场景,比如在/pinter/com/getSku?id=1接口中,id参数可以传一个随机数,范围是从1-1000,打开函数助手,选择random函数,设置随机范围,就可以生成一个随机数函数
在HTTP请求的URL里,将原来的id=1,替换为id=${__Random(1,1000,)} 即完成了id的参数化处理。运行脚本,在查看结果树的“请求”-“request body”里,可以看到发送到服务端的id数据是一个随机的数字
随机字符串
在函数助手中,找到randomString函数
免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:Matongxue_8
免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:Matongxue_8
-
Random string length:生成随机字符串的长度
-
Chars to use for random string generation:从哪些字符中生成随机字符串,这里可以写字符和数字
函数的使用方法和上述是一样的,不再赘述。
时间戳
time函数可以获取当前的时间戳
UUID
UUID是一个不重复的字符串,可以用在某些需要使用唯一不重复字符串的场景下。
文件参数化
在某些场景下,要求参数是从某个文件里读取的,Jmeter还提供了更强大的参数化组件:“CSV数据文件设置(CSV data set config)”
使用方法
先准备一个参数文件(文本类型文件即可,如txt、csv,注意不能是Excel),文件里可以有一列或者多列数据,以逗号分隔,如
在线程组上右键-添加-配置元件-CSV数据文件设置
-
文件名:参数文件的路径
-
文件编码:默认为空,如果有中文参数,可以在下拉框里选择utf-8
-
变量名称:文件中每列数据对应的参数名,逗号分隔,如username,password
-
忽略首行:是否忽略第一行数据?默认是不忽略,即读取第一行数据
-
分隔符:默认的逗号,也可以使用tab键分隔,用\t
-
是否允许引号:文件数据里有引号吗,如果有选true,默认是false
-
遇到文件结束再次循环:如果期望文件中的数据读取完毕后,可以继续从第一行读取,选True,否则选false
-
遇到文件结束停止线程:文件数据读取完毕后,是否停止线程运行。一般配合上面参数使用,如果上面选True,这里就选false,上面选false,这里选true
文件名:参数文件的路径
文件编码:默认为空,如果有中文参数,可以在下拉框里选择utf-8
变量名称:文件中每列数据对应的参数名,逗号分隔,如username,password
忽略首行:是否忽略第一行数据?默认是不忽略,即读取第一行数据
分隔符:默认的逗号,也可以使用tab键分隔,用\t
是否允许引号:文件数据里有引号吗,如果有选true,默认是false
遇到文件结束再次循环:如果期望文件中的数据读取完毕后,可以继续从第一行读取,选True,否则选false
遇到文件结束停止线程:文件数据读取完毕后,是否停止线程运行。一般配合上面参数使用,如果上面选True,这里就选false,上面选false,这里选true
线程共享模式:文件中的参数都可以让哪些线程使用,一般都选所有线程
使用参数
csv参数文件设置完毕后,可以在login接口里,直接通过${参数名}的方式来使用参数
在线程组上设置运行次数为4,然后运行脚本
在查看结果树中可以看到,每次请求都使用了参数文件里的一行参数
总结
本文讲解了两种参数化类型:函数参数化和文件参数,如果大家在学习过程中有任何问题,欢迎扫码咨询
END
免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:Matongxue_8/关注码同学公众号
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。