8年测试老鸟,接口测试自动化规范,让你不再背黑锅...


前言

1、原则

任何新增接口和修改接口都需通知测试人员,并由其进行相关接口测试;

接口测试不仅要求从白盒角度对系统的整体架构有足够了解(逻辑),还要求从黑盒角度对用户场景熟悉(业务),两者相辅相承设计测试用例;

始终站在用户的角度对系统接口进行全面高效持续的检测。

2、评估项

业务功能覆盖是否完整
业务规则覆盖是否完整
参数验证是否达到要求(边界、业务规则)

接口异常场景覆盖是否完整
接口覆盖率是否达到要求
代码覆盖率是否达到要求
性能指标是否满足要求
安全指标是否满足要求

3、类型

业务功能测试:正常场景,异常场景;
边界分析测试:业务规则边界分析,输入输出参数边界分析;
参数组合测试;
异常情况测试:重复提交,并发测试,事务测试,大数据量测试;
性能测试:响应时间,吞吐量,并发数,服务器资源使用率;
安全测试:敏感信息,SQL注入;

4、步骤

理解接口规范:熟悉接口文档,理解请求参数、方法、路径和预期的响应。
设计测试用例:基于接口规范设计全面的测试用例,包括正常流程和异常流程。
准备测试环境:配置测试所需的环境,如接口服务器、数据库和测试数据。
执行测试:运用自动化测试工具或手动执行测试用例。
结果验证:验证接口的响应是否符合预期结果。
问题跟踪:记录测试中发现的问题,并跟踪至解决。
测试报告:生成测试报告,总结测试结果和发现的问题。

5、内容

1)参数校验

数据类型校验:
确保传入参数的数据类型与接口文档中定义的类型一致。
校验参数类型,如字符串、整数、浮点数等,是否满足要求。

数据长度校验:
对于字符串类型的参数,检查其长度是否在允许的范围内,避免数据溢出或截断。

数据格式校验:
对于特定格式的参数,如日期、邮箱地址、手机号码等,检查其格式是否正确。

必填参数校验:
验证接口文档要求的必填字段是否都已提供,并且参数值不为空、不越界、类型正确。

非必填参数校验:
对于非必填参数,验证其传入的正确性,包括格式、长度等。

重复参数校验:
对于可能重复传递的参数,进行唯一性校验,避免重复处理。

2)返回值校验

状态码校验

HTTP状态码:首先,验证返回的HTTP状态码是否符合预期。常见的状态码如200(成功)、400(错误请求)、404(未找到)、500(服务器内部错误)等,每种状态码都有其特定的含义和用途。

业务状态码:除了HTTP状态码外,有些API还会返回业务状态码,用于更详细地描述业务处理的结果。测试时需要验证业务状态码是否符合业务逻辑和预期结果。

数据内容校验

数据类型校验:验证返回的数据类型是否与接口文档中定义的类型一致。例如,如果接口文档指定返回的是JSON格式的字符串,那么实际返回的数据也应该是符合JSON规范的字符串。

数据格式校验:对于特定格式的数据,如日期、时间、金额等,需要验证其格式是否正确。例如,日期格式应该符合YYYY-MM-DD或YYYY/MM/DD等规范。

数据完整性校验:验证返回的数据是否完整,是否包含了所有必要的字段。这可以通过与接口文档进行比对来实现。

数据准确性校验:验证返回的数据是否准确,是否符合业务逻辑和预期结果。这可能需要结合具体的业务场景和数据来源来进行判断。

返回值必要性校验

避免冗余数据:验证返回的数据是否都是必要的,避免返回过多无用数据。过多的冗余数据不仅会增加网络传输的开销,还可能对前端展示和数据处理造成不必要的麻烦。

按需返回:根据请求参数和业务需求,验证API是否按需返回了相应的数据。例如,如果请求参数中指定了只需要返回某个字段的值,那么API应该只返回该字段的值而不是整个数据对象。

