PHPUnit_Extensions_SeleniumTestCase

PHPUnit_Extensions_SeleniumTestCase测试用例扩展将同Selenium RC通话的客户/服务器协议实现为专门用于web测试的断言方法。

范例 19.1显示如何测试http://www.example.com/站点的

元素的内容。

范例 19.1: PHPUnit_Extensions_SeleniumTestCase使用举例

<?phprequire_once  'PHPUnit/Extensions/SeleniumTestCase.php'; class WebTest extends PHPUnit_Extensions_SeleniumTestCase{    protected function setUp()    {        $this->setBrowser('*firefox /usr/lib/firefox/firefox-bin');        $this->setBrowserUrl('http://www.example.com/');    }     public function testTitle()    {        $this->open('http://www.example.com/');        $this->assertTitleEquals('Example Web Page');    }}?>

不同于PHPUnit_Framework_TestCase类,扩展了PHPUnit_Extensions_SeleniumTestCase的测试用例类必须提供setUp()方法。该方法用于配置Selenium RC会话。可用于此的方法列表见表 19.1。

表 19.1. Selenium RC API:装配

方法含义void setBrowser(string $browser)Selenium RC服务器使用的浏览器。

void setBrowserUrl(string $browserUrl)设置用于测试的基址URL。

void setHost(string $host)设置连接到Selenium RC服务器的主机名。

void setPort(int $port)设置连接到Selenium RC服务器的端口号。

void setTimeout(int $timeout)设置连接到Selenium RC服务器的超时时间。

void setSleep(int $seconds)设置Selenium RC客户端向Selenium RC服务器发送动作指令之间睡眠的秒数。

你也可以使用一组浏览器运行每一个测试:在你的测试用例类中声明一个名为$browsers的public static数组代替使用setBrowser()设置一个浏览器。该数组中的每一项都描述一个浏览器配置。这些浏览器中的每一个都能被不同的Selenium RC服务器接待:

范例 19.2: 设置多浏览器配置

<?phprequire_once  'PHPUnit/Extensions/SeleniumTestCase.php'; class WebTest extends PHPUnit_Extensions_SeleniumTestCase{    public static $browsers = array(      array(        'name'    => 'Firefox on Linux',        'browser' => '*firefox /usr/lib/firefox/firefox-bin',        'host'    => 'my.linux.box',        'port'    => 4444,        'timeout' => 30000,      ),      array(        'name'    => 'Safari on MacOS X',        'browser' => '*safari',        'host'    => 'my.macosx.box',        'port'    => 4444,        'timeout' => 30000,      ),      array(        'name'    => 'Safari on Windows XP',        'browser' => '*custom C:\Program Files\Safari\Safari.exe -url',        'host'    => 'my.windowsxp.box',        'port'    => 4444,        'timeout' => 30000,      ),      array(        'name'    => 'Internet Explorer on Windows XP',        'browser' => '*iexplore',        'host'    => 'my.windowsxp.box',        'port'    => 4444,        'timeout' => 30000,      )    );     protected function setUp()    {        $this->setBrowserUrl('http://www.example.com/');    }     public function testTitle()    {        $this->open('http://www.example.com/');        $this->assertTitleEquals('Example Web Page');    }}?>

PHPUnit_Extensions_SeleniumTestCase能够收集测试经由Selenium运行时的代码覆盖率信息:

拷贝PHPUnit/Extensions/SeleniumTestCase/phpunit_coverage.php到你的web服务器的文件根目录中。

在你的web服务器的php.ini配置文件中,配置PHPUnit/Extensions/SeleniumTestCase/prepend.php和PHPUnit/Extensions/SeleniumTestCase/append.php分别作为auto_prepend_file和auto_append_file。

在你的扩展了PHPUnit_Extensions_SeleniumTestCase的测试用例类中,使用protected $coverageScriptUrl = 'http://host/phpunit_coverage.php';配置用于phpunit_coverage.php脚本的URL。

表 19.2列出PHPUnit_Extensions_SeleniumTestCase提供的各种断言方法。

表 19.2. 断言

断言含义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标识的元素可见则报错。

表 19.3显示PHPUnit_Extensions_SeleniumTestCase的两个模板方法:

表 19.3. 模板方法

方法含义void defaultAssertions()重写以执行一个测试用例中的所有测试共享的断言。该方法在发送给Selenium RC服务器的每个命令之后被调用。

void sharedAssertions()重写以执行一个测试用例中的所有测试共享的断言。该方法在一个测试执行结束之前被调用。

请查阅Selenium Core的文档获得关于可用的命令以及如何使用的参考。

