1. 程式人生 > 實用技巧 >通過結合ddt的方法去載入執行excel當中的用例資料並生成報告

通過結合ddt的方法去載入執行excel當中的用例資料並生成報告

載入用例的方法:

方法一:#其他時候一般是使用的discover方法來查詢當前工程下符合case資料
discover = unittest.defaultTestLoader.discover(start_dir=casepath,
                                               pattern='test*.py',
                                               top_level_dir=None)
print(discover)
方法二:
#但是在這裡,要想通過結合ddt來獲取excel當中的用例資料,並載入用例執行就只能使用unittest當中的Testloader()方法

簡單介紹:結合unittest當中的Testloader()

'''
unittest中的TestLoader使用說明
第一步:unittest增加TestSuit()
suite=unittest.TestSuite()
第二步:unittest增加Testloader幾種執行方式
unittest.TestLoader().loadTestsFromTestCase(類名)
unittest.TestLoader().loadTestsFromMoudule(模組名)
unittest.TestLoader().loadTestsFromName(方法名)
unittest.TestLoader().loadTestsFromNames
(方法名,複數形式)
第三步:在suite中增加執行方法
suite.addTest(suite1)
第四步:執行
unittest.TextTestRunner().run(suite1)
'''

#以下為簡單的一個函式使用,還可以將下面的分開寫成函式方法並整合一下:------這裡不寫具體內容,可以看看前面的文章有具體方法介紹

基本思路 比如這樣:1載入excel用例到測試套件、2時間函式、3HTMLtestrunner來執行用例並生成報告、4傳送郵件

#!/usr/bin/python3
# -*- coding:utf-8 -*-
#Author:qika


import unittest
import
time import os from Base import HTMLTestRunner from testcase.test_ddt_loadcase import DataTest def run_case(reportName='report'): #將excel裡面的用例資料新增進入到unittest測試套件內 suite = unittest.TestSuite() suite.addTests(unittest.TestLoader().loadTestsFromTestCase(DataTest)) #將test_ddt_loadcase import DataTest 這個類直接新增進去使用 nowtime = time.strftime('%Y-%m-%d %H_%M_%S',time.localtime(time.time())) #宣告一個時間--可以寫一個時間函式方法(前面的文章有介紹) basedir = os.path.dirname(os.path.dirname(__file__)) #獲取到當前檔案所在目錄,的父級目錄 #print(basedir) reportPath = os.path.join(basedir,reportName) #報告存放的資料夾目錄 report_abspath = os.path.join(reportPath,nowtime + '_result.html') #實際的執行結果後,報告存放的路徑 fp = open(report_abspath,"wb") #開啟絕對路徑下的報告 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='測試報告標題:這是本次自動化測試報告', description="這是本次用例執行情況,如下:", retry=1) #retry表示失敗重跑 runner.run(suite)#執行測試套件(從excel讀取的資料新增進去的) if __name__ == '__main__': run_case(suite)