Как выполнить тесты одновременно / параллельно на нескольких узлах с сеткой селена и c #? - PullRequest
0 голосов
/ 30 сентября 2019

Мне нужно выполнить тесты пользовательского интерфейса селена с использованием сетки селена на нескольких узлах с различными конфигурациями. В настоящее время я могу выполнять тесты только на одном компьютере в данный момент времени, используя RemoteWebDriver и требуемые возможности. Мой код выглядит следующим образом:

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Remote;
using System;
using System.Collections.Generic;

namespace ClassLibrary1.Test
{
[TestFixture]

public class Test1 : BaseTestClass
{
    public RemoteWebDriver driver = null;
    [SetUp] 
    public void setup()
    {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.SetCapability(CapabilityType.BrowserName, "chrome");
        capabilities.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Windows));

        driver = new RemoteWebDriver(new Uri(" http://152.17.100.217:5454/wd/hub"), capabilities);
        driver.Manage().Window.Maximize();
    }
    [TearDown] 
    public void teardown()
    {
        driver.Quit();
    }
    [Test]
    //[Parallelizable]
    public void test1()
    {


        driver.Navigate().GoToUrl("https://www.google.com");
        Thread.Sleep(5000);
        IWebElement query = driver.FindElement(By.Name("q"));
        query.SendKeys("test");
        query.Submit();
        Thread.Sleep(15000);

    }
    [Test]
    //[Parallelizable]
    public void test2()
    {

        driver.Navigate().GoToUrl("https://www.google.com");
        Thread.Sleep(5000);
        IWebElement query = driver.FindElement(By.Name("q"));
        query.SendKeys("selenium ");
        query.Submit();
        Thread.Sleep(15000);

    }

}
  }

Мне нужно выполнить около 250+ тестов на серверах через VSTS, а также реализовать сетку селена для различных конфигураций. При этом я могу выполнять эти тесты только на одном сервере одновременно, тогда мне нужно изменить возможности вручную, чтобы выполнить его на другом сервере. Что я могу сделать, чтобы он работал на нескольких машинах одновременно. Я знаю, что это возможно с Java, используя файл xml и добавляя узлы для конфигураций машины и проверяя файлы, но не в состоянии сделать это с помощью c #. После этого я собираюсь вызвать это с помощью сборки VSTS. Есть ли способ добиться этого ??

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

В VSTS / Azure DevOps вы можете использовать нарезку для распределения нагрузки выполнения по нескольким агентам -> (https://docs.microsoft.com/en-gb/azure/devops/pipelines/process/phases?view=azure-devops&tabs=classic#slicing)

Отрывок:

Задание агента можно использовать длязапустить набор тестов параллельно. Например, вы можете запустить большой набор из 1000 тестов для одного агента. Или вы можете использовать два агента и запустить 500 тестов для каждого из них параллельно.

0 голосов
/ 30 сентября 2019

Если вы хотите использовать различные возможности для каждого сервера, вам может потребоваться использовать для этого конфигурации сборки C # и преобразования XML.

Ваша установка будет работать следующим образом:

  • Несколько файлов .config - каждый файл конфигурации содержит возможности для каждого сервера - server1.config, server2.config и т. Д.

  • Запустите свои тесты в соответствии с желаемым.config file

Таким образом, вы можете указать, какие возможности вы хотите выполнить для каждого сервера.

Вам понадобится SlowCheetah расширение пакета для преобразований XML.

И вам нужно будет читать из .configs, используя ConfigurationManager.AppSettings, здесь указано .

Это общий ответ дляоткрытый вопрос. Большая часть этой работы и исследований должна быть сделана самостоятельно. Если вы столкнулись с конкретными проблемами или сообщениями об ошибках, вы можете открыть новый вопрос здесь для более целенаправленного устранения неполадок.

...