Ranorex通过Python将报告发送到邮箱的方法

yipeiwu_com6年前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上编写脚本发送邮箱最方便。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python使用clear方法清除字典内全部数据实例

本文实例讲述了python使用clear方法清除字典内全部数据。分享给大家供大家参考。具体实现方法如下: d = {} d['name'] = 'Gumby' d['age'] =...

pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法

pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法

1:listWidget 以滚动窗口显示文件下的所有文件: self.listWidget = QtWidgets.QListWidget(self.gridLayout...

简单了解python gevent 协程使用及作用

简介 没有切换开销。因为子程序切换不是线程切换,而是由程序自身控制,没有线程切换的开销,因此执行效率高, 不需要锁机制。因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源...

基于DATAFRAME中元素的读取与修改方法

DATAFRAME中使用iat[1,0]和iloc[0,1]对元素进行修改。 a = [("hahaha",1),("lalala",2),("cacaca",6)] b = pad...

分享8点超级有用的Python编程建议(推荐)

分享8点超级有用的Python编程建议(推荐)

我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑总结出来的,现在在这里分享一下给大家,希望多少有些地方可以...