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)

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值