我有使用selenium构建和自动化UI测试用例的设置和环境。我们可以更改测试配置以使用不同的浏览器运行测试用例。但是我想知道,我们如何获得测试运行期间使用的配置值?例如如果我有三个配置说IE,Chrome,Firefox。我想使用配置集运行选定的自动化测试用例。我只需要可用于获取配置的变量名称。例如。 $(test.rundid),是否有$(test.configuration)?
谢谢, 阿比吉特
答案 0 :(得分:1)
我也找不到调用测试配置变量的方法。
但是在@pabrams上进行扩展,我实现了一个包含多个阶段的发行版,每个阶段都用所需的环境覆盖管道变量“ TargetEnvironment”进行测试
Where 'TargetEnvironment' is overwritten
然后我扩展到在浏览器上进行配置。我创建了另一个发布管道,该管道设置了“浏览器”变量。
Where I set the variable in the new Pipeline
最后,我必须编辑我的源代码才能在管道运行时读取它们。我在设置环境的地方调用以下方法:
public static string GetUrlBasedOnEnvironment()
{
switch (Environment.GetEnvironmentVariable("TargetEnvironment").ToLower())
{
case "development":
return Development.url;
case "staging":
return Staging.url;
case "preview":
return Preview.url;
case "production":
return Production.url;
default: throw new ArgumentOutOfRangeException("TargetEnvironment");
}
这里是浏览器:
{
public static IWebDriver getDriverBasedOnBrowser()
{
switch (Environment.GetEnvironmentVariable("Browser").ToLower())
{
case "chrome":
return new ChromeDriver(ChromeDriverService.CreateDefaultService(), new ChromeOptions(), TimeSpan.FromMinutes(5));
case "edge":
var options = new EdgeOptions();
options.UseChromium = true; //needed to test on new edge w/ chromium
return new EdgeDriver(options);
case "firefox":
return new FirefoxDriver();
default: throw new ArgumentOutOfRangeException("Browser");
}
}
}
答案 1 :(得分:0)
您可以配置多配置执行计划来执行此操作:
TargetBrowser
指定为多个
文章:使用VSTS版本管理(适用于构建)并行运行测试文章:Running tests in parallel using VSTS Release Management(适用于构建)
然后,你可以supply run time parameters to tests。
例如:
RunSettings文件中的TestRunParameters部分:
<TestRunParameters>
<Parameter name="browser" value="IE"/>
</TestRunParameters>
使用TestContext.Properties获取相应的值:
String app url=TestContext.Properties["browser"].ToString();
//TODO specify UI Test browser.
在Visual Studio Test任务的覆盖TestRunParameters中指定参数:
appUrl=$(TargetBrowser)
答案 2 :(得分:0)
您不需要变量,您可以使用不同的测试计划或测试套件。您将其设置为仅运行某些配置,并将每个配置与一个不同的发行版关联。在每个发行版中,您只需传递override参数,即可根据测试计划/套件明确指定浏览器。 如果想花哨的话,可以使用变量传递给任务组以节省重复。