<bdo id="4awyc"><del id="4awyc"></del></bdo>
  • <s id="4awyc"></s>
  • <tfoot id="4awyc"><small id="4awyc"></small></tfoot>
    <s id="4awyc"><acronym id="4awyc"></acronym></s>
  • <center id="4awyc"></center>
    <s id="4awyc"><acronym id="4awyc"></acronym></s>

    領導看了給你加薪!python +ddt+excel 一招鮮,接口自動化測試輕松搞定,測試報告驚艷四座!-天天時訊

    2023-06-07 22:49:20 來源: 博客園

    接口自動化測試是指通過編寫代碼或使用工具,模擬用戶發送請求,驗證接口是否符合設計規范和功能需求的過程。

    如何用 python +ddt+excel 實現接口自動化測試

    接口自動化測試可以提高測試效率和質量,節省測試成本和時間,保證測試覆蓋率和可維護性。

    讓勇哥帶你入門如何用 python +ddt+excel 實現接口自動化測試,請瞧如下內容:


    (資料圖片僅供參考)

    一、準備工作

    1. 安裝 python 環境

    python 是一種簡潔、優雅、易學的編程語言,它有豐富的第三方庫和社區支持,非常適合用來進行接口自動化測試。安裝 python 的3.0以上的版本),并配置好環境變量,以便在命令行中使用 python 命令。

    2. 安裝相關庫

    為了進行接口自動化測試,我們需要安裝以下幾個庫:

    • requests:用來發送 HTTP 請求,支持各種方法、參數、頭部、身份驗證等。

    • xlrd:用來讀取 excel 文件中的數據,支持 xls 和 xlsx 格式。

    • openpyxl:用來寫入 excel 文件中的數據,支持 xlsx 格式。

    • ddt:用來實現數據驅動測試,可以從 excel 文件中讀取多組數據,并生成多個測試用例。

    • unittest:用來編寫和執行測試用例,支持斷言、前置后置條件、測試套件等。

    • HTMLTestRunner_api:用來生成 HTML 格式的測試報告,支持圖表、日志、截圖等。

    我們可以使用 pip 命令來安裝這些庫,例如:

    pip install requests

    二、設計測試

    1. 編寫 excel 文件

    我們需要在 excel 文件中填寫接口的相關信息,包括:

    • 接口名稱

    • 請求地址

    • 請求方法

    • 請求參數

    • 預期結果

    例如:

    我們可以將這個 excel 文件保存為 test_data.xlsx,并放在項目的 test_datas 目錄下。

    2. 封裝 excel 操作

    為了方便地讀取和寫入 excel 文件中的數據,我們需要封裝一些 excel 操作的函數,例如:

    • 打開表單

    • 獲取表頭

    • 獲取所有數據

    • 寫入數據

    我們可以將這些函數定義在一個類中,并保存為 excel_handler.py,并放在項目的 Lib 目錄下。具體代碼如下:

    from openpyxl import load_workbookfrom openpyxl.worksheet.worksheet import Worksheetclass ExcelHandler():    """操作Excel"""    def __init__(self, file):        """初始化函數"""        self.file = file        def open_sheet(self, sheet_name) -> Worksheet:        """打開表單"""        wb = load_workbook(self.file)        sheet = wb[sheet_name]        return sheet        def read_rows(self,sheet_name):        """讀取除表頭外所有數據(除第一行外的所有數據)"""        sheet = self.open_sheet(sheet_name)        rows = list(sheet.rows)[1:]        data = []        for row in rows:            row_data = []            for cell in row:                row_data.append(cell.value)            data.append(row_data)        return data def read_key_value(self,sheet_name):    """獲取所有數據,將表頭與內容結合整...."""...    return data

    3. 封裝 requests 請求

    為了方便地發送 HTTP 請求,我們需要封裝一些 requests 請求的函數,例如:

    • 初始化 session

    • 發送請求

    • 關閉 session

    我們可以將這些函數定義在一個類中,并保存為 requests_handler.py,并放在項目的 Lib 目錄下。具體代碼如下:

    import requestsclass HTTPHandler:    # 初始化    def __init__(self):        self.session = requests.Session()        # 定義一個方法,接收訪問http請求的方式    def visit(self, url, method, params=None, data=None, json=None, **kwargs):        res = self.session.request(method, url, params=params, data=data, json=json, **kwargs)        try:            return res.json()        except ValueError:            print("return not json")        # 關閉session會話    def close_session(self):        self.session.close()

    三、執行測試

    1. 編寫測試用例

    我們需要使用 unittest 和 ddt 來編寫和執行測試用例,具體步驟如下:

    • 導入相關庫和模塊

    • 定義一個測試類,繼承 unittest.TestCase

    • 定義一個類方法,用來初始化 session 和讀取 excel 文件中的數據

    • 使用 @ddt.data 裝飾器,傳入 excel 文件中的數據

    • 定義一個測試方法,用來發送請求,并斷言響應結果是否符合預期

    我們可以將這些代碼保存為 test_api.py,并放在項目的 test_cases 目錄下。具體代碼如下:

    from Lib.excel_handler import ExcelHandlerfrom Lib.requests_handler import HTTPHandlerimport requestsimport ddtimport unittestdata = ExcelHandler("test_datas/test_data.xlsx").read_key_value("Sheet1")@ddt.ddtclass TestAPI(unittest.TestCase):    @classmethod    def setUpClass(cls):        cls.s = HTTPHandler()        @ddt.data(*data)    def test_api(self,params):        print("params:%s" % params)        case_name = params.get("接口名稱")        url = params.get("請求地址")        args = eval(params.get("請求參數")) if isinstance(params.get("請求參數"), str) else params.get("請求參數")        method = params.get("請求方法")        expct_res1 = params.get("預期結果")                # 發起請求,獲取返回數據        result = self.s.visit(url, method, params=args)        # 分析返回數據        response_data = result["name"]                # 斷言響應結果是否符合預期        self.assertEqual(expct_res1, response_data)    @classmethod    def tearDownClass(cls):       cls.s.close_session()

    2. 生成測試報告

    我們需要使用 HTMLTestRunner_api 來生成 HTML 格式的測試報告,具體步驟如下:

    • 導入相關庫和模塊

    • 定義一個測試套件,添加測試用例

    • 定義一個測試報告的文件名和路徑

    • 定義一個測試運行器,傳入測試報告的文件對象和相關參數

    • 使用測試運行器來運行測試套件

    我們可以將這些代碼保存為 run.py,并放在項目的根目錄下。具體代碼如下:

    import unittestfrom HTMLTestRunner_api import HTMLTestRunnerfrom test_cases.test_api import TestAPI# 定義一個測試套件suite = unittest.TestSuite()# 添加測試用例suite.addTest(unittest.makeSuite(TestAPI))# 定義一個測試報告的文件名和路徑report_file = "reports/test_report.html"# 定義一個測試運行器,傳入測試報告的文件對象和相關參數with open(report_file, "wb") as f:    runner = HTMLTestRunner(f, title="接口自動化測試報告", description="用例執行情況")    # 使用測試運行器來運行測試套件    runner.run(suite)

    四、查看結果

    運行 run.py 文件后,我們可以在 reports 目錄下看到生成的 test_report.html 文件,打開它,我們可以看到以下內容:

    我們可以看到,共有 11 個測試用例,通過 6 個,失敗 5 個。我們還可以看到每個測試用例的詳細信息,包括用例名稱、請求地址、請求參數、預期結果、實際結果等。我們還可以看到一些圖表、日志、截圖等。

    這樣,我們就完成了用 python +ddt+excel 實現接口自動化測試的過程。

    總結

    以上就是勇哥今天為各位小伙伴準備的內容,如果你想了解更多關于Python自動化測試的知識和技巧,歡迎關注:

    我的公眾號:百態測試

    博客(奈非天的主頁 - 博客園 (cnblogs.com))

    我會不定期地分享更多的精彩內容。感謝你的閱讀和支持!

    本文來自博客園,作者:奈非天,轉載請注明原文鏈接:https://www.cnblogs.com/Nephalem-262667641/p/17460169.html

    標簽:

    相關熱詞搜索:

    [責任編輯:]

    相關閱讀

    最近更新

    日日噜噜夜夜狠狠扒开双腿,欧美视频在线第一页,伦理草民看一天宅急看,超清国产粉嫩456在线免播放
    <bdo id="4awyc"><del id="4awyc"></del></bdo>
  • <s id="4awyc"></s>
  • <tfoot id="4awyc"><small id="4awyc"></small></tfoot>
    <s id="4awyc"><acronym id="4awyc"></acronym></s>
  • <center id="4awyc"></center>
    <s id="4awyc"><acronym id="4awyc"></acronym></s>
    主站蜘蛛池模板: 亚洲午夜久久久久久尤物| 看黄色免费网站| 韩国一级做a爱性色毛片| 人与禽交另类网站视频| 精品少妇人妻av无码专区| 欧美一区视频在线| 天天影院成人免费观看| 日本h在线精品免费观看| 国产香蕉国产精品偷在线| 哦好大好涨拨出来bl| 亚洲jjzzjjzz在线观看| 9i9精品国产免费久久| 色哟哟国产精品免费观看| 欧美丰满少妇xxxxx| 在线观看国产福利| 又大又硬一进一出做视频| 久久成人综合网| 最新黄色免费网站| 特级aaaaaaaaa毛片免费视频| 无码精品a∨在线观看中文| 国产成人综合亚洲| 亚洲成a人片在线看| a级毛片免费高清视频| 老外一级毛片免费看| 日韩国产欧美在线观看 | 亚洲а∨天堂久久精品| 九九影视理伦片| 欧美成人一区二区三区在线电影| 宝贝过来趴好张开腿让我看看| 国产亚洲欧美视频| 亚洲人成在线精品| 538国产视频| 欧美黑人vs亚裔videos| 天天躁日日躁狠狠躁人妻| 午夜视频1000部免费看| avtt亚洲天堂| 热99re久久精品天堂vr| 奇米影视7777久久精品| 亚洲国产精品久久久久秋霞小| 91最新高端约会系列178| 炕上摸着老妇雪白肥臀|