目錄:導讀
- 前言
- 一、Python編程入門到精通
- 二、接口自動化項目實戰
- 三、Web自動化項目實戰
- 四、App自動化項目實戰
- 五、一線大廠簡歷
- 六、測試開發DevOps體系
- 七、常用自動化測試工具
- 八、JMeter性能測試
- 九、總結(尾部小驚喜)
前言
pytest單元測試框架
1、什么是單元測試框架?
單元測試是指在軟件開發當中針對軟件的最小單位(函數、方法)進行正確性的檢查測試
2、單元測試框架有哪些?
Java:junit 和 testing
python:unittest 和 pytest
3、單元測試框架主要做什么?
測試發現:從多個文件里面去找到我們的測試用例
測試執行:按照一定的順序和規則去執行,并生成結果
測試判斷:通過斷言判斷預期結果和實際結果的差異
測試報告:統計測試進度、耗時、通過率、生成測試報告
單元測試框架和自動化測試框架有什么關系
1、什么是自動化測試框架?
把在自動化測試過程中用到的一些功能或者工具,分裝成各個模塊,包括如何進行自動化腳本編寫以及分層功能的基礎模塊,進行持續集成、定時任務的管理模塊,發送測試報告、進行測試結果統計分析的統計模塊等,將這些模塊組成一套可重用的骨架
2、作用
提高測試效率,降低維護成本;
減少人工干預,提高測試的準確性,增加代碼的重用性;
核心思想是:讓不懂代碼的人也能夠通過這個框架去實現自動化測試;
3、pytest單元測試框架和自動化測試框架的關系
單元測試框架:只是自動化測試框架中的組成部分之一
pom設計模式:只是自動化測試框架中的組成部分之一
數據驅動、關鍵字驅動、全局配置文件的封裝、日志監控、selenium,requests二次封裝、斷言、報告郵件等等
pytest簡介
pytest是一個非常成熟的python的單元框架,比unittest更靈活,容易上手;
pytest可以和selenium、requests、appium結合實現web自動化、接口自動化、app自動化;
pytest可以實現測試用例的跳過以及reruns失敗用例重試;
pytest可以和allure生成非常美觀的測試報告;
pytest可以和Jenkins持續集成;
pytest有很多非常強大的插件,并且這些插件能夠實現很多的使用的操作;
# 如
pytest
pytest-html # (生成html格式的自動化測試報告)
pytest-xdist # (測試用例分布式執行,多CPU分發)
pytest-ordering # (用于改變測試用例的執行順序)
pytest-rerunfailures # (用例失敗后重跑)
allure-pytest # (用于生成美觀的測試報告)
安裝pytest
安裝pytest:
pip install pytest
pytest的命名規則
模塊名必須以test_開頭或者以test_結尾;
測試類名必須以Test開頭,并且不能有init方法;
測試方法必須以test開頭;
pytest測試用例的運行方式和執行順序
1、運行方式
主函數模式
運行所有:pytest.main()
指定模塊:pytest.main([“test_01.py”])
指定目錄:pytest.main([“./test_py”])
通過nodeid指定用例運行: nodeid有模塊名、分隔符、類名、方法名、函數名組成
pytest.main(["test_01.py::Test01Class"]) # 指定到類名
pytest.main(["test_01.py::Test01Class::test003"]) # 指定到方法名
2、命令行模式
運行所有:pytest
指定模塊:pytest test_01.py
指定目錄:pytest ./test_py
通過nodeid指定用例運行: pytest test_01.py::Test01Class::test0033.通過讀取pytest.ini配置文件來運行pytest.ini這個文件他是pytest單元測試框架的核心配置文件
位置:一般放在項目的根目錄
編碼:必須是ANSI,可以使用notepad++修改編碼格式
作用:改變pytest默認的行為
運行規則:不管是主函數的模式運行,還是命令行模式運行,都會去讀取這個配置文件
3、執行順序
unittest:根據Ascll的大小來絕對的執行的順序
pytest:默認從上到下
改變默認執行順序:使用mark標記
@pytest.mark.run(order=3)
Pytest生成自帶的html測試報告
安裝pytest-html:
pip install pytest-html
1、直接執行pytest.main() 【自動查找當前目錄下,以test開頭的文件或者以test結尾的py文件】
pytest.main([‘--html=./report.html’])
2、pytest.main(“模塊.py”)【運行指定模塊下,運行所有test開頭的類和測試用例】
pytest.main(["--html=./report.html","模塊.py"])
3、運行指定模塊指定類指定用例,冒號分割,并生成測試報告
pytest.main([‘--html=./report.html’,‘模塊.py::類::test_a_001'])
4、Pytest調用語句
pytst.main(['-x','--html=./report.html','t12est000.py'])
-x:出現一條測試用例失敗就退出測試
-s:顯示print內容
-v:顯示更詳細的信息
-vs:這兩個參數一起使用
-n:支持多線程或者分布式運行測試用例
-reruns NUM:失敗用例重跑
-x:只要有一個用例報錯,那么測試停止
–maxfail=2:出現兩個用例失敗就停止
-k:根據測試用例的部分字符串指定測試用例
5、使用@pytest.mark.skip()跳過該用例(函數)
class Test01Class():@pytest.mark.skip # 跳過test001def test001(self):assert 5 == 4 # 斷言
6、pytest運行結果字符意義
.:點號,表示用例通過
F:表示失敗 Failure
E:表示用例中存在異常 Error
S:表示跳過 skipped
下面是我整理的2023年最全的軟件測試工程師學習知識架構體系圖 |
一、Python編程入門到精通
二、接口自動化項目實戰
三、Web自動化項目實戰
四、App自動化項目實戰
五、一線大廠簡歷
六、測試開發DevOps體系
七、常用自動化測試工具
八、JMeter性能測試
九、總結(尾部小驚喜)
在人生的舞臺上,奮斗是最美的旋律。不畏困難,放飛夢想,用汗水澆灌成長的花朵。堅持信念,砥礪前行,只有不停奮斗,才能贏得屬于自己的榮耀與成功。
付出不一定有回報,但不付出卻一定沒有收獲。勇敢面對困難,堅持努力,無畏失敗。奮斗的熱血將點亮未來的路,只要你不停歇地前行,成功的曙光必將照耀你的人生。
每天都是一次重生的機會,勇往直前,追逐夢想吧!不管前方有多少艱難險阻,只要心懷信念,努力拼搏,你將綻放出耀眼的光芒,讓世界為你而改變。