phpunit api PHPUnit_Extensions_SeleniumTestCase

来源:互联网 发布:caffe fcn 编辑:程序博客网 时间:2024/05/02 02:10
1 要使用 PHPUnit_Extensions_SeleniumTestCase  功能 必须先安装Selenium扩展,安装命令如下
 selenium 需要先curl扩展,所有安装/PHPUnit_Selenium 时往往提示错误
phpunit/PHPUnit_Selenium requires PHP extension "curl"
执行以下命令先安装curl,然后重启apache
//安装curl
sudo apt-get install php5-curl
sudo /etc/init.d/apache2 restart
//安装PHPUnit_Selenium
sudo pear install phpunit/PHPUnit_Selenium

安装完后Extension目录如下


测试用例

<?php
//文件名:MySeleniumTestCase.php
//PHPUnit_Extensions_SeleniumTestCase
class MySeleniumTestCase extends PHPUnit_Extensions_SeleniumTestCase
{
    protected function setUp()
    {
        //设置浏览器

        $this->setBrowser('*firefox');

        //设置用于测试的基址URL(http://localhost/test/)
        $this->setBrowserUrl('http://www.example.com/');
    }
 
    public function testTitle()
    {
        $this->open('http://fcwr.jstv.com/');
        $this->assertTitle('非诚勿扰官方网站 江苏卫视新派交友电视节目 fcwr.jstv.com | 江苏网络电视台');
    }
}

?>


<?php
//文件名:MySeleniumTestCase.php

//PHPUnit_Extensions_Selenium2TestCase
class MySeleniumTestCase extends PHPUnit_Extensions_Selenium2TestCase
{
    protected function setUp()
    {
        //设置浏览器 

       $this->setBrowser('firefox');

        //设置用于测试的基址URL(http://localhost/test/)
        $this->setBrowserUrl('http://www.example.com/');
    }
 
    public function testTitle()
    {
        $this->open('http://fcwr.jstv.com/');
        $this->assertTitle('非诚勿扰官方网站 江苏卫视新派交友电视节目 fcwr.jstv.com | 江苏网络电视台');
    }
}
?>

<?php 
// 测试套件TestSuite.php
require_once 'PHPUnit/Autoload.php'; 
class MyTestSuite extends PHPUnit_Framework_TestSuite {  

// SetUp方法是在每个测试用例运行前进行一些初始化的工作,比如创建业务对象,让其他测试方法也可以使用业务对象,或数据库连接对象
        protected function setUp(){  
            $this->data= "somesthing";

        }  
  //tearDown则在每个测试用例运行后进行一些比如资源的释放等工作的工作
        protected function tearDown(){  
//$this->sharedFixture= null;
        } 
       //注意此处设置为static  
        public static function suite() {  
                $suite = new self();
$suite->addTestFile("MySeleniumTestCase.php");
return $suite;
        }  

?>

执行phpunit TestSuite.php,

phpunit 自动在服务端打开浏览器,并请求 http://fcwr.jstv.com/,并验证title


 Selenium Server API: Setup

MethodMeaningvoid setBrowser(string $browser)Selenium RC服务器使用的浏览器。void setBrowserUrl(string $browserUrl)设置用于测试的基址URL,比如http://localhostvoid setHost(string $host)设置连接到Selenium RC服务器的主机名。IP(192.168.8.24) 或主机名void setPort(int $port)设置连接到Selenium RC服务器的端口号。默认4444void setTimeout(int $timeout)设置连接到Selenium RC服务器的超时时间。void setSleep(int $seconds)设置Selenium RC客户端向Selenium RC服务器发送动作指令之间睡眠的秒数。


Selenium Server 支持的浏览器

Supported browsers include:
  *firefox
  *mock
  *firefoxproxy
  *pifirefox
  *chrome
  *iexploreproxy
  *iexplore
  *firefox3
  *safariproxy
  *googlechrome
  *konqueror
  *firefox2
  *safari
  *piiexplore
  *firefoxchrome
  *opera
  *webdriver
  *iehta
  *custom

配置多浏览器



<?php
//文件名:MySeleniumTestCase.php
class MySeleniumTestCase extends PHPUnit_Extensions_SeleniumTestCase
{
   
