软件测试笔记——接口测试
文章目录
- 一、概念
- 1.接口测试流程
- 2.URL
- 3.HTTP协议
- 4.RESTful
- 5.案例介绍
- 二、Postman
- 1.Postman软件
- 2.登录接口调试-获取验证码
- 3.登录接口调试-自动关联数据
- 4.合同上传接口-提交请求数据
- 5.提交参数查询
- 6.批量执行
- 7.接口用例设计
- 8.断言
- 8.参数化
- 三、案例
- 1.项目
- 2.课程添加
- 3.课程列表查询
- 4.课程修改
- 5.课程删除
- 四、接口自动化
- 1.接口自动化测试流程
- 2.搭建自动化测试环境
- 3.接口自动化框架
- 4.Requests
- 5.接口对象封装
- 6.断言
- 7.数据驱动
- 8.allure
- 注
一、概念
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)发送请求:
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:
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站了解更多。
相关文章:
软件测试笔记——接口测试
文章目录 一、概念1.接口测试流程2.URL3.HTTP协议4.RESTful5.案例介绍 二、Postman1.Postman软件2.登录接口调试-获取验证码3.登录接口调试-自动关联数据4.合同上传接口-提交请求数据5.提交参数查询6.批量执行7.接口用例设计8.断言8.参数化三、案例1.项目2.课程添加3.课程列表查…...
东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成
东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成 文章目录 东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成一 简述二 配置 cfg.xml1 启用密码访问2 Spring Boot 连接 TongRDS 三 配置 TongRDS 开机自启1 配置 RdsCenter1)设置 RdsCenter.servi…...
在 VS Code 中调试 Tensor 形状不显示的问题及解决方案
文章目录 常见问题解决方案1. 定制类包装和 __repr__ 方法 解释如何应用总结 在使用 VS Code 调试 PyTorch 代码时,可能会遇到一个常见问题:调试时 variables 窗口中不显示 Tensor 的形状信息。这会使得调试时观察数据的结构变得不便,尤其是在…...
Linux 时间获取全面总结
1. 引言 在Linux操作系统中,获取时间是一个基本且重要的功能。本文旨在全面总结Linux系统中获取时间的方法,包括命令行工具和编程接口,帮助读者深入理解Linux时间管理的机制。 2. 命令行工具 2.1 date 命令 date 命令是Linux中最常用的命…...
SQL 自学:游标(Cursors)的理解与应用
在 SQL 中,游标(Cursor)是一种用于处理从数据库中检索出的多行数据的机制。它允许我们逐行地处理查询结果集,而不是一次性处理整个结果集。 一、游标是什么 游标可以看作是一个指向结果集的指针。通过游标,我们可以在…...
IO多路复用概述与epoll简介
一、引言 在网络编程中,高并发的场景下处理大量连接请求是一项挑战。传统的阻塞式IO模型会让线程在等待数据的过程中陷入停顿,导致系统效率低下。为了解决这个问题,IO多路复用应运而生。它允许一个线程同时监听多个文件描述符(如…...
关于region_to_label算子的想法
1,定义:将区域进行编码 2,如何做到的:底层逻辑应该是paint_region。通过一个小的循环,按顺序将区域从灰度值1开始11的往上喷。 3,有什么作用:目前能用到的,是有字典的作用࿰…...
uni-app 实现好看易用的抽屉效果
在移动应用开发中,抽屉效果是一种常用的用户界面设计,它能有效地节省空间,同时提供导航和其他功能。本文将介绍如何在uni-app中实现一个好看且易用的抽屉效果,帮助你提升应用的用户体验。 一、什么是抽屉效果? 抽屉效…...
PowerShell 脚本 比较两文件差异(带粗狂进度条)并汇总输出
一上来就放代码 function Compare-FileHex {param ([Parameter(Mandatory$true)][string]$SourceFile,[Parameter(Mandatory$true)][string]$CompareFile,[Parameter(Mandatory$false)][string]$OutputFile,[Parameter(Mandatory$false)][int]$BufferSize 1MB)function Forma…...
学习 UE5 的一些前置操作总结
随着 Unity, Godot 这些引擎都玩抽象,主动捅自己一刀后,UE5 的风头不可谓不盛,本着多学一点免得失业的思路方针,咱也研究了一下 UE5 引擎,然后发现想要开始使用 UE5 ,包含了很多前置操作,这里总…...
C#/.NET/.NET Core技术前沿周刊 | 第 10 期(2024年10.14-10.20)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…...
Git 基本配置
目录 打开 Git Bash设置用户信息查看配置信息修改电脑名字为常用指令配置别名打开用户目录,创建 .bashrc 文件在 .bashrc 文件中输入如下内容:打开gitBash,执行 source ~/.bashrc 解决GitBash乱码问题打开GitBash执行下面命令${git_home}/etc…...
理工科考研想考计算机,湖南大学、重大、哈工大威海、山东大学,该如何选择?
C哥专业提供——计软考研院校选择分析专业课备考指南规划 计算机对理工科同学来说,还是性价比很高的,具有很大的优势! 一、就业前景广阔 高需求行业 在当今数字化时代,计算机技术几乎渗透到了各个领域,无论是互联网…...
使用langchain和大模型API提取QA的实战教程
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...
Java面试场景题(1)---如何使用redis记录上亿用户连续登陆天数
感谢uu们的观看,话不多说开始~ 对于这个问题,我们需要先来了解一下~ 海量数据都可以用bitmap来存储,因为占得内存小,速度也很快 我大概计算了一下~ 完全够:String类型512M 1byte 8个bit位 8个状态 512M1024byt…...
Element UI
Element ui 就是基于vue的一个ui框架,该框架基于vue开发了很多相关组件,方便我们快速开发页面。 官网: https://element.eleme.io/#/zh-CN 安装Element UI vue init webpack element(项目名)确认项目是否构建成功:进入到项目的根路径 执行 npm start 访问 h…...
②PROFINET转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899 协议转换通信网关 PROFINET 转 Modbus TCP (接上一章) 配置使用 与 PROFINET 主站进行组态说明 这里介绍与西门子 PLC 的…...
python+Mosh网课笔记04
太久没写python代码了,学机器学习重新拾起python,笔记比较简陋。 参考:mosh python网课 一、导入同一文件夹下其他文件 first.py def swim():print("swim")def run():print("run")同一个文件夹下的second.py from f…...
【微服务】全面构建微服务监控体系:确保系统稳定与性能优化的关键
目录 引言一、微服务监控概述1.1 微服务监控的定义1.2 微服务监控的重要性1.3 监控的核心目标1.4 微服务监控的关键指标1.5 监控的策略 二、微服务监控的架构2.1 监控架构图2.2 架构组件2.3 监控架构示意图 三、微服务监控的工具3.1 工具概述3.2 Prometheus3.3 Grafana3.4 ELK …...
Gin框架操作指南08:日志与安全
官方文档地址(中文):https://gin-gonic.com/zh-cn/docs/ 注:本教程采用工作区机制,所以一个项目下载了Gin框架,其余项目就无需重复下载,想了解的读者可阅读第一节:Gin操作指南&#…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
