Попытка запустить пакет тестов селена, написанных на Java, используя Jenkins - PullRequest
2 голосов
/ 12 января 2012

После прочтения почти всех сообщений, которые он предлагает в разделе «Вопросы с похожими заголовками» (я продолжу читать после отправки этого сообщения) и прочтения

  • centripetal.ca / blog / 2011/ 02/07 / Начало работы с селеном и Дженкинсом /
  • oliverpolden.com / content / setting-setting-setting-автомат-тестирование селена-Дженкинсхудсон

и некоторые другие сообщения (я отмечаю эти два, потому что я думаю, что они могут быть кому-то полезны) Я не нашел ответа на то, что мне нужно.И теперь я перехожу к этому:

Я работаю в компании, которая использует Jenkins для CI и Maven.У них есть три типа тестов для Sotware: Junit, Кактус и Селен.У Дженкинса есть работа по запуску джунит-тестов.Теперь они решили запустить два других типа тестов (Cactus и Selenium), используя Jenkins.И это моя задача.Кактус - это еще один вопрос, который я задам позже (сейчас я слишком долго бился головой об этом).Тесты Selenium написаны на java, и есть java-файл, который содержит все тесты следующим образом:

package com.mycompany.test.dailySanity;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({
        Test1.class,
        Test2.class,
        Test3.class,
})

public class AllTests {
        /**
         * This is just a place holder.
         * Add All your TestClass one to the list above.
         * NOTE, the TestClasses should be "," separated
         */
}

Вся найденная информация говорит о htmlsuite, но ничего о том, если тесты находятся вJava (нет, экспорт их в HTML не вариант).Я пробовал

export DISPLAY = ": 99" && java -jar /path/to/selenium-server.jar -browserSessionReuse -htmlSuite * firefox http://localhost / path / to/my/testsfile/AllTests.java /path/to/my/logfile/SeleniumLog.html

как " Execute Shell " в " Build "шаг в работу Дженкинс, но он просто пытается что-то делать. Вывод на консоль

09:29:48.508 INFO - Java: Sun Microsystems Inc. 14.2-b01
09:29:48.518 INFO - OS: Linux 2.6.18.8-xenU amd64
09:29:48.654 INFO - v2.4.0, with Core v2.4.0. Built from revision 13337
09:29:49.263 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
09:29:49.264 INFO - Version Jetty/5.1.x
09:29:49.269 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
09:29:49.271 INFO - Started HttpContext[/selenium-server,/selenium-server]
09:29:49.271 INFO - Started HttpContext[/,/]
09:29:49.337 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@7a187814
09:29:49.337 INFO - Started HttpContext[/wd,/wd]
09:29:49.343 INFO - Started SocketListener on 0.0.0.0:4444
09:29:49.343 INFO - Started org.openqa.jetty.jetty.Server@67ad77a7
10:51:00.038 INFO - Shutting down...
10:51:00.040 INFO - Stopping Acceptor ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=4444]

Я предполагаю, что он больше ничего не делает (подождал 2 часа, прежде чем удалить его), потому что это java-файл и он требует html-файл ( -htmlsuite - подсказка).

Подводя итог: мне нужен способ запуска тестов Selenium, написанных на Java и упакованных в набор java для Jenkins.


РЕДАКТИРОВАНИЕ Хорошо, я никуда не денусь и не хватит времени.Я добавляю больше информации на тот случай, если кто-нибудь может мне помочь (не то, чтобы я не был благодарен Россу).Вот мой selenium_pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>my.company</groupId>
    <artifactId>selenium-test</artifactId>
    <version>0.1-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium.client-drivers</groupId>
            <artifactId>selenium-java-client-driver</artifactId>
            <version>1.0.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>selenium-maven-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>start-server</goal>
                        </goals>
                        <configuration>
                            <background>true</background>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <!-- Skip the normal tests, we'll run them in the integration-test phase -->
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <skip>false</skip>
                            <includes>
                                <include>/path/to/my/tests/AllTests.java</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

Когда я запускаю

mvn -f selenium_pom.xml integration-test

, я получаю следующий вывод

