selenium开源功能测试工具

发表于:2008-04-17来源:作者:点击数: 标签:seleniumSelenium工具开源功能
1.概述 Selenium是非常非常有用的,对 Java Script支持良好的Web层 功能测试 , 集成测试 工具。 Selenium分为Core与RC(Remote Controll)两个部分,其中Core是基础的,直接在HTML Table里编写测试代码的模块,而Remote Controll则支持用Java等语言编写 测试用
1.概述
Selenium是非常非常有用的,对JavaScript支持良好的Web层功能测试集成测试工具。

Selenium分为Core与RC(Remote Controll)两个部分,其中Core是基础的,直接在HTML Table里编写测试代码的模块,而Remote Controll则支持用Java等语言编写测试用例,并自动调用FireFox1.5来运行。

具体的语法见http://www.openqa.org/selenium-core/usage.html

2.Better Practice
1. Never use Selenium FIT mode
Selenium分为两种运行模式,Driven Mode(现在叫Selenium Remote Control)和FIT Mode(现在叫Selenium Core)。

FIT Mode顾名思义,就是类似FIT Testing Framework那种使用方式,主要用于QA等非技术人员编写Web应用的功能测试。FIT Mode的Selenium测试使用HTML来组织测试用例。例如我要测试一个web应用的登陆功能。我可能写出这样的HTML 表格。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
openhttp://localhost:8080/login
typeid=usernamesomeuser
typeid=passwordpassword
clickid=login_button
assertTextPresentWelcome to xxxx

不同于FIT,Selenium内置了一系列的命令,如上例中的open, type, click以及assertTextPresent,因此QA可以完全抛开DEV独立地编写测试(FIT需要DEV提供Behavior Fixture)。因此FIT Mode是相当容易使用的,哪怕不会使用HTML的QA,也可以使用FrontPage画出三列表格,依次填入数据。

然而对于大多数team而言——尤其是敏捷team,FIT Mode平易的外表下是令人恐惧的泥沼。大多数团队往往选择使用Selenium作为功能测试和集成测试工具而不仅仅是QA测试工具,在不同的迭代间遇到功能流程或UI变化时,必须要重构Selenium测试,或者说,Functional Test Migration。令人遗憾的是,HTML based的Selenium FIT Testing的重构竟然令人难以置信的困难。我们可以使用include等Selenium FIT扩展,使得它可以重用详细的功能(Log in, Log out诸如此类)。即便如此,在一个真实的项目中,Selenium Test的数量往往在200-500之间(我目前所处的项目在改用Driven Mode前已达350+),对于这么大基数的Selenium测试,手工重构几乎是不可想象的,而目前尚没有HTML代码重构工具。即便存在泛泛意义上的HTML重构工具,对于Selenium测试重构的有效性尚待商榷。而使用Driven Mode上述代码可以写为:

1 public void testShouldShowAWeclomeMessageAfterUserLoggedIn() {
2 selenium.open("http://localhost:8080/login");
3 selenium.type("id=username","someuser");
4 selenium.type("id=password", "password");
5 selenium.click("id=login_button");
6 assertTrue(selenium.isTextPresent("Welcome to xxxx"));
7}

很自然,一个训练有素的程序员会重构出如下代码:

原文转自:http://www.ltesting.net