我有很多在 Postman 中为 API 编写自动化测试套件的经验。我一直使用数据驱动的测试,因此对 Postmans 在这方面的限制感到有点沮丧。当我说数据驱动时,我试图实现两个目标。首先,我想将测试与测试数据分离,但更重要的是,我希望能够参数化我的测试,以便使用代表不同场景/案例的不同数据对每个测试进行迭代。我有一些 API 端点,我点击了数十次,但数据不同。我正在寻找有关构建和执行测试的更好方法的建议。我将概述以下问题。
在 Postman 中,您可以针对选定的环境和/或数据文件运行集合。这里的问题是您可以只为一个完整的集合传递一个数据文件。虽然从技术上讲,您可以在单个文件中包含所有需要的数据,但为了简洁起见,实际上最好在 Postman UI 中的测试中硬编码您的数据。
您可以做的是将您的集合测试组织到子目录中,然后选择要运行的各个子目录,每个子目录都使用自己的数据。同样,您可以将测试拆分为单独的集合。这里最大的问题是运行整个测试套件不再是单击按钮,而是您必须遍历每个测试子集并运行它们。将子集合链接到测试数据也可能会令人沮丧。同样重要的是,您不再得到一个简明的报告,这是一个大问题。
迄今为止,我的解决方法是使用 Newman 使用特定数据文件来命中特定测试或测试组。这允许我分离出我的测试数据以匹配集合,也意味着我可以一次性启动所有测试(通过一次性触发所有命令)。问题是当我这样做时我仍然只是在运行子集合,并且希望最终得到一个报告,就好像所有测试都是同时从一个集合运行一样。
我的第二个解决方法是只用代码编写测试,但这不是理想的解决方案,因为它使测试套件更具技术性。我们技术含量较低的测试人员将无法为套件做出贡献,并且需要始终有技术人员来维护 API 测试。
我见过 pm.iterationData 并且可以想象在每次测试之前创建一个预请求脚本来加载测试的迭代数据,但感觉有点hacky。我不知道这是否可能。
谢谢