强大的Web开源测试工具—Selenium(2)

发表于:2015-12-08来源:uml.org.cn作者:不详点击数: 标签:selenium
清单 1. Selenium 测试用例的结构 (HTML格式) Command1/Assertion1 Target1 Value1 Command2 Assertion1 Target2 Value2 test runner 脚本使用与 xUnit 框架相同的测试套件(test suite)和测

  清单 1. Selenium 测试用例的结构 (HTML格式)

Command1/Assertion1 Target1 Value1
Command2 Assertion1 Target2 Value2

  test runner 脚本使用与 xUnit 框架相同的测试套件(test suite)和测试用例概念。测试用例和命令按照它们在测试套件和测试用例中出现的顺序依次执行。在 清单 1 中:

  * 第一列包含命令 或断言。

  * 第二列包含命令或断言的目标(target)。可以用多种受支持的组件定位符中的一种来指定目标。通常使用的是组件的 ID 或名称,但 XPath 和 DOM 定位符也是受支持的。

  * 第三列包含用于为命令或断言指定参数的值。例如,当使用 type 命令时,这一列可能就是一个文本域所期望的值。

  Test runner 脚本通常与所测试的应用程序(AUT)部署在同一个服务器上。这是因为 browser bot 使用 JavaScript 来模拟用户操作。这些脚本在一个受限制的沙箱环境中运行。如果需要绕过这些限制,可以使用一个代理。

  driven 脚本开发模式

  driven Selenium 脚本是用多种受支持的编程语言(Java, .NET, Perl, Python 和 Ruby)中的一种编写的。这些脚本在浏览器之外的一个单独的进程中运行。驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 browser bot 进行通信来驱动浏览器。驱动程序与 browser bot 之间的通信使用一种简单的特定于 Selenium 的连接语言 Selenese。

  driven 脚本比 test runner 脚本更强大、更灵活,可以将它们与 xUnit 框架集成。driven 脚本编写和部署更复杂些,它必须执行以下任务:

  * 启动服务器。

  * 部署所测试的应用程序(AUT)。

  * 部署测试脚本。

  * 启动浏览器。

  * 发送命令到 browser bot。

  * 验证 browser bot 执行的命令的结果。

  driven 脚本更依赖于应用程序运行时环境。例如,Java 驱动程序使用一个嵌入式 Jetty 或 Tomcat 实例来部署所测试的应用程序,如将 Selenium 集成到 Ruby on Rails 中。

  开发测试用例

  测试用例开发涉及四类文件

  <!--[if !supportLists]-->1. <!--[endif]-->主文件: TestRunner.html/TestRunner.hta(.hta文件是html application,windows平台特有);

  <!--[if !supportLists]-->2. <!--[endif]-->Test suite和Test case文件:需要编写的由一个表格组成的html文件;

  <!--[if !supportLists]-->3. <!--[endif]-->引擎库js文件:位于selenium根目录下的核心文件,其中html-xpath目录下的那个文件,也是必须的库文件;

  <!--[if !supportLists]-->4. <!--[endif]-->user-extensions.js:用来扩展selenium的文件;用户自己编写的函数和扩展的命令都应该放在这个文件中;

  这四类文件中,除了引擎库以外,其他三类文件都是可以根据具体情况去修改的。selenium 部署完毕后,可以打开浏览器来通过url来访问TestRunner.html文件。初始的时候,TestRunner.html文件中的 TestSuite是链接到tests目录下的TestSuite.html文件,TestCase的frame(上部中间)中打开了 TestSuite.html文件中的第一个Test Case “TestOpen.html”。

  可以直接修改TestSuite.html文件,让其指向自己开发的Test case html文件。我们也可以建立另外一个目录,然后将自己的TestSuite文件和Test case文件都保存在这个目录中。如果使用后一种方式,那么在打开TestRunner.html的时候需要传递一个参数,例子如下:

  http://localhost/selenium/TestRunner.html?test=/testDir/myTestSuite.html

  下面就是开发测试用例——即编辑测试用例的表格。无论Test Suite还是Test Case,表格的第一行都是描述性文字,selenium的引擎是不会处理这一行的内容的。实际内容都是从第二行开始的。Test case的表格列数一定不能少于3列,否则Selenium会出错。而基本的三列组成是:

  |command| Target| value| ?

  清单 2就是四个测试用例的例子,将执行以下操作:

  1. 通过进入 /change_address_form.html 打开变更地址页面。

  2. 在 ID 为 address_field 的文本框中输入 Betelgeuse state prison。

  3. 单击名为 Submit 的输入区。注意,这里使用 XPath 找到 Submit 按钮,这导致表单数据被发送到服务器。

原文转自:http://www.uml.org.cn/Test/200607285.htm