目录
接口的种类:
- 外部接口;
- 内部接口:
- 上层服务与下层服务;
- 同级服务。
接口的分类(http):
- post:post请求的数据是放在WebForm里面的,以表单形式提交的;
- get:请求的数据放在地址栏里,会导致地址栏很长,不够安全;
- delete;
- put。
不同接口类型的差异:
- 参数提交方式;
- 请求数据大小;
- 安全性。
设计测试用例的目的:
- 理清思路,避免漏测;
- 提高测试效率;
- 跟进测试进度;
- 告诉领导做过;
- 跟进重复性工作。
接口测试用例设计:
- 功能:
- 功能是否正常;
- 功能是否按照接口文档实现。
- 逻辑业务:
- 是否依赖业务(如支付前需要登录成功等)。
- 异常:
- 参数异常:关键字参数、参数为空、多(少)参数、错误参数;
- 数据异常:关键字数据、数据为空、长度不一致、错误数据
- 安全:
- cookie:逻辑依赖业务使用;
- header;
- 唯一识别码。
接口测试工具分类:
- 抓取接口:
- httpwatch:IE浏览器和Firefox浏览器;
- wireshark:经过电脑的所有请求都会被抓取,看数据比较麻烦;
- fiddler:轻量级,功能齐全
- 测试接口:
- loadrunner;
- fiddler;
- soapui;
- Jmeter;
- postman
data:接口发送的数据
header:请求头,记录客户端的一些信息
接口的作用:
处理各个系统模块之间的数据。
GET接口:
- 数据直接在URL显示,输入的参数长度有限制,所有数据直接在URL中可见,不安全;
- 一般使用get型的接口,是从数据库中去读取数据,查询比较多;
- “?”之前是地址,之后是数据,用“&”连接。
POST接口:
- 在body中输入数据,输入的数据内容大小没有限制,数据不能直接看到,更安全;
- 一般是对数据库写入、修改比较多;
JSON格式:
用逗号隔开:
{
"key": "value",
"key2": "value",
"key3": {
"key": "1111"
}
}
状态码:
状态码 | 含义 |
200 | 代表接口运行正常 |
400 | 接口发送的参数不正确(格式输入不正确) |
404 | 接口地址输入不正确 |
405 | 接口类型不正确(get、post) |
500 | 代表接口的代码有问题,内部服务器有错误 |
400、404、405:客户端(前端)使用的时候导致的问题。
505:服务端(后端)的问题
postman接口的操作:
可以将url地址或者是token值用参数的形式表示,直接调用。
- 全局变量:
- 局部变量:
postman接口关联:
- 控制发送的数据:修改请求头、地址参数等。
- 控制返回的结果:控制返回结果的脚本使用Tests,控制请求的脚本使用Pre-request Script。
- 设置局部变量的值:
- 将返回的token值使用脚本的形式存放,返回的token值更新,存放的局部变量自当更新:
- 用res值代替表示token值,{{res}}。
断言:
自动判断是否成功(状态码是否是200)。
- 判断结果为成功:
- 批量运行接口:
pm.response
表示请求的返回对象.
响应对象有:响应时间、响应消息头、响应消息体、响应状态码。
响应状态码 | pm.response.code |
响应消息头 | pm.response.headers |
响应时间 | pm.response.responseTime |
响应数据 | pm.response.text()(字符串) |
响应数据json格式 | pm.response.json()(json对象) |
接口测试用例:
- 正向:输入合适的数据账号注册成功;
- 逆向:(再使用等价类、边界值等进行测试)
- 注册时输入的账号不符合规范,注册失败;
- 注册时输入的密码不符合规范,注册失败;
- 注册时输入的邮箱不符合规范,注册失败;
- 注册时输入的手机号不符合规范,注册失败。
接口测试注意事项:
- 需要根据具体的需求去设计接口的测试用例;
- 对于会写入数据库的数据,需要去数据库里看是否正常写入了;
- 对查询类的接口,需要去数据库里看数据是否一致;
- 必须要熟悉整个系统的需求,必须要熟悉整个系统的数据库;
- 除了独立的每个接口的测试,我们还需要对存在业务逻辑上下关联的接口进行流程测试。
Python Get请求实现方式:
- 定义接口地址;
- 定义请求数据;
- 整理请求数据;
- 发送数据并获取结果。