最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用requests+excel進行接口自動化測試的實現(xiàn)

 更新時間:2023年11月02日 08:55:46   作者:軟件測試曦曦  
在當今的互聯(lián)網(wǎng)時代中,接口自動化測試越來越成為軟件測試的重要組成部分,本文就來介紹了python使用requests+excel進行接口自動化測試的實現(xiàn),感興趣的可以了解一下

在當今的互聯(lián)網(wǎng)時代中,接口自動化測試越來越成為軟件測試的重要組成部分。Python是一種簡單易學,高效且可擴展的語言,自然而然地成為了開發(fā)人員的首選開發(fā)語言。而requests和xlwt這兩個常用的Python標準庫,能夠幫助我們輕松地開發(fā)接口自動化測試,更快更好地完成測試工作。

下面是這兩個庫在接口自動化測試中可帶來的好處:

1. requests可以方便地模擬發(fā)送HTTP請求,實現(xiàn)接口測試,支持GET、POST、PUT、DELETE等請求方式。使用requests,我們可以輕松實現(xiàn)對接口的請求及返回結果的處理。

import requests
response = requests.get('http://example.com')

2. requests提供了對HTTP頭的復雜處理和特定認證方案的支持,包括Basic,Digest,OAuth等。這意味著我們可以輕松地實現(xiàn)接口的授權認證。

import requests
response = requests.get('http://example.com', auth=('user', 'pass'))

3. requests支持Cookie和Session的處理,可以用來保證用戶的身份認證或后續(xù)請求的連續(xù)性。這對于需要進行多次調(diào)用接口的測試非常有用。

4. xlwt庫支持將測試結果以Excel格式將結果輸出或記錄。接口自動化測試有的時候需要輸出測試報告,xlwt可以方便地將測試結果輸出為Excel表格。

import xlwt
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('Sheet1')
sheet.write(0, 0, '接口名稱')
sheet.write(0, 1, '測試結果')
sheet.write(1, 0, 'test API')
sheet.write(1, 1, 'Pass')
book.save('result.xls')

5. xlwt庫為測試結果提供格式化的輸出,用戶可以自定義表格樣式以及表格內(nèi)容的格式、字體、顏色、邊框等,以便用戶快速理解接口測試結果,對其做出有效的應對。

綜上所述,requests和xlwt是Python的兩個基礎庫,它們能夠方便地完成接口自動化測試,并且大大提高測試的效率和精度。因此,如果您還沒有使用它們進行接口自動化測試,不妨試試看以下的接口自動化測試框架DEMO。

完整代碼

import requests
import xlwt
import xlrd
import unittest
class BaseTestCase(unittest.TestCase):
    url = ""  # 接口請求的 URL
    method = "GET"  # 接口請求的方法
    data = {}  # 接口請求的數(shù)據(jù)
    headers = {}  # 接口請求的頭部
    expected_code = 200  # 預期的 HTTP 狀態(tài)碼
    expected_result = {}  # 預期的響應結果
    def setUp(self):
        """每個測試方法執(zhí)行前調(diào)用"""
        pass
    def tearDown(self):
        """每個測試方法執(zhí)行后調(diào)用"""
        pass
    def run_case(self, case):
        """動態(tài)創(chuàng)建的測試方法,執(zhí)行測試用例"""
        self.url = case['url']
        self.method = case['method']
        self.data = case['data']
        self.headers = case.get('headers', {})
        self.expected_code = case.get('expected_code', 200)
        self.expected_result = case.get('expected_result', {})
        self.test_api()
    def test_api(self):
        """測試用例實現(xiàn)"""
        response = requests.request(self.method, url=self.url, headers=self.headers, data=self.data)
        self.assertEqual(response.status_code, self.expected_code)  # 斷言響應的 HTTP 狀態(tài)碼是否與預期一致
        self.assertDictEqual(response.json(), self.expected_result)  # 斷言響應的結果是否與預期一致
def read_excel(file_path, sheet_name):
    workbook = xlrd.open_workbook(file_path)  # 打開 Excel 文件
    sheet = workbook.sheet_by_name(sheet_name)  # 獲取 Excel 工作表
    rows = sheet.nrows  # 獲取行數(shù)
    cases = []
    for i in range(1, rows):  # 從第 2 行開始讀取測試用例
        case = {}
        case['url'] = sheet.cell_value(i, 0)  # 讀取接口請求的 URL
        case['method'] = sheet.cell_value(i, 1)  # 讀取接口請求的方法
        case['data'] = sheet.cell_value(i, 2)  # 讀取接口請求的數(shù)據(jù)
        case['headers'] = sheet.cell_value(i, 3)  # 讀取接口請求的頭部
        case['expected_code'] = int(sheet.cell_value(i, 4))  # 讀取預期的 HTTP 狀態(tài)碼
        case['expected_result'] = eval(sheet.cell_value(i, 5))  # 讀取預期的響應結果
        case['name'] = sheet.cell_value(i, 6)  # 讀取用例名稱
        cases.append(case)
    return cases
