基于Python自动化测试框架之接口测试

上一篇阐述了关于web UI相关的内容,这篇谈谈关于接口测试及自动化测试框架。

接口测试是测试系统组件间数据交互的一种方式,通过不同情况下的输入参数和与之对应的输出结果来判断接口是否符合或满足相应的功能性、安全性要求。简单来说,接口测试就是代替前端验证后端是否实现或符合接口规范。

接口测试原理

模拟客户端向服务器发送请求报文,服务器收到请求报文后对相应的报文做处理并向客户端返回应答,客户端接受响应数据后并进行判断。

◆请求:是否正确,默认请求成功是返回200,假如请求错误返回400,405,500等状态码,并根据状态码判断错误类型,如穿参错误或后端、服务器异常。

◆检查:除了要检查返回数据的状态,还要检查返回数据内容的正确性与完整性。

◆安全性:接口一般不会暴露在网上任意调用,需要做一些限制,比如必须登陆或者请求次数、频率限制,对密码等部门内容要做加密处理。

接口测试工具选型

1、现成的接口工具可以做自动化测试

◆Jmeter 、Postman

◆这两种方式为普遍的接口测试工具,但仅适用于测试简单没有上下参数传递的接口,有些协议或流程复杂便不好实现。

2、开源平台做自动化测试

◆Metersphere 、apipost、apifox

◆这些为开源的接口自动化测试平台,Metersphere将接口、性能、功能测试集成在一个平台上,对版本迭代、缺陷管理有很大帮助。

3、基于python写适应的接口自动化代码

◆Pytest

◆接口数量大、特定接口、加密操作、关联操作,触发一些组件

◆httprunner底层是使用pytest执行

对于接口测试所提供的工具选项很多,那我们公司根据三层自动化纬度选择了使用python+pytest展开了开发自动化框架的方式:

1、使用pytest开发自动化框架

◆每步的流程截图+日志

◆高度与项目或者产品业务结合

◆环境初始化或数据清楚,完成定制化实现

2、自动化的后续阶段:公司自研框架–专利

◆测试人员都需要懂代码,成本高,但利于产品底层质量的完善

3、公司自己的测试平台

◆提供可视化的交互性

◆web页面(css js html vue)+后端(java/python–django+flask)

接口测试的测试纬度

接口测试由单个接口的测试开始,保证单个接口测试的正确性和健壮性,然后通过单个接口的测试完成多个接口的业务逻辑串联,再由业务逻辑的角度完成业务逻辑的正确性检测,如图:

图片

接口测试用例方面根据三个阶段来设计,分别是功能、性能及安全,三个阶段由从分别不同点考虑,具体如下:

图片

接口测试框架

以下介绍基于Python+Pytest+Allure+gitlab+jira的测试框架,同样与selenium一样基于PO模式的框架如下图所示:

图片

自动化测试代码结构

图片

框架写好后的代码编写思路:

1、基类封装,将常用方法如发送请求、增删改查封装在基类中;

2、编写业务层的接口代码

3、编写测试用例代码,根据上述的用例分层逐步补充完善用例、并将通用性、不牵扯业务用例放入基类中。

以上为本次对自动化测试之接口测试及框架的概述。


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战


四、App自动化项目实战

五、一线大厂简历


六、测试开发DevOps体系

七、常用自动化测试工具


八、JMeter性能测试

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/218536.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5 - ArchvizExplorer与Map Border Collection结合 - 实现电子围栏效果

插件地址: https://www.unrealengine.com/marketplace/zh-CN/product/archviz-explorer https://www.unrealengine.com/marketplace/zh-CN/product/map-border-collection ArchvizExplorer扩展: https://download.csdn.net/download/qq_17523181/8843305…

Power BI - 5分钟学习增加索引列

每天5分钟,今天介绍Power BI增加索引列。 什么是增加索引列? 增加索引列就是向表中添加一个具有显式位置值的新列,一般从0或者从1开始。 举例: 首先,导入一张【Sales】样例表(Excel数据源导入请参考每天5分钟第一天)…

消除非受检警告

在Java中,有一些情况下编译器会生成非受检警告(Unchecked Warnings)。这些警告通常与泛型、类型转换或原始类型相关。消除这些警告可以提高代码的可读性和安全性。以下是一些常见的非受检警告以及如何消除它们的例子: 1. 泛型类型…

【K8S 系列】认识k8s、k8s架构

一、什么是k8s? Kubernetes 简称 k8s,是支持云原生部署的一个平台,k8s 本质上就是用来简化微服务的开发和部署的,用于自动化部署、扩展和管理容器化应用的开源容器编排技术。对于传统的docker其实也提供了容器编排的技术docker-compose&…

机器学习---Boosting

1. Boosting算法 Boosting思想源于三个臭皮匠,胜过诸葛亮。找到许多粗略的经验法则比找到一个单一的、高度预 测的规则要容易得多,也更有效。 预测明天是晴是雨?传统观念:依赖于专家系统(A perfect Expert) 以“人无…

