微信小程序自动化测试-----发送测试报告邮件

发送邮件的代码:以QQ邮箱为例
1:我这里做了数据的提取,单独用email_data文件存在测试数据
2:在send_email中导入email_data包,然后直接调用测试数据。
3:所有的代码都没有导入包,自己记得加噢。根据自己实际的目录。
send_email文件如下

#发送邮件,发送测试报告html
def send_email(newfile):
    f = open(newfile, 'rb')
    mail_body = f.read()
    f.close()
    today = time.strftime('%Y-%m-%d')
    smtpserver=email_data.qq_email["smtpserver"]
    user=email_data.qq_email["user"]
    password=email_data.qq_email["password"]
    sender=email_data.qq_email["sender"]
    receiver=email_data.qq_email["receiver"]

    # 发送邮件主题
    subject = 'XXX小程序自动化测试报告%s'%today
    msg = MIMEMultipart('mixed')
    msg_html1 = MIMEText(mail_body, 'html', 'utf-8')
    msg.attach(msg_html1)
    msg_html = MIMEText(mail_body, 'html', 'utf-8')
    msg_html["Content-Disposition"] = 'attachment; filename="TestReport.html"'
    msg.attach(msg_html)
    msg['From'] =sender
    #先判断接收方的个数
    if len(receiver)==1 :
        msg['To']=receiver[0]
    else:
        msg['To'] = ";".join(receiver)
    # msg['To'] = ";".join(receiver)
    msg['Subject'] = Header(subject, 'utf-8')
    # 连接发送邮件
    smtp = smtplib.SMTP()
    smtp.connect(smtpserver, 25)
    smtp.login(user, password)
    smtp.sendmail(sender, receiver, msg.as_string())
    smtp.quit()

email_data文件内容如下:

qq_email = {
    "smtpserver":"smtp.qq.com",
    "user":"[email protected]",
    "password":"XXXXXX",       # 密码是授权码,而不是邮箱密码。授权码的获取方式,QQ邮箱设置,账号,pop3/stmp服务开启即可获取
    "sender":"[email protected]",
    "receiver":["[email protected]","[email protected]"]
}

main测试主入口,先执行了用例,最后调用send_email,建议main主入口和result.html直接放根目录下

if __name__ == '__main__':
    case_dir = './TestCase'     #	取测试用例的相对路径,这样便于直接使用
    discover = unittest.defaultTestLoader.discover(case_dir, pattern='test_*.py')
    result=result()
    runner=result[0]
    runner.run(discover)
    result[1].close()
    send_email('result.html')

好啦,搭配上一篇写的生成html测试报告,就完成了在用例执行完,自动发送测试报告邮件咯。记住这里的所有测试用例名是以test_*方式噢,因为unittest框架通过这种来识别用例并执行。

猜你喜欢

转载自blog.csdn.net/weixin_43574761/article/details/84589550