Как выполнить тесты 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; } }
у меня есть следующая конфигурация на Плагин Селен для Дженкинс :
..
как только я попытаюсь построить проект и запустить тест Junit selenium в Дженкинсе, он успешно строится, но тест сам терпит неудачу. (отлично работает при работе с ant из командной строки-и изменении WebDriver
в :
driver = new FirefoxDriver();
) - использование selenium RC
это консольный вывод в Jenkins:
редактировать: я только что заметил, что вы можете Архив с 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-узла, что Мне нужна была пользовательская конфигурация узла веб-драйвера.)
также обратите внимание: при запуске Selenium Server на Red Hat мне пришлось настроить и установить XVFB с плагином Jenkins Xvfb.
Я надеюсь, что это может помочь другим в будущем! Удачи!
Ну, если ваше намерение состоит в том, чтобы просто запустить скрипт selenium без сетки Selenium. Тогда вам не нужен плагин. Вам понадобится только удаленный webdriver.
для запуска Selenium 2 от Дженкинса лучшим способом было бы обернуть процесс тестирования в pom.xml (если вы используете Maven), а затем просто создайте новое задание в Maven, используя "построить проект maven2/3" в Jenkins.