phpunit-selenium自动化测试开源中国帐号登录和发博文

PHPUnit 的 PHAR 包中已经包含了PHPUnit_Selenium组件包

phpunit官网:https://phpunit.de/,下载地址:https://phar.phpunit.de/phpunit.phar


Windows下安装

整体上说,在 Windows 下安装 PHAR 和手工在 Windows 下安装 Composer 是一样的过程:

为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin

将 ;C:\bin 附加到 PATH 环境变量中(相关帮助)

下载 https://phar.phpunit.de/phpunit.phar 并将文件保存到 C:\bin\phpunit.phar

打开命令行(例如,按 Windows+R » 输入 cmd » ENTER)

建立外包覆批处理脚本(最后得到 C:\bin\phpunit.cmd):

C:\Users\username> cd C:\bin

C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd

C:\bin> exit

新开一个命令行窗口,确认一下可以在任意路径下执行 PHPUnit:

C:\Users\username> phpunit --version

PHPUnit x.y.z by Sebastian Bergmann and contributors.

(注意:如果执行失败,请把C:\bin路径添加到系统环境变量PATH中,如下图)

231856_43X7_117179.png

以上安装方法来自phpunit官网,其它平台安装方法请参考官方文档https://phpunit.de/manual/current/zh_cn/installation.html


Selenium Server是一个测试工具,它允许用任意主流浏览器为任意 HTTP 网站上的用任意编程语言开发的 web 应用程序编写自动用户界面测试。

下载 Selenium Server 的jar包。

然后将selenium-server-standalone-2.45.0.jar(注意版本后缀) 复制到合适的位置,比如说 C:\bin

运行C:\bin> java -jar java -jar selenium-server-standalone-2.45.0.jar 来启动 Selenium Server 服务器端。

可以用 Selenium Server 的客户端/服务器端协议来向它发送命令了。

PHPUnit_Extensions_Selenium2TestCase 测试用例能够使用 WebDriver API(部分实现),开发前,请先下载对应浏览器的WebDriver组件,并放进C:\bin

https://sites.google.com/a/chromium.org/chromedriver/downloads chrome浏览器

https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver IE浏览器


osc登录和发博文测试用例

<?php

class OscTest extends PHPUnit_Extensions_Selenium2TestCase
{
    private $username;
    private $psw;
    protected function setUp()
    {
        $this->username = 'xxxxx'; // osc帐号
        $this->psw = 'xxxxx';  // osc密码
        // 设置测试的浏览器
        // $this->setDesiredCapabilities(array(
        // "firefox_binary" => "D:\\Program Files\\Mozilla Firefox\\firefox.exe"
        // ));
        // $this->setBrowser('firefox');
        
        $this->setDesiredCapabilities(array(
            "webdriver.chrome.driver" => "C:\\bin\\chromedriver.exe"
        ));
        $this->setBrowser('chrome');
        
        // $this->setSeleniumServerRequestsTimeout(180000); //IE运行会比较慢,需要设置时间
        // $this->setDesiredCapabilities(array(
        // "webdriver.ie.driver" => "C:\\bin\\IEDriverServer.exe"
        // ));
        // $this->setBrowser('IE');
        // 默认页面
        $this->setBrowserUrl('https://www.oschina.net/home/login');
    }

    public function testLogin()
    {
        // 设置测试页面
        $this->url('https://www.oschina.net/home/login');
        // 输入osc帐号
        $this->byId('f_email')->value($this->username);
        // 输入osc密码
        $this->byId('f_pwd')->value($this->psw);
        
        // 截图
        $screenshot = $this->currentScreenshot();
        file_put_contents("F:\\screenshot1.png", $screenshot);
        
        // 登录提交
        $this->byId('form_user')->submit();
        $screenshot = $this->currentScreenshot();
        file_put_contents("F:\\screenshot2.png", $screenshot);
        
        // 判断
        $this->assertNotEmpty($this->title());
        
        // 点击发表博文
        $a1 = $this->byClassName('a1');
        $this->assertNotEmpty($a1);
        $a1->click();
        
        $this->waitUntil(function ($testCase) {
            $url = $testCase->url();
            if (strpos($url, 'new-blog') !== false) {
                return TRUE;
            }
        }, 10000);
        
        // 设置博客标题
        $this->byName('title')->value('phpunit-selenium自动化测试');
        // 设置博客正文
        $script = "var ueditor = UE.getEditor('wmd-input');ueditor.setContent('phpunit-selenium自动化测试http://my.oschina.net/penngo');return true;";
        $result = $this->execute(array(
            'script' => $script,
            'args' => array()
        ));
        // 设置博客分类
        $this->select($this->byId('blogcatalogselect'))
            ->selectOptionByLabel("软件工程");
        $screenshot = $this->currentScreenshot();
        file_put_contents("F:\\screenshot4.png", $screenshot);
        // 发表博客
        $this->byId('save-bt')->click();
        $screenshot = $this->currentScreenshot();
        file_put_contents("F:\\screenshot5.png", $screenshot);
        // $this->assertNotEquals($new_blog, $this->url());
    }
}

?>

运行

231937_i3z3_117179.jpg

运行中的截图

screenshot1.png

000921_kA6t_117179.png

screenshot2.png

000922_VUz1_117179.png

screenshot4.png

234625_IavH_117179.png

screenshot5.png

234625_9OdI_117179.png


为方便大家学习研究,提供附件:php_selenium.rar(包含phpunit.phar,selenium-server-standalone-2.45.0.jar,chromedriver,IEDriverServer)

最后补充一句:如果有人使用些方法来OSC发广告,请@红薯自行解决。

转载于:https://my.oschina.net/penngo/blog/421648

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值