Python使用自定義裝飾器的示例詳解
在Python自動(dòng)化測試中,使用自定義的裝飾器來給測試方法傳遞測試數(shù)據(jù):
reader.py
import csv import json from openpyxl import load_workbook from setting import DATA_DIR from os import path class Reader: @classmethod def read_excel(cls,xlname, min_row, max_row, min_col, max_col): xlname = path.join(DATA_DIR,xlname) data = [] wb = load_workbook(xlname) ws = wb.active # 將選中區(qū)域轉(zhuǎn)換為列表 ls = list(ws.iter_rows(min_row=min_row, max_row=max_row, min_col=min_col, max_col=max_col)) wb.save(xlname) for row in ls: data_row = [] for col in row: data_row.append(col.value) data.append(data_row) wb.save(xlname) return data @classmethod def read_csv(cls, filename): file_name = path.join(DATA_DIR,filename) ls = None with open(file=file_name,mode='r',encoding='utf-8') as f: ls = list(csv.reader(f)) return ls
my_decorator.py
def my_decorator(sequeence): def outer(func): def inner(self): for item in sequeence: try: func(self,*item) except Exception: # print()僅供調(diào)試用,后期考慮將出錯(cuò)日志寫入數(shù)據(jù)庫 print('測試有問題') else:# print()僅供調(diào)試用,后期考慮將通過日志寫入數(shù)據(jù)庫 print('測試通過') return inner return outer
data.csv
admin,1
wp,1
666666,1
msramsrsa,0
find_test.py
import time import unittest from parameterized import parameterized from pages.page_login import PageLogin from pages.page_system_operate_log import PageSystemOperateLog from utils.decorate import my_decorator from utils.driver import WebDriver from utils.reader import Reader class SysOperateLogFindPageTest(unittest.TestCase): ''' 系統(tǒng)操作日志頁面測試類:執(zhí)行系統(tǒng)操作日志頁面的UI測試 作者:awake.silent@qq.com ''' @my_decorator(Reader.read_csv('search_log_by_username.csv')) def test_search_log_by_username(self, username, expect): ''' 對系統(tǒng)操作日志頁面的按照賬號搜索日志功能進(jìn)行UI測試 :param username: 賬號 :param expect: 期望結(jié)果,'0‘代表搜索不到日志記錄,'1‘代表可以搜索到日志記錄 :return: ''' # 打開系統(tǒng)操作日志頁面 self.psol.open() time.sleep(2) # 輸入賬號并點(diǎn)擊搜索 self.psol.do_search(username) time.sleep(2) # 獲取搜索結(jié)果 result = self.psol.get_search_result() # 進(jìn)行斷言 if expect == '0': self.assertEqual(0,len(result)) else: self.assertNotEqual(0,len(result)) for item in result: self.assertEqual(username, item.text)
到此這篇關(guān)于Python使用自定義裝飾器的示例詳解的文章就介紹到這了,更多相關(guān)Python自定義裝飾器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Pycharm后臺indexing導(dǎo)致不能run的問題
今天小編就為大家分享一篇解決Pycharm后臺indexing導(dǎo)致不能run的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Pycharm無法顯示動(dòng)態(tài)圖片的解決方法
今天小編就為大家分享一篇Pycharm無法顯示動(dòng)態(tài)圖片的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Keras中的兩種模型:Sequential和Model用法
這篇文章主要介紹了Keras中的兩種模型:Sequential和Model用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06

Python中非常實(shí)用的Math模塊函數(shù)教程詳解

django filters實(shí)現(xiàn)數(shù)據(jù)過濾的示例代碼

python檢測遠(yuǎn)程服務(wù)器tcp端口的方法