您的位置:首页>项目管理>质量管理>

用 Selenium 自动化验收测试(二)

[ 来源:51testing | 更新日期:2007-7-15 21:29:01 | 评论 0 条 | 我要投稿 ]

Selenium 命令 字串8

通过 Selenium 命令,脚本编写者可以描述 browser bot 在浏览器中所执行的操作。可以将这些命令分成两类 ―― 操作(action) 和断言(assertion):

字串9

操作模拟用户与 Web 应用程序的交互。例如,单击一个按钮和填写一个表单,这些都是常见的用户操作,可以用 Selenium 命令来自动化这些操作。断言验证一个命令的预期结果。常见的断言包括验证页面内容或当前位置是否正确。在 Selenium 网站上可以找到可用命令的完整列表(见 参考资料)。

字串6

Selenium 模式

字串7

可以按两种模式来使用 Selenium:test runner 和 driven。这两种模式在复杂性和编写方式方面有所不同。driven 测试脚本编写起来往往要更复杂一些,因为它们是用编程语言编写的。但是如果使用 Python 或 Ruby 之类的高级动态编程语言,那么这种复杂性方面的差异就很小。

字串5

两种模式之间最大的不同点在于,如果使用 driven 脚本,测试有一部分在浏览器之外运行,而如果使用 test runner 脚本的话,测试是完全在浏览器中运行的。 字串9

不管是 test runner 还是 driven 测试用例,都可以与持续集成工具集成。

字串5

test runner 模式

字串3

Selenium test runner 脚本,也称测试用例(test case),是用 HTML 语言通过一个简单的表布局编写的,如 清单 1 所示。 字串7

字串9

清单 1. Selenium 测试用例的结构 字串4

字串2



First command

Target

Value



Second command

Target

Value




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

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

字串2

第一列包含命令 或断言。
第二列包含命令或断言的目标(target)。这里可以用多种受支持的组件定位符中的一种来指定目标。通常使用的是组件的 ID 或名称,但XPath 和 DOM 定位符也是受支持的。
第三列包含用于为命令或断言指定参数的值。例如,当使用 type 命令时,这一列可能就是一个文本域所期望的值。
即使对于非技术人员来说,test runner 脚本也易于阅读和编写。当在一个浏览器中打开 清单 1 中的例子时,将得到类似这样的一个表:
字串8

字串7

First command Target Value
Second command Target Value

接下来,我将描述如何使用命令和断言编写一个简单但是完整的测试用例。 字串5

测试用例实例 字串2

执行 清单 2 中的测试脚本时,它将执行以下操作:

字串3

通过进入 /change_address_form.html 打开变更地址页面。
在 ID 为 address_field 的文本框中输入 Betelgeuse state prison。
单击名为 Submit 的输入区。注意,这里使用 XPath 找到 Submit 按钮,这导致表单数据被发送到服务器。
验证页面是否包含文本 Address change successful。

字串3


清单 2. 在测试用例中使用命令和断言的例子

字串1

字串4



open

/change_address_form.html




type

address_field

Betelgeuse state prison



clickAndWait

//input[@name='Submit']
字串6




verifyTextPresent

Address change successful





测试套件

字串3

要达到对应用程序的完全测试覆盖,通常需要不止一个测试用例。这就是 Selenium 使用测试套件的原因。测试套件用于将具有类似功能的一些测试用例编成一组,以便让它们按顺序运行。

字串2

测试套件和测试用例一样,都是用简单的 HTML 表编写的。Selenium 执行的缺省测试套件的名称是 TestSuite.html。清单 3 展示了一个测试套件,该套件像通常的用户一样测试应用程序。注意,测试套件使用一个只包含一列的表,表中的每一行指向一个包含某个测试用例的文件。

字串7

字串1

清单 3. 测试套件示例 字串8

字串6



Test suite for the whole application



Access main page



Login to application



Change address



Logout from application


字串5



Tags:
责任编辑:
您的评论
用户名: 新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为