如何在VSTS中设置测试配置中的浏览器?

时间:2017-10-16 17:41:07

标签: testing browser configuration automation azure-devops

我有使用selenium构建和自动化UI测试用例的设置和环境。我们可以更改测试配置以使用不同的浏览器运行测试用例。但是我想知道,我们如何获得测试运行期间使用的配置值?例如如果我有三个配置说IE,Chrome,Firefox。我想使用配置集运行选定的自动化测试用例。我只需要可用于获取配置的变量名称。例如。 $(test.rundid),是否有$(test.configuration)?

谢谢, 阿比吉特

3 个答案:

答案 0 :(得分:1)

我也找不到调用测试配置变量的方法。

但是在@pabrams上进行扩展,我实现了一个包含多个阶段的发行版,每个阶段都用所需的环境覆盖管道变量“ TargetEnvironment”进行测试

Release Structure with Stages

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)

您可以配置多配置执行计划来执行此操作:

  1. 添加具有配置值的变量(例如,TargetBrowser => IE,Chrome,Firefox)
  2. 选择多配置,并将TargetBrowser指定为多个 文章:使用VSTS版本管理(适用于构建)并行运行测试
  3. enter image description here

    文章: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参数,即可根据测试计划/套件明确指定浏览器。 如果想花哨的话,可以使用变量传递给任务组以节省重复。