执行前文件:
封装的读写方法:
import os
from xlutils.copy import copy
import xlrd
def reader(file):
#指定文件所在路径
base_path=os.getcwd() # 代表当前文件所在路径
# 置换成excel文件所在路径
path=base_path.replace(base_path,r"E:\DDT\data\\"+file)
#打开excel文件
excel=xlrd.open_workbook(path)
#读取第一个sheet页面
sheet=excel.sheets()[0]
list= []
#读取行
for i in range(1,sheet.nrows):
row=[]
#读取列
for j in range(0,sheet.ncols):
row.append(sheet.cell(i,j).value)
list.append(row)
return list
def writer(file,i,j,value):
# 指定文件所在路径
base_path=os.getcwd() # 代表当前文件所在路径
# 置换成excel文件所在路径
path=base_path.replace(base_path, r"E:\DDT\data\\"+file)
# 打开excel文件
excel=xlrd.open_workbook(path)
#因为同一个文件不能同时又读又写,这里先拷贝出这个文件,改好了再覆盖原文件
new_excel=copy(excel)
#获取第一个sheet页
sheet=new_excel.get_sheet(0)
#写入内容
sheet.write(i,j,value)
#覆盖原来的文件
new_excel.save(path)
测试方法:
import requests
import unittest
import ddt
from reader.excelfile import reader
from reader.excelfile import writer
@ddt.ddt()
class TestGetAccessToken(unittest.TestCase):
table=reader("data.xlsx")
@ddt.data(*table)
@ddt.unpack #把excel中每一列数据拆开
def test_access_token(self,id,title,grant_type,appid,secret,exresult,result,response_text):
data={"grant_type":grant_type,
"appid":appid,
"secret":secret}
url="https://api.weixin.qq.com/cgi-bin/token"
response=requests.get(url,params=data)
print(response.text)
try:
self.assertEqual(int(exresult), response.json()['errcode'])
writer("data.xlsx",int(id),6,'PASS')
except AssertionError as e:
writer("data.xlsx",int(id),6,'FAIL')
finally:
writer("data.xlsx",int(id),7,response.text)
if __name__ == '__main__':
unittest.main()
运行结果:
执行后文件: