Как выполнить тесты Selenium 2 в Дженкинсе

  • Я хотел бы иметь возможность использовать селен 2 с Дженкинсом.

  • Я новичок в обоих, поэтому, пожалуйста, извините за мое невежество.

  • я заметил следующий плагин для jenkins здесь, и установил его.

  • у меня есть базовый класс следующим образом:

    public class BaseTestClass {
    
    protected Properties myprops;
    protected String baseurl;
    protected WebDriver driver;
    protected boolean acceptNextAlert = true;
    protected StringBuffer verificationErrors = new StringBuffer();
    
    public BaseTestClass()
    {
        try
        {
            myprops = TestUtil.readProps("src/MyProps.properties");
            baseurl = myprops.getProperty("baseurl");
    
            driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), DesiredCapabilities.fireFox());
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }       
    }
    
    @Before
    public void setUp() throws Exception {
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }
    
    @After
    public void tearDown() throws Exception {
        driver.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
            fail(verificationErrorString);
        }
    }
    
    protected boolean isElementPresent(By by) {
        try {
          driver.findElement(by);
          return true;
        } catch (NoSuchElementException e) {
          return false;
        }
      }
    
      protected String closeAlertAndGetItsText() {
        try {
          Alert alert = driver.switchTo().alert();
          if (acceptNextAlert) {
            alert.accept();
          } else {
            alert.dismiss();
          }
          return alert.getText();
        } finally {
          acceptNextAlert = true;
        }
      }
    

у меня есть следующая конфигурация на Плагин Селен для Дженкинс :

enter image description here

..

enter image description here

как только я попытаюсь построить проект и запустить тест Junit selenium в Дженкинсе, он успешно строится, но тест сам терпит неудачу. (отлично работает при работе с ant из командной строки-и изменении WebDriver в : driver = new FirefoxDriver();) - использование selenium RC

это консольный вывод в Jenkins: enter image description here

редактировать: я только что заметил, что вы можете Архив с JUnit .выходной xml-файл после сборки в Jenkins. Я получаю класс не найден исключение? Это странно, потому что, как я уже сказал, он отлично строится при использовании ant из командной строки.

ошибка заключается в следующем:

<error message="com.loggedin.CCBreadCrumb" type="java.lang.ClassNotFoundException">
java.lang.ClassNotFoundException: com.loggedin.CCBreadCrumb at
java.net.URLClassLoader.run(URLClassLoader.java:366) at 
java.net.URLClassLoader.run(URLClassLoader.java:355) at
java.security.AccessController.doPrivileged(Native Method) at
java.net.URLClassLoader.findClass(URLClassLoader.java:354) at
java.lang.ClassLoader.loadClass(ClassLoader.java:423) at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at
java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.lang.Class.forName0(Native
Method) at java.lang.Class.forName(Class.java:186)
</error>

заранее спасибо за любое направление или помощь, которую вы можете иметь!

2 ответов


Я думаю, что я сделал несколько ошибок. Решить Class Not Found Exception Я добавил следующее К ant build.xml - (помните, что я новый Муравей)

<target name="compile" depends="init" description="compile the source " >       
    <javac srcdir="src/" destdir="bin" classpathref="SeleniumCC.classpath"/>
</target>       

Это привело к компиляции моих классов java.

затем мне пришлось обновить автономный сервер selenium до последней версии (selenium-server-standalone-2.xx.x.jar) Это находится в:

jenkins_home_directory\plugins\selenium\WEB-INF\lib

последний раз я пытался использовать неправильную конфигурацию в плагине selenium (я пытался использовать пользовательскую конфигурацию RC-узла, что Мне нужна была пользовательская конфигурация узла веб-драйвера.)

enter image description here

также обратите внимание: при запуске Selenium Server на Red Hat мне пришлось настроить и установить XVFB с плагином Jenkins Xvfb.

Я надеюсь, что это может помочь другим в будущем! Удачи!


Ну, если ваше намерение состоит в том, чтобы просто запустить скрипт selenium без сетки Selenium. Тогда вам не нужен плагин. Вам понадобится только удаленный webdriver.

для запуска Selenium 2 от Дженкинса лучшим способом было бы обернуть процесс тестирования в pom.xml (если вы используете Maven), а затем просто создайте новое задание в Maven, используя "построить проект maven2/3" в Jenkins.