问题描述
团队规模较小,但应用程序规模庞大。他们没有PHP单元测试,因此打算使用Cypress作为质量的基准。他们计划将所有内容都通过CI/CD流水线,并使用回归端到端测试来确保没有破坏任何模块或项目。其中一个例子是使用FedEx API进行运输,他们有多个地址,使用GUI测试会太慢,所以他们想知道是否可以使用Cypress来完成这个任务,而不是在流水线中添加另一个系统(带有CLI的Postman)来运行使用动态数据(多个邮政编码和地址)的测试。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
Cypress是为前端端到端测试而设计的。它旨在测试用户与应用程序的交互,并验证其是否正常工作(例如,使用有效的用户名和密码登录后加载登录页面)。这类工具可以在无头模式下运行,允许您在CI工具中运行测试而无需加载GUI界面。
由于您的目标是测试API交互,因此最好使用专为此目的设计的工具。大多数API测试工具允许您向API发送请求并验证响应的某些内容(例如响应代码、响应头、响应体)。
虽然使用端到端工具(如Cypress)最终可以测试您的API,但设置、运行和维护这样的测试通常会更耗时且更容易出错。以您上面的例子为例,使用Cypress这样的工具需要编写脚本/测试步骤来登录系统、选择多个地址进行运输,并验证所有内容是否正确显示。而使用Postman这样的工具只需测试当您向FedEx API发送具有特定请求体和头部的请求时,是否会得到预期的响应、响应体和头部。虽然设置Postman等工具需要使用新工具,但最终可以节省时间。
许多API工具还提供命令行测试运行器,并与各种CI工具集成(非详尽列表):
1. Postman – 免费,相对容易设置,并包含自动化测试工具newman。
2. SmartBear – 商业产品,与大多数CI工具集成。
3. Rest-Assured – 用于REST API测试的开源选项。
以上是一些常用的API测试工具,您可以根据自己的需求选择适合的工具来进行API测试。