python+pytest接口自动化(3)-接口测试一般流程及方法
首先我们要明确,通常所接口测试其实就属于功能测试,主要校验接口是否实现预定的功能,虽然有些情况下可能还需要对接口进行性能测试、安全性测试。
在学习接口自动化测试之前,我们先来了解手工接口测试怎样进行。
URL组成
为了更好的理解接口测试,我们需要对接口的URL有所了解,下面以GET请求URL为例,组成示例如下:

通过上图可以看出来,一个典型的GET请求的URL可以分为以下几个部分:
传输协议:工作中接触到的接口一般是http/https协议
服务器域名/IP地址:指提供接口的系统所部署的服务器地址
端口:不填则默认端口为80
资源路径:请求资源所在的服务器路径
请求参数:对于GET请求,参数在资源路径后,用?分隔,参数之间用&分隔。
如http://127.0.0.1:8080/message?wd=pytest&ie=utf-8,有2个参数 wd、ie。
POST请求的URL与GET请求URL不一样的地方在于,POST请求参数是放在请求body里而非直接放在URL里。
接口测试流程
手工接口测试的流程如下:
查看需求文档及接口文档,明确测试内容即接口信息。
根据需求文档及接口文档,编写测试用例。
根据测试用例执行测试。
记录测试结果,发送接口测试报告(如果需要)。
接下来以一个登录接口为例来讲解接口测试的流程。
接口文档
对接口进行测试,首先要明确接口的具体信息:请求url、请求方式、请求头、请求体 (字段及说明)、响应体 (字段及说明)。
通过开发提供的接口文档可以查看这些信息,然后再根据接口信息设计测试用例 (接口测试用例的设计主要参考接口文档)。下面示例为一个登录接口的接口文档:

从这个接口文档我们可以看到接口相关的具体信息,但这个文档里没有对请求头Header做说明,所以请求的时候对请求头也不做要求。
用例设计
用例设计方法
设计接口测试用例时,要从考虑输入、逻辑处理、输出三方面考虑:
输入,根据是否必填、参数类型、字节长度、参数组合等设计用例
逻辑处理,即按照业务逻辑设计用例
输出,即根据输出结果分析并设计用例
除了正向校验功能是否实现外,还应根据业务场景及处理逻辑,考虑一些异常场景,如:

用例编写工具
用例设计的载体有很多种,如Excel,XMind,或一些测试管理平台如testlink等,符合自己习惯、方便管理、一目了然就行。
如果用Excel来设计测试用例,可以参考如下原则:
一个模块对应一个Excel表
一个接口对应一张sheet表
sheet表中一行对应一条测试用例
注明前置条件、后置操作。如登录用例需要先注册用户,测试完成后可能需要删除这个用户,这个时候可以把对应操作写进去。
针对上面的登录接口,使用Excel设计测试用例如下:

测试执行
执行接口测试的方式有两种,使用工具或编写代码,工具如:postman、soupUI等,编写代码则一般使用Java、Python。
根据测试用例进行接口测试,手工接口测试一般情况下推荐使用postman进行,方便快捷。
这里以上面的登录接口为例,使用postman进行请求测试,示例如下:

测试结果
测试结果直接记录在测试用例对应的测试结果列里,如果需要提供测试报告的话则需将所有用例测试情况整合在测试报告中。
总结
一般的接口测试其实就属于功能测试,这里我们以手工接口测试为例进行了流程说明。接口自动化测试的步骤其实跟这个流程差不多,只是需要使用脚本代替接口调试工具。
实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
电商项目实战
web测试项目
web+App+h5+小程序 测试项目
接口自动化测试实战项目
Linux实战项目

面试资料
我们进阶学习自动化测试必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

以上资料,对于想要测试进阶的朋友们来说应该会很有帮助,需要的小伙伴可以后台私信找我免费领取。
总结
我见过很多leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了好几年,更夸张的是7、8年工作内容的重复性比较高,没有什么技术含量的工作。
凡事要趁早,特别是技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,
测试开发视频教程、学习笔记领取传送门!!!

