Ranorex通过Python将报告发送到邮箱的方法
作者:Liuxm_0522 发布时间:2021-08-17 03:57:43
标签:Ranorex,Python,邮箱
Ranorex测试报告如何发送到邮箱在网上看了下,其实可以通过在Ranorex上或者VS调用编写发送邮箱代码就可以执行发送了,RX主要涉及到的开发语言是C++或者.NET。但是我想用Python调用并发送,涉及到的应用以及范围会比较麻烦。因此,希望有广大猿友能够给点意见指点一二。
首先将Ranorex测试解决方案在Pycharm打开。
然后新建一个文件夹用来放Python发送邮件的CODE。
'''发送给********@163.com'''
from email.mime.application import MIMEApplication
import smtplib
import os
def send_email(new_log):
'''
发送邮箱
:param new_log: 最新的报告
:return:
'''
file = open(new_log, 'rb')
mail_content = file.read()
file.close()
# 发送方用户信息
send_user = '********@qq.com'
send_password = '********'
# 发送和接收
sendUser = '********@qq.com'
receive = '********@163.com'
# 邮件内容
send_subject = 'Ranorex自动化测试报告'
msg = MIMEApplication(mail_content, 'rb')
msg['Subject'] = send_subject
msg.add_header('Content-Disposition', 'attachment', filename=new_log)
try:
# 登录服务器
smt = smtplib.SMTP('smtp.qq.com')
# helo 向服务器标识用户身份
smt.helo('smtp.qq.com')
# 服务器返回确认结果
smt.ehlo('smtp.qq.com')
smt.login(send_user, send_password)
print('正在准备发送邮件。')
smt.sendmail(sendUser, receive, msg.as_string())
smt.quit()
print('邮件发送成功。')
except Exception as e:
print('邮件发送失败:', e)
def new_report(report_dir):
'''
获取最新报告
:param report_dir: 报告文件路径
:return: file ---最新报告文件路径
'''
# 返回指定路径下的文件和文件夹列表。
lists = os.listdir(report_dir)
listLog = []
# print(lists)
for i in lists:
if os.path.splitext(i)[1] == '.rxlog':
# print(len(i))
# print(i)
listLog.append(i)
# print(listLog)
# print(listLog[-1])
fileNewLog = os.path.join(report_dir, listLog[-2])
return fileNewLog
if __name__ == '__main__':
# 报告路径
test_report = r'D:\学习笔记\Ranorex\Text\1105\text02\text02\Reports'
# 获取最新测试报告
newLog = new_report(test_report)
# 发送邮件报告
send_email(newLog)
运行后,邮件发送成功。
在Windows上,Ranorex报告打开后结果显示错误。
自己尝试在Ranorex解决方案中将一份报告复制粘贴到桌面上,打开也是以上图的错误,原因可能需要在Ranorex解决方案中的环境条件,所以即使发送了也没什么用处,只能提醒Ranorex解决方案已经运行结束。
最后还是在Ranorex上编写脚本发送邮箱最方便。
来源:https://blog.csdn.net/qq_39979646/article/details/103933737
0
投稿
猜你喜欢
- 本文实例讲述了JavaScript使用indexOf()实现数组去重的方法。分享给大家供大家参考,具体如下:数组去重方法有多中,这里列举出自
- 很久没写过东西了,今天看了chinahuman 的《用asp自动解析网页中的图片地址,并将其保存到本地服务器》,于是优化了这个程序,并且将所
- 用python实现五子棋简单人机模式的练习过程,供大家参考,具体内容如下第一次写博客,我尽力把它写好。最近在初学python,今天就用自己的
- 为了更好的理解这些基本操作,下面会通过读取一个股票数据,来进行Pandas基本数据操作的语法介绍。# 读取文件(读取保存文件后面会专门进行讲
- USE NBDXMIS CREATE proc TestTimeAnySentence @sql_where varchar(8000) a
- 在Python中我们主要是通过thread和threading这两个模块来实现的,其中Python的threading模块是对thread做
- 经常会在连接DB的时候用到,就是不知道代表什么意思。。。RS.OPEN SQL,CONN,A,BA: ADOPENFORWARDONLY(=
- Python 的虚拟环境用来创建一个相对独立的执行环境,尤其是一些依赖的三方包,最常见的如不同项目依赖同一个但是不同版本的三方包,而且,在虚
- xmlhttp,IE不支持overrideMimeType()方法,即使是IE7。 // Mozilla/Safari/
- 一、多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',
- MySQL 客户端连接成功后,通过 show [session|global]status 命令 可以提供服务器状态信息,也可以在操作系统上
- python中函数参数是引用传递(不是值传递)。对于不可变类型,因变量不能被修改,所以运算时不会影响到变量本身;而对于可变类型来说,函数体中
- Vue中内置了很多的指令,如v-model、v-show、v-html等,但是有时候这些指令并不能满足我们,或者说我们想为元素附加一些特别的
- PIL 图片操作读取图片img = Image.open(“a.jpg”)显示图片im.show() # im是Image对象,im是num
- 本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息。分享给大家供大家参考,具体如下:数据库存储爬取的信息(MySQL)爬取
- 背景:文件内容每一行是由N个单一数字组成的,每个数字之间由制表符区分,比如:0 4 3 1 2 2 1 0 3 1 2 0 ……现在需要将每
- 前言首先线程和线程池不管在哪个语言里面,理论都是通用的。对于开发来说,解决高并发问题离不开对多个线程处理。我们先从线程到线程池,从每个线程的
- 前言HI,好久不见,今天是关闭朋友圈的第60天,我是野蛮成长的AC-Asteroid。人生苦短,我用Python,通过短短两周时间自学,从基
- 通常的情况是,我们一般会载入一个模板文件,然后用 Context渲染它,最后返回这个处理好的HttpResponse对象给用户。 我们已经优
- 在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。这个表现十分像