Selenium2+python自動化53-unittest批量執行(discover)


前言

我們在寫用例的時候,單個腳本的用例好執行,那么多個腳本的時候,如何批量執行呢?這時候就需要用到unittet里面的discover方法來加載用例了。

加載用例后,用unittest里面的TextTestRunner這里類的run方法去一次執行多個腳本的用例。

一、新建測試項目

1.pycharm左上角File>New Projetc>Pure Python,在location位置命名一個測試工程的名稱:yoyotest,然后保存

2.選中剛才新建的工程右鍵>New>Python Package>新建一個case文件夾

3.重復第2步的操作,新建一個case的文件夾,在里面添加一個baidu和一個blog的文件夾,里面分別有兩個用例的腳本,如下圖所示。

test_01,test_02,test_03,test_04是我們寫用例的腳本

4.test_01創建完后,打開腳本,寫入用例

5.在yoyotest這個項目下面創建一個腳本run_all_case.py,接下來用這個腳本去批量執行所有的用例。

 

二、diascover加載測試用例

1.discover方法里面有三個參數:

-case_dir:這個是待執行用例的目錄。

-pattern:這個是匹配腳本名稱的規則,test*.py意思是匹配test開頭的所有腳本。

-top_level_dir:這個是頂層目錄的名稱,一般默認等於None就行了。

2.discover加載到的用例是一個list集合,需要重新寫入到一個list對象testcase里,這樣就可以用unittest里面的TextTestRunner這里類的run方法去執行。

 

3.運行后結果如下,就是加載到的所有測試用例了:

<unittest.suite.TestSuite tests=[<baidu.test_01.Test testMethod=test01>, <baidu.test_01.Test testMethod=test02>, <baidu.test_01.Test testMethod=test03>, <baidu.test_02.Test testMethod=test01>, <baidu.test_02.Test testMethod=test02>, <baidu.test_02.Test testMethod=test03>, <bolg.test_03.Test testMethod=test01>, <bolg.test_03.Test testMethod=test02>, <bolg.test_03.Test testMethod=test03>, <bolg.test_04.Test testMethod=test01>, <bolg.test_04.Test testMethod=test02>, <bolg.test_04.Test testMethod=test03>]>

三、run測試用例

1.為了更方便的理解,可以把上面discover加載用例的方法封裝下,寫成一個函數

2.參考代碼:

# coding:utf-8
import unittest
import os
# 用例路徑
case_path = os.path.join(os.getcwd(), "case")
# 報告存放路徑
report_path = os.path.join(os.getcwd(), "report")
def all_case():
    discover = unittest.defaultTestLoader.discover(case_path,
                                                    pattern="test*.py",
                                                    top_level_dir=None)
    print(discover)
    return discover

if __name__ == "__main__":
    runner = unittest.TextTestRunner()
    runner.run(all_case())

 

 

學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429

覺得對你有幫助,就在右下角點個贊吧,感謝支持!

selenium+python高級教程》已出書:selenium webdriver基於Python源碼案例

(購買此書送對應PDF版本)

 

 

 


免責聲明!

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



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