Запустите тестовые примеры Selenium, используя jenkins

Я подготовил тестовые примеры, используя веб-драйвер selenium, и я запускал локально с помощью MSTEST, и он отлично работает, и теперь я хотел бы переместить свои тестовые примеры в JENKINS, и когда я запускаю из JENKINS, он говорит Starting execution... и его более 15 минут, и все еще такой же статус, поэтому я должен остановить его вручную.

вот мой консольный вывод:

Started by user anonymous
Started by user anonymous
Building in workspace D:\Jenkins\jobs\Selenium_Script\workspace
[workspace] $ cmd /c call C:\Users\XXXXXXX\AppData\Local\Temp\hudson4765437871038045571.bat

D:\Jenkins\jobs\SelScript\workspace>call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest" /testcontainer:D:\Sel\EmployeeTest\test.emp.admin.dll 
Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.

Loading D:\Sel\EmployeeTest\test.emp.admin.dll...
Starting execution...

Build was aborted
Finished: ABORTED

Я хотел выполнить тест кейс на Jenkins и проверить результат выполнения

и вот мой код, который я использую на всякий случай.

Это то, что я использую для создания экземпляра своего драйвера, должен ли я использовать RemoteDriver?

public static IWebDriver GetDriver()
        {
            string _url = new Uri(Common.Url).DnsSafeHost.ToString(); 

            switch (Common.BrowserSelected)
            {
                case "ff":
                    FirefoxProfile profile = new FirefoxProfile();
                    profile.SetPreference("network.http.phishy-userpass-length", 255);
                    profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", _url);
                    drv = new FirefoxDriver(profile);
                    break;
                case "ie":
                    var options = new InternetExplorerOptions();
                    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
                    DesiredCapabilities capabilities = new DesiredCapabilities();
                    capabilities.SetCapability(CapabilityType.AcceptSslCertificates, true);
                    drv = new InternetExplorerDriver(options);
                    break;
                case "chrome":
                    //_driver = new ChromeDriver();
                    break;
            }
            return drv;
        }

person Nick Kahn    schedule 04.04.2013    source источник


Ответы (2)


Вы можете запустить свои сценарии Selenium в разделе Build Jenkins.

Нажмите на Add Build Step и выберите Execute Shell, там вы можете напрямую запускать свои команды, как если бы вы вводили их в среде Linux.

Все это при условии, что вы используете Jenkins в среде Linux.

@ Должен ли я использовать RemoteDriver? Зависит от того, установлен ли у вас xvfb для запуска тестов в автономном режиме? Если нет, то да, вы можете перенаправить свои тесты для удаленного запуска на компьютере с Windows/Mac.

ОБНОВЛЕНИЕ

Если у вас есть машина с Windows, вам не нужен xvfb. Так что забудьте об этом.

Сценарий оболочки (по умолчанию sh, но это настраивается) для сборки проекта. Сценарий будет запущен с рабочей областью в качестве текущего каталога. Введите содержимое сценария оболочки. Если ваш сценарий оболочки не имеет строки заголовка, такой как #!/bin/sh —, то будет использоваться оболочка, сконфигурированная для всей системы, но вы также можете использовать строку заголовка для написания сценария на другом языке (например, #!/bin/perl). ) или управлять параметрами, которые использует оболочка. По умолчанию оболочка будет вызываться с параметром «-ex». Таким образом, все команды выводятся перед выполнением, и сборка считается неудачной, если какая-либо из команд завершается с ненулевым кодом выхода. Снова добавьте строку #!/bin/..., чтобы изменить это поведение.

В качестве наилучшей практики старайтесь не размещать здесь длинный сценарий оболочки. Вместо этого рассмотрите возможность добавления сценария оболочки в SCM и просто вызовите этот сценарий оболочки из Jenkins (через bash -ex myscript.sh или что-то подобное), чтобы вы могли отслеживать изменения в своем сценарии оболочки.

Пример -

Вы можете запустить рубиновую команду так

ruby testscripts.rb

или такой сценарий оболочки

./testscripts.sh
person Amey    schedule 04.04.2013
comment
я использую среду Windows и предполагаю, что буду выполнять такую ​​​​оболочку D:\Jenkins\jobs\SelScript\workspace>call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest" /testcontainer:D:\Sel\EmployeeTest\test.emp.admin.dll - person Nick Kahn; 04.04.2013
comment
что такое xvfb/без головы? голый со мной, я новичок в этом - person Nick Kahn; 04.04.2013
comment
@Amey: у меня есть скрипты selenium webdriver, которые нормально работают в Windows через testng.xml. Мой сервер Jenkins работает в Linux. Как вызвать testng.xml ? - person Satish; 16.06.2014

Дженкинс очень прост. Просто сделайте это:

  1.  Allow Jenkins to check-out your code into the Jenkins workspace.
  2.  Navigate to that workspace on your Windows computer and manually run
      the tests by executing the script that starts them.

Делая это таким образом, Дженкинс временно выпадает из поля зрения и, следовательно, больше не является причиной вашей проблемы. Затем вы можете сосредоточиться на том, что является реальной проблемой. После того, как вы решили проблему, проверьте свои изменения в репозитории исходного кода, затем снова запустите сборку Jenkins и попробуйте снова запустить ее вручную. Если это также работает, ТОГДА, наконец, вы можете настроить задачу сборки в Jenkins для запуска вашего теста.

person djangofan    schedule 05.04.2013