首页 > 解决方案 > SpecFlow - 在不同环境中使用运行设置的 API 相同场景使用休息

问题描述

抱歉,如果这已经被问过了,但请告诉我,我是 restSharp 和 API 测试的新手。我准备了很多帖子、文章和回复。但由于我的限制,我想知道是否有人可以指导我完成,如何实现它。

我想要实现的是在不同的测试环境(dev、uat、pro 等)中为相同的 Gherkin 场景运行相同的测试场景,如果可能的话,通过使用标签,例如 @dev @uat 等。

目前,我们为这些环境中的每一个都有 3 个运行设置文件,(dev.runsetting、uat.runsetting 等。在每个我们传递不同的参数),要更改为不同的环境,我通过 C# 执行此操作并选择必要的测试设置文件

标签: restsharpspecflowrunsettings

解决方案


如果我理解正确,您想通过标签控制针对哪个环境执行哪个场景。

SpecFlow+ Runner 有一个Targets可以帮助您的功能。有了这个,您可以为您的场景定义多个目标及其配置。

您可以在此处找到此功能的示例:https ://github.com/SpecFlowOSS/SpecFlow.Plus.Examples/tree/master/SeleniumWebTest

在此示例中,我们使用目标针对不同的浏览器进行测试。
在您的情况下,我会将浏览器更改为您的环境。

然后,在您的 CI/CD 管道中,您可以使用 SpecFlow+ Runner 中的过滤来过滤掉您的不同环境。在 Azure DevOps 中,筛选条件是Name~\(target: <TARGETNAME>\).

它的文档在这里:https ://docs.specflow.org/projects/specflow-runner/en/latest/Profile/Filter.html


全面披露:我是 SpecFlow 和 SpecFlow+ 的维护者和开发者之一


推荐阅读