def write_excel(file_path, sheet_name, cases):
    workbook = xlwt.Workbook()
    sheet = workbook.add_sheet(sheet_name)
    sheet.write(0, 0, '用例編號')
    sheet.write(0, 1, '用例名稱')
    sheet.write(0, 2, '測試結果')
    for i, case in enumerate(cases):
        sheet.write(i+1, 0, i+1)
        sheet.write(i+1, 1, case.get('name', '') or case['url'])
        sheet.write(i+1, 2, '通過' if case.get('result') else '失敗')
    workbook.save(file_path)
if __name__ == '__main__':
    cases = read_excel('cases.xlsx', 'Sheet1')  # 讀取測試用例
    suite = unittest.TestSuite()  # 創(chuàng)建測試套件
    for case in cases:
        case_name = case.get('name', '') or case['url']
        setattr(BaseTestCase, 'test_{}'.format(case_name), lambda self, case=case: self.run_case(case))
        # 動態(tài)創(chuàng)建測試方法,并將測試用例綁定到測試方法上
    unittest.TextTestRunner().run(suite)  # 執(zhí)行測試套件
    write_excel('report.xls', 'Sheet1', cases)  # 寫入測試結果報告

下面詳細介紹一下??上方代碼

1. 安裝所需要的庫和依賴項

pip install requests
pip install xlwt

2. 編寫接口自動化測試基類及測試用例實現(xiàn)

import requests
import xlwt
import unittest
class BaseTestCase(unittest.TestCase):
    url = ""  # 接口請求的 URL
    method = "GET"  # 接口請求的方法
    data = {}  # 接口請求的數(shù)據(jù)
    headers = {}  # 接口請求的頭部
    expected_code = 200  # 預期的 HTTP 狀態(tài)碼
    expected_result = {}  # 預期的響應結果
    def setUp(self):
        """每個測試方法執(zhí)行前調(diào)用"""
        pass  # 可以進行一些初始化工作
    def tearDown(self):
        """每個測試方法執(zhí)行后調(diào)用"""
        pass  # 可以進行一些清理工作
    def test_api(self):
        """測試用例實現(xiàn)"""
        response = requests.request(self.method, url=self.url, headers=self.headers, data=self.data)
        self.assertEqual(response.status_code, self.expected_code)  # 斷言響應的 HTTP 狀態(tài)碼是否與預期一致
        self.assertDictEqual(response.json(), self.expected_result)  # 斷言響應的結果是否與預期一致

3. 編寫 Excel 文件讀取和解析函數(shù)

import xlrd
def read_excel(file_path, sheet_name):
    workbook = xlrd.open_workbook(file_path)  # 打開 Excel 文件
    sheet = workbook.sheet_by_name(sheet_name)  # 獲取 Excel 工作表
    rows = sheet.nrows  # 獲取行數(shù)
    cases = []
    for i in range(1, rows):  # 從第 2 行開始讀取測試用例
        case = {}
        case['url'] = sheet.cell_value(i, 0)  # 讀取接口請求的 URL
        case['method'] = sheet.cell_value(i, 1)  # 讀取接口請求的方法
        case['data'] = sheet.cell_value(i, 2)  # 讀取接口請求的數(shù)據(jù)
        case['headers'] = sheet.cell_value(i, 3)  # 讀取接口請求的頭部
        case['expected_code'] = int(sheet.cell_value(i, 4))  # 讀取預期的 HTTP 狀態(tài)碼
        case['expected_result'] = eval(sheet.cell_value(i, 5))  # 讀取預期的響應結果
        cases.append(case)
    return cases

4. 編寫 Excel 結果報告寫入函數(shù)

def write_excel(file_path, sheet_name, cases):
    workbook = xlwt.Workbook()
    sheet = workbook.add_sheet(sheet_name)
    sheet.write(0, 0, '用例編號')
    sheet.write(0, 1, '用例名稱')
    sheet.write(0, 2, '測試結果')
    for i, case in enumerate(cases):
        sheet.write(i+1, 0, i+1)
        sheet.write(i+1, 1, case.get('name', ''))
        sheet.write(i+1, 2, '通過' if case.get('result') else '失敗')
    workbook.save(file_path)

