1. 程式人生 > >[python]pytest實現WEB UI自動化

[python]pytest實現WEB UI自動化

測試報告 組合 cti 實現思路 www text 增加 .com 工程

前言:其實這篇寫的是pytest的測試框架運用,實現自動化和https://www.cnblogs.com/Jack-cx/p/9357658.html 原理一致

1.為啥不用unittest

Pytest相對Unittest更加靈活一點,unittest需要寫類繼承unittest.TestCase,pytest不需要可寫可不寫類,也支持生成html測試報告

2.創建工程

&對比上面robot的工程,增加一個PyUnit目錄和report,這裏主要放單元測試框架其他實現思路一致,report放執行後生成的html報告

技術分享圖片

3.新建測試用例

&可以看出單元測試框架命名規則風格其實都是一致的,調用“底層“寫的一個方法去讀execel運行測試用例

技術分享圖片

4.pytest運行用例規則

&深入研究請百度,下面只讓你能獨立寫一個自動化工程的目的

1.文件已 test_開頭 test_*.py

2.類已Test_開頭 class Test_login()

3.方法已test_開頭 def test_login()

5.初始化和清理的方法使用

  • fixture函數可以使用在測試函數中,測試類中,測試文件中以及整個測試工程中。
  • fixture支持模塊化,fixture可以相互嵌套
  • fixture支持參數化
  • fixture支持unittest類型的setupteardown

1)模塊級(setup_module/teardown_module

)開始於模塊始末:在所有測試用例開始執行setup_module和所有用例執行結束後執行teardown_module

2)類級(setup_class/teardown_class)開始於類的始末:在當前測試類的開始與結束執行

3)類裏面的(setup/teardown)(運行在調用函數的前後)

4)功能級(setup_function/teardown_function)開始於功能函數始末(不在類中):用於每個測試用例開始執行時執行setup_function和在每個用例執行結束後執行teardown_function

5)方法級(setup_method/teardown_method)開始於方法始末(在類中):

在每個測試方法開始與結束執行

&本次以UI自動化為例,只用到的setup_method每次用例執行先調用瀏覽器打開網址

細節可參考:https://www.cnblogs.com/ranxf/p/7766229.html講的比較細

6.多種運行測試用例

&運行目錄下所有測試用例

Dos下 到Pyunit下執行 py.test –html=需要生成的report路徑

&運行執行某個py文件裏的用例

Dos下 到Pyunit下執行 py.test 文件名.py –html=需要生成的report路徑

&運行類裏的某個方法

pytest -v test_a.py::TestClass::test_method

&運行指定的類中所有方法

pytest -v test_a.py::TestClass

&組合運行

pytest -v test_a.py::TestClass test_b.py:: test_method

7.斷言

簡單斷言,用例執行完返回一個TrueFalse assert==True,True則通過,否則失敗

[python]pytest實現WEB UI自動化