Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

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



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Проблема с запуском тестов на Jenkins
2013-05-16 11: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 , - нифига.

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

Нет бага - нет проблем ?!
2013-05-16 14:54
Автор: Евгений Ткаченко

В современном IT мире Bug tracking системы уже не столько помогают, как мешают продуктовой команде развиваться. Когда все общение по проблемам происходит через такие системы теряется коммуникативная связь между тестировщиками, разработчиками и заказчиками. Все обсуждения в рамках задач в карточках занимают непростительно много времени, которое можно было потратить более эффективно. Да и вообще само название такого продукта как "Bug tracking система" несет негативный посыл, ведь все команды стремятся, чтобы багов в их проектах не было.

Так где же мы храним эти баги?

Джира, Багзила , Мантис, Редмайн, Берт, Трелло, Мингл, а может кто то использовал Гугл доки или Гугл таблицы для этого, думаю еще есть варианты.

Каждый из нас работает с Багтрекинг системами или когда либо работал в прошлом.

Как же мы с ними работаем?

Стандартная зарисовка из жизни:

Тестировщик, проверяя очередной новый функционал продукта, сталкивается с некорректным поведением в нем. Конечно же он начинает локализовывать причины его появления и по результатам этого заводит таск в системе.

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

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

В такой ситуации тратится двойное время на запись-воспроизведение, ошибки где то складируются , теряется фокус.

Давайте теперь сфантазируем другую картину:



Читать дальше

Как начать?
2013-05-16 16:18
Проблема: не могу понять, как начать тестировать именно в среде Eclipse.
Что есть: открытый Eclipse SDK (Java), к нему добавлены selenium-server-standalone-2.32.0.jar и selenium-java-2.15.0.jar (подключено первое)
Как я поняла надо создать проект, написать код, с помощью которого будет проведено тестирование (понятия не имею какой код, буду благодарна за примеры), как-то запустить, чтобы тестирование началось (как?)
ЗЫ: буду благодарна за хоть какую-нибудь помощь.

Ошибка в работе раздела &#34;Магазин&#34; при заказе товара которого н
2013-05-16 17:53
Ошибка в работе раздела "Магазин" при заказе товара которого нет в наличии
Начальные условия:
- Chrome Версия 26.0.1410.64 m

Шаги:
1. Открыть например http://software-testing.ru/shop/home?page=shop.product_details&flypage=flypage.tpl&product_id=39&category_id=14
2. Открыть список с размерами



Ожидаемый результат:
Каждая позиция будет на 1-й строчке
Фактический результат:
Отсутствующий размер разбивается на 2 строчки(см. скриншот)

  • : ST_Shop.jpg


[QTP11] найти динамические элементы по XPath
2013-05-16 17:53
Всем привет!
Коллеги, очень нужна ваша помощь в решении следующей задачи:

Дано: QTP11+WinXP+IE8 и страница (см. прикрепленный файл)
Цель: получить видимый(раскрытый) объект Drop-down list с помощью XPath

Элементы страницы скрываются/показываются используя стили display:none и display:block соответственно.

Маска "//tbody[contains(@style, 'block')]//select" прекрасно находит нужный тег в Selenium IDE и Firebug в любой момент времени,
но QTP по данной маске ничего не находит, так как ,похоже, ищет объекты только по коду, который был загружен в браузер изначально.

Page.sync в данном случае никак не помогает, а использование аттрибута id не позволяет сделать "универсальную" маску, так как количество элементов и их порядок могут меняться.


Какие могут быть варианты заставить QTP найти видимый select по указанной выше XPath маске?



© 2010 | Software-Testing.Ru


В избранное