實現(xiàn)功能
- 讀取excel,從excel中獲取入?yún)ⅰ㈩A期結(jié)果
- 調(diào)用post接口,獲得接口返回(json格式)
- 比較預期結(jié)果吉挣、實際結(jié)果
- 將比較結(jié)果回寫excel,并設置失敗案例的單元格顏色為紅色
excel數(shù)據(jù)格式
excel數(shù)據(jù)格式
代碼實現(xiàn)
import xlrd
from xlutils.copy import copy
import requests
import json
import xlwt
# 結(jié)果比較
def compareObj(expected, actual):
if expected != None:
if actual != None:
for key in expected:
if key not in actual:
return '預期結(jié)果key %s不在實際結(jié)果中'%(key)
else:
expected_value = expected[key]
actual_value=actual[key]
if expected_value == actual_value:
continue
else:
return 'key值%s:預期結(jié)果%s和實際結(jié)果%s不相等'%(key,expected_value,actual_value)
else:
return '實際結(jié)果為空'
else:
return '預期結(jié)果為空'
return True
url= 'http://localhost:1080/test'
file_name = 'D:\\test.xls'
data = xlrd.open_workbook(file_name)
sheet=data.sheets()[0]
wb=copy(data)
ws=wb.get_sheet(0)
for i in range(1,37):
params = sheet.cell(i,1).value
#print(params)
header = {"Content-Type":"application/json"}
res = requests.post(url = url,headers = header,data = params)
actual = res.json()["obj"]
expected = json.loads(sheet.cell(i,2).value)
result = compareObj(expected,actual)
#print(result)
style = xlwt.easyxf('pattern: pattern solid, fore_colour red')# 設置運行失敗的單元格顏色
if result != True:
ws.write(i, 3, result,style)
else:
ws.write(i, 3, result)
for i in range(4):
ws.col(i).width = 256 * 50 #設置單元格寬度
wb.save(file_name)
運行結(jié)果
運行結(jié)果