知識點:
1识埋、引入本地.py 文件
2绑嘹、讀取本地Excel文件
3糠馆、將測試結果寫入Excel文件
前言:在學習接口自動化測試的過程中,我發(fā)現(xiàn)公司的很多接口除了傳入的參數(shù)不一樣除嘹,很多代碼都是一樣的写半,為此我先想到的是寫公用的方法,但公用方法public寫好后尉咕,我發(fā)現(xiàn)還是有很多重復代碼叠蝇,比如,import引入的模塊和assert斷言等年缎,于是我就想能不能用一個Excel裝需要傳遞的參數(shù)悔捶,然后一個Excel用來接收接口執(zhí)行的結果铃慷,于是就有了這篇博客
# 這個文章是寫的公用方法,很多接口的測試除了參數(shù)不一樣其他的都是一樣的
import requests
import unittest
# 導入本地login_in.py和public.py文件
# login_in.py文件在D:/leawod/web_api/login-controller/
import sys
sys.path.append("D:/leawod/web_api/login-controller/")
import login_in
sys.path.append("D:/leawod/web_api/common/")
import public
# xlre是讀取本地Excel模塊炎功,xlwt是寫入Excel模塊
import xlrd
import xlwt
import openpyxl
from openpyxl import load_workbook
# 打開Excel文件web-parameter.xlsx
data = xlrd.open_workbook("web-parameter.xlsx")
# 通過名稱獲取
table = data.sheet_by_name(u'Sheet1')
# 獲取Excel行數(shù)
nrows = table.nrows
# print(nrows)
for i in range(1, nrows):
# 輸出第i行的值
result = table.row_values(i)
# print(result)
# result[0]輸出行的第一個列
interface = result[0]
#eval()方法枚冗,可將字典格式的字符串與字典互換
body1 = eval(result[1])
# public.public_fun:是public.py文件下的public_fun函數(shù)
# public.ip:是public.py文件下的ip變量
result = public.public_fun(body1, public.ip, interface)
if '成功' in result:
print("接口: "+interface+" 測試成功")
else:
print("接口: " + interface + " 測試失敗")
# print("失敗原因:" + result)
# 如果報錯將報錯的接口和原因寫入已存在的xlsx文件
wb = load_workbook("worry.xlsx") # 生成一個已存在的wookbook對象
wb1 = wb.active # 激活sheet
# 打開Excel文件worry.xlsx
w_data = xlrd.open_workbook("worry.xlsx")
# 通過名稱獲取
w_table = w_data.sheet_by_name(u'Sheet1')
# 獲取Excel行數(shù)
w_nrows = w_table.nrows
# print(w_nrows)
wb1.cell(w_nrows + 1, 1, interface)
wb1.cell(w_nrows + 1, 2, result)
w_nrows = w_nrows + 1
wb.save("worry.xlsx") #保存
運行結果:
接口: /college/queryPageList 測試成功
接口: /role/queryPageList 測試成功
接口: /knowCategory/queryPageList 測試成功
接口: /knowCategory/queryPageList2 測試失敗
接口: /knowCategory/queryPageList3 測試失敗
Excel接口文檔
image.png
報錯接口輸出文檔
image.png
注意:
1、在執(zhí)行.py文件時需要把用于接收報錯接口的Excel文件worry.xlsx關閉蛇损,不然要報錯
image.png
2赁温、在寫else分支,將報錯原因輸出至worry文件時淤齐,我定義的局部變量和全局變量data股囊、table重名了,也導致了報錯更啄,這個在后面的學習中還是要注意