Перейти к содержимому

Фотография

Проблема с запуском тестов на Jenkins


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 luvr

luvr

    Новый участник

  • Members
  • Pip
  • 1 сообщений

Отправлено 16 мая 2013 - 07:58

Здравствуйте!

Возникла проблема с запуском тестов через Jenkins.

Тесты состоят из Ant + Selenium + JUnit.

На удалённой установленна ОС Ubuntu, в домашней папке лежит selenium-server-standalone-2.31.0.jar. Тест организован следующим образом. Есть класс, который содежит метод TurnUp, - для создания кастомного профиля и подключения к selenium server.

public void TurnUp() throws Throwable
    {
        profile = new FirefoxProfile(new File("resources"));
        profile.setAssumeUntrustedCertificateIssuer(false);
        DesiredCapabilities capabillities = new DesiredCapabilities().firefox();
        capabillities.setCapability(FirefoxDriver.PROFILE, profile);
        driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabillities);
    }

Собственно, в других пакетах проекта, лежат готовые сценарии для тестов. testAuthorization(), testForum(), testAdmin() и тд. Из основого класса с помощью аннтоации @Before, вызываю метод TurnUp, для того, чтобы подключить кастомный профиль FF, установить соединение с селениум сервером и начать вызывать методы: testAuthorization(), testForum(), testAdmin() - используя @Test.

Думаю пока всё понятно...

Дескриптор проекта выглядит примерно следующим образом:

<project name="SomeProject">
	<property name="src" location="./src" />
	<property name="build" location="./build" />
	<property name="log" location="./log" />
	<property name="libs" location="./libs" />
	<property name="resources" location="./resources" />
	<property name="prop" location="./prop" />

	<!-- classpath for add libraries and properties files -->
	<path id="classpath_for_add_materials">
		<fileset dir="${libs}">
			<include name="*.jar" />
		</fileset>
		<fileset dir="${resources}">
			<include name="*.**"/>
		</fileset>
	</path>

	<!-- cleaning last assembly -->
	<target name="clean">
		<delete>
			<fileset dir="${build}" />
		</delete>
	</target>
	<!-- compile: create *.class -->
	<target name="compile" depends="clean">
		<javac includeantruntime="false" srcdir="${src}" destdir="${build}" debug="true" includes="**/*.java">
			<classpath refid="classpath_for_add_materials" />
		</javac>
	</target>

    <!-- Custom writings - create new order -->

    <target name="some_job" depends="compile">
        <junit printsummary="true" fork="true" haltonfailure="true">
            <formatter type="plain" usefile="false" />
            <classpath>
                <pathelement path="${build}" />
            </classpath>
            <classpath refid="classpath_for_add_materials" />
            <test name="somejobpacket.SomeJob" />
        </junit>
    </target>
</project>

И так, для того чтобы запустить данный тест, на своей машине, я запускаю из командной строки selenium-server

java -jar selenium-server.2.31.0.jar

После, из корня проекта

ant some_job

Всё отлично. На моей локале открывается кастомный ФФ профиль, который подключил, выполняются тесты.

Проблема с запуском на Jenkins'е. Не так давно писал тест, который запускали Selenium server из кода, но решили отказатся от этого. Теперь, выглядит приблизительно следующим образом. На удалённой машине имеется уже установленный jenkins. Cоздаю новый job:

имя, Run Xvnc during build, Skip internal tag, для ant - some_job

После, подключаюсь удалённо по shh, выполняю запуск ручками selenium-server, а затем, запускаю сам тест на jenkins'е

Получаю вот такой вот стек-трейс

clean:

compile:
    [javac] Compiling 9 source files to /var/lib/jenkins/jobs/SomeJob - Create Order/workspace/build

some_job:
Unable to obtain resource from /var/lib/jenkins/jobs/SomeJob - Create Order/workspace/resources/cert8.db: java.util.zip.ZipException: error in opening zip file
    [junit] Unable to obtain resource from /var/lib/jenkins/jobs/SomeJob - Create Order/workspace/resources/cert8.db: 
    [junit] java.util.zip.ZipException: error in opening zip file
    [junit] 	at java.util.zip.ZipFile.open(Native Method)
    [junit] 	at java.util.zip.ZipFile.<init>(ZipFile.java:127)
    [junit] 	at java.util.jar.JarFile.<init>(JarFile.java:135)
    [junit] 	at java.util.jar.JarFile.<init>(JarFile.java:99)
    [junit] 	at org.apache.tools.ant.AntClassLoader.getResourceURL(AntClassLoader.java:1002)
    [junit] 	at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.findNextResource(AntClassLoader.java:145)
    [junit] 	at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.<init>(AntClassLoader.java:109)
    [junit] 	at org.apache.tools.ant.AntClassLoader.findResources(AntClassLoader.java:949)
    [junit] 	at org.apache.tools.ant.AntClassLoader.getNamedResources(AntClassLoader.java:918)
    [junit] 	at org.apache.tools.ant.loader.AntClassLoader5.getResources(AntClassLoader5.java:54)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.checkForkedPath(JUnitTask.java:1135)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked(JUnitTask.java:1011)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:811)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1808)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:760)
    [junit] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    [junit] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [junit] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [junit] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [junit] 	at java.lang.reflect.Method.invoke(Method.java:597)
    [junit] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    [junit] 	at org.apache.tools.ant.Task.perform(Task.java:348)
    [junit] 	at org.apache.tools.ant.Target.execute(Target.java:390)
    [junit] 	at org.apache.tools.ant.Target.performTasks(Target.java:411)
    [junit] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
    [junit] 	at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
    [junit] 	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    [junit] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
    [junit] 	at org.apache.tools.ant.Main.runBuild(Main.java:801)
    [junit] 	at org.apache.tools.ant.Main.startAnt(Main.java:218)
    [junit] 	at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    [junit] 	at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Unable to obtain resource from /var/lib/jenkins/jobs/SomeJob - Create Order/workspace/resources/cert_override.txt: java.util.zip.ZipException: error in opening zip file
    [junit] Unable to obtain resource from /var/lib/jenkins/jobs/SomeJob - Create Order/workspace/resources/cert_override.txt: 
    [junit] java.util.zip.ZipException: error in opening zip file
    [junit] 	at java.util.zip.ZipFile.open(Native Method)
    [junit] 	at java.util.zip.ZipFile.<init>(ZipFile.java:127)
    [junit] 	at java.util.jar.JarFile.<init>(JarFile.java:135)
    [junit] 	at java.util.jar.JarFile.<init>(JarFile.java:99)
    [junit] 	at org.apache.tools.ant.AntClassLoader.getResourceURL(AntClassLoader.java:1002)
    [junit] 	at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.findNextResource(AntClassLoader.java:145)
    [junit] 	at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.<init>(AntClassLoader.java:109)
    [junit] 	at org.apache.tools.ant.AntClassLoader.findResources(AntClassLoader.java:949)
    [junit] 	at org.apache.tools.ant.AntClassLoader.getNamedResources(AntClassLoader.java:918)
    [junit] 	at org.apache.tools.ant.loader.AntClassLoader5.getResources(AntClassLoader5.java:54)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.checkForkedPath(JUnitTask.java:1135)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked(JUnitTask.java:1011)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:811)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1808)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:760)
    [junit] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    [junit] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [junit] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [junit] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [junit] 	at java.lang.reflect.Method.invoke(Method.java:597)
    [junit] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    [junit] 	at org.apache.tools.ant.Task.perform(Task.java:348)
    [junit] 	at org.apache.tools.ant.Target.execute(Target.java:390)
    [junit] 	at org.apache.tools.ant.Target.performTasks(Target.java:411)
    [junit] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
    [junit] 	at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
    [junit] 	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    [junit] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
    [junit] 	at org.apache.tools.ant.Main.runBuild(Main.java:801)
    [junit] 	at org.apache.tools.ant.Main.startAnt(Main.java:218)
    [junit] 	at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    [junit] 	at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
    [junit] Running somejobpacket.SomeJob
    [junit] Testsuite: somejobpacket.SomeJob
    [junit] Tests run: 1, Failures: 0, Errors: 2, Time elapsed: 45.987 sec
    [junit] Tests run: 1, Failures: 0, Errors: 2, Time elapsed: 45.987 sec
    [junit] 
    [junit] Testcase: NewOrderFromAdmin took 45.965 sec
    [junit] 	Caused an ERROR
    [junit] Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
    [junit] 
    [junit] (firefox:32408): Gtk-WARNING **: Locale not supported by C library.
    [junit] 	Using the fallback 'C' locale.
    [junit] Error: no display specified
    [junit] 
    [junit] (firefox:32415): Gtk-WARNING **: Locale not supported by C library.
    [junit] 	Using the fallback 'C' locale.
    [junit] Error: no display specified
    [junit] 
    [junit] Command duration or timeout: 45.66 seconds
    [junit] Build info: version: '2.32.0', revision: '6c40c18', time: '2013-04-09 17:23:22'
    [junit] System info: os.name: 'Linux', os.arch: 'i386', os.version: '2.6.38-10-generic', java.version: '1.6.0_26'
    [junit] Driver info: org.openqa.selenium.remote.RemoteWebDriver
    [junit] org.openqa.selenium.WebDriverException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
    [junit] 
    [junit] (firefox:32408): Gtk-WARNING **: Locale not supported by C library.
    [junit] 	Using the fallback 'C' locale.
    [junit] Error: no display specified
    [junit] 
    [junit] (firefox:32415): Gtk-WARNING **: Locale not supported by C library.
    [junit] 	Using the fallback 'C' locale.
    [junit] Error: no display specified
    [junit] 
    [junit] Command duration or timeout: 45.66 seconds
    [junit] Build info: version: '2.32.0', revision: '6c40c18', time: '2013-04-09 17:23:22'
    [junit] System info: os.name: 'Linux', os.arch: 'i386', os.version: '2.6.38-10-generic', java.version: '1.6.0_26'
    [junit] Driver info: org.openqa.selenium.remote.RemoteWebDriver
    [junit] 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    [junit] 	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:187)
    [junit] 	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
    [junit] 	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
    [junit] 	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216)
    [junit] 	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:111)
    [junit] 	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:129)
    [junit] 	at UVOFramework.Methods.TurnUp(Methods.java:39)
    [junit] 	at somejobpacket.SomeJob.setUp(SomeJob.java:25)
    [junit] Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
    [junit] 
    [junit] (firefox:32408): Gtk-WARNING **: Locale not supported by C library.
    [junit] 	Using the fallback 'C' locale.
    [junit] Error: no display specified
    [junit] 
    [junit] (firefox:32415): Gtk-WARNING **: Locale not supported by C library.
    [junit] 	Using the fallback 'C' locale.
    [junit] Error: no display specified
    [junit] 
    [junit] Build info: version: '2.32.0', revision: '6c40c18', time: '2013-04-09 17:23:22'
    [junit] System info: os.name: 'Linux', os.arch: 'i386', os.version: '2.6.38-10-generic', java.version: '1.6.0_26'
    [junit] Driver info: driver.version: FirefoxDriver
    [junit] 	at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:106)
    [junit] 	at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:244)
    [junit] 	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
    [junit] 	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:190)
    [junit] 	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:183)
    [junit] 	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:101)
    [junit] 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    [junit] 	at org.openqa.selenium.remote.server.DefaultDriverFactory.callConstructor(DefaultDriverFactory.java:57)
    [junit] 	at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance(DefaultDriverFactory.java:51)
    [junit] 	at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:215)
    [junit] 	at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:1)
    [junit] 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    [junit] 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    [junit] 	at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:169)
    [junit] 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    [junit] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    [junit] 	at java.lang.Thread.run(Thread.java:662)
    [junit] 
    [junit] 	Caused an ERROR
    [junit] null
    [junit] java.lang.NullPointerException
    [junit] 	at UVOFramework.Methods.TurnDown(Methods.java:51)
    [junit] 	at somejobpacket.SomeJob.turnDown(SomeJob.java:31)
    [junit] 

BUILD FAILED
/var/lib/jenkins/jobs/SomeJob - Create Order/workspace/build.xml:35: Test somejobpacket.SomeJob failed

Total time: 49 seconds
Build step 'Invoke Ant' marked build as failure
Terminating xvnc.
$ vncserver -kill :10
Killing Xvnc4 process ID 32338
Finished: FAILURE


В течении нескольких часов перелопатил интернет в поисках ошибки, - не нашёл. Пытался и с версиями сервера поиграться, и с версиями ФФ,т.к. в связи с этим могла вылезти - Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms , - нифига.

Могли бы пожалуйста подсказать в чём, может быть проблема?
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных