【问题标题】:Postman: More advanced data driven testing - how should one structure and run tests?Postman:更高级的数据驱动测试——应该如何构建和运行测试?
【发布时间】:2020-03-21 17:18:35
【问题描述】:

我在为 Postman 中的 API 编写自动化测试套件方面拥有丰富的经验。我一直使用数据驱动的测试,因此对 Postmans 在这方面的限制感到有点沮丧。当我说数据驱动时,我试图实现两个目标。首先,我想将测试与测试数据分离,但更重要的是,我希望能够参数化我的测试,以便使用代表不同场景/案例的不同数据对每个测试进行迭代。我有一些 API 端点,我点击了数十次,但数据不同。我正在寻找有关构建和执行测试的更好方法的建议。我将概述以下问题。

在 Postman 中,您可以针对选定的环境和/或数据文件运行集合。这里的问题是您可以只为一个完整的集合传递一个数据文件。虽然从技术上讲,您可以在单个文件中包含所有需要的数据,但为了简洁起见,实际上最好在 Postman UI 的测试中硬编码您的数据。

您可以做的是将您的集合测试组织到子目录中,然后选择单独的子目录来运行,每个子目录都使用自己的数据。同样,您可以将测试拆分为单独的集合。这里最大的问题是运行整个测试套件不再是单击按钮,而是您必须遍历每个测试子集并运行它们。将子集合链接到测试数据也可能会令人沮丧。同样重要的是,您不再得到一个大问题的简明报告。

迄今为止,我的解决方法是使用 Newman 使用特定数据文件来命中特定测试或测试组。这允许我分离出我的测试数据以匹配集合,也意味着我可以一次性启动所有测试(通过一次性触发所有命令)。问题是我在执行此操作时仍然只是运行子集合,并且希望最终得到一份报告,就好像所有测试都是同时从一个集合运行一样。

我的第二个解决方法是只用代码编写测试,但这不是理想的解决方案,因为它使测试套件更具技术性。我们技术含量较低的测试人员将无法为套件做出贡献,并且需要始终有技术人员来维护 API 测试。

我看过 pm.iterationData 并且可以想象在每次测试之前创建一个预请求脚本来加载测试的迭代数据,但感觉有点 hacky。我不知道这是否可能。

谢谢

【问题讨论】:

    标签: automation postman data-driven-tests postman-collection-runner postman-testcase


    【解决方案1】:

    试用 vREST NG。它开箱即用地无缝支持 CSV 文件。它将解决以下问题:

    1. 每个 API 测试用例都可以链接到自己的 CSV 文件。
    2. 更容易参数化查询参数、表单参数、请求正文等。
    3. 无需对任何数据进行硬编码。
    4. 无缝集成,无需进行任何特殊的修改即可支持 DDT。
    5. 与 CSV 文件实时集成。即只是链接您的CSV 文件。测试将始终在执行时获取最新的 CSV 文件数据。不会一次又一次地上传 CSV 文件。
    6. 最后您将获得一份报告。
    7. 它允许您在 CSV 文件中写入 API 输入数据和 API 响应验证数据(状态代码、预期响应正文、预期架构名称)。
    8. 最后不需要特殊的技术技能。

    我还在 LinkedIn 上写了一篇文章,将提供有关如何执行数据驱动测试的分步说明。 https://www.linkedin.com/pulse/swagger-excel-sheets-wonderful-way-validating-rest-apis-aggarwal/

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2016-08-12
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多