Python+Selenium执行结果,封装函数,用Python自动发送SMTP邮件

前言

Python+Selenium执行结果,封装函数,用Python自动发送SMTP邮件

上文中,介绍了如何用Python+selenium自动化测试实战:邮箱登录为例验证了登录成功的测试用例。那如果我们每次执行的结果都要去代码中查看,是不是也挺费劲的。应该怎么做呢?如果程序执行报错或者执行测试用例成功后,发送邮件通知我,咱就不用再打开代码去查看执行结果了,只需每天关注自己的邮件,执行失败的部分,进行提bug或者修改代码就可以了

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

如何用Python代码的形式实现自动发送SMTP邮件呢?

一、准备工作

需要进行开启要进行发件的邮箱的SMTP的授权,并生成授权码,在发送邮件是输入的密码为授权码,开启方式如下:

以qq邮箱为例:

设置——》账户——》下拉到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

——》开启服务:POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?)——》点击开启并生成授权码(备注:开启授权需要发短信)。生成后的结果如图

Python+Selenium执行结果,封装函数,用Python自动发送SMTP邮件

二、还是同样的在进行写代码之前,首先我们先理一下思路:

1.发送邮件我们需要输入什么?

(1)标题

(2)内容

(3)谁来发?

(4)发给谁?

2.发送过程有哪些?

(1)建立邮箱连接协议

(2)登录邮箱,登录邮箱时需要发送方的授权码

(3)点击发送

三、理完思路后,我们如何实现呢?

1.输入数据

(1)邮件的标题,需要引入import Header 这个模块,用里面的Header()方法

(2)邮件的内容,需要import MIMEText这个模块,使用MIMEText()函数,进行内容的数据的构建

(3)谁来发,目前不清楚,但是可以用一个请输入:from_email=input('请输入发件人邮箱名:')

(4)发给谁,to_email=input('请输入接收人邮箱')

2.发送过程:

(1)建立邮箱连接协议:

首先需要引入import smtplib模块,stmp=smtplib.SMTP(),建立连接:stmp.connect('smtp.qq.com',25)

(2)登录邮箱,登录邮箱时需要发送方的授权码

授权码:pwd=input('请输入授权码:')登录:stmp.login(from_email,pwd)

(3)点击发送:stmp.sendmail()

四、以上分析完之后就可以进行代码实现了

1.首先我先把之前登录的邮箱登录这文中的代码封装成函数

from selenium import  webdriverimport timedef email_login(url):#封装登录函数,url为形参,方便函数的调用    driver=webdriver.Chrome()#打开浏览器    driver.maximize_window()#最大化浏览器    driver.get(url)# 输入网址,并发送请求 ,得到页面显示    driver.find_element_by_id("lbNormal").click()    driver.switch_to.frame(driver.find_element_by_xpath("//div/div[3]/div[4]/div/div/iframe"))#     driver.find_element_by_name("email").send_keys("自己邮箱的用户名")    driver.find_element_by_name("password").send_keys("自己邮箱的密码")    driver.find_element_by_id("dologin").click()    driver.switch_to.default_content()#跳出frame    driver.implicitly_wait(5)#智能等待    result=driver.find_element_by_class_name("nui-tree-item-text").text#找到收件箱元素并返回文本    # print(result)    if result=='收件箱':        print("本条用例测试通过")        real_result="通过"    else:        print("本条用例执行失败")        real_result = "失败"    time.sleep(5)#    driver.quit()#关闭浏览器    return real_result

2.封装完成后,调用,并编写发送邮件的内容和执行发送的函数:

from email.mime.text import MIMEText #说明发送的邮件内容为纯文本from email.header import  Header #用于构建邮件的标题import smtplib #用于发送电子邮件from public_class import email_public28 #从public_class 包中引入email_public28这个模块def create_email_msg():    real_result=email_public28.email_login("https://mail.126.com/")#调用email_public28这个模块中的函数,输入实际参数    msg = MIMEText('执行用例的结果为:'+ real_result, 'plain', 'utf-8')#构建邮件的内容,类型'plain'纯文本 ,字符编码为utf-8    msg['Subject']=Header("登录用例执行结果:",'utf-8')#构建邮件的标题    return msg#返回标题和内容#发送电子邮件def send_email_msg():    from_email=input('请输入发件人邮箱名:')    pwd=input('请输入授权码:') #授权码而非邮箱密码    to_email=input('请输入接收人邮箱')    stmp=smtplib.SMTP()  #SMTP邮件发送协议    stmp.connect('smtp.qq.com',25)#建立连接    stmp.login(from_email,pwd)#登录邮箱    real_result = create_email_msg()    #调用邮件的内容的函数    stmp.sendmail(from_email,to_email,real_result.as_string()) #发送邮件    stmp.quit()   #关闭连接    print('邮件发送成功')if __name__ == '__main__':   send_email_msg()#调用发送邮件的函数

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

8小时传疯!大厂面试真题全被大佬整理在这个小程序上了!【软件测试,建议收藏】

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础 

  全套资料获取方式:点击下方小卡片自行领取即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值