- Selenium + Python 自动化测试环境搭建
- 怎样开始用selenium进行自动化测试(个人总结)
- 关于学习selenium进行自动化测试所需要学的知识
- Selenium 使用介绍
- Selenium 命令列表
- Selenium 快速入门
- Web软件测试工具Selenium:如何选取元素
- Selenium RC在浏览器兼容性测试的用武之地
- selenium开源功能测试工具
- Selenium执行测试脚本稳定性的一些经验分享交流
- Web测试工具Selenium入门心得
- Selenium自动化测试用例设计注意事项(一)
- 基于TestNG 与Selenium 的自动化测试设计与实施
- 毁三观的 Selenium 自动化测试框架
- Selenium自动化测试用例设计注意事项(二)
- 用Selenium实现页面自动化测试
- Selenium实战:.Net下的自动化测试搭建
- 用 Selenium 自动化验收测试(一)
- 用 Selenium 自动化验收测试(三)
- 使用开源工具SeleniumRC进行功能测试
- 用 Selenium 自动化验收测试(二)
- 用 Selenium 自动化验收测试(四)
- 应用Selenium和Ruby进行面向领域的Web测试
- WebTest比拼Selenium:模拟和真实浏览器上的测试
- Selenium实例:AJAX自动化测试应用
- Selenium-集成测试工具
- 基于FireFox的测试插件 – Selenium IDE
- 基于Selenium和VSTT的网站测试自动化系统
- selenium参考手册中文翻译
- 《Selenium2自动化测试实战–基于Python语言》
- selenium webdriver (python) 第三版
- selenium-webdriver(python) (十六) –unittest 框架
- selenium webdriver (python) 第一版PDF
- selenium-webdriver(python) (十五) — 鼠标事件
- selenium-webdriver(python) (十四) — webdriver原理
- selenium-webdriver(python) (十三) — cookie处理
- 轻松自动化—selenium-webdriver(python) (十二)
- 轻松自动化—selenium-webdriver(python) (十一)
- 轻松自动化—selenium-webdriver(python) (十)
- 轻松自动化—selenium-webdriver(python) (八)
- 轻松自动化—selenium-webdriver(python) (七)
- 轻松自动化—selenium-webdriver(python) (六)
- 轻松自动化—selenium-webdriver(python) (五)
- 轻松自动化—selenium-webdriver(python) (三)
- 轻松自动化—selenium-webdriver(python) (二)
- 轻松自动化—selenium-webdriver(python) (一)
- 译:selenium webdriver (python)
- 菜鸟学自动化测试(九)—-WebDirver
- 菜鸟学自动化测试(八)—-selenium 2.0环境搭建(基于maven)
- Selenium3.0 自动化测试
- JavaScript(Node.js)+ Selenium自动化测试
- selenium操作隐藏的元素
- selenium处理select标签的下拉框
- 在Python中实现PageFactory模式
- 《selenium2 Java 自动化测试实战(第二版)》 更新2016.5.3
- 基于selenium的pyse自动化测试框架
- 自动化基础普及之selenium是啥?
- 在做自动化测试之前你需要知道的
- 自动化测试如何解决验证码的问题
- 菜鸟学自动化测试(六)—-selenium 命令之文字范本匹配
- 菜鸟学自动化测试(五)—–selenium命令之定位页面元素
- 菜鸟学自动化测试(四)—-selenium 命令之验证页面元素
- 菜鸟学自动化测试(三)—-selenium 命令
- 菜鸟学自动化测试(二)—-selenium IDE 功能扩展
- 菜鸟学自动化测试(一)—-selenium IDE
- selenium RC 环境配置
- Selenium的基本使用
- 敏捷自动化测试
- Web测试工具Selenium入门心得
用 Selenium 自动化验收测试(二)
通过 Selenium 命令,脚本编写者可以描述 browser bot 在浏览器中所执行的操作。可以将这些命令分成两类 —— 操作(action) 和断言(assertion):
操作模拟用户与 Web 应用程序的交互。例如,单击一个按钮和填写一个表单,这些都是常见的用户操作,可以用 Selenium 命令来自动化这些操作。断言验证一个命令的预期结果。常见的断言包括验证页面内容或当前位置是否正确。在 Selenium 网站上可以找到可用命令的完整列表(见 参考资料)。
Selenium 模式
可以按两种模式来使用 Selenium:test runner 和 driven。这两种模式在复杂性和编写方式方面有所不同。driven 测试脚本编写起来往往要更复杂一些,因为它们是用编程语言编写的。但是如果使用 Python 或 Ruby 之类的高级动态编程语言,那么这种复杂性方面的差异就很小。
两种模式之间最大的不同点在于,如果使用 driven 脚本,测试有一部分在浏览器之外运行,而如果使用 test runner 脚本的话,测试是完全在浏览器中运行的。
不管是 test runner 还是 driven 测试用例,都可以与持续集成工具集成。
test runner 模式
Selenium test runner 脚本,也称测试用例(test case),是用 HTML 语言通过一个简单的表布局编写的,如 清单 1 所示。
清单 1. Selenium 测试用例的结构
<table border="1">
<tr>
<td>First command</td>
<td>Target</td>
<td>Value</td>
</tr>
<tr>
<td>Second command</td>
<td>Target</td>
<td>Value</td>
</tr>
</table>
test runner 脚本通常与所测试的应用程序(AUT)部署在同一个服务器上。这是因为 browser bot 使用 JavaScript 来模拟用户操作。这些脚本在一个受限制的沙箱环境中运行。如果需要绕过这些限制,可以使用一个代理。
test runner 脚本使用与 xUnit 框架相同的测试套件(test suite)和测试用例概念。测试用例和命令按照它们在测试套件和测试用例中出现的顺序依次执行。在 清单 1 中:
第一列包含命令 或断言。
第二列包含命令或断言的目标(target)。这里可以用多种受支持的组件定位符中的一种来指定目标。通常使用的是组件的 ID 或名称,但XPath 和 DOM 定位符也是受支持的。
第三列包含用于为命令或断言指定参数的值。例如,当使用 type 命令时,这一列可能就是一个文本域所期望的值。
即使对于非技术人员来说,test runner 脚本也易于阅读和编写。当在一个浏览器中打开 清单 1 中的例子时,将得到类似这样的一个表:
First command | Target | Value |
Second command | Target | Value |
接下来,我将描述如何使用命令和断言编写一个简单但是完整的测试用例。
测试用例实例
执行 清单 2 中的测试脚本时,它将执行以下操作:
通过进入 /change_address_form.html 打开变更地址页面。
在 ID 为 address_field 的文本框中输入 Betelgeuse state prison。
单击名为 Submit 的输入区。注意,这里使用 XPath 找到 Submit 按钮,这导致表单数据被发送到服务器。
验证页面是否包含文本 Address change successful。
清单 2. 在测试用例中使用命令和断言的例子
<table>
<tr>
<td>open</td>
<td>/change_address_form.html</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>address_field</td>
<td>Betelgeuse state prison</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@name='Submit']</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Address change successful</td>
<td></td>
</tr>
</table>
测试套件
要达到对应用程序的完全测试覆盖,通常需要不止一个测试用例。这就是 Selenium 使用测试套件的原因。测试套件用于将具有类似功能的一些测试用例编成一组,以便让它们按顺序运行。
测试套件和测试用例一样,都是用简单的 HTML 表编写的。Selenium 执行的缺省测试套件的名称是 TestSuite.html。清单 3 展示了一个测试套件,该套件像通常的用户一样测试应用程序。注意,测试套件使用一个只包含一列的表,表中的每一行指向一个包含某个测试用例的文件。
清单 3. 测试套件示例
<table>
<tr>
<td>Test suite for the whole application</td>
</tr>
<tr>
<td><a href="test_main_page.html">Access main page</a></td>
</tr>
<tr>
<td><a href="test_login.html">Login to application</a></td>
</tr>
<tr>
<td><a href="test_address_change.html">Change address</a></td>
</tr>
<tr>
<td><a href="test_logout.html">Logout from application</a></td>
</tr>
</table>
接下来我将把目光转移到 driven 测试脚本。
第三页链接:http://www.51testing.com/?action_viewnews_itemid_14955.html
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论