软件测试笔记——接口测试

文章目录



一、概念

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站了解更多。

相关推荐
SRC_BLUE_172 分钟前
[网安靶场] [更新中] UPLOAD LABS —— 靶场笔记合集
笔记
YuanLiu_2274 分钟前
代码随想录算法训练营第十三天(递归遍历;迭代遍历;统一迭代;层序遍历)
java·数据结构·笔记·算法·leetcode
Octopus20771 小时前
【C++】读取数量不定的输入数据
开发语言·c++·笔记·学习
Lostgreen1 小时前
计算机网络----基本概念
网络·笔记·学习·计算机网络
孤邑1 小时前
【Linux】网络通信
linux·服务器·网络·笔记·学习
Hacker_xingchen1 小时前
Web 学习笔记 - 网络安全
前端·笔记·学习
青い月の魔女2 小时前
数据结构初阶---复杂度
c语言·数据结构·笔记·学习·算法
坚硬果壳_2 小时前
《硬件架构的艺术》笔记(九):电磁兼容性能设计指南
笔记·硬件架构
forNoWhat2 小时前
计算机网络习题解答--个人笔记(未完)
笔记·计算机网络
慢慢来_8 小时前
【力扣热题100】[Java版] 刷题笔记-448. 找到所有数组中消失的数字
笔记·算法·leetcode