pytest+UI自动化测试结果回填到excel并发送excel测试报告邮件

现在写的脚本是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测试报告邮件

这个发送邮件的方法也是固定的,代码直接复制用就可以:

之前写过一篇发送邮件的文章,里面【构造附件】的地方,直接替换成这里的【构造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)

以上谢谢,感觉自己的方法也是相当笨拙的,学习之后再来补充!

猜你喜欢

转载自blog.csdn.net/qsmy_an/article/details/126761192