第一步,安装PHPUnit
最简单的方式莫过于到PHPUnit的官网下载PHPUnit,然后把那个下载了的phpunit.phar加到PATH中。
此外,还可以通过 pear 来安装phpunit:
pear clear-cache
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install -a -f phpunit/PHPUnit
参考:http://www.cnblogs.com/wanfox/p/4613517.html
然而使用 pear 安装方式,我却是没有成功!大概是因为天朝的神奇的GFW吧!
传送门:http://docs.seleniumhq.org/download/
下载下来一般是一个selenium-server-standalone-2.48.2.jar这样的文件(版本号可能会有所更新)。
第三步,下载WebDriver for Chrome
传送门: https://sites.google.com/a/chromium.org/chromedriver/downloads
第四步,启动Server
前面两步的东西都下载好了,就可以启动这个server了:
# 假设1:已经装了java, 而且将java加到了PATH中
# 假设2:前面两步下载的东东都在当前目录下
java -jar selenium-server-standalone-2.42.2.jar -Dwebdriver.chrome.driver=./chromedriver
p.s. 对于Windows的用户,后面的./chromedriver需要修改为.\chromedriver.exe
第四步,下载PHP的WebDriver封装库
本人喜欢使用Facebook出品的这个库.
鉴于composer在国内的悲惨现状,还是直接下载zip包,然后自行加载吧。
下面是我常用的自动加载器:
// file: tests/bootstrap.php call_user_func(function(){ $namespaces = array( 'Facebook\WebDriver' => __DIR__.'/../php-webdriver/lib', ); spl_autoload_register(function($class) use ($namespaces){ $class = ltrim($class, '\\'); foreach ($namespaces as $ns => $dir) { if (strncmp($class, $ns, strlen($ns)) === 0){ $file = str_replace('\\', DIRECTORY_SEPARATOR, $dir . DIRECTORY_SEPARATOR . ltrim(substr($class, strlen($ns)), '\\')) . '.php'; if (is_file($file)){ include_once($file); } } } }); }); |
这个自动加载器可以放到bootstrap.php中,以便phpunit跑用例前加载。
下面这个测试用例测试下百度是否能正常打开,检查百度的标题和URL是否符合预期。
// file: tests/sample/BaiduTest.php class BaiduTest extends PHPUnit_Framework_TestCase { public function testTheTitleUrl() { // create a browser $browser = create_browser(); // open baidu via GET $browser->get('https://www.baidu.com/'); // get title $this->assertEquals('百度一下,你就知道', $browser->getTitle()); // get the current URL $this->assertEquals('https://www.baidu.com/', $browser->getCurrentURL()); // close the browser $browser->quit(); } } |
注意:文件名和类名要以Test结尾,而其中的测试函数要以test开头,这样子方便phpunit查找测试用例。