[英]Phpunit and Jenkins
我有一個使用Selenium用PHPUnit編寫的PHP項目。
該項目的結構如下:PHPProjectName
然后,我通過運行java -jar selenium-server-standalone-2.24.1.jar來手動啟動Selenium服務器。
執行我所有的硒測試php文件的php腳本工作正常。
但是現在我想使用Jenkins作為測試管理工具來在此文件夾中構建和執行我的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的路徑更正為它們的實際位置。
現在,該節點應連接到集線器,您可以開始測試了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.