自動化測試-友好的第三方庫

自動化測試腳本開發中,總是會遇到各種數據處理,例如MOCK、URL處理、JSON數據處理、結果斷言等,也會遇到所採用的測試框架不能滿足當前需求,這些問題都需要我們自己動手解決。在強大的IT世界,我們遇到的百分之九十八問題,前輩們都遇到過並且給出瞭解決方案,有的無私前輩將其整理並開源,這些開源項目非常方便地輔助我們的自動化測試項目更好地進行,非常值得敬佩。下面介紹一些自動化測試項目中經常會使用到且非常友好的Python第三方庫。

mock

mock是Python中一個用於支持單元測試的庫,它允許用戶使用mock對象替代被測系統的部分,以達到模擬對象的行爲。Python3.3版本以後mock被合併進Unittest模塊中,我們可以直接導入使用。Mock對象是mock模塊中的一個類實例,可以在測試腳本中模擬出大量的方法,返回指定值並設置所需的屬性,還可以斷言調用了哪些方法/屬性及其參數。
例如接口測試中,當上一個接口沒有開發好,但下一個接口已經完成並可以測試時就可以使用Mock模擬上一個接口,儘早地完成測試腳本的開發。

furl

furl是一個小衆的用於解析和操作URL的Python庫,雖然Python提供了urllib和urlparse模塊可以處理URL相關的操作,但沒有furl簡易。例如furl('http://www.tynam.com/?a=1&b=2').args便可以獲得參數{'a':1,'b':2}。

coverage

coverage是一個測量Python程序代碼覆蓋率的工具。目前許多自動化測試項目都確少代碼覆蓋率的統計,使用coverage模塊便可對自動化測試用例進行評估,衡量測試的有效性。coverage通過監視被測程序,注意代碼的哪些部分已被執行,然後分析源代碼以識別可能已執行但未執行的代碼。使用時通過簡單的命令便能生成詳細的覆蓋率統計結果報告。

deepdiff

deepdiff模塊常用來校驗兩個對象是否一致,並找出其中差異之處,非常有助於斷言。deepdiff由DeepDiff(比較兩個對象)、DeepSearch(在對象中搜索其他對象)和DeepHash(根據對象的內容進行哈希處理)三部分組成。自動化腳本開發時可以採用DeepDiff實現斷言,DeepDiff不但支持豐富的校驗對象,例如字符串、數字、數組、字典,還提供了許多參數用以設置比較方式,例如忽略大小寫、忽略排序、忽略數據類型。

pandas

Pandas是Python語言的一個擴展程序庫,用於數據分析。可以從各種文件格式(比如CSV、JSON、SQL、Microsoft Excel)導入數據並進行運算操作(比如歸併、再成形、選擇、數據清洗、數據加工)。如果將測試用例寫在Excel或其他文件中,那麼使用pandas從文件中讀取大量測試數據並處理就會簡易許多。

jsonpath

JsonPath用於解析JSON數據。提供的JSON解析功能非常強大,它提供了類似正則表達式的語法,基本上可以滿足所有想要獲得的JSON內容。接口測試中,許多接口返回的值都是JSON格式,我們使用Python語言的JsonPath庫挺松提取到所需值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章