[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.kana.sem:selenium-test:jar:0.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 44, column 21
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building selenium-test 0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ selenium-test ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /path/to/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ selenium-test ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ selenium-test ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /path/to/resources/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ selenium-test ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.7.2:test (default-test) @ selenium-test ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ selenium-test ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO]
[INFO] --- selenium-maven-plugin:2.1:start-server (default) @ selenium-test ---
Launching Selenium Server
Waiting for Selenium Server...
[WARNING] OS appears to be Unix and no DISPLAY environment variable has been detected. Browser maybe unable to function correctly. Consider using the selenium:xvfb goal to enable headless operation.
[INFO] User extensions: /localhome/kana/p4/dev/BOT/target/selenium/user-extensions.js
08:05:07,166 INFO  [org.openqa.selenium.server.SeleniumServer] Java: IBM Corporation 2.3
08:05:07,173 INFO  [org.openqa.selenium.server.SeleniumServer] OS: Linux 2.6.18.8-xenU x86
08:05:07,184 INFO  [org.openqa.selenium.server.SeleniumServer] v2.9.0, with Core v2.9.0. Built from revision 14289
08:05:07,273 INFO  [org.openqa.selenium.server.SeleniumServer] RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
08:05:07,277 INFO  [org.openqa.jetty.http.HttpServer] Version Jetty/5.1.x
08:05:07,686 INFO  [org.openqa.jetty.util.Container] Started org.openqa.jetty.jetty.servlet.ServletHandler@51fe51fe
08:05:07,687 INFO  [org.openqa.jetty.util.Container] Started HttpContext[/wd,/wd]
08:05:07,687 INFO  [org.openqa.jetty.util.Container] Started HttpContext[/,/]
08:05:07,688 INFO  [org.openqa.jetty.util.Container] Started HttpContext[/selenium-server,/selenium-server]
08:05:07,689 INFO  [org.openqa.jetty.util.Container] Started HttpContext[/selenium-server/driver,/selenium-server/driver]
08:05:07,705 INFO  [org.openqa.jetty.http.SocketListener] Started SocketListener on 0.0.0.0:4444
08:05:07,705 INFO  [org.openqa.jetty.util.Container] Started org.openqa.jetty.jetty.Server@40e640e6
08:05:07.916 INFO - Checking Resource aliases
Selenium Server started
[INFO]
[INFO] --- maven-surefire-plugin:2.7.2:test (default) @ selenium-test ---
[INFO] No tests to run.
[INFO] Surefire report directory: /path/to/surefire-reports/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
There are no tests to run.

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30.387s
[INFO] Finished at: Fri Jan 13 08:05:08 CST 2012
[INFO] Final Memory: 12M/30M
[INFO] ------------------------------------------------------------------------

Я использую Perforce, Дженкинс,maven3 и Red Hat Enterprise Linux Server версии 5.5 (Tikanga).Я уверен, что мой пом является одной из проблем, но получил его из интернет-примеров ...


Спасибо (и поздравляю всех, кто дочитал этот пост!)

PS: Если вы также знаете, как получить отчет о тестах Selenium, это было бы здорово.

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Jenkins очень хорошо интегрирован с Maven, поэтому я предлагаю вам сконцентрироваться на выполнении тестов, используя Maven , а не Jenkins. Вы можете использовать отказоустойчивый плагин для запуска интеграционных тестов, таких как тесты селена. Дженкинс автоматически найдет отчеты об отказоустойчивости и покажет симпатичную сводку HTML. Кроме того, вы можете легко проверить это на локальном компьютере.

Пожалуйста, вы можете обновить свой пост, чтобы уточнить, используете ли вы Selenium 1 или 2. RemoteWebDriver выглядит как v2, но ваше POM показывает selenium-java-client-driver от 1.0

0 голосов
/ 12 января 2012

Опция -htmlsuite предназначена для чего-то совершенно отличного от того, что вы пытаетесь сделать. Не позволяйте этому отвлекать вас: -)

Ваш Java-код написан так, что тесты выполняются через JUnit. Это очень распространенная техника. Я ожидаю, что все, что вам нужно сделать, это убедиться, что сервер Selenium RC запущен до начала тестирования. Просто java -jar /path/to/selenium-server.jar и оставьте его включенным как минимум до конца последнего теста. Ваши тесты свяжутся с сервером, создав соединение с ним, возможно, позвонив по номеру new DefaultSelenium(...).

...