python3+selenium3+unittest+HTMLTestRunner完整163登录自动化测试实战

最近学习所写的是简单的163自动化登录测试。但是真正实际的项目不可能那么简单的,经过最近的学习和简单的实战项目的操作,整理了一下思路,大致框架结构为:浏览器,页面基础类的封装—》定位元素的封装—》自动截图,发送附件,获取最新报告,发送邮件的封装—》测试用例的封装—》最后整合完成自动化测试并获取生成报告与截取图片发送到指定邮箱,下面贴上代码。

框架结构:

在这里插入图片描述
在这里插入图片描述
BrowserApi.py(浏览器封装,使用隐式界面模式很大几率被退信)

from selenium import webdriver

def browser():
    """
    系统常量类
    """
    
    driver = webdriver.Chrome()
    
    """设置浏览器隐式启动,减少页面渲染元素所占的cpu内存"""
    # options = webdriver.ChromeOptions()     # 创建chrome参数对象
    # options.add_argument("headless")        # 启动无界面模式,消除页面渲染引发的cpu、内存过高
    # options.add_argument("blink-settings=imagesEnabled=false")      # 不加载图片
    # driver = webdriver.Chrome(options=options)  # 创建chrome无界面参数
    
    return driver   # 返回浏览器


if __name__ == '__main__':
    browser()

Page_contsant.py(页面基础类封装)

from time import sleep


class SysConstant():
    """
    系统常量页面基础类
    """

    """初始化"""
    def __init__(self,driver):
        self.driver = driver
        self.base_url = "https://mail.163.com"
        self.timeout = 10

    """私有方法"""
    def open_dir(self):
        self.driver.maximize_window()
        self.driver.get(self.base_url)
        sleep(2)

    """内嵌网页frame封装定位"""
    def frame_url(self):
        self.driver.switch_to_frame(0)

    """元素定位方法封装"""
    def find_element(self,*loc):  # 形参,参数数量不固定,加*
        return self.driver.find_element(*loc)

TestEnvironmental.py(环境准备)

import unittest
from BrowserApi import *


class StarEnd(unittest.TestCase):
    """
    系统常量类
    """

    """封装用例开始与结束环境"""
    def setUp(self) -> None:
        self.driver = browser()
        self.driver.implicitly_wait(10)
        self.driver.maximize_window()

    def tearDown(self) -> None:
        self.driver.delete_all_cookies()    # 清除cookie
        self.driver.close()
        self.driver.quit()

function.py(截图,获取报告,获取所截图,发送邮件封装)

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



def inser_img(driver,image):
    """
    封装自动截图保存的方法
    :param image:
    :param driver: 浏览器
    :param splice: 截图存放路径
    :return:
    """
    current_path = os.path.dirname(__file__
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值