爆肝整理,自动化测试-接口自动化入门到实战,一篇上高速...


前言

1、接口自动化怎样做

1)为什么要做接口自动化

UI能模拟用户的真实行为,但是受外部的原因,如电脑卡顿,浏览器卡顿,网速,需求变动等,从而容易造成脚本执行失败,维护成本较高,投入较高等问题
接口测试直接验证模块逻辑的正确性,去除UI干扰

接口测试难度低于UI测试,执行效率高于UI,可测试的代码覆盖率高,维护成本低,属于低成本,高收益

有些项目产品数据列表的内容比较多,不好定位,难以开展UI自动化测试
接口自动化能够解放人力,提升工作效率

2)了解一波接口

什么是接口:
接口一般来讲分为两种:
程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。

系统对外的接口:从别人的网站或服务器上获取资源或信息,对方不会提供数据库共享,只能提供一个写好的方法来获取数据,如购物网站和第三方支付之间,购物网站支付时可选择第三方支付方法,但第三方不会提供自己的数据库给购物网站,只会提供一个接口,供购物网站进行调用。

常用接口:
http接口走http协议,通过路径来区分调用方法,请求报文一般是key-value形式的,返回报文一般是json串,常用的是get和post方法来请求。

webservice接口走的soap协议,通过http传输,请求报文和返回报文都是xml格式的。

获取接口关键信息:

开发提供接口文档/接口规范(正规流程),如上接口文档范例;
说明:如果没有接口规范/文档(不正规流程),需要使用抓包工具,如Fiddler、wireshark、httpwatch或直接在谷歌或火狐浏览器F12等获取接口关键信息;

接口关键信息:
协议类型:http/htts
请求URL/IP:如:网址:https://www.baidu.com/;ip:127.0.0.1

端口:http默认端口:80,https默认端口:443或自定义端口
请求方式:如post/get/put/delete
表头信息:如内容类型Content-Type:application/json

请求参数:注意参数的传参类型如json;参数的属性如名称、类型、是否必填,参数的个数;
响应结果:注意输出内容的类型如json

1xx:请求已被成功接收、理解、接受
2xx:成功,操作被成功接收并完成响应
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求

2)什么项目适合做接口自动化测试

任务需求明确,不会频繁变动
项目周期较长,回归测试频繁(>=5次),开展自动化确实能提升测试效率及质量
产出的效益高于投入
测试预留的时间比较充裕

4)接口自动化关键点

开发测试脚本需充分考虑脚本的复用性
业务与数据分离

5)什么时候可以做接口自动化

需求评审完毕,接口需求明确稳定
版本升级项目发布之前的全流程回归测试

6)与开发同步进行接口用例脚本开发

软件开发未完成,接口还无法调试,测试如果需要同步开发接口,需根据接口文档规范,利用MOCK SERVER等接口模拟工具模拟接口,从而进行接口自动化用例调试开发

7)接口自动化测试的流程

业务流程:
评估投入与收益比,是否需要进行接口自动化
根据项目组成员的能力及项目属性,选取适当的自动化工具或开发语言
分析业务,在功能测试用例提取主业务场景
先开发一个主业务场景脚本,根据需要补充其他业务场景

开发流程:
提取脚本可重复项,封装简化脚本,利用公共类或公共函数等方法,提高脚本的利用率、可读性及可维护性
提取脚本中可变的参数,修改成变量
利用csv、Excel、ini、数据库、yaml等参数化数据信息,使业务与数据分离,实现数据驱动测试

引入日志,出现问题能迅速定位
添加断言并生成可视化报告
利用Jenkins持续集成工具,实现自动打包,按时发布并执行,生成结果邮件发送给项目相关人

2、自动化测试实施方案

1)项目讨论

项目中符合自动化测试的部分有哪些?(目标和范围 scope, 准入准出标准)
稳定的需求点、变动较少的页面
每日构建后的测试验证 daily build
比较频繁的回归测试
需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重复任务

自动化用例在整个项目的测试用例的覆盖率
一般的要求 50% +
重点的要求 80% +
根据项目的具体要求,变动特别大的项目需要额外单独考虑覆盖率

2)团队建设

建立自动化测试的组,理想状态下有4个人员,测试开发、中高级自动化测试工程师、2个初级自动化工程师;非理想的情况下,可能只有一个人。

理想状态下的动化测试团队建设

①测试开发

基础搭建:自动化框架的建设,确定自动化框架的设计模式、第三方代码工具的封装、中间公共模块的设计和调用、测试用例、测试套件的管理和执行、测试报告和测试结果的输出(文件输出和邮件通知)

可选高级:如果可能的话,需要搭建持续集成服务器(CI,Continuous Integration Server)的环境,进行持续交付和自动化的冒烟测试等。
培训的任务,需要将设计的框架以及封装的驱动,对其他成员进行培训。
有自动化方案的实施经验、有开发背景、以及持续集成的背景等。

②中高级自动化测试工程师

配合测试开发人员,实施测试框架的建设。主要负责中间公共模块的实现和实例化等,以及部分高难度和流程复杂的自动化用例脚本编写和调试等工作。
有参与过自动化方案的建设、脚本编写经验丰富、会代码调试、懂Web测试等。

③初级自动化测试工程师

根据中间公共模块的设计,进行实例化公共模块、方法组合,实现自动化用例脚本的编写。
有计算机编程思维、有代码经验、可以读懂脚本和HTML等。

非理想状态下的动化测试团队建设

若只有我一个人:
首先实现自动化测试框架的设计,一般先用通用的框架,然后再结合项目的特点进行改造
其次是自动化用例的编写、维护和执行。在这个基础上不断的抽取实现公共模块的设计以及测试报告的生成等工作。
通过经验的积累,以及后续人员的补充,做好自动化框架的建设工作。

接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;

最全Python自动化测试进阶之路视频教学 (全集)

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生最动人的风景,往往藏在最险峻的山巅。当你觉得力竭时,请记住:每一次坚持都在重塑更强大的自己。别问路有多远,只管迈步向前;别怕山有多高,向上攀登就是答案!

你体内沉睡着改变世界的力量!每个清晨都是改写命运的新机会,每次挫折都是精心包装的礼物。当全世界都在说"不可能"时,正是你证明"可能"的最好时机!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值