一、什么是参数化?
通俗说就是:提前准备好数据
参数化:是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递参数的场景,在脚本运行时指定参数的取值范围和规则。
二、如何参数化?
1.确认哪些数据需要做参数化
2.提供需要参数化的数据源
3.脚本中的常量->变量(也就是前面准备好的数据源)
三、参数化方式
1.函数助手
- 适用场景:Random等函数,生成随机数字和随机字符串实现参数化
- 操作:
(1)函数助手-选择函数
(2)复制函数到变量中 - 实战:随机生成一个以9开头的手机号-进行注册
函数助手
![引用随机函数] image.png
利用debug sampler验证随机数的生成
2.CSV Data Set Config
-适用场景:数据存储在文件中,参数化取值范围大,灵活性强
-操作:
(1)Add->Config Element->CSV Data Set Config
(2)配置csv data,然后新建http sampler
(3)实战:登录csv文件中的账号密码:
csv文件内容
文件处理
参数引用
线程数设置
登录结果分析1
image.png
发现起了三个线程组登录,但是用的都是同一个手机号(csv文件中的第一个号码登录)
分析:是csv中的sharing mode设置了:Current thread -
sharing mode分析:
(1)All thread:
文件将在所有线程之间共享,并且每个请求将按顺序读取 CSV 文件中的一行。 这种方式是“CSV 数据集配置”的默认方式
效果:
All threads
image.png
image.png
(2)Current thread:
每个用户都会从头到尾读取 CSV 文件,也就是每个用户独立读文件,这也就导致了登录实战中出现三个线程登录的都是同一个账号密码的情况
(3)Current thread throup:
在’Current thread group’共享模式下,每个文件由每个线程组单独打开(不要与每个线程单独读取文件的“当前线程”混淆。这基本上意味着每个线程组中的每个线程 从头到尾读取 CSV 文件,互不影响
其实可以理解为:每一个线程读取文件,那两个线程的时候,他们的账号肯定是相同的
线程组循环2次
线程组1-1
线程组1-1
线程组1-1读取到的的文件的账号都是一样的。可以理解为是相同的线程组读取的数据一样
image.png
(4)Edit:暂时没用过,暂不研究
3.User Defined Variables
-适用场景:用户自定义变量,更多用于设置全局变量
-示例:
image.png
image.png
网友评论