完整wordselenium笔记.docx

上传人:b****2 文档编号:787473 上传时间:2022-10-13 格式:DOCX 页数:11 大小:89.24KB
下载 相关 举报
完整wordselenium笔记.docx_第1页
第1页 / 共11页
完整wordselenium笔记.docx_第2页
第2页 / 共11页
完整wordselenium笔记.docx_第3页
第3页 / 共11页
完整wordselenium笔记.docx_第4页
第4页 / 共11页
完整wordselenium笔记.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

完整wordselenium笔记.docx

《完整wordselenium笔记.docx》由会员分享,可在线阅读,更多相关《完整wordselenium笔记.docx(11页珍藏版)》请在冰豆网上搜索。

完整wordselenium笔记.docx

完整wordselenium笔记

Selenium自动化验收测试

如何使用Selenium测试工具对RubyonRails和Ajax应用程序进行功能测试

验收测试(也称功能测试)是用来测试手工任务的功能的,但是手工测试这些任务可能很花时间,并且容易出现人为的错误。

在本文中,作者为架构师、开发人员和测试人员展示了如何使用Selenium测试工具来自动化验收测试。

通过自动化测试,可以节省时间,并消除测试人员所犯的错误。

文中还给出了一个例子,以演示如何将Selenium应用到现实中使用RubyonRails和Ajax的项目上。

Web应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。

但是手工执行的任务容易出现操作人员人为的错误,也比较费时间。

因此,尽可能将这些任务自动化,以消除人为因素,这是一种很好的做法。

于是Selenium之类的测试工具就有了用武之地。

Selenium帮助您自动化验收测试,从而可以构建经过更严格测试、因而更为可靠也更易于维护的软件。

验收测试也称黑盒测试和功能测试,是测试和检验应用程序是否能按照涉众(stakeholder)的功能性需求、非功能性需求和其他重要需求来运行的一种方法。

验收测试是单元测试和组合测试的补充,后两者通常是使用xUnit框架编写的。

验收测试也可以使用编程语言来编写,但是Selenium和其他类似的工具,例如Fitnesse,也支持用特定于工具的文档格式编写测试。

验收测试与单元测试和组合测试有以下不同之处:

∙应用程序是作为一个完整的端到端实体来测试的,而不是像单元测试和组合测试那样,只是测试一个类或一组类。

∙验收测试是在用户界面(例如一个浏览器)上执行的,而不是在Web应用程序界面上执行的。

∙编写测试用例的人不一定知道应用程序的内部结构,因此也被称作黑盒测试。

非技术性用户也可以编写验收测试。

背景知识

在讨论Selenium之前,我要介绍关于以下三个话题的一些背景知识,因为这些话题虽然不是本文的主题,但是和本文密切相关:

∙持续集成

∙Ajax

∙Ruby/RubyonRails

持续集成

持续集成的目标是自动化构建和测试过程,以便每天自动运行一次或多次这些过程,而不是每个月手动地运行一次。

使用持续集成的最大好处是,代码的更改会定期地自动被集成。

如果系统受损,没有构建成功,ApacheContinuum和Luntbuild之类的持续集成工具可以自动通过发送电子邮件通知团队。

Ajax

Ajax是AsynchronousJavaScriptandXML的缩写,这是为相当老的技术新创造的一个术语。

Ajax背后的主要思想是,由于只需更新部分页面而不是整个页面,所以Web应用程序可以更快地对用户操作做出响应。

Ajax将更多的复杂性引入到Web应用程序中,这一点也反映在测试中。

这是因为Ajax就像它的名称所表明的那样,使用JavaScript和异步HTTP请求来更新页面内容。

每个浏览器在实现中与其他浏览器相比有一些小小的不同。

Selenium是测试和检测这些差异的很好的工具,因为它在大多数流行的浏览器中都能够运行。

Ruby/RubyonRails

Ruby是一种开放源码的解释型脚本语言,用于快捷、容易地进行面向对象程序设计。

它提供了大量的库,而且简单易用,还具有可扩展性和可移植性。

该语言是由Yukihiro“Matz”Matsumoto创造的,目的是让程序员将更多的注意力放在手头的任务上,摆脱语法的烦恼。

Rails是由DavidHeinemeierHansson创造的一种全栈的(full-stack)、开放源码的RubyWeb框架。

Rails的目标是使现实中的应用程序编写起来需要的代码更少,并且比J2EE和XML之类的语言更容易。

所有层都能够无缝地一起工作,因此可以使用一种语言编写从模板到控制流乃至业务逻辑的各种东西。

Rails使用YAML而不是XML配置文件以及注释形式的反射和运行时扩展。

