现在写的脚本是web UI自动化,这个和接口自动化区别非常大,没法像接口那样请求、返回、校验结果,UI自动化,一个用例跑下来,是页面、页面、页面、完成,这样,但是还是想实现一种结果回填到excel中,看测试结果就直接看excel就可以了。
一、读写excel,代码都是通用的:
现在项目目录下添加一个excel文件,可以是这样:
from openpyxl import load_workbook
import openpyxl
import xlrd2,xlwt,xlrd
from xlutils.copy import copy
from test_script import *
import pytest
def write_result(row,col,result):
file = 'D:/XXXX/test_smartSystem_result.xls'
data = xlrd2.open_workbook(file) # 定义一个Excel文件的workbook对象
#print('data的类型为:', type(data))
data_copy = copy(data) # 获取data的copy对象
sheet_copy = data_copy.get_sheet(0) # 从data_copy对象中获取第一个sheet对象
sheet_copy.write(row, col, result) # 向sheet的某个单元格写入值
data_copy.save(file) # 写入完成后保存data的copy对象
if __name__ == '__main__':
二、在用例执行完后,把结果写入excel:
在断言结束的地方,添加把结果写入excel的方法,断言成功,结果就是pass,断言失败,结果就是false。当然你的断言方式和我的可能不一样,这都没影响,重要的是在断言结束的地方加上这个写入excel的方法。
执行结果:
三、发送excel测试报告邮件
扫描二维码关注公众号,回复:
14769279 查看本文章
这个发送邮件的方法也是固定的,代码直接复制用就可以:
之前写过一篇发送邮件的文章,里面【构造附件】的地方,直接替换成这里的【构造Excel附件】的内容就可以了。
# 构造excel附件
file_name = "test_result.xls"
file_path = os.path.join(
"D:\AutoProject\XXXX", "test_smartSystem_result.xls") #excel文件名
# 打开excel,读取Excel文件
xlsx = MIMEApplication(open(file_path, 'rb').read())
# 设置内容类型
xlsx["Content-Type"] = 'application/octet-stream'
xlsx.add_header('Content-Disposition', 'attachment', filename=file_name)
msg.attach(xlsx)
以上谢谢,感觉自己的方法也是相当笨拙的,学习之后再来补充!