当前位置: 首页 > news >正文

大数据比赛网站建设/台州seo网站排名优化

大数据比赛网站建设,台州seo网站排名优化,广告企业网站模板,泰安手机网站建设在接口平台中,原本测试报告是通过微信的方式发给公司企业号进行广播通知。但是,现在由于其他子公司的使用,企业号设置相对繁琐,现计划增加邮件通知的功能 首先得支持邮件发送,Python3 SMTP发送邮件网上有数不清的栗子…

在接口平台中,原本测试报告是通过微信的方式发给公司企业号进行广播通知。但是,现在由于其他子公司的使用,企业号设置相对繁琐,现计划增加邮件通知的功能
在这里插入图片描述
首先得支持邮件发送,Python3 SMTP发送邮件网上有数不清的栗子

#!/usr/bin/python3import smtplib
from email.mime.text import MIMEText
from email.header import Headersender = 'from@runoob.com'
receivers = ['429240967@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("菜鸟教程", 'utf-8')     # 发送者
message['To'] =  Header("测试", 'utf-8')          # 接收者subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, message.as_string())print ("邮件发送成功")
except smtplib.SMTPException:print ("Error: 无法发送邮件")

一开始对于s.sendmail(MAIL_USER, receivers, msgRoot.as_string()) 中的 receiversmsgRoot['To'] 中的收件人有些误解,以为两者一致,导致浪费了一些时间
调试修改一番就可达到预期的需求,代码是最好的文档

import smtplib
import traceback
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from config.setting import *def send_text(title, receivers, mail_msg):"""发送邮件:param title: 邮件名称:param receivers: 接收者 [a,b,c]:param mail_msg: 邮件内容:return:"""msgRoot = MIMEMultipart('related')msgAlternative = MIMEMultipart('alternative')# 标题信息msgRoot['Subject'] = Header(title, 'utf-8')# 发送人msgRoot['From'] = Header(SENDER, 'utf-8')# 接收人msgRoot['To'] = ','.join(receivers)msgRoot.attach(msgAlternative)msgAlternative.attach(MIMEText(mail_msg, 'html', 'utf-8'))try:s = smtplib.SMTP(SERVER, PORT)s.login(MAIL_USER, MAIL_PWD)s.sendmail(MAIL_USER, receivers, msgRoot.as_string())except Exception as e:traceback.print_exc(e)finally:s.quit()

重点来了。如何在邮件中优雅的呈现具体的信息呢

一开始一行行的敲html页面,发现太艰辛了,网上找找是否有测试报告模板吧

GOOD!找到一个还看的过去的测试报告和源码

在这里插入图片描述
直接修改代码发送邮件。发现两个问题,一个是详细的用例执行信息可以在swapi接口平台中展示即可,一个是css样式在邮件中并没有显示

在这里插入图片描述

这么挫不能忍啊

将css对应的代码直接复制到邮件信息中,然后调整布局,得到一下邮件报告

在这里插入图片描述
最后,贴上修改后的html

html_template = """
<?xml version="1.0" encoding="UTF-8"?>
<html><head><title>接口测试报告</title><meta name="generator" content="HTMLTestRunner 0.8.2.2" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css" media="screen"></style><style type="text/css">.nav {{padding-left: 0;margin-bottom: 0;list-style: none;}}.nav:before,.nav:after {{display: table;content: " ";}}.nav:after {{clear: both;}}.nav:before,.nav:after {{display: table;content: " ";}}.nav:after {{clear: both;}}.nav > li {{position: relative;display: block;}}.nav > li > a {{position: relative;display: block;padding: 10px 15px;}}.nav > li > a:hover,.nav > li > a:focus {{text-decoration: none;background-color: #eeeeee;}}.nav > li.disabled > a {{color: #999999;}}.nav > li.disabled > a:hover,.nav > li.disabled > a:focus {{color: #999999;text-decoration: none;cursor: not-allowed;background-color: transparent;}}.nav .open > a,.nav .open > a:hover,.nav .open > a:focus {{background-color: #eeeeee;border-color: #428bca;}}.nav .nav-divider {{height: 1px;margin: 9px 0;overflow: hidden;background-color: #e5e5e5;}}.nav > li > a > img {{max-width: none;}}.nav-tabs {{border-bottom: 1px solid #dddddd;}}.nav-tabs > li {{float: left;margin-bottom: -1px;}}.nav-tabs > li > a {{margin-right: 2px;line-height: 1.428571429;border: 1px solid transparent;border-radius: 4px 4px 0 0;}}.nav-tabs > li > a:hover {{border-color: #eeeeee #eeeeee #dddddd;}}.nav-tabs > li.active > a,.nav-tabs > li.active > a:hover,.nav-tabs > li.active > a:focus {{color: #555555;cursor: default;background-color: #ffffff;border: 1px solid #dddddd;border-bottom-color: transparent;}}.nav-tabs.nav-justified {{width: 100%;border-bottom: 0;}}.nav-tabs.nav-justified > li {{float: none;}}.nav-tabs.nav-justified > li > a {{margin-bottom: 5px;text-align: center;}}.nav-tabs.nav-justified > .dropdown .dropdown-menu {{top: auto;left: auto;}}@media (min-width: 768px) {{.nav-tabs.nav-justified > li {{display: table-cell;width: 1%;}}.nav-tabs.nav-justified > li > a {{margin-bottom: 0;}}}}.nav-tabs.nav-justified > li > a {{margin-right: 0;border-radius: 4px;}}.nav-tabs.nav-justified > .active > a,.nav-tabs.nav-justified > .active > a:hover,.nav-tabs.nav-justified > .active > a:focus {{border: 1px solid #dddddd;}}@media (min-width: 768px) {{.nav-tabs.nav-justified > li > a {{border-bottom: 1px solid #dddddd;border-radius: 4px 4px 0 0;}}.nav-tabs.nav-justified > .active > a,.nav-tabs.nav-justified > .active > a:hover,.nav-tabs.nav-justified > .active > a:focus {{border-bottom-color: #ffffff;}}}}</style></head><body><div class="container-fluid"><div class="page-header"><h2 class="text-primary" style="font-size:45px;line-height:75px;text-align:center">{plan_name}(v{version} 测试报告)</h2><a href = {report_href}  style="display: block; text-align: center; margin-left: 200px">测试报告详情链接(公司内网访问)</a></div><div><div class="tabbable" id="tabs-957640" style="display:flex; justify-content: center"><ul class="nav nav-tabs"><li class="active"><a href="#panel-0" data-toggle="tab" style="Background-Color: #428bca; color: #fff;">用例数 ({case_num})</a></li><li><a href="#panel-1" data-toggle="tab" style="Background-Color: #5cb85c; color: #fff;">成  功 ({case_pass_num})</a></li><li><a href="#panel-2" data-toggle="tab" style="Background-Color: #d9534f; color: #fff;">失  败 ({case_fail_num})</a></li><li><a href="#panel-3" data-toggle="tab" style="Background-Color: #5bc0de; color: #fff;">通过率 ({passing_rate}%)</a></li></ul></div><div style="display:flex; justify-content: center; margin-top:20px"><div class="col-md-4" style="Background-Color:#F5F5F5; "><h3 style="line-height:25px">&emsp;测试报告概要信息</h3><table class="table table-hover table-bordered" style="width:100%; height:11px"><tbody><tr class="info"><td class="text-center">&emsp;项&emsp;&emsp;目:&emsp;</td><td class="text-center">{project_name}</td></tr><tr class="info"><td class="text-center">&emsp;计&emsp;&emsp;划:&emsp;</td><td class="text-center">{plan_name}</td></tr><tr class="info"><td class="text-center">&emsp;执行版本:&emsp;</td><td class="text-center">v{version}</td></tr><tr class="info"><td class="text-center">&emsp;运行环境:&emsp;</td><td class="text-center">{env_name}</td></tr><tr class="info"><td class="text-center">&emsp;开始时间:&emsp;</td><td class="text-center">{start_time}&emsp;</td></tr><tr class="info"><td class="text-center">&emsp;测试时长:&emsp;</td><td class="text-center">{elapsed}s</td></tr><tr class="info"><td class="text-center">&emsp;总用例数:&emsp;</td><td class="text-center">{case_num}</td></tr><tr class="info"><td class="text-center">&emsp;通&nbsp;&nbsp;过&nbsp;率:&emsp;</td><td class="text-center">{passing_rate}%</td></tr></tbody></table></div></div></div></div></body>
</html>
"""

其实在调用的时候又遇到了一个问题,使用变量%s的方式的时候,发现html中有一大批%,可以将%替换成%%
还有一种方式,str.format() 的方式,但是,html中出现{} 时又被误判
最后选择将html原本的 { 替换成 {{} 替换成 }},变量使用 {case_num} 这样的方式

具体调用

        # 邮件提示测试报告内容mail_content = html_template.format(project_name=project_name,plan_name=plan_name,version=plan_version,env_name=env_name,start_time=start_time,elapsed=plan_elapsed,case_num=case_num,passing_rate=passing_rate,case_pass_num=case_pass,case_fail_num=case_fail,case_error_num=case_error,report_href=report_href)
http://www.lbrq.cn/news/1428589.html

相关文章:

  • 网站发帖推广平台/公司网站设计模板
  • php网站怎么做/seo排名助手
  • 网络规划设计师试题/百度网站排名关键词整站优化
  • 做游戏的av迅雷下载网站有哪些/成人大学报名官网入口
  • 网站建设的流程分析/公司网站推广运营
  • aspcms自适应网站/查域名ip地址查询
  • 免费域名如何建站/手机网站模板下载
  • 做瞹瞹瞹视频免费网站/百度推广的定义
  • 深圳公司网站开发/百度网页版入口链接
  • 自己做彩票网站吗/网站seo推广方案
  • 绍兴公司网站建设 中企动力绍兴/seo哪里可以学
  • 溧阳做网站价格/ip域名解析查询
  • 营销型网站套餐/seo蜘蛛池
  • 我做外贸要开国际网站吗/app软件开发
  • 广告营销图片/佛山网站优化软件
  • 具体的网站建设方案/小广告设计
  • wordpress火车采集/seo优化信
  • 找手工活做注册网站/推广放单平台
  • 最新wordpress新建首页/神马seo教程
  • 做网站谁家好/搜索引擎优化简历
  • 美国服务器购买网站/关键词优化公司排名榜
  • 长沙有名的公司/百合seo培训
  • b站户外打野/整合营销推广
  • 途牛网站建设方案/线上it培训机构
  • 仿做网站可以整站下载器吧/郑州seo教程
  • 政府类型网站/济南seo外贸网站建设
  • 数字媒体技术移动互联网开发/天桥区seo全网宣传
  • 胶州网站建设电话/怎么关闭seo综合查询
  • 做java面试题网站/专门看广告的网站
  • wordpress 电商网站/重庆百度整站优化
  • Xget:为您的开发工作流解锁极致速度
  • 20250815在荣品RD-RK3588-MID开发板的Android13下调通TP芯片FT8206
  • 链路聚合与软件网桥配置
  • Baumer高防护相机如何通过YoloV8深度学习模型实现驾驶员疲劳的检测识别(C#代码UI界面版)
  • nflsoi 8.14 题解
  • B站 韩顺平 笔记 (Day 18)