讀取Excel封裝類
from openpyxl import load_workbook class ReadExcel: # 讀取Excel里面的內容 def __init__(self, file_name, sheet_name): self.file_name = file_name self.sheet_name = sheet_name def get_title(self): # 讀取Excel里面的title數據 wb = load_workbook(self.file_name) # 打開Excel工作簿 sheet1 = wb[self.sheet_name] title = [] # 定義一個空列表,將讀取的title字段進行存儲 for i in range(1, sheet1.max_column+1): title.append(sheet1.cell(1, i).value) return title def do_excel(self): wb = load_workbook(self.file_name) sheet1 = wb[self.sheet_name] title = self.get_title() # 調用title內容 all_data = [] for j in range(2, sheet1.max_row+1): # 獲取最大行數,加入循環 row_data = {} for i in range(3, sheet1.max_column+1): # 獲取最大列數,進行嵌套循環 row_data[title[i-1]] = sheet1.cell(j, i).value # 把拿到的數據進行字典的鍵對值匹配 all_data.append(row_data) return all_data
對Excel的內容進行數據驅動實例化和序列化
import unittest from API_Excel.Http_Request.http_request import HttpRequest from API_Excel.Read_Excel_Data.read_excel_data import ReadExcel from ddt import ddt, data # 讀取Excel數據 file = 'E:\自動化練習\dai_test\API_Excel\Read_Excel_Data\data.xlsx' test_data = ReadExcel(file, 'TestCase').do_excel() """API請求的測試類""" @ddt class TestHttpRequest(unittest.TestCase): def __init__(self, methodName, url, method, param, expected ): # 初始化參數 super(TestHttpRequest,self).__init__(methodName) # 超繼承多個測試類 self.url = url self.method = method self.param = param self.expected = expected def setUp(self): print('API測試開始執行') def tearDown(self): print('API測試結束執行') @data(*test_data) def test_http_request(self, item): # 測試請求函數 res = HttpRequest().http_request(item['url'], item['method'] , eval(item['param'])) try: self.assertEqual(item['expected'], str(res)) except Exception as e: print('請求發生錯誤-[{0}]'.format(e)) raise e else: print('執行結果是{0}'.format(res))
以上代碼僅供自己引用 不保證直接運行、
