一、前言
接口测试组合不同的参数向服务器发送请求,接受和解析响应结果,通过测试数据的交换逻辑来验证服务端程序工作的正确性。
我们在测试过程中需要考虑不同的输入组合,来覆盖不同的测试范围;除此之外,系统中往往存在一些有唯一性校验的接口,不允许重复录入关键字段(eg: 用户名,身份证…),针对这些有唯一性校验的接口,需要在每次运行时动态输入不同的数据。
我们最常用的有以下几种
二、RandomString函数
作用:生成随机字符串
使用格式:${__RandomString(5,abcde,myResult)},其中
-
第一个参数5表示希望生成的字符串的长度,必填
-
第二个参数abcde,表示从这些字符中随机组合,非必填
-
第三个参数myResult,表示生成的字符串保存在这个变量中,非必填
一般有三种用法:
-
${__RandomString(5)}
-
${__RandomString(5,abcde)}
-
${__RandomString(5,abcde,myResult)}
通过RandomString可以生成任意长度的指定字符集的字符串,除了生成随机字符串,还可以基于RandomString拼接扩展特定格式的字符串。
比如有些系统会校验手机号前三位,即可通过RandomString生成后8位数字,然后拼接满足需求的前三位数字组合。
几乎可以实现接口单个请求参数的所有参数化工作,但在实际应用中,有时候不同请求参数有一定的关联性,此时无法通过RandomString来解决多请求参数之间的关联性问题,需要引入CSV组件来解决。
三、CSVRead函数
CSVRead函数适用于一组关联请求参数的场合。
比如要选择用户的收获地址,往往需要选择省->市->区,而省市区这三个请求参数之间有关联性,此时可以通过自定义一组满足关联性要求的数据,将其写入CSV文件,然后在Jmeter中通过CSV函数来读取CSV文件。
Jmeter中通过函数助手可引入CSVRead函数的支持,它有两个参数:
-
CSV File to get Values from: 需要读取的CSV文件
-
CSV文件列号:从0开始
CSVRead函数有一些局限性,CSVRead不可指定编码,跨系统调用时可能出现乱码;另外多次循环同一个请求时会重复读取第一行数据,只有当线程数设置为多个时,才会读取多行数据。
四、CSV Data Set Config配置元件
CSV Data Set Config 是CSVRead函数的升级版组件,它可以配置更多选项来控制读取的过程:
-
Filename:这里要包括文件的路径,在4.0版本中可以点击右侧的浏览按钮选择文件,会自动带上文件的绝对路径;
-
File Encoding:文件编码
-
Variables Name:csv文件中各列的名字,有多列时用英文逗号隔开,列名的名字顺序需要和文件列名对应
-
Delimiter:分隔符号,数据文件中有多个数据时,需要制定文件中的数据分隔符,一般使用的是英文逗号,如果要使用table制表符分隔,填写 \t
-
Allow quoted data: 是否允许数据内容加引号,默认:FALSE;如果为TRUE,则当数据形式为:“username” 时,读取出来就为:username;如果为FALSE,有引号读取会报错。
-
Recycle on EOF:到了文件尾是否循环,True—继续从文件第一行开始读取,False—不再循环
-
Stop thread on EOF:到了文件尾是否停止线程,True—停止,False—不停止;
-
Sharing mode:共享模式
对于更复杂的参数化需求,可通过编码方式实现脚本,并通过Jar包的方式引入脚本支持。
学习资料/接口/项目等需要领取:需要+\/ →it7411
最新软件测试+进阶测试全套【自学资料包】