软件测试笔记——接口测试
文章目录
- 一、概念
- 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操作指南&#…...
AI股票分析师daily_stock_analysis进阶技巧:定制你的专属分析模板
AI股票分析师daily_stock_analysis进阶技巧:定制你的专属分析模板 1. 为什么需要定制分析模板 当你第一次使用AI股票分析师daily_stock_analysis时,可能会被它开箱即用的分析能力所惊艳。但随着使用深入,你会发现通用模板有时无法完全满足你…...
GTE-Chinese-Large GPU加速部署:CUDA 12.1 + PyTorch 2.3兼容性验证教程
GTE-Chinese-Large GPU加速部署:CUDA 12.1 PyTorch 2.3兼容性验证教程 1. 教程概述 1.1 学习目标 通过本教程,你将学会如何在支持CUDA 12.1和PyTorch 2.3的环境中,快速部署GTE-Chinese-Large文本向量模型,并验证其GPU加速效果…...
Obsidian-skills日志系统:如何记录和分析AI技能使用情况
Obsidian-skills日志系统:如何记录和分析AI技能使用情况 【免费下载链接】obsidian-skills Agent skills for Obsidian. Teach your agent to use Markdown, Bases, JSON Canvas, and use the CLI. 项目地址: https://gitcode.com/GitHub_Trending/ob/obsidian-sk…...
零基础入门:5分钟用Xinference部署gte-base-zh,开启文本向量化之旅
零基础入门:5分钟用Xinference部署gte-base-zh,开启文本向量化之旅 1. 准备工作:认识gte-base-zh 1.1 什么是文本向量化 想象一下,当你看到"苹果"这个词时,脑海中会浮现什么?可能是水果&#…...
Phi-4-mini-reasoning应用场景:技术文档自动逻辑校验与漏洞推理辅助工具
Phi-4-mini-reasoning应用场景:技术文档自动逻辑校验与漏洞推理辅助工具 1. 模型概述 Phi-4-mini-reasoning是一款由微软开发的3.8B参数轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。该模型以"小参数、强推理、长上下文、低…...
Docker与cpolar强强联合:打造私有化RSSHub内容聚合的远程访问方案
1. 为什么需要私有化RSSHub内容聚合 在这个信息爆炸的时代,我们每天都被各种资讯轰炸。你可能已经厌倦了商业平台的算法推荐,或者担心个人阅读数据被收集利用。这时候,拥有一个完全属于自己的内容聚合系统就显得尤为重要。 RSSHub作为一款开源…...
SEO_2024年最新SEO趋势与核心优化方法介绍(163 )
2024年最新SEO趋势解析:核心优化方法详解 在2024年,搜索引擎优化(SEO)仍然是数字营销中的关键组成部分。随着搜索引擎算法的不断更新,SEO的趋势和核心优化方法也在不断演变。本文将详细解析2024年的最新SEO趋势&#…...
Decision Transformer与行为克隆对比分析:何时选择哪种方法
Decision Transformer与行为克隆对比分析:何时选择哪种方法 【免费下载链接】decision-transformer Official codebase for Decision Transformer: Reinforcement Learning via Sequence Modeling. 项目地址: https://gitcode.com/gh_mirrors/de/decision-transfo…...
嵌入式工程师职业发展:原厂与方案商技术深度对比
1. 嵌入式工程师的职业抉择:原厂与方案商深度对比最近一位工作三年的嵌入式工程师朋友分享了他的求职经历,让我感触颇深。他在方案商做了三年应用开发后,最终选择跳槽到芯片原厂。这个决定背后,反映了很多嵌入式工程师都会面临的职…...
作品被篡改署名?三步维权指南
您好,我理解您遇到了作品被他人擅自修改并署名为“悟空”的情况,这确实是一件令人非常气愤和不快的事情。首先,请务必保持冷静。愤怒是正常的,但清晰的行动才能更好地维护您的权益。针对这种情况,您可以按照以下步骤来…...
