python实现自动发工资发邮件-Python实现测试报告自动发送邮件

最近公司web测试组正在使用selenium做自动化测试,顺手帮他们把测试结果自动发送邮件模块做了,分享给各位,希望大家喜欢~

先上图,无图无真相,思路流程如下:

492258_201508181754331Dj80.jpg

为啥要用阿帕奇,而不直接邮件直接发送报告内容呢?这不是脱了裤子放屁么。哎,一言难尽,鉴于本人python水平有限,在调试过程中遇到个各种各样的邮件格式报错,无法短时间内解决,只好采取笨办法,将报告放到阿帕奇下,邮件发送链接,虽然不那么直观,但是多点击一下鼠标貌似也不是太麻烦,哈哈,无耻的给自己找个借口。

具体实现代码如下(python实现):

# -*- coding:UTF-8 -*-

import HTMLTestRunner

import os,unittest,time

import smtplib,email,sys

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

from email.mime.image import MIMEImage

#将测试用例导入,此处为笔者的例子,各位不能直接用哦

from test_unittest_02 import SearchTests

from test_unittest_03 import HomePageTest

from test_unittest_04 import MainPageTest

from test_unittest_05 import RegisterNewUser

#得到系统时间,并拼凑成生成的报告名称,时间+字符串,不会生成重复名称

systime =

time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))

logname = "test_result"+systime+".html"

#通过1个循环,将各用例都装载到用例集中

all_lists =[SearchTests,HomePageTest,MainPageTest,RegisterNewUser]

x = []

for list in all_lists:

y =

unittest.TestLoader().loadTestsFromTestCase(list)

x.append(y)

smoke_tests = unittest.TestSuite(x)

#输出测试结果,我这里写到web服务的目录下,这样大家直接点链接就能打开

outfile =

open("/Library/WebServer/Documents/"+logname, "w")

#configure htmltestrunner options

runner =

HTMLTestRunner.HTMLTestRunner(stream=outfile,title='Test

Report',description='Smoke Tests')

#发送邮件模块

def sentmail(file_new):

#拼接邮件内容,放到1个数组中,如果有多个内容,可以通过数组的值控制发送哪个。

result_name =

["测试结果地址:

"+"http://172.16.148.159"+'/'+file_new]

#发信邮箱

mail_from="用来发邮件的邮箱地址"

#收信邮箱,这里需要用数组,可以有多个地址,用逗号隔开

mail_to=["收件人a的地址",”收件人b的地址”]

#定义正文

msg=MIMEText(result_name[0],_subtype='plain',_charset='utf-8')

#定义标题

msg['Subject']='web自动化测试报告'

smtp=smtplib.SMTP('smtp.office365.com',587)

smtp.ehlo()

smtp.starttls()

#用户名密码

smtp.login("发邮件用的邮箱地址","发邮件用的邮箱密码")

smtp.sendmail(mail_from,mail_to,msg.as_string())

smtp.quit()

#找到最新的测试报告,调用发邮件功能

def sendreport():

result_dir =

'/Library/WebServer/Documents/'

#将文件都放到一个数组中

lists=os.listdir(result_dir)

#将目录下的文件排序

lists.sort()

#找到最新生成的文件

file_new =

os.path.join(lists[-1])

#调用发邮件模块

sentmail(file_new)

if __name__ == "__main__":

#执行测试用例

runner.run(smoke_tests)

#执行发邮件

sendreport()

大家直接看注释吧,每部分实现什么功能,我都写的很清晰。

最后,希望大家喜欢~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值