相关文章:
python+pytest接口自动化(3)-接口测试一般流程及方法
首先我们要明确,通常所接口测试其实就属于功能测试,主要校验接口是否实现预定的功能,虽然有些情况下可能还需要对接口进行性能测试、安全性测试。在学习接口自动化测试之前,我们先来了解手工接口测试怎样进行。URL组成为了更好的理…...
《MySQL学习》 表中随机取记录的方式
一.初始化测试表 创建表 words CREATE TABLE words ( id int(11) NOT NULL AUTO_INCREMENT, word varchar(64) DEFAULT NULL, PRIMARY KEY (id)) ENGINEInnoDB;插入测试数据 create procedure idata()begin declare i int; set i 0; while i<10000 do insert into words…...
功率信号源有什么作用和功能呢
功率信号源是指集信号发生器与功率放大器为一体的电子测量仪器,它具有高电压、大功率的特点,在电子实验室中能够帮助用来驱动压电陶瓷、换能器以及电磁线圈等,可以有效的帮助电子工程师解决驱动负载和放大功率的问题。功率信号源和功率放大器…...
一些cmake error fixed
建完虚拟环境后 运行 pip install . 出现报错,显示svox2安装出错,然后开始进入到svox2中进行手动编译和安装。 1. cmake svox2/csrc pybind11找不到 conda install pybind11用 pip install 在虚拟环境中安装不行,据说会安装到全局下… 2. c…...
CentOS 7安装Docker并使用tomcat测试
文章目录环境准备Docker安装安装tomcat环境准备 CentOS 7以上版本linux内核版本需要在3.10以上,可通过uname -r 查看系统内核。 Docker安装 检查docker安装源 yum list docker yum安装docker : yum install docker.x86_64 启动 docker : s…...
隐私计算头条周刊(2.20-2.26)
开放隐私计算收录于合集#企业动态45个#周刊合辑45个#政策聚焦38个#隐私计算92个#行业研究37个开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播…...
安装kibana 报错/访问不了
安装kibana 报错1,elasticsearch.yaml 和kibana.yaml 配置问题2,elasticsearch 和kibana版本不一致3,索引问题1,elasticsearch.yaml 和kibana.yaml 配置问题 我的RPM安装的,配置文件都在/etc/ vim /etc/elasticsearc…...
【华为OD机试模拟题】用 C++ 实现 - 身高排序(2023.Q1)
最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明身高排序题目输入输出示例一输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:ht…...
MK60DX256VLQ10(256KB)MK60DN256VLQ10 Kinetis K60 MCU FLASH
MK60DX256VLQ10(256KB)MK60DN256VLQ10 Kinetis K60 MCU 32BIT 256KB FLASH 144LQFP【说明】Kinetis K6x MCU系列是一个可扩展的组合,具有不同级别的集成,提供丰富的模拟、通信、定时和控制外设套件,以适应广泛的需求。应用楼宇自动化控制器人…...
Prometheus 告警模块配置深度解析
本文您将了解到Prometheus 告警模块Alertmanager 配置的深度解析 Alertmanager 配置解析 Alertmanager 配置可以用命令行配置,也可以通过配置文件配置。命令行用来配置不可变的系统参数,配置文件用来定义限制规则用于通知路由和通知接收者。 Alertmana…...
《分布式技术原理与算法解析》学习笔记Day23
分布式数据复制 我们在进行分布式数据存储设计时,通常会考虑对数据进行备份,以提高数据的可用性和可靠性,“数据复制技术”就是实现数据备份的关键技术。 什么是数据复制技术? 在分布式数据库系统中,通常会设置主备…...
毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计
基于51单片机的手机蓝牙控制8位LED灯亮灭设计1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STC89C52单片机核心系统电路设计2.2 LED电路设计2.3 蓝牙模块电路设计3、部分代码展示3.1 定时器初始化以及中断处理3.2 串口初始化3.3 串口中断处理1、项目简介 选题指导&…...
一起Talk Android吧(第五百零八回:多层布局功能)
文章目录功能介绍使用方法示例代码各位看官们大家好,上一回中咱们说的例子是"图片滤镜ImageFilterView",这一回中咱们说的例子是" 多层布局功能"。闲话休提,言归正转, 让我们一起Talk Android吧!功能介绍 我…...
丁小喜の兵器谱(学生管理系统)
我的第一个独立看需求完成项目,虽然很简单(笑)建立一个可以增加,修改,删除,展示学生信息的系统首先是一个界面,让你决定进行哪个操作1.2.3.4.5分别对应不同的操作,switch与这一操作完…...
linux:字符串拷贝的五种方法:使用指针下标,指针变量加偏移量,指针变量自加等
字符串数组名做函数形参,会退化正指针变量,需要使用指针变量操作字符串 代码: #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <s…...
cesium常用方法汇集(工具篇)
1.Scene.prototype.pickPositionWorldCoordinates 根据屏幕坐标获取世界坐标 2,Scene.prototype.pickPosition 根据屏幕坐标获取世界坐标 3,Scene.prototype.drillPick 通过屏幕坐标拾取多个对象 4,Scene.prototype.pickFromRay 通过射线拾…...
分布式一致性与共识算法(一)
这里写目录标题是什么ACIDCAP组合一致性概念共识为什么需要共识算法会如何发展列举Paxos算法ZAB(Zookeeper Atomic Broadcast)协议Raft 算法参考引用是什么 从实现效果上来说,很多人或多或少都了解或者设计过具有强一致性的系统。但是&#…...
C++---最长上升子序列模型---怪盗基德的滑翔翼(每日一道算法2023.2.27)
注意事项: 本题为"线性dp—最长上升子序列的长度"的扩展题,所以dp思路这里就不再赘述。 题目: 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。 而他最为突出的地方,就是他每次都能逃脱中…...
Python 之 Pandas 文件操作和读取 CSV 参数详解
文章目录一、Pandas 读取文件二、CSV 文件读取1. 基本参数2. 通用解析参数3. 空值处理相关参数4. 时间处理相关参数5. 分块读入相关参数一、Pandas 读取文件 当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步。Panda 提…...
微服务的异步通信技术RabbitMQ
文章目录前言1.WorkQueue(工作队列)消息预取机制2.Publish&Subscribe(发布-订阅)1.Fanout(广播)2.DirectExchange(路由)3.TopicExchange(话题)MQ的优点前…...
5分钟快速上手Tesseract OCR:从零开始掌握开源文字识别技术
5分钟快速上手Tesseract OCR:从零开始掌握开源文字识别技术 【免费下载链接】tesseract Tesseract Open Source OCR Engine (main repository) 项目地址: https://gitcode.com/gh_mirrors/tes/tesseract 你是否曾经需要从图片中提取文字,却苦于没…...
从MobileNetV1到RetinaFace:轻量化主干网络在人脸检测中的架构演进与实践
1. 轻量化主干网络的演进背景与需求 在移动端和嵌入式设备上实现实时人脸检测一直是计算机视觉领域的重要挑战。传统的人脸检测算法如Viola-Jones虽然计算量小,但在复杂场景下的检测精度有限。随着深度学习技术的发展,基于卷积神经网络的人脸检测方法逐渐…...
FUnIE-GAN水下图像增强技术:解决水下视觉挑战的深度学习方案
FUnIE-GAN水下图像增强技术:解决水下视觉挑战的深度学习方案 【免费下载链接】FUnIE-GAN Fast underwater image enhancement for Improved Visual Perception. #TensorFlow #PyTorch #RAL2020 项目地址: https://gitcode.com/gh_mirrors/fu/FUnIE-GAN 水下图…...
从赛场到职场:一份高职物联网技能大赛任务书的实战拆解与能力映射
1. 竞赛任务书背后的物联网技术全景 高职物联网技能大赛的任务书就像一份浓缩版的行业项目说明书,里面藏着物联网技术的完整技术栈。我第一次看到这份任务书时,发现它完美地覆盖了物联网的三大层级:感知层、传输层和应用层。 感知层设备选型与…...
从零到一:在VSCode中高效搭建PyQt5开发环境
1. 为什么选择VSCodePyQt5组合? 作为一个常年混迹Python GUI开发的老手,我尝试过各种开发环境组合,最终发现VSCodePyQt5这对搭档特别适合新手入门。PyQt5作为Qt框架的Python绑定,能让你用简单的代码创建专业级桌面应用,…...
办公自动化__简单日历工具
办公自动化__简单日历工具 一、概述用python编写的获取日历工具,输入年份并将在屏幕上打印全年12一个月,星期、日期、第几周对应关系。 利用到calendar、datetime、msvcrt三个库。 二、主要涉及思路 按照输入年份,循环使用clendar库显示日…...
遥感‘找不同’进阶指南:当ENVI传统方法遇上深度学习,如何选择最优技术路线?
遥感变化检测技术路线深度解析:传统方法与深度学习的实战抉择 当多时相遥感影像摆在面前,如何高效准确地识别地表变化?这个问题困扰着从生态监测到城市管理的众多从业者。我曾参与过一个湿地保护项目,团队花了三周时间用传统方法…...
前端八股整理(Vue 02)|组件通信、生命周期、v-if 与 v-show
前端八股整理(Vue 02)|组件通信、生命周期、v-if 与 v-show 1.讲讲VUE中的组件通信 组件通信的基本原则是单向数据流,最基础的是父子通信:父传子通常通过 props,在 Vue3 里一般用 defineProps 接收,子组件接收父组件传…...
SwarmVault:去中心化AI数据存储与管理的实践指南
1. 项目概述与核心价值最近在探索分布式存储和AI应用结合的前沿领域时,我遇到了一个非常有意思的项目:swarmclawai/swarmvault。这个名字本身就透露了它的野心——将去中心化存储网络Swarm与人工智能(AI)能力相结合,构…...
基于MCP协议构建AI工具调用客户端:原理、实践与Node.js实现
1. 项目概述:MCP生态中的客户端实践最近在折腾AI智能体开发,发现一个挺有意思的现象:大家把大模型的能力吹得天花乱坠,但真要让它们去操作一个具体的系统、查询实时的数据,或者调用一个私有API,往往就卡壳了…...