这里不存在编译阶段——程序修改后将直接运行。

什么是Selenium?

Selenium是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。

据Selenium主页所说,与其他测试工具相比,使用Selenium的最大好处是:

Selenium测试直接在浏览器中运行,就像真实用户所做的一样。

Selenium测试可以在Windows、Linux和MacintoshAnd上的InternetExplorer、Mozilla和Firefox中运行。

其他测试工具都不能覆盖如此多的平台。

使用Selenium和在浏览器中运行测试还有很多其他好处。

下面是主要的两大好处:

∙通过编写模仿用户操作的Selenium测试脚本,可以从终端用户的角度来测试应用程序。

∙通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。

Selenium的核心,也称browserbot,是用JavaScript编写的。

这使得测试脚本可以在受支持的浏览器中运行。

browserbot负责执行从测试脚本接收到的命令,测试脚本要么是用HTML的表布局编写的,要么是使用一种受支持的编程语言编写的。

Selenium适用于以下浏览器:

  

InternetExplorer

Mozilla

Firefox

Safari

WindowsXP

6.0

1.6+,1.7+

0.8+,0.9+,1.0

  

RedHatLinux

  

1.6+,1.7+

0.8+,0.9+,1.0+

  

MacOSX10.3

不支持

1.6+,1.7+

0.8+,0.9+,1.0+

1.3+

回页首

Selenium命令

通过Selenium命令,脚本编写者可以描述browserbot在浏览器中所执行的操作。

可以将这些命令分成两类——操作(action)和断言(assertion):

∙操作模拟用户与Web应用程序的交互。

例如,单击一个按钮和填写一个表单,这些都是常见的用户操作,可以用Selenium命令来自动化这些操作。

∙断言验证一个命令的预期结果。

常见的断言包括验证页面内容或当前位置是否正确。

在Selenium网站上可以找到可用命令的完整列表(见参考资料)。

回页首

Selenium模式

可以按两种模式来使用Selenium:

testrunner和driven。

这两种模式在复杂性和编写方式方面有所不同。

driven测试脚本编写起来往往要更复杂一些,因为它们是用编程语言编写的。

但是如果使用Python或Ruby之类的高级动态编程语言,那么这种复杂性方面的差异就很小。

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

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

回页首

testrunner模式

Seleniumtestrunner脚本,也称测试用例(testcase),是用HTML语言通过一个简单的表布局编写的,如清单1所示。

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

Firstcommand

Target

Value

Secondcommand

Target

Value

testrunner脚本通常与所测试的应用程序(AUT)部署在同一个服务器上。

这是因为browserbot使用JavaScript来模拟用户操作。

这些脚本在一个受限制的沙箱环境中运行。

如果需要绕过这些限制,可以使用一个代理。

testrunner脚本使用与xUnit框架相同的测试套件(testsuite)和测试用例概念。

测试用例和命令按照它们在测试套件和测试用例中出现的顺序依次执行。

在清单1中:

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

∙第二列包含命令或断言的目标(target)。

这里可以用多种受支持的组件定位符中的一种来指定目标。

通常使用的是组件的ID或名称,但XPath和DOM定位符也是受支持的。

∙第三列包含用于为命令或断言指定参数的值。

例如,当使用type命令时,这一列可能就是一个文本域所期望的值。

即使对于非技术人员来说,testrunner脚本也易于阅读和编写。

当在一个浏览器中打开清单1中的例子时,将得到类似这样的一个表:

Firstcommand

Target

Value

Secondcommand

Target

Value

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

测试用例实例

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

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

2.在ID为address_field的文本框中输入Betelgeusestateprison。

3.单击名为Submit的输入区。

注意,这里使用XPath找到Submit按钮,这导致表单数据被发送到服务器。

4.验证页面是否包含文本Addresschangesuccessful。

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

open/change_address_form.html
typeaddress_fieldBetelgeusestateprison
clickAndWait//input[@name='Submit']
verifyTextPresentAddresschangesuccessful

测试套件

要达到对应用程序的完全测试覆盖,通常需要不止一个测试用例。

这就是Selenium使用测试套件的原因。

测试套件用于将具有类似功能的一些测试用例编成一组,以便让它们按顺序运行。

测试套件和测试用例一样,都是用简单的HTML表编写的。

Selenium执行的缺省测试套件的名称是TestSuite.html。

清单3展示了一个测试套件,该套件像通常的用户一样测试应用程序。

注意,测试套件使用一个只包含一列的表,表中的每一行指向一个包含某个测试用例的文件。

清单3.测试套件示例

Testsuiteforthewholeapplication
Acce

展开阅读全文
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1