簡體   English   中英

Phpunit和詹金斯

[英]Phpunit and Jenkins

我有一個使用Selenium用PHPUnit編寫的PHP項目。

該項目的結構如下:PHPProjectName

  • 源文件
    • (不包含任何內容)
  • 硒測試文件
    • 包含我所有的硒測試php文件-擴展類PHPUnit_Extensions_SeleniumTestCase
  • 包含路徑
    • c:\\ program files \\ PHP
    • c:\\ program files \\ PHP \\ PEAR \\ PHPUnit

然后,我通過運行java -jar selenium-server-standalone-2.24.1.jar來手動啟動Selenium服務器。

執行我所有的硒測試php文件的php腳本工作正常。

但是現在我想使用Jenkins作為測試管理工具來在此文件夾中構建和執行我的PHPunit測試。 我猜這些步驟是:

  • 安裝詹金斯
  • 編寫用於PHPunit測試的構建腳本
  • 通過詹金斯執行構建腳本

步驟正確嗎? 有沒有人做過或知道如何設置?

非常感謝,

我已經在各種平台上做了很多次。 您的步驟通常是正確的,應該可以,但是管理服務器並不總是那么簡單。 如果Selenium RC服務器打開時間過長,它將變得不穩定,因此您將不得不以某種方式對其進行管理。

您可以設置第二個Jenkins作業,該作業每天運行一兩次,以重置服務器。 但是,更好的選擇是編寫一個簡單的測試框架,該框架將關閉所有打開的服務器,然后在運行測試之前啟動新的服務器實例。 當然,您也可以使用cron作業來重置服務器,但是如果您安裝了Jenkins,則通過jenkins作業更容易進行此操作。

最好的選擇當然是切換到Webdriver,但這可能要花一些時間,具體取決於測試的復雜程度。

我們有與您描述類似的設置。 我們讓詹金斯(Jenkins)運行作業以定期重新啟動Selenium服務器:

#!/bin/bash
# startselenium.sh: Start Selenium up and also start headless screen.
Xvfb :99 -ac &
export DISPLAY=:99 
java -jar /opt/selenium/selenium-server-standalone-2.19.0.jar &

塞巴斯蒂安·伯格曼(Sebastian Bergmann)維護了大量用於在PHP上使用Jenkins的模板: http : //jenkins-php.org/

包括了運行PHPUnit所需的Ant腳本(這確實很簡單,僅調用PHPUnit):

<target name="phpunit" description="Run unit tests with PHPUnit">
    <exec executable="phpunit" failonerror="true"/>
</target>

和必要的“ phpunit.xml”文件:

<?xml version="1.0" encoding="UTF-8"?>

<phpunit bootstrap="tests/bootstrap.php"
    backupGlobals="false"
    backupStaticAttributes="false"
    strict="true"
    verbose="true">

    <testsuites>
        <testsuite name="ProjectName">
            <directory suffix="Test.php">tests/unit/</directory>
            <directory suffix="Test.php">tests/integration/</directory>
        </testsuite>
    </testsuites>

    <logging>
        <log type="coverage-html" target="build/coverage" title="BankAccount"
            charset="UTF-8" yui="true" highlight="true"
        lowUpperBound="35" highLowerBound="70"/>
        <log type="coverage-clover" target="build/logs/clover.xml"/>
        <log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
    </logging>

    <filter>
        <whitelist addUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">src</directory>
            <exclude>
                <file>src/bootstrap.php</file>
            </exclude>
        </whitelist>
    </filter>

</phpunit>

您必須在jenkins中安裝selenium插件,然后selenium服務器將自動在jenkins上啟動,這將創建一個中心。 現在,在客戶端上,您必須啟動一個連接到該集線器的節點。

注意 :jenkins硒服務器始終與jenkins的硒插件版本相同。 因此,如果selenium插件名稱是selenium插件3.1.0,則它將在selenium服務器3.1.0上運行。

安裝jenkins硒插件后,您可以找到硒網格的新選項,單擊它,您將獲得更多信息:

在此處輸入圖片說明

在此處輸入圖片說明

現在,您必須啟動一個jenkins硒獨立服務器,如下所示:

Windows(創建具有以下內容的.bat文件並執行,相應地更改相關部分):

start java -jar -Dwebdriver.gecko.driver="C:\Webdrivers\GeckoDriver\geckodriver.exe" -Dwebdriver.chrome.driver="C:\Webdrivers\ChromeDriver\chromedriver.exe" selenium-server-standalone-<VERSION>.jar -role node -hub http://<YOUR_JENKINS_MACHINE_IP>:<PORT>/grid/register

就我而言,我使用了:

start java -jar -Dwebdriver.gecko.driver="C:\Webdrivers\GeckoDriver\geckodriver.exe" -Dwebdriver.chrome.driver="C:\Webdrivers\ChromeDriver\chromedriver.exe" selenium-server-standalone-3.1.0.jar -role node -hub http://172.25.201.100:4444/grid/register

確保將geckodriver和chromedriver的路徑更正為它們的實際位置。

現在,該節點應連接到集線器,您可以開始測試了。

更多信息: https : //github.com/SeleniumHQ/selenium/wiki/Grid2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM