全网最全面,python自动化测试持续邮件集成,一步步详解......

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

大家在做python自动化的时候,都有这么一个需求,希望自动将测试报告发送到邮箱,关于实现自动发送邮件,我们可以采用jenkins来实现,同样也可以通过python来实现。

web自动化测试:https://www.bilibili.com/video/BV1MS4y1W79K/

其实也很简单,通过python中smtp和email的官方库,就可以完成发送邮件这件事情。发送邮件需要使用到smtp服务,如果公司没有可以使用第三方邮箱的smtp服务,如qq,163等,当时用qq或163时需要提起开启邮箱的smtp服务。

开启邮箱SMTP服务
刚刚说到发送邮件需要使用SMTP服务器,常用的免费服务器有:163、126、QQ,接下来以163邮箱为例给大家将一下如何开启smtp服务,注意开启过程中设置的授权码非常重要,是用来登录smtp服务器的,一定要记住。

注册163邮箱,登录后设置。

请添加图片描述

在新页面中点击“客户端授权密码”,勾选“开启”,弹出新窗口填写手机验证码。

请添加图片描述

填写授权码

请添加图片描述

提示开启成功

请添加图片描述

使用python发送邮件

python发送邮件需要使用smtplib email这两个官方库。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

发送普通的邮件
实现步骤:
第一步:创建一个SMTP的对象,连接到SMTP服务器

# 163邮箱的smtp服务器地址为:smtp.163.com,端口为:25
s = smtplib.SMTP("smtp.163.com" , 25)

第二步:登录SMTP服务器

mail_user = "邮箱账号"  # 用户名
mail_pass = "授权码"  # 密码
smtp.login(mail_user, mail_pass)

第三步::构建邮件内容

# 构建邮件内容
content = '本次测试通过率为88%'


# 主题:
Subject = "2023/3/21测试报告"
# 发件人
From = 'xxxxxx6@163.com'
# 收件人
To = "测试人员"


# 创建一个邮件
message = MIMEText(content, 'plain', 'utf-8')
# 添加邮件主题
message['Subject'] = Header(Subject, 'utf-8')
# 添加发件人
message['From'] = From
# 添加收件人
message['To'] = To

第五步:发送邮件

# 发送邮件
smtp.send_message(msg=msg,from_addr="收件人邮箱地址",to_addrs="收件人邮箱地址")

一封普通的邮件发送步骤如上所示,但是邮件如果要带附件呢,比如将测试报告作为附件进行发送。应该怎么发送?代码为大家整理好了,参考如下:

发送带附件的邮件

带附件的邮件,完整代码如下

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart

# 第一步: 连接到smtp服务器
smtp = smtplib.SMTP_SSL(host='smtp.163.com',port=465)

# 第二步:登录smtp服务器
smtp.login(user='邮箱账号',password='授权码')

# 第三步构建一封带附件的邮件
# 创建一封多组件的邮件
msg = MIMEMultipart()
# 添加发件人
msg['From'] = "xxxxx@163.com"
# 添加收件人
msg['To'] =  "xxx<xxxxx@qq.com>"
# 添加主题
msg['Subject'] = Header("带附件的测试邮件",charset='utf8')
# 添加邮件文本内容
# 创建邮件文件内容对象
text_content = MIMEText("这封邮件是用来测试发送是否成功的,邮件中添加了测试报告的附件",_charset='utf8')
# 把邮件的文本内容,添加到多组件的邮件中
msg.attach(text_content)

# 添加附件
f_msg = open('报告文件','rb').read()
app = MIMEApplication(f_msg)
app.add_header('content-disposition', 'attachment', filename='python.html')
msg.attach(app)

# 发送邮件
smtp.send_message(msg=msg,from_addr="发件人邮箱地址",to_addrs="收件人邮箱地址")

大家只需要对上述代码进行一下封装就可以应该到我们自动化项目中了,当自动化脚本执完之后,调用发送邮件的方法,将报告作为附件发送出去。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不管什么样的打击和失败降临,一个真正坚强的人都能够从容应对,做到临危不乱。当暴风雨来临,软弱的人屈服了,而真正坚强的人镇定自若,胸有成竹。

生于忧患,死于安乐。如果你想跨越自己目前的成就,就不能画地自限,而是要勇于接受挑战。对畏畏缩缩的人来说,真正的危险正在于不敢冒险!

击败不等于击倒,跌倒了,爬起来,想一想,为什么跌倒了,然后继续努力,把让自己跌倒的石头搬掉或绕过去,不就解决问题了吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/2281.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python_requests学习笔记(六)】基于requests模块构建免费代理IP池

基于requests模块构建免费代理IP池 前言 此篇文章中介绍如何使用requests模块&#xff0c;抓取免费代理IP&#xff0c;创建免费的代理IP池。 正文 1、需求梳理 构建免费代理IP池&#xff1a;抓取快代理 免费高匿代理&#xff0c;并测试是否可用&#xff0c;建立免费代理IP…

【STL四】序列容器——vector容器

【STL容器】序列容器——vector容器一、简介二、头文件三、模板类四、成员函数1、迭代器2、元素访问3、容量4、修改操作五、demo1、容量reserve、capacity、shrink_to_fit2、修改操作pop_back()、push_back3、修改操作insert()4、修改操作emplace()5、修改操作erase()、swap()、…

【2023.3.18 美团校招】

文章目录1. 小美剪彩带2. 最多修改两个字符&#xff0c;生成字典序最小的回文串1. 小美剪彩带 题意&#xff1a;找出区间内不超过k种数字子数组的最大长度 使用双指针的方式&#xff0c;用哈希表来统计每个数出现次数。在双指针移动的过程中&#xff0c;动态的维护区间内不同数…

微前端(无界)

前言&#xff1a;微前端已经是一个非常成熟的领域了&#xff0c;但开发者不管采用哪个现有方案&#xff0c;在适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户核心诉求都或存在问题&#xff0c;或无法提供支持。本…

Selenium基础篇之不打开浏览器运行

文章目录前言一、场景二、设计1.引入库2.引入浏览器配置3.设置无头模式4.启动浏览器实例&#xff0c;添加配置信息5.访问质量分地址6.隐式等待5秒7.定位到输入框8.输入博文地址9.定位到查询按钮10.点击查询按钮11.定位到查询结果模块div12.打印结果13.结束webdriver进程三、结果…

第十四届蓝桥杯三月真题刷题训练——第 19 天

第 1 题&#xff1a;灌溉_BFS板子题 题目描述 小蓝负责花园的灌溉工作。 花园可以看成一个 n 行 m 列的方格图形。中间有一部分位置上安装有出水管。 小蓝可以控制一个按钮同时打开所有的出水管&#xff0c;打开时&#xff0c;有出水管的位置可以被认为已经灌溉好。 每经过一分…

推荐 5 个好玩的 ChatGPT 开源应用

推荐 5 个基于 ChatGPT 的开源应用&#xff1a;基于强大的 GPT 大模型能力&#xff0c;看能开出什么好玩有趣实用的应用。本期推荐开源项目目录&#xff1a;1. 基于 OpenAI 的翻译应用2. 让 ChatGPT 支持图片3. 你的 AI 助手4. 可以与 ChatGPT 联动的智能音箱5. ChatGPT 快捷键…

vue3自定义svg图标组件

可参考&#xff1a; 未来必热&#xff1a;SVG Sprites技术介绍 懒人神器&#xff1a;svg-sprite-loader实现自己的Icon组件 在Vue3项目中使用svg-sprite-loader 前置知识 在页面中&#xff0c;虽然可以通过如下的方式使用img标签&#xff0c;来引入svg图标。但是&#xff0c;…

8个不能错过的程序员必备网站,惊艳到我了!!!

程序员是一个需要不断学习的职业&#xff0c;不少朋友每天来逛CSDN、掘金等网站&#xff0c;但一直都抱着“收藏从未停止&#xff0c;学习从未开始”的态度&#xff0c;别骗自己了兄弟。在编程体系中&#xff0c;有很多不错的小工具&#xff0c;可以极大得提升我们的开发效率。…

【技巧】十大深度学习技巧和经验总结

✅作者简介&#xff1a;在读博士&#xff0c;伪程序媛&#xff0c;人工智能领域学习者&#xff0c;深耕机器学习&#xff0c;交叉学科实践者&#xff0c;周更前沿文章解读&#xff0c;提供科研小工具&#xff0c;分享科研经验&#xff0c;欢迎交流&#xff01;&#x1f4cc;个人…

【进阶数据结构】平衡搜索二叉树 —— AVL树

&#x1f308;感谢阅读East-sunrise学习分享——[进阶数据结构]AVL树 博主水平有限&#xff0c;如有差错&#xff0c;欢迎斧正&#x1f64f;感谢有你 码字不易&#xff0c;若有收获&#xff0c;期待你的点赞关注&#x1f499;我们一起进步&#x1f680; &#x1f308;我们上一篇…

DRAM功能介绍与基础概念

目录 ROM与RAM DRAM定义与形态 DRAM存储单元 DRAM架构和工作流程 存储器是计算机系统中的记忆设备&#xff0c;用来存储程序和各种数据信息&#xff0c;存储器的存储介质主要采用半导体器件和磁性材料。接下来简单介绍存储器的主要分类。 按存储介质可以分类为半导体存储器…

Android Navigation的四大要点你都知道吗?

在JetPack中有一个组件是Navigation&#xff0c;顾名思义它是一个页面导航组件&#xff0c;相对于其他的第三方导航&#xff0c;不同的是它是专门为Fragment的页面管理所设计的。它对于单个Activity的App来说非常有用&#xff0c;因为以一个Activity为架构的App页面的呈现都是通…

操作系统(2.4.5)--管程机制

1.管程的定义 利用共享数据结构抽象地表示系统中的共享资源&#xff0c;而把对该共享数据结构实施的操作定义为一组过程进程对共享资源的申请、释放和其它操作&#xff0c;都是通过这组过程对共享数据结构的操作来实现的&#xff0c;这组过程还可以根据资源的情况&#xff0c;或…

【C语言】你真的了解结构体吗

引言✨我们知道C语言中存在着整形(int、short...)&#xff0c;字符型(char)&#xff0c;浮点型(float、double)等等内置类型&#xff0c;但是有时候&#xff0c;这些内置类型并不能解决我们的需求&#xff0c;因为我们无法用这些单一的内置类型来描述一些复杂的对象&#xff0c…

linux系统运维面试题大全(137道题)

linux系统运维面试题大全 1、 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数&#xff1f; 查看物理cup&#xff1a; cat /proc/cpuinfo|grep -c ‘physical id’ 查看每颗cup核数 cat /proc/cpuinfo|grep -c ‘processor’ 2、查看系统负载有两个常用的命令&#xff0c;…

博客项目

文章目录1. 创建项目2. 数据库设计3. 前置任务3.1 拦截器3.2 统一数据格式3.3 创建一个 Constant3.4 统一异常处理3.5 密码加密4. 功能实现4.1 登录功能4.2 注册功能4.3 博客列表页 &#xff08;功能实现&#xff09;4.3.1 左侧框4.3.2 右侧框 (分页功能 页面显示)4.4 博客详情…

Spark - 继承 FileOutputFormat 实现向 HDFS 地址追加文件

目录 一.引言 二.源码浅析 1.RDD.saveAsTextFile 2.TextOutputFormat 3.FileOutputFormat 三.源码修改 1.修改文件生成逻辑 - getRecordWriter 2.允许目录存在 - checkoutputSpecs 3.全部代码 - TextOutputFormatV2 四.追加存储代码实战 五.总结 一.引言 Output d…

Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花

文章目录1、背景2、命令浏览器-双生姐妹花2.1、姐妹花简介2.2 、验名正身2.3、常用功能选项3、常用实操3.1、发送请求获取文件3.1.1、抓取页面内容到一个文件中3.1.2、多个文件下载3.1.3、下载ftp文件3.1.4、断点续传3.1.5、上传文件3.1.6、内容输出3.2 、利用curl测试接口3.3 …

基于ssm大学生竞赛活动平台(包含万字文档)020

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…
最新文章