restsharp - SpecFlow - 在不同环境中使用运行设置的 API 相同场景使用休息
问题描述
抱歉,如果这已经被问过了,但请告诉我,我是 restSharp 和 API 测试的新手。我准备了很多帖子、文章和回复。但由于我的限制,我想知道是否有人可以指导我完成,如何实现它。
我想要实现的是在不同的测试环境(dev、uat、pro 等)中为相同的 Gherkin 场景运行相同的测试场景,如果可能的话,通过使用标签,例如 @dev @uat 等。
目前,我们为这些环境中的每一个都有 3 个运行设置文件,(dev.runsetting、uat.runsetting 等。在每个我们传递不同的参数),要更改为不同的环境,我通过 C# 执行此操作并选择必要的测试设置文件
解决方案
如果我理解正确,您想通过标签控制针对哪个环境执行哪个场景。
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+ 的维护者和开发者之一
推荐阅读
- regex - 如何使用正则表达式确保字符不出现在末尾或开头以及不重复?
- php - PHP CURL 到外部文件加载类
- c# - ASP dot net mvc C# - 无法创建会话变量
- javascript - PHP注册从返回到错误的URL而不是索引,数据库错误?
- reactjs - 设置 lint-staged for jest
- login - 如何在Angular 6中为不同用户使用相同的登录页面
- reactjs - onBlur 函数 - setState 不正确
- openssl - 已验证与 azdcs-gov.mail.protection.outlook.com 建立的 TLS 连接
- linux - UnrealBuildTool:ld.lld:错误:找不到库
- docker - Docker 保存不同的镜像和容器