长期更新好文,建议关注收藏!
目录
- 接口规范
- 接口测试
- 用例设计
- postman
- Requests
- 封装
- 接口自动化框架
- 实例
复习HTTP超文本传输协议
复习cookie+session
- 实现方式
1.工具 如postman ,JMeter(后者功能更全)
2.代码 python+requests / java+httpclient【高级】
接口规范
- 传统接口
- RESTful
representational state transfer
特点:面向资源,URL唯一
- 通过URL定位资源
/users #所有用户
/users/001 #id==001的用户
- 通过HTTP方法对资源CURD(增删改查 create retrieve update delete)
- 利用HTTP状态码返回状态信息
接口测试
- **流程:**需求分析->接口文档解析->设计测试用例->脚本开发->执行和缺陷跟踪->生成测试报告->接口自动化持续集成(执行之类的这个事也管理起来,按规定时间自动做)
- 接口自动化测试框架
api/:存储接口对象层
scripts/:存储测试脚本层(测试类、测试方法)
data/: .json数据文件
report/:存储生成的html测试报告
common/:存储通用的工具方法
config.py:存储项目的配置信息(全局变量)
run_suite.py:组装测试用例、生成测试报告的代码
用例设计
编号 | 用例名称 | 模块 | 优先级 | 前置条件 | 接口名称 | 请求方法 | URL | 请求头 | 请求数据 | 预期结果 | 实际结果 |
---|---|---|---|---|---|---|---|---|---|---|---|
-
功能测试
单接口+业务功能 -
- 单接口
1.正向测试
必填参数组合P0、必填+非必填组合P3、全部参数组合P1
2.反向测试
功能异常P1(覆盖反向需求,如登陆失败)、数据异常P2(空、类型不符、长度不符)、参数异常P3(多参、少参、无参、错参)
有些可能会出现抓包后修改成多参再发送的情况,所以多参也是不可忽略的
- 单接口
-
- 业务场景
针对业务操作步骤分析,尽可能用最少的用例覆盖最多的接口,一般覆盖正向测试即可。
- 业务场景
-
性能测试
响应时长+错误率+吞吐量+服务器资源使用率
错误率是指服务器运行出错的概率。
吞吐量:单位时间内服务器处理请求的数量。
服务器资源使用率:cpu,内存,网络,磁盘等硬件资源占用率。 -
安全测试
敏感数据加密+SQL注入+其他,如必须登陆才能查看数据
postman
下方图片同理,按照JSON格式解析
之后有许多高级用法。
- 断言 javascript编写
1.响应状态码
2.包含某字符串
3.JSON数据
选择Tests
或者最新版本
/*
pm postman实例
test(param1,param2) 测试方法
param1 显示提示
param2 匿名函数调用
*/
pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});
pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.success).to.eql(True);//这个value指的是键值对里的值//指定key的值为success
});
- 工作原理
- 关联
接口之间有依赖就可以使用关联。
当A从容器(有两种,全局或环境)中取到数据后,发送请求。
- 全局变量
- 环境变量:需要单独创建环境
点击眼睛查看全局/环境变量
被测接口A引用变量
//在tests中操作
var jsonData=pm.response.json()
pm.globals.set("全局变量key",全局变量value