学习git后,真正在项目中如何使用?

文章目录 前言下载和安装Git克隆远程仓库PyCharm链接本地Git创建分支修改项目工程并提交到本地仓库推送到远程仓库小结 前言 网上学习git的教程,甚至还有很多可视化很好的git教程,入门git也不是什么难事。但我发现,当我真的要从网上克隆一个…

2044回文字符串(C语言)

目录 一:题目 二:思路分析 1.什么是回文? 2.判断回文: 三:代码 一:题目 二:思路分析 1.什么是回文? 最简单的理解方式就是一个字符串正着写和倒着写一样 2.判断回文&#xff1…

leetcode砍竹子1

现需要将一根长为正整数 bamboo_len 的竹子砍为若干段,每段长度均为正整数。请返回每段竹子长度的最大乘积是多少。 1.根据公式看出取等是在所有n相等的情况,可以得出只有均分 乘积最大 2.转为求下面的最大值 3.求导,得出驻点为e2.7左右 …

百度地图中显示红点

initMap(longitude, latitude) {var map new BMapGL.Map("container");// 创建地图实例if (longitude null || latitude null) {var point new BMapGL.Point(111.1480354849708, 37.5262978563336);var marker new BMapGL.Marker(point);map.addOverlay(marker)…

ubuntu如何远程ssh登录Windows环境并执行测试命令

ubuntu如何远程ssh登录Windows环境并执行测试命令 1 paramiko模块简介1.1 安装paramiko1.2 paramiko基本用法1.2.1 创建SSHClient实例1.2.2 设置主机密钥策略1.2.3 连接SSH服务器1.2.4 执行命令1.2.5 关闭SSH连接1.2.6 异常处理 2 windows的配置2.1 启动OpenSSH服务2.2 配置防火…

【Spark精讲】Spark与MapReduce对比

目录 对比总结 MapReduce流程 ​编辑 MapTask流程 ReduceTask流程 MapReduce原理 阶段划分 Map shuffle Partition Collector Sort Spill Merge Reduce shuffle Copy Merge Sort 对比总结 Map端读取文件:都是需要通过split概念来进行逻辑切片&…

多任务学习(Multi-Task Learning)和迁移学习(Transfer Learning)的详细解释以及区别(系列1)

文章目录 前言一、多任务学习(Multi-Task Learning)是什么?二、多任务学习(Multi-Task Learning)对数据的要求三、迁移学习是什么?四,迁移学习对数据的要求五,多任务学习与迁移学习的…

设计模式——外观模式(结构型)

引言 外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。 ​ 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。 正常情况下, 你需要负责所有对象的初始化工作、 管理其依赖关系并按正确的顺序执行方法等。…

超详细的80个Python入门实例,附源码,大学装逼必备!

对于大部分Python学习者来说,核心知识基本已经掌握了,但"纸上得来终觉浅,绝知此事要躬行",要想完全掌握Python,还得靠实践应用。 今天给大家分享80个Python入门实例,都是基础实例,经典实用&…

在datagridview列显示下拉操作

DataGridViewComboBoxExColumn 设定好类型 需要设置的地方是: 绑定数据的操作: 因为此处绑定数据实际为数据 参数 显示的操作,不影响datasource的数据绑定 下一步 数据绑定: DGVCOrderZhuangtai.ValueType typeof(EOrderZhuan…

数据结构 | 查漏补缺之顺式存储和链式存储、如何评价哈希函数的好坏、链地址法、树的遍历、关键路径、完全图、连通图、迪杰斯特拉、b树

目录 顺式存储和链式存储 优缺点比较 顺序存储 ​编辑 链式存储 如何评价哈希函数的好坏 简述哈希查找中链地址法解决冲突的方法 树的遍历 关键路径 完全图 连通图 迪杰斯特拉 b树 特点: 插入(索引不能大于:最大为 M-1 个&#…

C程序添加ASAN编译选项

目录 选项说明 环境变量配置 环境变量说明 示例 C程序代码 Cmakelist.txt 测试结果 选项说明 选项说明-fsanitizeaddress开启内存越界检测-fsanitizeleak开启内存泄漏检测-fsanitize-recoveraddress一般后台程序为保证稳定性,不能遇到错误就简单退出&#x…

案例精选|聚铭综合日志分析系统助力长房集团“智慧房产”信息化建设

长沙房产(集团)有限公司(简称“长房集团”)始创于2004年3月,是一家由长沙市人民政府授权组建的国有独资企业。截至2021年底,企业总资产逾452亿元,总开发面积1300多万平方米,已开发项…

c语言->浅学结构体

系列文章目录 文章目录 前言 ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青_C语言,函数,指针-CSDN博客 目的:学习结构体基础内容&am…