其他校验点

异常处理校验:验证当API出现异常时,返回的异常信息是否准确、完整且易于理解。异常信息应该包含足够的上下文信息以便于定位和解决问题。
分页参数校验:如果API支持分页查询,那么需要验证分页参数(如页码、每页数量等)是否有效,以及返回的数据是否符合分页规则。

排序参数校验:如果API支持排序功能,那么需要验证排序参数是否有效,以及返回的数据是否按照指定的排序规则进行了排序。

3)命名校验

接口命名:
确保接口命名准确、简洁,遵循一定的命名规则。

字段命名:
字段命名应准确反映其含义,且拼写无误,遵循驼峰命名法等规范。

4)业务判断

约束条件校验:
验证接口处理是否满足业务上的约束条件,如数值限制、状态限制、关系限制等。

操作对象校验:
验证接口操作的对象是否符合业务规则,如非自己创建的数据不能修改等。

时序分析:
确保接口调用的时序符合业务逻辑,如前置条件是否存在。

5)安全校验

参数安全校验:
对传入的参数进行安全性校验,如防止SQL注入、跨站脚本攻击(XSS)等。

权限校验:
验证接口访问的权限,确保只有具有相应权限的用户才能访问和调用接口。

加密与验证:
对于敏感数据,如密码、密钥等,进行加密存储和传输,确保数据的安全性。

访问控制:
通过API密钥、等方式进行身份验证和授权,确保接口访问的安全性。

漏洞管理:
定期进行安全审计和漏洞扫描,及时修复潜在的安全漏洞。

6、场景覆盖

从用户角度进行设计的测试覆盖。主要是模拟用户的业务操作,达到对用户行为的覆盖。

场景测试优先覆盖正常路径,其次是分支路径以及异常路径。

测试场景保持独立性和原子性,每个测试场景完成独立的功能,不受其他操作的影响。

7、自动化用例编写规范

一个脚本是一个完整的用例。

用例中正向逻辑用例为主,逆向逻辑用例为辅。逆向逻辑的情况较多(例如手机号输错有很多种情况),逆向逻辑按等价类划分法选取具有代表性的用例编写。

用例之间不要产生关联性,即编写的每一个用例都是独立的,不依赖或影响其他用例脚本。

整个脚本中只对验证点进行验证,无需对整个脚本每一步操作都做验证。
测试用例的上下文有一定的顺序性,能够互相连接,并且前置条件清晰。
尽量把重复任务放入一个方法中,这样它可以被多个测试用例调用。

测试用例不匹配预设的验证点,需要抛出合适的异常并提供详细的失败信息。

前置条件的准备尽量调取功能接口完成,非必要情况不使用直接修改数据库字段值的形式(必要情况下也要保证所修改字段不影响其它数据或系统功能)。

统一命名方式,测试用例模块名、方法名以test_api名称命名。

8、测试断言设计

尽量保持断言形式统一。
选择具有明确的message参数的断言方法,使断言结果的可读性更强。
选择断言的对象需准确,有代表性。

不使用接口响应数据作为唯一断言情况下,需结合数据库相应数据变化做断言。

9、准入准则

提交的接口测试对象已联调通过
接口文档静态测试已通过(包含接口信息、传参信息、响应信息等)
接口测试环境可正常使用

10、准出准则

接口功能清单已全部覆盖且满足需求
接口问题检出已稳定,回归阶段未发现其它问题
接口测试报告已出

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

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生最耀眼的不是站在领奖台的瞬间,而是黑暗中依然前行的勇气。当你觉得疲惫不堪时,请记住:每个伟大的转折都藏在"再坚持一下"的决定里。你的脚步,正在丈量属于自己的传奇!

别被眼前的迷雾困住脚步!那些看似徒劳的努力,都在为惊喜的绽放积蓄力量。当世界说"到此为止"时,你的坚持就是最响亮的回答。向前奔跑吧,生命的精彩正在下一站等你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值