![]() |
Clayton Neal在軟件測試和質量保證方面有超過13年的經驗,其中有八年的Windows, web,和移動應用程序的測試自動化經驗。他在測試領域的全部等級都工做過。最近他在Bloomberg and Misys擔任QA經理。同時他仍是Sogeti的自動化測試顧問。Clayton對自動化測試超迷戀,還見識瞭如何親自成功實施測試自動化。 |
?html
測試自動化的好處咱們都很清楚,更快地反饋問題,減小手工測試,持續集成就是其中隨口可舉的。測試團隊成員越多,公司使用自動化越多,就越好。爲此,咱們必須脫離實施測試自動化的技術方面,而去考慮編寫和運行自動化測試的非技術員工層面。不管開發團隊是否在作敏捷驗收測試驅動開發(ATDD),敏捷行爲驅動開發(BDD)或使用傳統的瀑布方法,團隊可用來進行自動化的成員越多,自動化測試覆蓋範圍就越廣。
關鍵字驅動測試是一種由自動化工程師開發被測應用程序內可重複使用行爲的方法。而後非技術用戶就能夠用任何輸入參數將所得的可重複使用的關鍵字行爲庫進行排序,肯定測試用例。好比,一個關鍵字能夠是點擊按鈕(在一個按鈕控件上點擊)或輸入文本(在一個文本框控件中輸入文本),而後這些關鍵字就能夠被用來填寫一個登陸表格並點擊 OK按鈕。該方法的好處是:自動化工程師集中幹他們擅長的,即開發關鍵字的測試自動化的腳本或編程;非技術測試員和企業用戶使用這些關鍵字並基於他們的領域和產品知識來編寫測試用例,最後使得自動化更加有效。
?機器人框架是一個通常的基於關鍵字的測試自動化框架,它不依賴於任何一個特定的自動化工具(如:QTP, Ranorex, TestComplete, Selenium等),卻讓自動化工程師插入用這類自動化工具的關鍵字。機器人已經安裝了許多關鍵字並擁有一個很是成熟的功能集,包括:關鍵字的條件執行
? 測試用例和測試集的[setup]和[teardown]
? 數據驅動關鍵字文件,目錄及流程管理的FOR循環
? HTML測試報告
?詹金斯CI集成將變量變爲一個關鍵字並從測試用例關鍵字的關鍵字標註返回
?最後列出的功能即可以在現有關鍵字上建立關鍵字,確保如圖1所示的「關鍵字金字塔」的增加。web
金字塔最底層是由自動化工程師開發的技術關鍵字構成:最頂端是應用程序內進行單個功能行爲的功能關鍵字:最後,咱們將基於功能關鍵字的業務流程關鍵字總結爲在應用程序內構建業務流程。這種分層的一個例子如表1所示。編程
表1. 關鍵字分層服務器
這裏,技術關鍵字是基於運行帶有展現控件的自動化行爲;功能關鍵字在應用程序中運行單個功能步驟;更高層的業務流程測試應用程序內端到端的流程。
即用機器人框架能夠從Python和Java庫中加載新的關鍵字;爲了使用在.NET中開發的關鍵字,就要利用遠程服務界面。該界面是XMLRPC界面,機器人框架在上面給一個遠程服務發送請求,執行一個關鍵字。固然這種遠程服務能夠用任何一種支持XMLRPC的語言來開發。尤爲是,一個遠程服務能夠用.NET開發讓機器人框架執行關鍵字裝配中的基於.NET的關鍵字。這個方法如圖2所示。框架
圖2. 遠程服務結構圖工具
N機器人遠程(見http://code.google.com/p/nrobotremote/)是一個能夠創建.NET關鍵字庫並經過XMLRPC協議將之公開給機器人框架的.NET機器人框架遠程服務器。結合了N機器人遠程的機器人框架可讓最初的自動化工做用來計劃哪些測試須要被自動化以及這些測試須要開發什麼關鍵字,而不是在自動化測試計劃能夠開始前設計編寫一個自動化框架。爲N機器人遠程開發.NET關鍵字僅僅就是開發一個公開方法的類。每一個方法都被視做一個關鍵字——例如:測試
該關鍵字類公開了兩個關鍵字:ClickButton和EnterText。經過在N機器人遠程中建立關鍵字類並把機器人框架指向XMLRPC地址,這些均可以用選擇的自動化測試工具實現且能夠經過機器人框架來調用。如圖3所示。google
圖3.使用N機器人遠程的機器人框架測試用例spa
在上面這個例子裏,設置一列告訴機器人框架,http://localhost:8271上有一個遠程關鍵字服務(注意:除了本地主機,也多是在另外一機器上),且來自遠程服務器的關鍵字將有前綴N機器人遠程(任何前綴均可以)。測試用例一列則定義了一個叫作管理員登陸的測試用例,調用關鍵字EnterText去輸入用戶名和密碼,關鍵字ClickButton去點擊OK。這樣一個測試有多是在開發早期一個非技術測試員或企業用戶所寫的。關鍵字庫自己能夠被視做被測應用程序的域模型之上的薄薄一層。好比,若是使用selenium頁面對象,那麼關鍵字層就能夠如圖4所示,按順序調用頁面對象和方法。設計
圖4. 關鍵字和域層
這種抽象概念在被測應用程序變化時提供了靈活性,常常,當應用程序變化時,只有域模型和關鍵字實施隨之改變。測試用例實施並不需一直不變,由於它建在更高層。使用機器人框架和.NET關鍵字也可使不一樣的自動化工具在測試用例水平彼此整合,讓自動化工程師能夠靈活地爲所需關鍵字行爲選擇最佳自動化工具。例如,若是在一家更大的公司,幾支自動化團隊已經被選去使用針對不一樣產品模塊的不一樣自動化工具,每隊就能夠用他們各自的開發語言爲其模塊開發一個域模型,如機器人框架能夠加載Python,Java和(經過N機器人遠程).NET關鍵字。測試用例編寫者也一樣能夠在他們的測試用例裏使用來自全部自動化團隊的關鍵字。
總結
經過容許非技術用戶在開發各個階段編寫測試用例,將自動化行爲從抽象變爲能夠傳給非技術測試員和業務用戶以減小自動化工程師的瓶頸的可複用關鍵字。機器人框架,做爲一個成熟的通常性的關鍵字框架,容許自動化項目一開始集中研究自動化測試和所需關鍵字,而不是設計並實施一個測試框架。使用機器人框架和N機器人遠程將關鍵字測試自動化擴大到.NET,容許關鍵字利用.NET框架和.NET中自動化工具的優點,並容許把來自Python和Java的關鍵字與相同的測試用例相結合。
版權聲明:本文出自 SPASVO澤衆軟件測試網:http://www.spasvo.com/news/html/2014101194841.html
原創做品,轉載時請務必以超連接形式標明本文原始出處、做者信息和本聲明,不然將追究法律責任。