利用runSelenese($filename)方法,你也能从它的Selenese/HTML规范运行一个Selenium测试。此外,利用静态属性$seleneseDirectory,你能从一个包含Selenese/HTML文件的目录自动地创建测试对象。指定的目录被递归地搜索预期包含Selenese/HTML的.htm文件。 范例 19.3显示一个例子。

范例 19.3: 使用Selenese/HTML文件的目录作为测试

php phpunit selenium,PHPUnit和Selenium相关推荐

  1. Selenium Web 自动化 - Selenium常用API

    Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作   1.1 用webdriver打开一个浏览器   1.2 最大化浏览器&关闭浏 ...

  2. python selenium自动化_python selenium自动化之-环境搭建

    安装python和pip上述文章有介绍,在这里不在赘述.直接安装seleinum pip3 install selenium 安装完成以后, pip3 show selenium 显示 Name: s ...

  3. php phpunit selenium,phpunit+selenium环境筹建

    phpunit+selenium环境搭建 这个环境搭建遇到了挺多麻烦,最终还是没能自己解决,幸好有同事"青蛙"的帮忙解决了这个问题!在这里把本人亲测步骤给大家列一下,希望给大家提供 ...

  4. Selenium简介以及selenium环境搭建

    一.Selenium简介 1.Selenium : 是一款用于Web应用程序测试的工具,它支持多平台.多语言.多浏览去实现自动化测试,支持IE.Chrome.Firefox等浏览器 2.架构:Java ...

  5. linux phpunit 安装,PHPUnit安装教程

    使用PHPUnit的第一步就是安装PHPUnit. 1 准备条件 1.1 PHPUnit版本选择 最新版PHPUnit并不能在所有的PHP环境下使用. 例如,PHPUnit 6.4 不能在PHP 5. ...

  6. python+selenium十:selenium的二次封装

    python+selenium十:基于原生selenium的二次封装 from selenium import webdriverfrom selenium.webdriver.support.wai ...

  7. python网络爬虫系列(七)——selenium的介绍 selenium定位获取标签对象并提取数据 selenium的其它使用方法

    一.selenium的介绍 知识点: 了解 selenium的工作原理 了解 selenium以及chromedriver的安装 掌握 标签对象click点击以及send_keys输入 1. sele ...

  8. selenium自动化测试-1.selenium介绍及环境安装

    今天给大家介绍selenium及环境安装 其中包括 python环境安装 selenium环境安装 Chrome驱动安装 Firefox驱动安装 之后会陆续给大家介绍selenium系列 请不要错过我 ...

  9. web自动化测试python+selenium学习总结----selenium安装、浏览器驱动下载

    一.安装selenium 命令安装selenium库 :pip  install -U selenium 查看selenium是否安装成功:pip list PS:有时会有异常,安装失败,可以尝试去s ...

  10. Selenium大家族介绍(selenium RC,selenium IDE, selenium Grid, selenium Webdriver)

    Selenium selenium 是当下非常流行的自动化测试框架,selenium是开源项目. selenium是一个大家族,这个家族中的主要成员有如下所示: selenium RC: seleni ...

最新文章

  1. GitHub的AI程序员“抄袭”算法大神代码,连原版注释都抄上了
  2. 递归下降分析法(编译原理)
  3. 展望数据中心市场未来十年发展趋势
  4. PHP类的静态(static)方法和静态(static)变量使用介绍
  5. jMenu 不添加item 直接自己添加监听actionPerformed不行mousePressed可以
  6. Vue—相关工具—webpack
  7. MFC中OnDraw与OnPaint的区别
  8. [ios2] ios使用自带git respository管理项目 【转】
  9. Linux 信号之mysleep
  10. c# 计算空格宽度像素_用pythonnet为计算机视觉做图像整理
  11. GradView使用举例
  12. c语言创建增加删除单向动态链表,C语言实现简单的单向链表(创建、插入、删除)及等效STL实现代码...
  13. 形式化验证学习——什么是形式化?Formal
  14. python 爬取百度日历
  15. inSSIDer 软件 WIFI信号强度测试
  16. 百度祝恒书:百度智能招聘技术和应用实践
  17. 得到网页的最新更新时间
  18. npm 清理vue项目缓存
  19. Kubernetes(K8s)优势究竟是什么?
  20. 水平、垂直居中布局大全

热门文章

  1. “三权分立”模型的概述
  2. 【转载】我为什么鼓励工程师写blog
  3. Vim插件之python-mode
  4. 道格拉斯普克算法(简化线段点)
  5. Java未来城市练习代码01
  6. 【Java安全技术探索之路系列:Java可扩展安全架构】之八:JCP(一):JCP架构介绍
  7. Ubuntu 10.04 HP LaserJet 无法打印 **** Unable to open the initial device, quitting 错误
  8. PADS的四层板转换成2层板
  9. 数据库--聚集函数及其应用
  10. Android Studio 部分查找快捷键