自动化测试教程(21)使用PO设计模式1

简介: 上一小结我们了解了PO设计模式,我们这一小结学习一下如何使用PO设计模式,并熟练掌握PO设计模式的原理以及用法.

文章目录

1.任务目标

上一小结我们了解了PO设计模式,我们这一小结学习一下如何使用PO设计模式,并熟练掌握PO设计模式的原理以及用法.

2. 任务实操

2.1任务目录

2.2任务代码

2.2.1 driver包下面的driver代码

from selenium import webdriver
def brower():
    driver = webdriver.Chrome()
    return driver
#在这里面我们封装开启浏览器的方法

2.2.2 Webdriver包下面的test_case包下面的modle下面的funcation代码

from email.mime.text import MIMEText
from email.header import Header
import smtplib
import os
import csv
#封装截图方法
def instr_img(driver, filename):
    func_dir = os.path.dirname(__file__)
    base_dir = os.path.dirname(func_dir)
    base_dir = str(base_dir)
    base_dir = base_dir.replace("\\", '/')
    base = base_dir.split("/Webdriver")[0]
    filepath = base + "/Webdriver/test_report/sucsses/" + filename
    driver.get_screenshot_as_file(filepath)
#封装发送邮箱的方法
def listed(report_dir):
    lists = os.listdir(report_dir)
    lists.sort(key=lambda fn: os.path.getatime(report_dir + "\\" + fn))
    print("new report is:" + lists[-1])
    file = os.path.join(report_dir, lists[-1])
    print(file)
    return file
def send_mail(listed):
    f = open(listed, "rb")
    cont_mail = f.read()
    f.close()
   smtpserver='smtp.163.com'
  #发送邮箱用户名密码
  user='XXXXX@163.com'   #填入自己的邮箱账号
  #密码为授权码
  password='…'#填入自己的授权码,注意非邮件密码
  #发送和接收邮箱
  sender='XXXXXA@163.com'#填入发送邮箱的账号
  receive='XXXXXB@126.com'#填入接收邮箱的账号
  #发送邮件主题和内容
  subject='Selenium 自动化测试报告'
  content='<html><h1 style="color:red">测试报告</h1></html>'
  #HTML邮件正文
  msg=MIMEText(content,'html','utf-8')
  msg['Subject']=Header(subject,'utf-8')
  msg['From']='XXXXXA@163.com'    #填入发送邮箱的账号
  msg['To'] = 'XXXXXB@126.com'  #填入接收邮箱的账号
  #SSL协议端口号要使用465
  smtp = smtplib.SMTP_SSL(smtpserver, 465)
  #HELO 向服务器标识用户身份
  smtp.helo(smtpserver)
  #服务器返回结果确认
  smtp.ehlo(smtpserver)
  #登录邮箱服务器用户名和密码
  smtp.login(user,password)
  print("开始发送邮件...")
  smtp.sendmail(sender,receive,msg.as_string())
  smtp.quit()
print("邮件发送完成!")
#封装读取csv文件的方法
def get_csv_file(line):
    with open(r"E:\py练习\py_day17\Webdriver\test_data\rest.csv") as f:
        render = csv.reader(f)
        for index, row in enumerate(render, 1):
            if index == line:
                return row
if __name__ == '__main__':
    data = get_csv_file(3)
    for row in data:
        print(row)
#在这里面主要封装一些截图方法,读取csv文件的方法,发送邮箱的方法。

2.2.3 Webdriver包下面的test_case包下面的modle下面的myutil代码

#这里面封装一些打开关闭浏览器的方法
import unittest
from driver.driver import *
class strEnd(unittest.TestCase):
    def setUp(self):
        self.driver = brower()
        self.driver.maximize_window()
        self.driver.implicitly_wait(3)
    def tearDown(self):
        self.driver.quit()

3.小结

未完,下一小节更新

相关文章
|
18天前
|
设计模式 Java Kotlin
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
34 2
|
18天前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
21 2
|
27天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
23天前
|
设计模式 Java Kotlin
Kotlin教程笔记(54) - 改良设计模式 - 迭代器模式
Kotlin教程笔记(54) - 改良设计模式 - 迭代器模式
41 2
|
23天前
|
设计模式 Java API
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
39 2
|
23天前
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
41 1
|
23天前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
36 1
|
1月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
|
1月前
|
设计模式 Java Kotlin
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
|
23天前
|
设计模式 JavaScript Scala
Kotlin教程笔记(55) - 改良设计模式 - 责任链模式
Kotlin教程笔记(55) - 改良设计模式 - 责任链模式
25 0
下一篇
DataWorks