【问题标题】:SpecFlow - API same scenario in different environment using runsettings using restSpecFlow - 在不同环境中使用运行设置的 API 相同的场景使用休息
【发布时间】:2020-07-13 11:39:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: restsharp specflow runsettings


    【解决方案1】:

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

    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+ 的维护者和开发者之一

    【讨论】:

    • 抱歉问这些问题,但我需要创建一个包含目标环境的 default.srprofile 文件吗?另外,我如何调用特定的环境运行设置文件?比如说,我已经有了包含其他环境特定信息的 dev.runsetting 文件。 Specflow 将如何调用此文件?在目标值部分,我是否需要输入此文件所在的路径?抱歉问了太多问题。
    • 你需要在你的项目中创建default.srProfile。我会将您的环境特定信息也放在那里。作为环境变量或在配置文件中。取决于您的项目设置。您应该不再需要 runsettings 文件,因此无需访问它们。
    • 谢谢回复,难道不能从default.srProfile文件中调用另一个文件吗?我问这个问题的原因是,在 dev.runsetting 中我们有更多参数,我们是否传递了环境的特定数据,如用户 ID、令牌等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2020-05-17
    相关资源
    最近更新 更多