上一篇阐述了关于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性能测试
九、总结(尾部小惊喜)
生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!
生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!
只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!