UI自动化android+web端测试基础3+封装单元测试+将测试报告发送到指定邮箱的方法

之前我们在web测试基础2中讲了关于用python写测试用例的方法,在这里我们将web基础2升级一下,进行一个简单的封装

同样这里不做过多的描述直接上代码

首先我们需要建python包,

1.创建测试报告的包自己命名

#-*-coding:utf-8-*-
# 导入单元测试
import  unittest
# 导入单元测试
from  unittests import login
# 导入自动化测试报告
import HTMLTestRunner
# 导入os包
import os
# 实例化套件
suit=unittest.TestSuite()
# 将单元测试加入到套件里面
suit.addTest(unittest.makeSuite(login.Login))
# 指定自动化测试报告的生成路径
files=os.getcwd()+"/jd.htnl"
# 指定读写方式 wb 以二进制的方式写入 rb 以二进制的方式读取 rb+ 以二进制的方式既可以读取又可以写入
filename=open(files,'wb')
# 运行自动化测试报告
runner=HTMLTestRunner.HTMLTestRunner(stream=filename,title=u"京东",description=u"京东登陆用例")
runner.run(suit)

2.创建封装好的包
#-*- coding:utf-8 -*- # 导入包 from selenium import webdriver # 倒包 from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # 声明类 class FireFox(object): # 打开浏览器的方法  # self 是指类本身,如果将变量赋值给self,也就是赋值给类本身的意思  def firefox_start(self,url): # 打开浏览器  self.driver=webdriver.Firefox() #设置窗口最大化  self.driver.maximize_window() #打开指定网页  self.driver.get(url) #尽量少使用强制休眠。多使用隐式休眠  pass  #关闭浏览器  def fire_close(self): #关闭浏览器  self.driver.quit() pass  #通过内容实现显示休眠  def TimeLink(self,message): #检查元素  msg=(By.LINK_TEXT,message) #设置休眠  WebDriverWait(self.driver,20,0.5).until(EC.presence_of_element_located(msg)) pass  #封装一个通过内容查找控件得的方法  def FindLink(self,message): #调整显示休眠  self.TimeLink(message) #查找  return self.driver.find_element_by_link_text(message) #点击的方法  def ClickLink(self,message): self.FindLink(message).click() #获取当前页面的方法  def getCurrentWindow(self): return self.driver.current_window_handle #获取所有窗口进行切换的方法  def switch_window(self,current): #获取所有窗口  self.allwindow=self.driver.window_handles #使用for循环进行切换  for window in self.allwindow: if window!=current: self.driver.switch_to.window(window) pass  #获取title的方法  def getTitle(self): return self.driver.title 3。封装测试用例的包  
#-*- coding:utf-8 -*- # 导入单元测试 import unittest # 倒包 from util import firefoxutil # 声明类继承单元测试 class Login(unittest.TestCase): # 实例化对象的方法  # 加注解  @classmethod  def setUpClass(self): # 实例化对象  self.fiefox=firefoxutil.FireFox() pass   # 每一条测试用例运行之前的方法  def setUp(self): #打开浏览器  self.fiefox.firefox_start("https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F%3Fcu%3Dtrue%26utm_source%3Dbaidu-pinzhuan%26utm_medium%3Dcpc%26utm_campaign%3Dt_288551095_baidupinzhuan%26utm_term%3D0f3d30c8dba7459bb52f2eb5eba8ac7d_0_5b3ca5c08c3d430e92d56c2c8164e4eb") #设置休眠  self.fiefox.TimeLink("关于我们") pass   # 每一条测试用例运行结束的是方法  def tearDown(self): #关闭  self.fiefox.fire_close() pass  # 测试用例点击关于我们  def test_abount_me(self): #获取当前页面  self.current=self.fiefox.getCurrentWindow() #点击关于我们  self.fiefox.ClickLink("关于我们") #切换窗口  self.fiefox.switch_window(self.current) #获取title  self.title=self.fiefox.getTitle() #进行断言  self.assertEqual(self.title,u"企业简介-京东商城") pass   整点高大上的仅供参考:改进的时候我会进行更新的 关于将测试报告发送到邮箱的方法  

我们需要在测试报告那个Python中
先倒包:

# 导入发送邮件的包
# 首先导入smtp服务器的包
import  smtplib
# 导入正文需要用的包
from email.mime.text import MIMEText
# 添加主题的包
from  email.header import  Header


在改文件中加

filename.close()



#邮件发送功能
#使用的是smtp服务器
# 指定发送邮件的用户名
send="18301585363@163.com"
# 指定接收邮件的邮箱
recever="1471375117@qq.com"
# 指定邮件的主题
title="我是中国,你是你好"
# 指定需要发送邮件的服务器
emain_server="smtp.163.com"
# 指定发送邮件的用户名和密码
username = "18301585363@163.com"
password = "gaoxuejun123"

# 指定自动化测试报告的路径
files1=os.getcwd()+"/jd.htnl"
# 通过流将报告读取出来
filename1=open(files1,"rb")
# 将流转为字符串
emain_name=filename1.read()
#关闭流
filename1.close()
print  emain_name
# 设置邮件的内容
msg=MIMEText(emain_name,_subtype="html",_charset="UTF-8")
# 设置主题
msg['Subject']=Header(title,"UTF-8")
#设置发送者和接受者
msg['From']=send
msg['To']=recever

# 实例化smtp服务器
smtp=smtplib.SMTP()
# 开始连接服务器
smtp.connect(emain_server)
# 登陆服务器
smtp.login(username,password)
#开始发送邮件
smtp.sendmail(send,recever,msg.as_string())
#关闭服务器
smtp.quit()


到这里就差不多结束了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值