• GPT4.0 给出的建议:
    1. 构建数据模型
    使用数据模型类:定义与接口入参相匹配的模型类,使用 JSON 序列化和反序列化,可以简化构造复杂的入参结构。同时,支持默认值和可选字段的灵活性。
    示例数据:建立一组模板或示例数据,配置化地使用这些数据作为入参的基础,通过动态替换需要变化的字段来减少手动构建的复杂性。
    2. 利用配置文件和环境变量
    配置化入参:将入参配置化到 JSON 或 YAML 文件中,针对不同的接口和场景进行管理,测试用例在运行时读取这些配置。
    环境变量分离:如果有常见的参数组合,可以通过环境变量来快速切换特定的用例环境,减少硬编码。
    3. 接口模拟与虚拟化
    使用接口模拟工具:在开发和测试阶段,可以考虑使用 Mock 工具(如 WireMock、MockServer 等)模拟出接口的返回,减少依赖真实接口的复杂性。
    服务虚拟化:虚拟化整个服务的响应,尤其是在服务依赖纵深的情况下,能够让测试更聚焦于特定接口的行为。
    4. 自动化生成测试用例
    自动生成用例:编写脚本分析接口文档或者 Swagger 文件自动生成入参,避免手动编写低效且容易出错。
    使用测试框架的参数化功能:使用 JUnit、pytest 等框架的参数化测试功能,将多种入参情况整合到同一用例中,提高复用性和维护性。
    5. 分层测试
    设置单元测试与集成测试:将接口的核心逻辑进行单元测试,把复杂接口调用的测试分解成多个小单元的集成测试。
    借助分层设计理念:将各个嵌套层级的验证独立提取,进行分层测试,降低单个测试用例的复杂度。
    6. 持续维护与评审
    定期评审用例:因为接口会频繁变化,定期评审测试用例的有效性,挑选出重复性、有效性不高的用例进行剔除或重构。
    关注接口变更:跟踪接口文档的变化,确保测试用例在接口变更后能及时调整,防止用例和实现脱节。
    7. 团队协作与知识分享
    文档和知识共享:团队内部建立文档和知识库,分享处理复杂参数的最佳实践,定期进行技术分享和培训。
    合理分工:将接口按照业务逻辑进行合理分工,让不同的成员对特定接口负责,提升团队的整体效率。
    通过以上优化措施,可以在一定程度上减轻接口测试中的复杂性,提高自动化测试的效率与可靠性。

  • 是指核心业务流吗?

  • 感谢大佬的意见,核心的业务流其实在转测用例中覆盖了,这些自动化实现的优先级是最高的,其它的可能上层更关注整个的自动化覆盖率,其实我也赞同覆盖核心业务流就 OK,投入产出比更高一些,封装这个目前确实是这样做的,大部分是默认,结合实际使用开放一些非默认参数。

  • 嗯嗯,有些变化特别频繁的没有做,优先做的是那些相对稳定的子系统。

  • 比如什么笨方法呢?😂

  • 基于人工智能的测试流程 at 2023年07月27日

    想说和题主有一样的困惑,领导要求 ai 赋能但是不知道怎么赋,有些东西做出来可能并没有什么用,投入产出比是负的。

  • 我在自己的写的文章里面也遇到了类似的困境,目前尝试对测试集进行评价,不知道落地效果怎么样