“ 介面自動化測驗是指通過撰寫代碼或使用工具,模擬用戶發送請求,驗證介面是否符合設計規范和功能需求的程序,”
如何用 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_workbook
from openpyxl.worksheet.worksheet import Worksheet
class 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 = https://www.cnblogs.com/Nephalem-262667641/archive/2023/06/07/[]
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 requests
class HTTPHandler:
# 初始化
def __init__(self):
self.session = requests.Session()
# 定義一個方法,接收訪問http請求的方式
def visit(self, url, method, params=None, data=https://www.cnblogs.com/Nephalem-262667641/archive/2023/06/07/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 ExcelHandler
from Lib.requests_handler import HTTPHandler
import requests
import ddt
import unittest
data = https://www.cnblogs.com/Nephalem-262667641/archive/2023/06/07/ExcelHandler('test_datas/test_data.xlsx').read_key_value('Sheet1')
@ddt.ddt
class 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 = https://www.cnblogs.com/Nephalem-262667641/archive/2023/06/07/result['name']
# 斷言回應結果是否符合預期
self.assertEqual(expct_res1, response_data)
@classmethod
def tearDownClass(cls):
cls.s.close_session()
2. 生成測驗報告
我們需要使用 HTMLTestRunner_api 來生成 HTML 格式的測驗報告,具體步驟如下:
-
匯入相關庫和模塊
-
定義一個測驗套件,添加測驗用例
-
定義一個測驗報告的檔案名和路徑
-
定義一個測驗運行器,傳入測驗報告的檔案物件和相關引數
-
使用測驗運行器來運行測驗套件
我們可以將這些代碼保存為 run.py,并放在專案的根目錄下,具體代碼如下:
import unittest
from HTMLTestRunner_api import HTMLTestRunner
from 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
本文來自博客園,作者:奈非天,轉載請注明原文鏈接:https://www.cnblogs.com/Nephalem-262667641/p/17463255.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554579.html
標籤:其他
上一篇:位元組技術面都過了,薪資都談好了20K*13結果還是被刷了,問HR,原因是。。
下一篇:返回列表
