一区二区三区成人_色婷婷av一区二区三区软件_国产精品福利av_亚洲五码中文字幕_色伊人久久综合中文字幕_欧美妇女性影城_亚洲一二三区在线观看_91在线视频网址_国产九色精品成人porny_国产一区二区电影_亚洲夂夂婷婷色拍ww47_日韩和欧美一区二区_国产欧美va欧美不卡在线_欧美电影免费观看完整版_日本不卡一区二区_韩国欧美一区二区

領(lǐng)導(dǎo)看了給你加薪!python +ddt+excel 一招鮮,接口自動化測試輕松搞定,測試報(bào)告驚艷四座!

  • 博客園
  • 2023-06-07 17:25:27

接口自動化測試是指通過編寫代碼或使用工具,模擬用戶發(fā)送請求,驗(yàn)證接口是否符合設(shè)計(jì)規(guī)范和功能需求的過程。

如何用 python +ddt+excel 實(shí)現(xiàn)接口自動化測試

接口自動化測試可以提高測試效率和質(zhì)量,節(jié)省測試成本和時(shí)間,保證測試覆蓋率和可維護(hù)性。

讓勇哥帶你入門如何用 python +ddt+excel 實(shí)現(xiàn)接口自動化測試,請瞧如下內(nèi)容:


(相關(guān)資料圖)

一、準(zhǔn)備工作

1. 安裝 python 環(huán)境

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

2. 安裝相關(guān)庫

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

  • requests:用來發(fā)送 HTTP 請求,支持各種方法、參數(shù)、頭部、身份驗(yàn)證等。

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

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

  • ddt:用來實(shí)現(xiàn)數(shù)據(jù)驅(qū)動測試,可以從 excel 文件中讀取多組數(shù)據(jù),并生成多個測試用例。

  • unittest:用來編寫和執(zhí)行測試用例,支持?jǐn)嘌浴⑶爸煤笾脳l件、測試套件等。

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

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

pip install requests

二、設(shè)計(jì)測試

1. 編寫 excel 文件

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

  • 接口名稱

  • 請求地址

  • 請求方法

  • 請求參數(shù)

  • 預(yù)期結(jié)果

例如:

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

2. 封裝 excel 操作

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

  • 打開表單

  • 獲取表頭

  • 獲取所有數(shù)據(jù)

  • 寫入數(shù)據(jù)

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

from openpyxl import load_workbookfrom openpyxl.worksheet.worksheet import Worksheetclass ExcelHandler():    """操作Excel"""    def __init__(self, file):        """初始化函數(shù)"""        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):        """讀取除表頭外所有數(shù)據(jù)(除第一行外的所有數(shù)據(jù))"""        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):    """獲取所有數(shù)據(jù),將表頭與內(nèi)容結(jié)合整...."""...    return data

3. 封裝 requests 請求

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

  • 初始化 session

  • 發(fā)送請求

  • 關(guān)閉 session

我們可以將這些函數(shù)定義在一個類中,并保存為 requests_handler.py,并放在項(xiàng)目的 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")        # 關(guān)閉session會話    def close_session(self):        self.session.close()

三、執(zhí)行測試

1. 編寫測試用例

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

  • 導(dǎo)入相關(guān)庫和模塊

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

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

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

  • 定義一個測試方法,用來發(fā)送請求,并斷言響應(yīng)結(jié)果是否符合預(yù)期

我們可以將這些代碼保存為 test_api.py,并放在項(xiàng)目的 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("請求參數(shù)")) if isinstance(params.get("請求參數(shù)"), str) else params.get("請求參數(shù)")        method = params.get("請求方法")        expct_res1 = params.get("預(yù)期結(jié)果")                # 發(fā)起請求,獲取返回?cái)?shù)據(jù)        result = self.s.visit(url, method, params=args)        # 分析返回?cái)?shù)據(jù)        response_data = result["name"]                # 斷言響應(yīng)結(jié)果是否符合預(yù)期        self.assertEqual(expct_res1, response_data)    @classmethod    def tearDownClass(cls):       cls.s.close_session()

