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.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97