第一种方式:CSV Data Set Config
首先设置一个线程组,并且创建一个HTTP请求
然后创建一个响应结果树
在刚才创建的HTTP请求中,右键“添加”—>监听器—>察看结果树
我们创建一个简单的请求,访问下百度,不设置参数
运行之后,察看结果树,发现可以正常访问
因为请求服务器时,服务器只会取自己想要的字段,多余的字段服务端会直接过滤掉,以免服务器压力过大,所以我们可以随意设置字段进行传参,只看我们参数化后有没有正确取值就行了
加入参数
参数中 wd相当于百度的搜索框,运行之后此时察看结果树中会出现刚才传的参数
如果不想每次都自己填写,而是想要自己一次性写完,然后让它自己去读取,就需要参数化
下面是添加参数化(CSV Data Set Config)这里创建在了全局中
名称和注释自己定义。
Filename:参数化文件的读取位置。这个路径可以是绝对路径也是可以相对路径。在分布式测试中,还是利用相对路径比较方便,因为有的机器可能安装路径不一样。
File Encoding:编码格式,选择utf-8
Variable Names:变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开。例如username,passwd。参数化文件中同样有对应的两列数据。)
Ignore first line:忽略第一行数据。(类似loadrunner中第一行数据是变量名称,如果你的配置文件中为了记忆第一行也是变量名,可以选择是忽略这行数据)
Delimiter:分隔符,默认逗号。
Allow quoted data:是非选项,是否允许变量中间有分隔符,这里最好先默认false,数据中间最好不要有分隔符。
Recycle on EOF和Stop thread on EOF按需设置。是否循环,到结尾是否停止测试。我这里设置了True和False
Sharing mode:先选择所有的线程都可以利用此参数化。
这里说一点的是变量名称,在文件中的第一行也可以直接写变量名称,然后在CSV Data Set Config的页面中,就不用再写一遍变量名,直接在接口中调用即可,我在文件中没有写变量名,这里就写在了外面
我们首先用文本创建一个参数化的数据,保存格式可以是CSV、TXT文件,这里我用的是CSV格式,但是为了方便尽量用txt文件,容易阅读
把线程组的循环次数设置为4,开始运行并查看结果树
发现请求的参数已经变化了,如果参入的参数是中文的话,需要在CSV Data Set Config页面中加一下编码
如果接口中需要参入的参数是多个,我们的文件中就要多加多个列
比如一个请求中需要两个参数,文件中可以这样写
该示例循环了5次
一行中如果有分隔,表示所有接口这次运行都可以取这一行中的某个值
有多行时,需要循环(迭代)后才能取下一行,有一个循环时,只能取第一行的数据
CSV文件直接打开时,会用表格打开,用表格打开修改数据后再保存,不能够正常读取,所以修改时应用文本编辑器打开
示例:
我们保存后,在读取看看,已经读取错误。
第二种:用户参数
添加 》前置处理器 》用户参数
第三种方式:函数助手参数化
将生成的函数复制到接口请求的参数中即可
特殊需求:随机读取csv文件中的值
这里需要配合函数助手来使用:
KaTeX parse error: Expected group after '_' at position 2: {_̲_CSVRead(xxxx.c…{__Random(0,100,)})}
分析:__CSVRead
第一个参数是,csv文件路径
第二个参数是,选取文件中的第几个(注意这里不能超过csv文件的总数量)
示例:
A.csv文件内容:
A1,A2,A3,A4
若是随机选取这几个值,我们可以这样写:
${__CSVRead(A.csv,${__Random(0,3,)})} 从A1~A4中随机选取
${__CSVRead(A.csv,${__Random(0,2,)})} 从A1~A3中随机选取
${__CSVRead(A.csv,${__Random(0,1,)})} 从A1~A2中随机选取
${__CSVRead(A.csv,${__Random(0,1,)})} 从A1~A1中随机选取