文章目录
一、概念
1.接口测试流程
1.接口文档解析
2.设计测试用例
3.脚本开发
4.执行脚本
5.缺陷跟踪
6.测试报告
2.URL
是互联网上标准资源的地址,一般称为统一资源定位符。
(1)组成:
协议://hostname[:port]/path/[?查询参数1&查询参数2]
3.HTTP协议
超文本传输协议,基于请求与响应的应用层协议。
(1)作用:
规定了客户端与服务器之间信息传递规范,是二者共同遵循的协议。
(2)组成:
1.HTTP请求:定义请求数据格数
请求行、请求头、请求体
2.HTTP响应:定义响应数据格数
状态行、响应头、响应体
4.RESTful
5.案例介绍
(1)项目介绍:
客达天下销售管理系统(CRM),前后端分离。
(2)待测接口:
1.合同管理业务:
登录、添加课程、上传合同、新增合同。
2.课程管理模块:
添加课程、修改课程、查询课程、删除课程。
(3)设计业务流程测试用例:
1.根据流程图,找出业务路径。
2.根据业务路径分析对应的接口请求。
3.将业务路径转化为接口测试用例。
(4)合同新增业务流程:
(5)解析接口文档:
二、Postman
1.Postman软件
1.介绍:
是一个接口调试工具
2.下载:
官网
2.登录接口调试-获取验证码
如何发送请求并查看响应结果:
1.设置请求方法
2.设置URL
3.设置请求头
4.设置请求数据
5.点击Send发送请求
6.查看响应状态码
7.查看响应体数据
3.登录接口调试-自动关联数据
解决接口之间需要自动传递数据的问题。
Tests:
Body-raw:
4.合同上传接口-提交请求数据
5.提交参数查询
(1)设置在URL中:
(2)设置在Params区域:
6.批量执行
7.接口用例设计
(1)单接口测试:
1.正向测试:
1.1必填参数 P2
1.2全部参数 P2
2.逆向测试:
2.1参数数据为空 P3
2.2参数类型不符 P3
2.3参数长度不符 P3
2.4业务规则不符 P3
(2)使用Postman:
8.断言
(1)Status code:Code is 200
(2)Response body:Contains string
(3)Response body:JSON value check
8.参数化
(1)步骤:
1.测试数据保存在数据文件单独维护
2.引用数据文件实现脚本循环调用
(2)实现:
三、案例
1.项目
2.课程添加
(1)单接口设计测试用例
1、正向:
1.1全部必填参数
1.2全部参数
2、逆向
2.1为空
2.2长度不符
2.3类型不符
2.4规则不符
(2)
3.课程列表查询
单条件查询:
组合条件查询:
4.课程修改
5.课程删除
接口文档:
四、接口自动化
1.接口自动化测试流程
1.选取自动化测试用例
2.搭建自动化测试环境
3.搭建自动化测试框架
4.代码实现自动化
5.输出测试报告
6.实现持续集成
2.搭建自动化测试环境
(1)编程语言: python
(2)测试框架: pytest
(3)请求接口: requests
3.接口自动化框架
设计思路:
项目目录:
4.Requests
安装:pip3 install requests
验证:pip3 show requests
操作步骤:导包、发送接口请求、查看响应数据
(1)发送请求:
python
requests.请求方法(url,params=None,data=None,json=None,headers=None)
#参数:
请求方法:get/post/put/delete
url:请求的url地址
params:请求查询参数
data:请求体为form表单参数
json:请求体为json参数
headers:请求头参数
(2)查看响应:
属性/方法 | 说明 |
---|---|
response.status_code | 状态码 |
response.json() | JSON形式的响应内容 |
response.text | 文本形式的响应内容 |
response.url | 请求url |
response.encoding | 查看响应头部字符编码 |
response.headers | 头信息 |
response.cookies | cookie信息 |
(3)登录接口调试-获取验证码:
(4)处理multipart/form-data:
python
requests.请求方法(url,data=None,json=None,headers=None,files=None)
#补充;
files:上传的文件
f=open("test.pdf","rb") :读取文件数据
response=requests.post(url=xxx,files={"file":f"}) :设置请求数据
(5)解决接口之间的数据依赖:
使用python中变量或属性接口依赖数据
5.接口对象封装
6.断言
相等断言: assert test_data=='xxx'
包含断言: assert 'xxx' in test_data
7.数据驱动
以测试数据驱动脚本执行,维护焦点从脚本转向测试数据的一种自动化测试设计模式。
8.allure
帮助文档:https://docs.qameta.io/allure
注
该为黑马程序员接口自动化测试 学习笔记,有兴趣的可以去b站了解更多。