基于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.niftyadmin.cn/n/5267664.html

相关文章

Python自动化办公:提升工作效率的利器

引言: 在现代社会中,办公效率的提升成为了各行各业追求的目标。而随着科技的不断发展,Python作为一种简单易学、功能强大的编程语言,正逐渐成为自动化办公的首选工具。本文将介绍如何使用Python实现自动化办公,从而提高…

前端真的死了吗

随着人工智能和低代码的崛起,“前端已死”的声音逐渐兴起。前端已死?尊嘟假嘟?快来发表你的看法吧! 以下方向仅供参考。 一、为什么会出现“前端已死”的言论 前端已死这个言论 是出自于2022年开始 ,2022年下半年疫情…

KubeKey 离线部署 KubeSphere v3.4.1 和 K8s v1.26 实战指南

作者:运维有术 前言 知识点 定级:入门级了解清单 (manifest) 和制品 (artifact) 的概念掌握 manifest 清单的编写方法根据 manifest 清单制作 artifactKubeKey 离线集群配置文件编写KubeKey 离线部署 HarborKubeKey 离线部署 KubeSphere 和 K8sKubeKey…

vue实现在一个方法执行完后执行另一个方法

Vue 提供了多种异步处理的方法,以下是2种实现方式: 1、使用回调函数 使用回调函数处理异步操作。在异步方法中传入一个回调函数,然后在异步方法完成后调用回调函数。 methods: {handleAsync() {this.someAsyncMethod(() > {console.log…

DevEco Studio中配置代码片段

进入设置(快捷键CtrlAltS) 选择Editor > Live Templates 添加片段 其中 $END$ 代表光标首次出现位置 一定要选择适用语言!!! 最后Apply > OK 即可,输入快捷命令回车即可快速生成代码片段。

K12484 银行排队(bank)

题目描述 K个人来银行排队办理业务,银行有n个窗口可以同时办理,每个窗口允许有m个人排队,其余的人在银行大厅等待。当某个窗口排队人数少于m时,在大厅等待的人可进入该窗口排队。每个人都有自己要办的业务,每个业务要…

算法:程序员的数学读书笔记

目录 ​0的故事 ​一、按位计数法 二、不使用按位计数法的罗马数字 三、十进制转二进制​​​​​​​ ​四、0所起到的作用​​​​​​​ 逻辑 一、为何逻辑如此重要 二、兼顾完整性和排他性 三、逻辑 四、德摩根定律 五、真值表 六、文氏图 七、卡诺图 八、逻…

图扑物联 | WEB组态可视化软件

什么是组态? 组态的概念来自于20世纪70年代中期出现的第一代集散控制系统(Distributed Control System),可理解为“配置”、“设置”等,是指通过人机开发界面,用类似“搭积木”的简单方式来搭建软件功能&a…