接口测试
接口知识
- 接口测试就是功能测试,接口测试依赖接口文档。
- 接口通用的数据类型:json(key:value),xml(<ID>0001</ID>)
- json数据格式
{id:100, //Key:value形式,参数之间用'',"隔开,int类型不需要引号
name:"小明" } //参数最后不需要逗号,字符类型需要引号
- get请求和post请求
get:获取数据,参数在URL中,无请求体
post:发送数据,参数在body中
jmeter
- jmeter中文乱码:修改sampleresult.default.encoding=UTF-8,取消JSyntaxTextArea注释。
- 参数化:CSV Data Set Config中定义,接口中使用:${xxx}
Filename:参数文件名,可以写绝对路径,个人强烈建议采用相对路径,避免脚本迁移时需要修改路径。
File encoding:参数文件的编码格式。推荐选择 UTF-8。
Variable Names:对对应参数文件每列的变量名。类似于 Excel 文件的文件头,起到标示的作用,同时也是后续引用的标识符,建议采用有意义的英文标示。
Delimiter:参数文件分隔符。与参数文件中的分隔符保持一致即可。
Allow quoted data?:是否允许引用数据。默认设置为 false。例如数据样式为:"101-005-98536","29357","1","1993575","477948510289","android","45" 时,此处需设置为 true,一般默认为 false 即可。
Recycle on EOF?:是否循环读取参数文件内容。默认设置为 true。设置为 true 时,当已经读取完参数文件内的测试用例数据,还需要继续获取用例数据时,此时会循环读取参数文件数据;设置为 false 时,若已至文件末尾,则不再继续读取测试数据。通常在 线程组的线程数 * 线程组的循环次数 > 参数文件行数时,才需要将此项设置为 true。
Sotp thread on EOF?:当读取到参数文件末尾时,是否停止读取线程。默认为 false。当 Recycle on EOF? 设置为 true 时,此项不起任何作用。当且仅当 Recycle on EOF? 为 false 时,此项配置才生效。
若为 true,则在读取到参数文件行末尾时,终止参数文件读取线程。例如:线程组的线程数 * 线程组的循环次数 = 10,参数文件行数 = 7,那么将在第 8 次开始停止线程。
若为 false,此时线程会继续读取,但是会请求错误,因此时读取的数据为 EOF。以上同例,自第 8 次开始,线程的请求数据为 EOF。
Sharing mode:共享模式,即参数文件变量作用域。主要有以下几种方式:
All threads:当前测试计划中的所有线程组中的所有的线程均有效。默认。
Current thread group:当前的线程组中的线程有效。
Current thread:当前线程有效。
- json变量获取:插件json path extractor,$.login_info.sign $代表json串,之后为节点具体位置,用点分隔
- 正则表达式:
():封装了待返回的匹配字符串。
.:匹配任何单个字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
- 数据库操作:注意变量名和数据库地址信息
调用上一配置的变量名
对应数据库和驱动配置及地址样例