    public static $browsers = array(
      array(
        'name'    => 'Firefox on Linux',
        'browser' => '*firefox',
        'host'    => 'localhost',
        'port'    => 4444,
        'timeout' => 30000,
      ),
      array(
        'name'    => 'googlechrome',
        'browser' => '*googlechrome',
        'host'    => 'localhost',
        'port'    => 4444,
        'timeout' => 30000,
      ),
    );


   
    protected function setUp()
    {
        //$this->setBrowser('*googlechrome');
        $this->setBrowserUrl('http://www.google.com/');
    }
 
    public function testTitle()
    {
        $this->open('http://www.baidu.com/');
        $this->assertTitle('百度一下,你就知道');
    }
}
?>

 PHPUnit_Extensions_SeleniumTestCase 断言

void assertAlertPresent()

如果不存在警告(对话框)则报错。

void assertNoAlertPresent()

如果存在警告(对话框)则报错。

void assertChecked(string $locator)

如果$locator标识的元素未选中则报错。

void assertNotChecked(string $locator)

如果$locator标识的元素被选中则报错。

void assertConfirmationPresent()

如果不存在确认(对话框)则报错。

void assertNoConfirmationPresent()

如果存在确认(对话框)则报错。

void assertEditable(string $locator)

如果$locator标识的元素不可编辑则报错。

void assertNotEditable(string $locator)

如果$locator标识的元素可编辑则报错。

void assertElementValueEquals(string $locator, string $text)

如果$locator标识的元素的值不等于给定的$text则报错。

void assertElementValueNotEquals(string $locator, string $text)

如果$locator标识的元素的值等于给定的$text则报错。

void assertElementContainsText(string $locator, string $text)

如果$locator标识的元素不含给定的$text则报错。

void assertElementNotContainsText(string $locator, string $text)

如果$locator标识的元素包含给定的$text则报错。

void assertElementPresent(string $locator)

如果$locator标识的元素不存在则报错。

void assertElementNotPresent(string $locator)

如果$locator标识的元素存在则报错。

void assertLocationEquals(string $location)

如果当前位置(location)不等于给定的$location则报错。

void assertLocationNotEquals(string $location)

如果当前位置(location)等于给定的$location则报错。

void assertPromptPresent()

如果不存在提示(对话框)则报错。

void assertNoPromptPresent()

如果存在提示(对话框)则报错。

void assertSelectHasOption(string $selectLocator, string $option)

如果给定的选项不可用则报错。

void assertSelectNotHasOption(string $selectLocator, string $option)

如果给定的选项可用则报错。

void assertSelected($selectLocator, $option)

如果给定的标签未选中则报错。

void assertNotSelected($selectLocator, $option)

如果给定的标签被选中则报错。

void assertIsSelected(string $selectLocator, string $value)

如果给定的值未选中则报错。

void assertIsNotSelected(string $selectLocator, string $value)

如果给定的值被选中则报错。

void assertSomethingSelected(string $selectLocator)

如果$selectLocator标识的选项未选中则报错。

void assertNothingSelected(string $selectLocator)

如果$selectLocator标识的选项被选中则报错。

void assertTextPresent(string $pattern)

如果给定的$pattern不存在则报错。

void assertTextNotPresent(string $pattern)

如果给定的$pattern存在则报错。

void assertTitleEquals(string $title)

如果当前标题不等于给定的$title则报错。

void assertTitleNotEquals(string $title)

如果当前标题等于给定的$title则报错。

void assertVisible(string $locator)

如果$locator标识的元素不可见则报错。

void assertNotVisible(string $locator)

如果$locator标识的元素可见则报错。

 


原创粉丝点击