5. 編寫主函數(shù)

if __name__ == '__main__':
    cases = read_excel('cases.xlsx', 'Sheet1')  # 讀取測試用例
    suite = unittest.TestSuite()  # 創(chuàng)建測試套件
    for case in cases:
        case_name = case.get('name', '') or case['url']
        setattr(BaseTestCase, 'test_{}'.format(case_name), lambda self, case=case: self.run_case(case))
        # 動態(tài)創(chuàng)建測試方法,并將測試用例綁定到測試方法上
    unittest.TextTestRunner().run(suite)  # 執(zhí)行測試套件
    write_excel('report.xls', 'Sheet1', cases)  # 寫入測試結果報告

這是一個簡單的Python接口自動化測試項目,可以通過Excel 文件管理測試用例,支持多種 HTTP 請求方法和數(shù)據(jù)格式,適用于各種接口自動化測試場景。

到此這篇關于python使用requests+excel進行接口自動化測試的實現(xiàn)的文章就介紹到這了,更多相關python 接口自動化測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python使用pip工具實現(xiàn)包自動更新的多種方法

    Python使用pip工具實現(xiàn)包自動更新的多種方法

    本文深入探討了使用Python的pip工具實現(xiàn)包自動更新的各種方法和技術,我們將從基礎概念開始,逐步介紹手動更新方法、自動化腳本編寫、結合CI/CD的實現(xiàn)方案,以及最佳實踐和安全考量,文章包含詳細的代碼示例、流程圖解和實際應用場景分析,需要的朋友可以參考下
    2025-07-07
  • Python中glob庫實現(xiàn)文件名的匹配

    Python中glob庫實現(xiàn)文件名的匹配

    本文主要主要介紹了Python中glob庫實現(xiàn)文件名的匹配,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • pandas DataFrame數(shù)據(jù)轉(zhuǎn)為list的方法

    pandas DataFrame數(shù)據(jù)轉(zhuǎn)為list的方法

    下面小編就為大家分享一篇pandas DataFrame數(shù)據(jù)轉(zhuǎn)為list的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 從基礎到高級詳解Python文本分詞的完全指南

    從基礎到高級詳解Python文本分詞的完全指南

    在自然語言處理領域,文本分詞是最基礎也是最關鍵的技術環(huán)節(jié),本文將深入解析Python文本分詞技術體系,希望對大家有一定的幫助
    2025-08-08
  • python 獲取域名到期時間的方法步驟

    python 獲取域名到期時間的方法步驟

    這篇文章主要介紹了python 獲取域名到期時間的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Python的SimpleHTTPServer模塊用處及使用方法簡介

    Python的SimpleHTTPServer模塊用處及使用方法簡介

    這篇文章主要介紹了Python的SimpleHTTPServer模塊用處及使用方法簡介,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python圖像處理之顏色的定義與使用分析

    Python圖像處理之顏色的定義與使用分析

    這篇文章主要介紹了Python圖像處理之顏色的定義與使用,結合實例形式分析了matplotlib模塊中顏色值的相關使用操作技巧,需要的朋友可以參考下
    2019-01-01
  • Python基于smtplib協(xié)議實現(xiàn)發(fā)送郵件

    Python基于smtplib協(xié)議實現(xiàn)發(fā)送郵件

    這篇文章主要介紹了Python基于smtplib協(xié)議實現(xiàn)發(fā)送郵件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python垃圾郵件的邏輯回歸分類示例詳解

    Python垃圾郵件的邏輯回歸分類示例詳解

    這篇文章主要給大家介紹了關于Python垃圾郵件的邏輯回歸分類的相關資料,作為初學者實踐文本分類是一個不錯的開始,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • 在pycharm中輸入import torch報錯如何解決

    在pycharm中輸入import torch報錯如何解決

    這篇文章主要介紹了在pycharm中輸入import torch報錯如何解決問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論

陆良县| 白河县| 赣州市| 三门峡市| 格尔木市| 静宁县| 顺平县| 平度市| 万宁市| 富平县| 横峰县| 札达县| 龙里县| 深泽县| 灌南县| 白城市| 二连浩特市| 遂平县| 岳西县| 农安县| 华亭县| 鲁甸县| 南汇区| 阜城县| 车险| 左贡县| 泰安市| 卫辉市| 游戏| 绥德县| 瑞金市| 涿州市| 孟津县| 永年县| 西和县| 富平县| 清丰县| 嵊泗县| 石渠县| 巴青县| 青神县|