王崇剛
摘 要 B/S架構軟件中的黑盒測試通常需要在不同瀏覽器中通過大量測試用例對軟件的功能進行測試,采用人工測試,測試工作量大,效率低,回歸測試難以實現(xiàn)。本文闡述了如何利用Python和Selenium編寫腳本實現(xiàn)在B/S架構軟件中黑盒測試的自動化測試。
關鍵詞 黑盒測試;Selenium;Python
中圖分類號 TP3 文獻標識碼 A 文章編號 1674-6708(2018)224-0162-02
黑盒測試很多時候也叫功能測試,在B/S架構軟件中黑盒測試主要對Web頁面中的鏈接、表單測試,利用人工測試存在測試質(zhì)量難以保證、測試成本高、測試進度難以控制等問題。本文通過Python和Selenium編寫測試腳本,實現(xiàn)對B/S架構軟件中的表單功能進行自動化測試,以自動化執(zhí)行測試用例取代人工執(zhí)行測試用例,提高了測試執(zhí)行效率。
1 黑盒測試自動化測試設計
黑盒測試自動化測試分為3個模塊:1)讀取測試用例模塊;2)自動執(zhí)行測試模塊;3)測試報告生成模塊。各模塊實現(xiàn)功能如下:1)讀取測試用例模塊功能:實現(xiàn)從EXCEL中讀取測試用例存儲到Python的列表中;2)自動執(zhí)行測試模塊功能:從列表中讀取測試用例,Python調(diào)用Selenium庫打開瀏覽器進行自動化測試;3)測試報告生成模塊功能:將測試結果生成html格式的測試報告。
2 自動化測試模塊實現(xiàn)
本文以B/S架構中常見的登錄界面為例進行自動化測試代碼編寫,登錄界面工作流程如圖1所示。
2.1 讀取測試用例模塊的實現(xiàn)
讀取測試用例模塊是通過Python語言編寫代碼讀取Excel測試用例至Python的列表中。登錄界面主要驗證合法或非合法的用戶名與密碼是否能登錄,測試的策略如下:輸入已注冊的用戶名和密碼,驗證是否成功登錄;輸入已注冊的用戶名和不正確的密碼,驗證是否成功失?。惠斎胛醋缘挠脩裘腿我饷艽a,驗證是否登錄失敗。根據(jù)測試策略設定測試用例,假設已注冊的用戶名為User1,密碼為a11111,其他用戶密碼和密碼不能登錄。測試用例表如表1所示。
利用Python語言編寫代碼實現(xiàn)讀取測試用例內(nèi)容到列表,并返回列表,實現(xiàn)代碼如下:
2.2 自動化測試模塊的實現(xiàn)
自動化測試模塊實現(xiàn)是將讀取測試用例模塊中返回的列表進行遍歷,將每一條測試用例用調(diào)用Selenium模塊調(diào)用瀏覽器進行自動化測試,將測試結果追加到列表中。
本文以Chrome瀏覽器為測試瀏覽器進行測試,通過定位登錄頁面中input文本框和按鈕元素,將測試用例填寫到相應的input文本框中,通過調(diào)用提交按鈕的click事件進行數(shù)據(jù)提交。如測試用例中的用戶名和密碼正確則由Login.jsp頁面跳轉到Success.jsp頁面,否則不跳轉到Success.jsp頁面。在自動化測試中只須讀取彈出窗口URL地址,如URL地址與期望輸出相同則測試成功。定位頁面元素常用的定位頁面元素有以下方法:find_element_ by_id;?find_element_by_name;find_element_ by__tag_name;find_element_by_link_text;find_ element_by_class_name。當頁面由JavaScript生成時通過以上常用的元素定位方法無法定位頁面元素,此時可以使用find_element_by_xpath進行頁面元素進行定位。其自動化測試實現(xiàn)核心代碼如下:
2.3 測試報告生成模塊
利用Python語言編寫代碼將測試結果生成html的測試報告,由于篇幅有限,這里不再進行源代碼展示,測試報告結果如圖2所示。
3 結論
本文介紹了如何利用Python語言編寫代碼調(diào)用Selenium模塊實現(xiàn)B/S架構中黑盒測試的自動化,在一定程度上提高測試執(zhí)行效率,缺點是在WEB頁面進行大規(guī)模修改時,Python編寫腳本的維護成本高。
參考文獻
[1]盧晨.基于Selenium進行Web應用測試研究[J].軟件導刊,2015,14(1):154-155.
[2]劉壯飛,吳金霖.淺析Selenium在CRM項目中的應用[J].中國高新技術企業(yè),2016(1):35-36.
[3]吳曉華,王晨昕.Selenium WebDriver3.0自動化測試框架實戰(zhàn)指南[M].北京:清華大學出版社,2017.