Python 自動化Web測試


限於作者水平有限,以下內容可能是管窺之見,希望大家高抬貴手,且讓我斗膽拋磚引玉。

公司產品迪備主要是通過網頁操作來進行數據庫的備份與恢復,監控與管理,因此在測試的過程中,可以用python測試腳本來模擬用戶的操作,這樣的測試對於回歸測試效果尤佳,減少了人工操作,極大地提高了效率。

據網上資料得知,pythonweb測試開源世界,存在splinter,它是自動化測試web的框架,這是最為基本的Web-driver。然后加上selenium,兩者並用,才能支持主流的瀏覽器的firefox, chrome IE ,到目前為止,支持chrome瀏覽器的最為齊全,連鼠標的模擬的API都存在,同時對其余兩大瀏覽器的支持也甚為不錯。

有了splinter+selenium,已經可以模擬用戶的操作了。但是怎樣才能有效地模擬那么多業務的操作,並且能知道業務的執行是成功還是失敗呢?這就需要python的單元測試框架了,它能有效地組織這些業務邏輯的測試執行,執行完畢后,顯示出各個執行的結果,所謂的業務邏輯可以理解為各個測試用例。

python的單元測試需要自己把測試用例(TestCase)加入到測試集里(testSuite), 然后再runTest()進行測試。但我從python2.7.3的單元測試文檔,發現更能讓測試自動化的接口,那就是discover函數,它能找出指定目錄包括其子目錄下文件名符合某種樣式的測試用例Testcase或測試模塊,並且放入到測試集里面自動執行。這里是文檔中關於discover函數的描述:

def discover(self, start_dir, pattern='test*.py', top_level_dir=None):

Find and return all test modules from the specified startdirectory, recursing into subdirectories to find them. Only test files that match the pattern will be loaded. 

關於discover函數更加詳細的用法,請查看文檔和閱讀其源代碼。
因為我們測試產品的時候,都會有層次,分模塊,或者整體地去測試,discover接口為我們提供了這樣的功能,指定不同的目錄,就相當於指定不同的模塊進行測試,指定根目錄代表要對產品進行整體的測試。
如這是迪備產品測試的雛形樹狀圖:


基本的有了頭緒,又有一個問題浮出水面了,那么測試用例的數據又是應該怎樣存放的呢?用txt文件,就要定義存取數據的格式,同時規定所有的測試人員都使用這樣的格式,這樣做會比較牽強。那倒不如用一種人所皆知,並且易學的格式,pythonXML格式的支持比較強大,最終決定使用XML文件。使用XML存取測試用例的數據,不但存取方便,並且可以設計測試用例與寫相應測試腳本的人是不同的人。
以下是測試迪備產品的一些測試,包含用例的設計,XML測試用例配置文件和測試腳本的分析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM