基本概念
接口测试目的:模拟客户端向服务器发送请求,验证响应是否与预期结果一致。
接口测试工具:fiddler、postman、jmter、python
接口测试特点:符合质量控制前移的理念;低成本高效益
接口测试前提:开发提供接口文档
HTTP协议
HTTP(HyperText Transfer Protocol)超文本传输协议,是一个基于请求与响应模式的、应用层的协议,也是互联网上应用最为广泛的一种网络协议。
HTTP请求
格式:
示例:
HTTP响应
格式:
示例:
Postman
用例集
通常一个项目创建一个用例集(目录从外到内分别代表项目/模块/测试用例)
常用操作:
断言
postman断言借助JavaScript编写代码,用于自动判断实际结果与预期结果是否一致。写在Tests标签页中。send过后结果在Test Results标签页中查看。
常用断言:
(一)断言响应状态码是否为 200(Status code: Code is 200)
(二)断言响应体是否包含某个字符串(Response body: Contains string)
(三)断言响应体JSON中key对应的value是否符合预期(Response body: JSON value check)
全局变量和环境变量
全局变量:在全局生效的变量。
环境变量:在特定环境(生产环境、开发环境、测试环境等)下,生效的变量。
1.设置全局变量和环境变量
在界面设置:
用代码设置:
全局变量:pm.globals.set(“全局变量名”,全局变量值)
环境变量:pm.environment.set(“环境变量名”, 环境变量值)。注意创建的变量是现在所在环境的变量
2.获取全局变量和环境变量
在界面获取:(比如在URL,Params,Authorization,Headers,Body中)
{{全局变量名}}
{{环境变量名}}
用代码获取:(比如在Tests,Pre-requests Script中)
全局变量:var 变量 = pm.globals.get(“全局变量名”)
环境变量:var 变量 = pm.environment.get(“环境变量名”)。注意获取的变量是现在所在环境的变量。
请求前置脚本
点击send后会在请求前先执行请求前置脚本。写在Pre-request Script页签中。(比如说,登录接口的密码,在发送前需要做加密处理,那么就可以在前置脚本中做加密处理)
控制台
可在控制台查看每次请求的详细信息。定位具体错误。
读取外部数据文件(参数化)
当请求数据有较高相似性时,考虑使用参数化。
常用数据文件简介:
CSV
优点:
- 数据组织形式简单,适用于大量数据的场合
缺点:
- 不支持 bool类型数据
- 不支持 多参、少参、无参、错误参数 的接口测试
- 不支持复杂数据类型,如字典、列表等
JSON
优点:
- 支持 bool类型数据
- 支持 多参、少参、无参、错误参数 的接口测试
- 支持复杂数据类型,如字典、列表等
缺点:
- 对于相同数据量,文件大小远大于 CSV。
使用数据文件步骤:
1.创建相应的数据文件(通常是上面介绍的两种)
2.替换用例中需要从外部数据文件读取的内容
3.在执行用例集界面选择外部数据文件后执行
测试报告
前提:postman已安装插件newman(安装方式自行搜索,需要先装node.js)
1.导出用例集
2.在终端中执行命令,生成测试报告
命令:newman run {用例集的存放地址} -d {外部数据文件的存放地址} -r html
3.在桌面的newman文件夹查看测试报告