亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium 的佳實踐
作者:網絡轉載 發布時間:[ 2013/2/25 15:19:52 ] 推薦標簽:

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 < table >
 2 < tr >
 3   < td > open </ td >
 4          < td > http://localhost:8080/login </ td >
 5          < td ></ td >
 6 </ tr >
 7 < tr >
 8   < td > type </ td >
 9          < td > id=username </ td >
10          < td > someuser </ td >
11 </ tr >
12 < tr >
13   < td > type </ td >
14          < td > id=password </ td >
15          < td > password </ td >
16 </ tr >
17 < tr >
18   < td > click </ td >
19          < td > id=login_button </ td >
20          < td ></ td >
21 </ tr >
22 < tr >
23   < td > assertTextPresent </ td >
24          < td > Welcome to xxxx </ td >
25          < td ></ td >
26 </ tr >
27 </ table >

不同于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 }


很自然,一個訓練有素的程序員會重構出如下代碼:

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

之后無論是pull up到公共基類還是extact到Utils class都是很容易的事情。由于Java在代碼重構上便利,Java Selenium Remote Control成為使用Selenium的佳方式。在這一點上,縱使Ruby語法上比Java簡單靈活得多,它仍不是編寫Selenium測試的佳載體(當然一個經過精心設計的ruby selenium dsl wrapper還是具有非凡的價值的,這個我們后面會涉及到)。

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产亚洲精品国产福利在线观看 | 日日摸夜夜欧美一区二区 | 日韩伦理网在线视频 | 在线亚洲免费 | 成人私人影院www片免费高清 | 一级成人毛片免费观看 | 尹人成人| 国产 欧美 日韩 在线 | 日韩亚洲综合精品国产 | 在线播放另类 | 人人澡人人人人夜夜爽 | 在线日本中文字幕 | 亚洲黄色美女视频 | 第一区免费在线观看 | 欧美日韩在线观看免费 | 久久久性视频 | 男女性激烈动态图无遮挡 | 九九色在线视频 | 欧美一级免费在线观看 | 韩日在线 | 亚洲精品动漫在线观看 | 天天操夜夜操狠狠操 | 亚洲国产精品视频 | 在线观看成人 | 草在线视频 | 毛片在线全部免费观看 | 黄色亚洲片 | 亚洲精品午夜级久久久久 | 亚洲成年网 | 亚洲色图第四色 | 最近的最新的中文字幕视频 | 色吧久久 | 欧美成人家庭影院 | 久久最新网址 | 亚洲无线一二三四区 | 午夜视频免费在线播放 | aaa影院 | 717影院理伦午夜论八戒 | 黄 色 免费网 站 成 人 | 五月婷婷在线视频 | 久久亚洲成a人片 |