2. 生成測試報(bào)告

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

  • 導(dǎo)入相關(guān)庫和模塊

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

  • 定義一個測試報(bào)告的文件名和路徑

  • 定義一個測試運(yùn)行器,傳入測試報(bào)告的文件對象和相關(guān)參數(shù)

  • 使用測試運(yùn)行器來運(yùn)行測試套件

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

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

四、查看結(jié)果

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

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

這樣,我們就完成了用 python +ddt+excel 實(shí)現(xiàn)接口自動化測試的過程。

總結(jié)

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

我的公眾號:百態(tài)測試

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

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

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

關(guān)鍵詞:

分享到:
?
  • 至少輸入5個字符
  • 表情

熱門資訊

一区二区三区成人_色婷婷av一区二区三区软件_国产精品福利av_亚洲五码中文字幕_色伊人久久综合中文字幕_欧美妇女性影城_亚洲一二三区在线观看_91在线视频网址_国产九色精品成人porny_国产一区二区电影_亚洲夂夂婷婷色拍ww47_日韩和欧美一区二区_国产欧美va欧美不卡在线_欧美电影免费观看完整版_日本不卡一区二区_韩国欧美一区二区
亚洲乱码中文字幕综合| 亚洲免费久久| 国产一区二区三区电影在线观看 | 成人在线视频首页| 精品亚洲aⅴ乱码一区二区三区| 亚洲欧美综合另类在线卡通| 国产精品视频yy9299一区| 久久久蜜臀国产一区二区| 中文字幕免费不卡| 欧美国产日本韩| 亚洲精品高清在线观看| 91丝袜脚交足在线播放| 成人国产免费视频| 国产伦精品一区二区三区视频免费 | 欧美成人dvd在线视频| 国产乱码精品一区二区三区不卡| 国产精品一区二区免费| 国产精品久久久对白| 久久99精品久久久久久秒播放器| 性欧美大战久久久久久久免费观看 | 国产精品久久久久久久久久直播| 免费成人深夜夜行视频| 日本中文不卡| 欧美一级专区免费大片| 国产亚洲欧美日韩在线一区| 国产香蕉久久精品综合网| 欧美激情一区在线观看| 88在线观看91蜜桃国自产| 久久蜜桃av一区精品变态类天堂| 欧美国产视频在线| 丝袜美腿亚洲综合| 韩国三级在线一区| 国产精品有限公司| 亚洲一区二区不卡视频| 日本精品视频一区二区三区| 久久久亚洲综合| 亚洲免费资源在线播放| 国产精品66部| 国产精品v欧美精品v日韩精品| 一区二区三区的久久的视频| 欧美日韩电影在线播放| 日韩视频在线观看一区二区| 自拍偷自拍亚洲精品播放| 五月综合激情婷婷六月色窝| 91日韩一区二区三区| 日韩av电影免费观看| 91精品久久久久久久99蜜桃| 中文字幕第一区第二区| 亚洲素人一区二区| 69堂成人精品免费视频| 亚洲精品在线免费观看视频| 亚洲国产wwwccc36天堂| 国产成人高清在线| 亚洲一区三区| 日韩美女天天操| 天天色天天爱天天射综合| 92精品国产成人观看免费| 四虎一区二区| 国产女主播一区| 久久成人免费电影| 欧美激情一区二区三区在线视频| 欧美在线观看视频一区二区三区| 亚洲视频一区二区在线观看| 久久精品国产久精国产| 国产福利电影一区二区三区| 一区二区三区四区视频在线观看 | 国产精品裸体一区二区三区| 色94色欧美sute亚洲线路一ni| 欧美激情中文不卡| 久久er99热精品一区二区| 国产精品66部| 亚洲欧洲日韩精品| 国产亚洲一区二区三区| 粉嫩av一区二区三区粉嫩| 亚洲欧洲精品在线观看| 亚洲精品国产精品乱码不99| 成人激情免费网站| 欧美一区二区在线视频| 日韩二区三区四区| 丁香婷婷综合色啪| 欧美日韩久久一区| 亚洲综合成人在线| 麻豆91av| 国产性天天综合网| 99久久综合精品| 欧美日韩一卡二卡| 亚洲特黄一级片| 成人免费观看男女羞羞视频| 日韩一区二区三区电影 | 激情久久av| 2024国产精品| 亚洲国产成人高清精品| 久久精品人成| 日韩一本二本av| 懂色av噜噜一区二区三区av| 日本精品一级二级| 蜜桃91丨九色丨蝌蚪91桃色| 日韩欧美三级一区二区| 亚洲伊人伊色伊影伊综合网| 国产一区在线免费| 日韩伦理电影网| 国产精品一 二 三| 欧美一区二区高清| 99久久久免费精品国产一区二区| 强制捆绑调教一区二区| 亚洲精品一区二区三区樱花| 亚洲丝袜精品丝袜在线| 欧美日韩亚洲一区二区三区四区| 国产日韩一级二级三级| 国产一级二级三级精品| 国产欧美一区二区三区鸳鸯浴 | 亚洲激情av在线| 国产亚洲欧美另类一区二区三区| 亚洲精品在线一区二区| proumb性欧美在线观看| 精品国产乱码久久久久久牛牛| 国产成人自拍高清视频在线免费播放 | 九九精品一区二区| 91精品国产入口| 国产成人免费视频| 在线观看网站黄不卡| 国产麻豆精品95视频| 91精品国产综合久久福利| 97se亚洲国产综合在线| 国产日韩欧美a| 日本高清不卡一区二区三| 一区二区在线观看免费| 在线看国产日韩| 国产一区二区91| 国产午夜精品福利| 狠狠色噜噜狠狠狠狠色吗综合| 久久精品一区蜜桃臀影院| 99久久久精品免费观看国产| 国产亚洲精品中文字幕| 国产成人亚洲欧美| 亚洲不卡av一区二区三区| 一本到不卡免费一区二区| 成人综合婷婷国产精品久久免费| 欧美不卡123| 久久影院理伦片| 日欧美一区二区| 日本中文不卡| 国产成人福利片| 国产女主播视频一区二区| 色综合久久综合网欧美综合网| 麻豆精品国产传媒mv男同| 2020国产精品久久精品不卡| 国产精品久久毛片av大全日韩| 中文字幕欧美人与畜| 国产乱人伦偷精品视频不卡 | 91在线小视频| 亚洲欧美一区二区三区国产精品 | 91精品国产福利在线观看| 91美女视频网站| 亚洲成a人在线观看| 欧美色窝79yyyycom| 国产午夜精品一区| 午夜激情久久久| 欧美激情综合五月色丁香小说| 日韩精品福利视频| 99精品在线观看视频| 亚洲精品菠萝久久久久久久| 欧美一级一级性生活免费录像| 国产高清自拍99| 亚洲一级片在线观看| 欧美成人福利视频| 99久久综合狠狠综合久久止 | 欧美色区777第一页| 久久久久久久久久久久久9999| 天堂成人国产精品一区| 中文字幕免费不卡| 日本久久一区二区| 国产精品一区二区三区四区五区| 日韩电影网1区2区| 一区二区三区日韩| 日韩一卡二卡三卡四卡| 色域天天综合网| 97超碰人人模人人爽人人看| 久久国产乱子精品免费女| 国产精品久久久久毛片软件| 日韩女优av电影| 一本一道久久a久久精品综合| 91精品婷婷国产综合久久| 亚洲一二区在线| 91免费在线观看网站| 成人一级黄色片| 天天做天天摸天天爽国产一区| 国产精品久久久久久亚洲伦| 欧美日本一区二区三区| 欧洲亚洲精品在线| 国内外成人免费视频| 97精品超碰一区二区三区| 美女高潮久久久| 日日摸夜夜添夜夜添精品视频| 中文字幕不卡一区| 久久久精品免费网站| 欧美精品1区2区3区| 欧美综合视频在线观看| 免费影院在线观看一区| 狠狠色狠狠色综合人人|