Phpunit和Jenkins
我有一个使用Selenium编写的PHPUnit项目。Phpunit和Jenkins
该项目的结构如下: PHPProjectName
- 源文件
- (不包含任何东西)
- Selenium测试文件
- 包含我所有的Selenium测试PHP文件 - 扩展类PHPUnit_Extensions_SeleniumTestCase
- 包含路径
- C:\ Program Files文件\ PHP
- C:\ Program Files文件\ PHP \ PEAR \ PHPUnit的
然后我通过运行启动硒服务器手动运行java -jar selenium-server-standalone-2.24.1.jar
执行我的所有硒测试php文件的php脚本工作正常。
但是现在我想使用Jenkins作为测试管理工具来在此文件夹中构建并执行我的PHPunit测试。我猜的步骤是:
- 安装詹金斯
- 写出PHPUnit的构建脚本测试
- 通过詹金斯 执行构建脚本
的步骤是正确的?有没有人完成或知道如何设置?
非常感谢,
我曾与各种平台做了很多次。你的步骤通常是正确的,应该可以工作,但管理服务器并不总是那么简单。 Selenium RC服务器如果长时间处于打开状态会变得不稳定,因此您必须以某种方式对其进行管理。
您可以设置第二个Jenkins作业,每天运行一次或两次以重置您的服务器。然而,更好的选择是编写一个简单的测试框架,关闭所有打开的服务器,然后在运行测试之前启动新的服务器实例。您当然也可以使用cron作业来重置服务器,但如果您安装了Jenkins,则通过jenkins作业可以更轻松地完成此操作。
当然最好的选择是切换到Webdriver,但这可能需要一些工作,具体取决于您的测试有多复杂。
我们对您所描述的设置有类似的设置。我们詹金斯运行作业定期重新启动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 &
塞巴斯蒂安伯格曼维持了一堆模板使用詹金斯与PHP的位置: http://jenkins-php.org/
包括是必要的Ant脚本来运行PHPUnit的(这是非常简单的,只是调用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,这将创建一个集线器。现在在客户端上,您必须启动连接到此集线器的节点。
注:詹金斯硒服务器始终是相同的版本,从詹金斯硒插件。因此,如果硒插件名称是 硒插件3.1.0,那么它在硒服务器3.1.0上运行。
安装詹金斯硒插件后,那么你可以找到硒电网一个新的选项,点击它,你会得到更多的信息:
现在你必须启动一个像这样的jenkins selenium独立服务器:
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自己的实际位置。
现在节点应该连接到集线器,您可以开始测试。
感谢抬头关于硒RC服务器不稳定。 – van 2012-07-20 15:27:14
你有一个运行PHPunit脚本的ANT构建脚本,我打算在这里使用这个脚本http://www.unclecode.com/2012/06/automation-testing-using-integration-of-selenium-phpunit-蚂蚁和创建报告/但没有太多的运气...... – van 2012-07-20 15:31:27
该链接的例子看起来是正确的,但我从来没有使用ANT + PHPUnit之前,所以我没有任何脚本,我可以分享。你有什么问题? – CIGuy 2012-07-20 17:21:23