`
kong_bai
  • 浏览: 138638 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

Selenium ThoughtWorks 专门为 Web 应用而开发的自动化测试工具,适合进行功能测试、验收测试,其最大的优势有几点:

  • 可直接运行在浏览器之上,所见即所得,就像真实用户所做的一样。Selenium 的核心,也称 browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令
  • 支持多操作系统(Windows, Mac OSLinux)和各种浏览器Internet ExplorerMozilla Firefox,更容易发现浏览器的不兼容性
  • 支持两种开发脚本的模式test runner HTML文件)和 driven(脚本语言编写),其语言包括Java, .NET, Perl, Python Ruby. 使用 driven 脚本,测试有一部分在浏览器之外运行,而如果使用 test runner 脚本的话,测试是完全在浏览器中运行的。

但是Selenium是轻量的测试框架, 脚本所处理的测试用例构成简单,其实质就是通过HTTP协议,发送请求(request)来完成测试用例,所以很困难处理业务逻辑关系强的测试用例。

更多的讨论: http://forums.openqa.org/index.jspa

Selenium 命令

Selenium 命令分成两类 —— 操作(action断言(assertion

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

Selenium 网站上可以找到可用命令的完整列表。通过 Selenium 命令,脚本编写者可以描述 browser bot 在浏览器中所执行的操作

组成

  • Selenium IDE:一个firefoxplug-in,可以录制和回放并保存一些test cases, 可以生成一些简单的基于rc 模式的简单code. (相当于Jmetergui模式和jmeter脚本的生成-badboy
  • Selenium Core. 整个测试机制的核心部分,即有assertion(断言) 机制的test suite runner。它由一些纯js代码组成, 可以运行在windows/linux的不同browser (相当于Jmeter runner Assertion
  • Selenium Remote Control:一个代理与控制端, 可代替Selenium core/ Selenium IDEclient(相当于通过编程来实现一切),是支持多语言的. (相当于Jmeterclient/server模式,Selenium Remote Control更强一些)       

支持的平台

  • Windows:
    • Internet Explorer 6.0
    • Firefox 0.8 to 1.5, Mozilla Suite 1.6+, 1.7+
    • Seamonkey 1.0, Opera 8
  • Mac OS X:
    • Safari 1.3+
    • Firefox 0.8 to 1.5,  Mozilla Suite 1.6+, 1.7+
    • Seamonkey 1.0, Camino 1.0a1  
  • Linux:
    • Firefox 0.8 to 1.5,  Mozilla Suite 1.6+, 1.7+
    • Konqueror

部署Selenium

下载地方:http://www.openqa.org/selenium/

selenium目录下的内容:

devtests:试验性功能 dom-images: 查看DOM用图片
dom-styles: 查看DOM用样式表
html-xpath: Xpath库
jsmock: javascript mock library
jsunit: javascript unit test library
tests: samples(以这个为基础开发测试用例)
核心js文件和html文件

如果想要测试自己开发的发布在服务器端的页面,需要把selenium配置在同一个服务器下:

Apache 直接将selenium目录拷贝至htdocsApache的确省根目录目录下然后启动Apache用地址http://server8080/selenium/TestRunner.html访问例子。

Tomcat 直接将selenium目录拷贝至webapps目录下启动Tomcat用地址http://server8080/selenium/TestRunner.html访问例子。

IIS建立一个虚拟目录selenium,将该虚拟目录直接指向实际的selenium目录,用地址http://server/selenium/TestRunner.html访问例子

Test runner 脚本开发模式

Selenium test runner 脚本,就是测试用例(test case,是用 HTML 语言通过一个简单的表布局编写的,即使对于非技术人员来说,test runner 脚本也易于阅读和编写。如 清单 1 所示。

清单 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 中。

开发测试用例

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

主文件: TestRunner.html/TestRunner.hta(.hta文件是html application,windows平台特有);
Test suite和Test case文件:需要编写的由一个表格组成的html文件;
引擎库js文件:位于selenium根目录下的核心文件,其中html-xpath目录下的那个文件,也是必须的库文件;
user-extensions.js:用来扩展selenium的文件;用户自己编写的函数和扩展的命令都应该放在这个文件中;

这四类文件中,除了引擎库以外,其他三类文件都是可以根据具体情况去修改的。selenium 部署完毕后,可以打开浏览器来通过url来访问TestRunner.html文件。初始的时候,TestRunner.html文件中的 TestSuite是链接到tests目录下的TestSuite.html文件,TestCaseframe(上部中间)中打开了 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 按钮,这导致表单数据被发送到服务器。
  4. 验证页面是否包含文本 Address change successful

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

command

Target

Value

open

/change_address_form.html

 

type

address_field

Betelgeuse state prison

clickAndWait

//input[@name='Submit']

 

verifyTextPresent

Address change successful<

 

 

测试套件

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

测试套件和测试用例一样,都是用简单的 HTML 表编写的。Selenium 执行的缺省测试套件的名称是 TestSuite.html。测试套件使用一个只包含一列的表,表中的每一行指向一个包含某个测试用例的文件。

对于一个有着多个功能模块、组件的web应用,编写的测试脚本html必然比较多。因此,应该建立一个合理的目录结构来组织这些脚本,一般按web服务、模块、功能来组织,形成层次性结构。

分享到:
评论

相关推荐

    开源测试工具-selenium下载

    Selenium 是一个强大的开源自动化测试工具,主要用于Web应用程序的测试。它支持多种编程语言,包括Java、Python、C#、Ruby等,使得测试脚本的编写具有很高的灵活性。Selenium的核心组件包括Selenium WebDriver、...

    selenium WEB 测试工具,开源工具。

    总结来说,Selenium 是一个强大的Web测试工具,因其开源特性,得到了广泛的应用和支持。它提供了多种组件和接口,适用于不同的测试需求和编程环境。通过熟练掌握Selenium,测试工程师能够有效地提高测试质量和效率,...

    Selenium——Web应用程序测试的工具

    Selenium 是一个强大的开源自动化测试框架,主要用于Web应用程序的测试。它允许开发人员编写可运行在多种浏览器和操作系统上的测试脚本,极大地提高了测试的覆盖率和效率。Selenium 支持多种编程语言,如Java、...

    (完整word)开源自动化测试工具selenium的使用.doc

    本文档对开源自动化测试工具 Selenium 的使用进行了详细的介绍。Selenium 是一个非商业支持的稳定性和易用性...Selenium 是一个功能强大且灵活的自动化测试工具,具有较高的稳定性和易用性,广泛应用于 Web 测试领域。

    Web自动化测试工具SELENIUM.rar

    Web自动化测试工具Selenium是一个广泛使用的开源框架,用于自动化浏览器操作。它支持多种编程语言,如Java、Python、C#等,使得测试人员和开发者能够编写可跨多个浏览器和平台运行的测试脚本。Selenium的核心组件...

    基于开源Selenium的web项目测试

    Selenium是一个强大的自动化测试工具,主要用于Web应用程序的测试。它可以模拟用户操作,如点击按钮、填写表单等,并支持多种编程语言,如Java、Python等。Selenium适用于各种浏览器,包括Chrome、Firefox、IE等。 ...

    开源自动化测试工具SELENIUM的使用教程[归纳].pdf

    Selenium 是一款强大的开源自动化测试工具,主要用于Web应用程序的测试。它的主要特点是开源、免费且稳定,具有良好的跨浏览器兼容性。与商业化的自动化测试工具如HP的QTP(QuickTest Professional)相比,Selenium ...

    Selenium测试工具研究报告

    Selenium是由ThoughtWorks公司开发的一款强大的开源Web功能测试工具系列,旨在为Web应用程序提供自动化测试解决方案。该系列目前主要包括四款核心产品: 1. **Selenium Core**:作为Selenium IDE和Selenium RC的...

    开源自动化测试工具selenium的使用教程.pdf

    Selenium 是现在使用最为广泛的一款开源自动化测试工具,也是非商业支持的稳定性易用性最好的一款自动化测试工具。与 QTP 相比,Selenium 不仅在软件投资上有比较大的优势,在针对 web 测试的稳定性上也有绝对的优势...

    开源的web测试工具研究

    总结来说,开源Web测试工具提供了一系列强大的解决方案,以满足各种测试需求。从功能测试到性能测试,从前端到后端,它们可以帮助开发者构建更可靠、更高效的Web应用。了解和掌握这些工具,对于提升开发团队的生产力...

    selenium测试工具详细讲解

    9. **Web服务测试**:虽然Selenium主要用于UI测试,但也可以结合API测试工具(如Postman或RestAssured)进行端到端的测试,验证前后端交互的正确性。 10. **持续集成**:将 Selenium 测试自动化集成到持续集成/持续...

    JAVA开源的WEB测试工具

    14. **Selenium**:广泛使用的Web应用测试工具,可在实际浏览器环境中执行测试,支持多种浏览器和操作系统,适合功能测试和回归测试。 15. **CubicTest**:一个开源的Eclipse插件,提供图形化界面设计Web应用测试,...

    (完整word)开源自动化测试工具selenium的使用.docx

    Selenium 是一款强大的开源自动化测试工具,主要用于Web应用程序的测试。它的主要特点是开源、稳定、易用,并且支持多种编程语言,如Java、Perl、PHP、C#、Ruby等。相较于商业工具HP QTP,Selenium在成本和适应性...

    selenium 用于web测试

    Selenium 是一个强大的开源自动化测试框架,主要用于Web应用程序的测试。它允许开发人员编写可运行在多种浏览器和操作系统上的测试脚本。Selenium 支持多种编程语言,包括Java、Python、C#、Ruby等,这使得它具有...

    Web测试:Selenium使用

    Selenium 是一个广泛使用的开源自动化测试框架,主要针对Web应用程序。它由ThoughtWorks公司开发,提供了一套强大的工具集,支持多种编程语言,包括Java、C#、Python等,使得测试人员和开发人员能够编写自动化测试脚...

    开源测试工具Webinject

    WebInject是一款强大的开源测试工具,专为评估Web应用程序和服务的安全性和功能而设计。这款工具的独特之处在于它能够通过HTTP接口来测试单个系统组件,允许测试人员模拟各种用户行为和攻击场景,从而确保Web应用在...

    selenium测试工具

    Selenium是现在使用最为广泛的一款开源自动化测试工具,也是非商业支持的稳定性易用性最好的一款自动化测试工具。和由HP提供强大商业支持的QTP相比,selenium不仅在软件投资上有比较大的优势,在针对web测试的稳定性...

    Web元素管理工具(Selenium)

    Selenium是一款强大的开源自动化测试框架,广泛应用于Web应用程序的测试。它允许开发者编写可跨多个浏览器和操作系统运行的自动化脚本,从而实现对网页元素的操作,如点击、输入、选择等。在这个场景中,我们提到的...

Global site tag (gtag.js) - Google Analytics