Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/
接口自动化测试常用框架:Python+requests+pytest+yaml+alluer+Jenkins;
API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试。它是集成测试的一部分,它确认API是否满足测试人员对功能、可靠性、性能和安全性的期望。与UI测试不同,API测试是在没有GUI层执行操作的。
以下是接口测试的小技巧:
接口测试要求
在测试API之前,需要回答以下问题以彻底了解API的要求:
API的功能是什么?业务流程是什么?使用场景是什么?
通常,应用程序的API用于对资源进行操作。它们常用于读取,创建,更新。了解API的用途将为输入和输出准备好测试数据奠定坚实的基础。此步骤还可以帮助你定义验证方法。
例如,对于某些API,针对数据库验证响应。对于其他一些,最好根据其他API来验证响应。
例如,“创建用户” API的输出将是“获取用户” API的输入以进行验证。“获取用户” API的输出可以用作“更新用户” API的输入,依此类推。
指定API输出状态
需要在API测试中验证的最常见的API输出是响应状态代码。
新API测试人员熟悉验证响应代码是否等于200以确定API测试是通过还是失败。这不是错误的验证。但是,它并不反映API的所有测试方案。
在通用标准中,所有API响应状态代码均分为五类。状态码的第一位数字定义响应的类别。后两位没有任何类别或分类作用。
第一位数有五个值:
1xx(信息性):收到请求并继续进行处理
2xx(成功):成功接收,理解并接受了请求
3xx(重定向):需要采取进一步的措施来完成请求
4xx(客户端错误):请求包含错误的语法或无法实现
5xx(服务器错误):服务器无法满足看似有效的请求
API的实际响应状态代码由构建API的开发团队指定。
专注于小型功能性接口
在测试项目中,总是有一些简单的API,只有一个或两个输入,例如登录API,获取身份令牌API,运行状况检查API等。但是,这些API是必需的,被视为进入其他业务的“门API”。首先关注这些API,将确保API服务器,环境和身份验证正常工作。
还应该避免在一个测试案例中测试多个API。
如果发生错误,这是很痛苦的,因为不得不按顺序调试API生成的测试数据。保持测试尽可能简单。在某些情况下,如果需要调用一系列API来实现端到端测试流程,这些任务应该在所有API都经过单独测试之后完成。
分类接口
一个测试项目可能有几个甚至数百个用于测试的API。强烈建议将它们分类,以更好地进行测试管理。它需要采取额外的步骤,但是将大大帮助你创建具有高覆盖率和集成度的测试方案。
同一类别的API共享一些公共信息,例如资源类型,路径等。以相同的结构组织测试将使测试在集成流程中可重复使用和扩展。
接口自动化测试
尽可能早地利用自动化进行API测试。以下是自动化API测试的一些重要好处:
测试数据和执行历史记录可以与API信息一起保存。这使得以后重新运行测试变得更加容易;
API测试稳定且较少更改。API反映了系统的业务规则。API的任何更改都需要明确的要求;因此,测试人员始终可以及时了解更改并进行调整;
与Web UI测试相比,测试执行速度要快得多;
API测试被视为灰盒测试,用户可以在其中发送输入数据并获取输出数据以进行验证。数据驱动方法的自动化(即在同一测试场景中应用不同的数据集)可以帮助增加API测试覆盖率;
数据输入和输出遵循某些特定的模板或模型,因此只能创建一次测试脚本。这些测试脚本也可以在整个测试项目中重复使用;
API测试可以在软件开发生命周期的早期进行。具有模拟技术的自动化方法可以帮助在开发实际的API之前验证API及其集成。因此,减少了团队内部的依赖性;
选择合适的验证方法
当响应状态代码告诉请求状态时,响应主体内容就是API通过给定输入返回的内容。API响应内容因数据类型和大小而异。
响应可以是纯文本,JSON数据结构,XML文档等。它们可以是简单的几个单词的字符串(甚至为空),也可以是一百页的JSON/XML文件。因此,必须为给定的API选择合适的验证方法。
通常,有一些验证API响应正文内容的基本方法:
将整个响应正文内容与预期信息进行比较,此方法适用于具有静态内容的简单响应。日期时间,增加的ID等动态信息会在断言中引起麻烦。
比较响应的每个属性值,对于JSON或XML格式的响应,很容易获得给定键或属性的值。因此,此方法在验证动态内容或单个值而不是整个内容时很有用。
比较匹配与正则表达式,与验证单个属性值一起,此方法用于验证具有特定模式的数据响应以处理复杂的动态数据。
每种验证方法都有其优点和缺点,并且没有“一刀切”的选项,需要选择最适合的测试项目的解决方案。
正向测试
验证API是否已接收输入并按要求中指定的那样返回预期的输出。
验证是否按要求指定返回了响应状态代码,无论它返回的是2xx还是错误代码。
用最小的必填字段和最大的字段指定输入。
反向测试
当预期的输出不存在时,请验证API是否返回了适当的响应。
执行异常输入验证测试。
使用不同的授权级别验证API的行为。
建议在测试过程中安排每天的API测试执行。由于API测试执行快速,稳定且足够小,因此很容易以最小的风险将更多测试添加到当前测试过程中。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
每个人都有自己的梦想和目标,但只有那些愿意为之奋斗并不断努力的人才能实现它们。无论遇到多少挫折和困难,都要坚定信念、持之以恒,用行动践行自己的理想。成功的道路从来都不是一帆风顺的,但只要不放弃,就会有收获。
只要你拥有梦想和勇气,就能够走得更远;不管现在的生活多么艰辛,坚持努力才是关键;每一份努力都会换来一份收获,不放弃才能创造奇迹。
只要有梦想,就不要停止奋斗的脚步;只要有信念,就不要怕困难。每一份努力都会得到回报,坚持到最后,你会发现自己已经变得更加优秀。