您好,登錄后才能下訂單哦!
5個超實用的Python自動化測試框架分別是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
隨著技術的進步和自動化技術的出現,市面上出現了一些自動化測試框架。只需要進行一些適用性和效率參數的調整,這些自動化測試框架就能夠開箱即用,大大節省了開發時間。而且由于這些框架被廣泛使用,他們具有很好的健壯性,并且具有廣泛多樣的用例集和技術來輕易發現微小的缺陷。今天,我們將看一看常見的 Python 自動化測試框架。
常見的測試框架
1、Unittest
unittest是Python內置的標準類庫。它的API跟Java的JUnit、.net的NUnit,C++的CppUnit很相似。
通過繼承unittest.TestCase來創建一個測試用例。
舉個例:
import unittest
def fun(x):
return x + 1
class MyTest(unittest.TestCase):
def test(self):
self.assertEqual(fun(3), 4)
執行后成功。
但是,如果將期望的結果改成5,則執行的結果如下圖所示:
2、 Doctest
doctest 模塊會搜索那些看起來像交互式會話的 Python 代碼片段,然后嘗試執行并驗證結果.即使從沒接觸過 doctest,我們也可以從這個名字中窺到一絲端倪。“它看起來就像代碼里的文檔字符串(docstring)一樣” 如果你這么想的話,就已經對了一半了。
舉個例子:
def square(x):
"""Squares x.
>>> square(2)
4
>>> square(-2)
4
>>> square(5)
25
"""
return x * x
if __name__ == '__main__':
import doctest
doctest.testmod()
當執行該代碼后,會執行文檔內>>> 后面的測試代碼,并與下一行的結果進行比對。執行的結果如下:
但是,如果我們把結果改一下,square(2)的結果改成5,測試代碼如下:
def square(x):
"""Squares x.
>>> square(2)
5
>>> square(-2)
4
>>> square(5)
25
"""
return x * x
if __name__ == '__main__':
import doctest
doctest.testmod()
執行的測試結果如下所示:
3、py.test
pytest是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高。根據pytest的官方網站介紹,它具有如下特點:
①非常容易上手,入門簡單,文檔豐富,文檔中有很多實例可以參考
②能夠支持簡單的單元測試和復雜的功能測試
③支持參數化
④執行測試過程中可以將某些測試跳過,或者對某些預期失敗的case標記成失敗
⑤支持重復執行失敗的case
⑥支持運行由nose, unittest編寫的測試case
⑦具有很多第三方插件,并且可以自定義擴展
⑧方便的和持續集成工具集成
編寫pytest測試樣例
編寫pytest測試樣例非常簡單,只需要按照下面的規則(和nose類似):
測試文件以test_開頭(以_test結尾也可以)
測試類以Test開頭,并且不能帶有 init 方法
測試函數以test_開頭
斷言使用基本的assert即可
example.py
setup_class/teardown_class 在當前測試類的開始與結束執行。
setup/treadown 在每個測試方法開始與結束執行。
setup_method/teardown_method 在每個測試方法開始與結束執行,與setup/treadown級別相同。
執行pytest測試樣例
執行測試樣例的方法很多種,上面第一個實例是直接執行py.test,第二個實例是傳遞了測試文件給py.test。其實py.test有好多種方法執行測試:
4、Nose
Nose是對unittest的擴展,使得python的測試更加簡單。nose自動發現測試代碼并執行,nose提供了大量的插件,比如測試輸出的xUnitcompatible,覆蓋報表等等。
nose的詳細文檔: https:///latest/http://
5、Unittest2
是unitest的升級版。對API進行了改善以及更好的診斷語法。
unittest2的詳細文檔:https://ittest2http://www./mock/
也就是說,如果你對自動化測試有你的期望值,那么就肯定是要付出相應的代價和精力的。好的東西也是需要優秀的人花大量的時間去完成的。在正式進入到自動化測試的領域之前,先要建立這樣的價值觀才能在軟件測試這條路上走的更遠。
看完上述內容,你們掌握5個超實用的Python自動化測試框架分別是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。