当前位置:网站首页>软件测试开发:发送第一封测试报告邮件
软件测试开发:发送第一封测试报告邮件
2022-07-30 05:48:00 【阿里测试开发】
下面我们就实现一发最简单的邮件通知功能。
结果展示

申请邮箱
我的邮箱很宝贵,大家别用。可以申请126或者163的邮箱,然后开启POP3/SMTP协议即可。
一般在邮箱->设置里面,看到POP3/SMTP点进去会有指引。
因为直接用密码是不可以的。
编写Notification通知类
这个通知类其实是个虚假的类,也是个抽象类。因为通知的方式有很多种,包括邮件、短信、钉钉、企业微信、飞书等等。所以我们就给他一个空壳,而到具体的邮件啥的时候再实现具体的方法。

统一接受subject(主题/标题),content(内容),attachment(附件,邮件用的多),接收人。
编写通过userId批量获取邮箱的方法
由于我们在测试计划的receiver字段里面存储的都是用户id,所以我们需要来次转换:

有没有发现一个问题,当这个user不固定(测试计划的接收人肯定不会一直固定),如果我们给他套上cache的方法,也就是要给他一个死key,那么其他测试计划执行的时候,就会取到死key的数据,这就不合理了!!!
所以我们之前编写的cache针对固定参数的好使,这种可变参数(参数变了,结果也变了)的就不好使了,因为你的key要跟着它走。
这就是我上面说到的缺点
编写Email类
import yagmail
from app.core.configuration import SystemConfiguration
from app.core.msg.notification import Notification
class Email(Notification):
@staticmethod
def get_mail_client():
configuration = SystemConfiguration.get_config()
data = configuration.get("email")
return yagmail.SMTP(user=data.get("sender"), password=data.get("password"), host=data.get("host"))
@staticmethod
def send_msg(subject, content, attachment=None, *receiver):
client = Email.get_mail_client()
client.send(receiver, subject=subject, contents=content, attachments=attachment)
先从配置里面拿到数据,接着调用yagmail库,获取mail客户端,最后根据传入的主题、邮件内容等信息发送邮件。
补全测试计划通知部分

先获取消息类型,如果有邮件类型,我们就获取用户邮箱。然后调用send_msg方法。
但这边有个很严重的问题,我们只能拿到测试计划的信息,没有拿到测试报告的详细数据。
这样报告连对错都不知道,我们先写死一个标题和内容。
接着运行测试计划,最终效果就如同文章开头咯。于是我赶紧删掉了这个该死的测试计划。
所以后面我们还是得好好完善邮件的内容呀,这块内容工作量比较大,我们可能不会做到完善,能放一个测试结果+测试报告链接可能是我们需要注意的方向。
边栏推荐
猜你喜欢

GAIA-IR: Parallelized Graph Query Engine on GraphScope

基于 JupyterLab 插件在 GraphScope 中交互式构图

how to use xilinx's FFT ip

图扑数字孪生青岛城轨,赋能智慧交通低碳发展

藏不住了,我要揭露云原生的那些不好

Vineyard: An open source distributed in-memory data management framework

js advanced study notes (detailed)

测试开发工程师成长日记016 - 关于提测的那些事

About memcache kernel, so one of the most popular

PC DBCO-PEG3-Biotin|PC-生物素-PEG3-DBCO可用于使用无铜点击化学
随机推荐
测开基础知识02
Mastering JESD204B (3) – Debugging of AD6676
OP tokens and non-transferable NFTs work to build a new digital democracy
Application of graph computing in network security analysis
替换xxx.jar的class文件命令
Azide-SS-biotin|CAS:1620523-64-9|生物素-二硫键-叠氮可降解 (cleavable) 的 ADC linke
比尔·盖茨买百万亩农地成美“头号地主”,图扑数字孪生农场
The Force Plan Microservices | Centralized Configuration Center Config Asymmetric Encryption and Security Management
Biotinyl Cystamine_CAS:128915-82-2_生物素半胱胺
二、1稀疏sparsearray数组
Biotin-C6-amine_N-生物素基-1,6-己二胺_CAS:65953-56-2_100mg
Biotin-PEG4-SS-Alkyne_1260247-54-8_生物素-PEG4-SS-炔烃
ParseException line 8:13 mismatched input ‘(‘ expecting ) near ‘int‘ in create table statement
Desthiobiotin-PEG4-Acid|脱硫生物素-PEG4-酸| 供应商和制造商
如何使用xilinx的FFT ip
DADPS-生物素-炔基_CAS:2241685-22-1试剂反应原理
How to save modelsim simulation data as a file
Unity Shader标准光照模型——高光反射
图扑软件数字孪生民航飞联网,构建智慧民航新业态
图扑数字孪生北京故宫,推进旅游业元宇宙进程