目录:导读
前言
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性能测试
九、总结(尾部小惊喜)
人生最耀眼的不是站在领奖台的瞬间,而是黑暗中依然前行的勇气。当你觉得疲惫不堪时,请记住:每个伟大的转折都藏在"再坚持一下"的决定里。你的脚步,正在丈量属于自己的传奇!
别被眼前的迷雾困住脚步!那些看似徒劳的努力,都在为惊喜的绽放积蓄力量。当世界说"到此为止"时,你的坚持就是最响亮的回答。向前奔跑吧,生命的精彩正在下一站等你!