您的位置:首页 > 文旅 > 旅游 > Selenium + Python 自动化测试21(PO+HTML+Mail)

Selenium + Python 自动化测试21(PO+HTML+Mail)

2024/10/7 6:49:20 来源:https://blog.csdn.net/weixin_45999406/article/details/141402215  浏览:    关键词:Selenium + Python 自动化测试21(PO+HTML+Mail)

        我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。

上一篇我们讨论了PO模式并举例说明了基本的思路,今天我们继续学习。

         本篇文章我们综合一下之前学习的内容,如先将PO模式和我们生成HTML报告融合起来,综合的灵活的使用之前学习的内容。

         整体的思路:编写基础类(page类)>登录页面的类(login 类)>通过unittest框架写测试用例>编写执行函数文件(包含生成HTML报告)

1、先列一下之前的脚本:

如下图第一部分基础页面类:

如下图第二部分登录页面类:

第三部分,如下图所示登录方法和执行的内容

2、引入unittest重写测试用例

参考如下:

# coding=utf-8  --指定了文件内容使用的字符编码格式,告知Python解释器如何解读文件中的文本内容。from login_object import  LoginPagefrom selenium import  webdriverimport timeimport unittestdef login(driver,username,password):   #组装登录函数,基本按操作流程login_page=LoginPage(driver)login_page.open()login_page.enter_username(username)login_page.enter_password(password)login_page.submit()#使用unittest的框架,每个案例的标准形式class LoginTest(unittest.TestCase):def setUp(self):self.driver=webdriver.Chrome("C:\\Users\\dewi\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe")print("登录测试开始")#输入正确的密码登录成功测试def test_login_Y(self):username = "standard_user"password = "secret_sauce"print("登录的用户名是:%s,密码是:%s"%(username,password))driver=self.driverlogin(driver,username,password) #调用登录函数time.sleep(3)#加入断言  //*[@id="header_container"]/div[1]/div[2]/div# 验证有显示:ProductsUIResult = driver.find_element_by_xpath('//*[@id="header_container"]/div[2]/span').textself.assertEqual("Products", UIResult, "密码正确登录验证失败,fail")def tearDown(self)#浏览器退出self.driver.quit()print("登录测试结束")

3、添加执行函数

参考代码如下 ,生成HTML报告并且发邮件

# coding=utf-8import  unittestfrom HTMLTestRunner import HTMLTestRunner  #导入 HTMLTestRunner 类import timeimport smtplibimport osfrom email.mime.text import MIMETextfrom email.header import Header#定义发送邮件的函数def send_report_by_mail(file_name):f=open(file_name,'rb'#打开文件report_body=f.read()f.close()msg=MIMEText(report_body,'html','utf-8') #内容msg['Subject']= Header('Swag Labs 网站测试报','utf-8')smtp = smtplib.SMTP()smtp.connect('smtp.163.com') #发送邮箱服务器smtp.login('登录用户名@163.com','登录密码')smtp.sendmail('发送邮箱@163.com','接收邮箱@163.com',msg.as_string())smtp.quit()print("报告已通过邮件发送")#定义测试用例集的目录test_dir = './'report_dir = './report'  #测试报告地址discover = unittest.defaultTestLoader.discover(test_dir,pattern="test_*.py")#所有要执行的文件if __name__ == '__main__':now = time.strftime("%Y-%m-%d %H_%M_%S")   #当前时间,格式是年月日时分秒file_name report_dir+ '/' + now + 'result.html'   #报告名称,加上当前时间避免重复fp = open(file_name,'wb')      #打开报告文件,读写权限runner = HTMLTestRunner(stream=fp,title="Swag Labs 网站测试报告",description="用例测试情况:")#HTML报告设置runner.run(discover)  #执行测试案例fp.close()   #关闭报告文件send_report_by_mail(file_name)   #发送报告

如上执行查看结果:

今天就先学习到这里吧。后面我们不断优化。

每天进步一点点,加油!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com