unittest自动化框架实战案例

一、框架思路

(此代码只作为简单演示使用,因为好多问题没有考虑到,时间有限,没有做参数化,没有重跑机制,代码规范等等,请各位仅供参考。)

base:是基于seleniium的二次封装的点击、输入、刷新等操作
common:是基于业务的底层公共方法
config:配置文件
log:收集log的方法,以及生成的截图
excute_logs:生成的日志都会打印在一个文件
page_object:webui登录的方法和一些二次封装的方法
testcase:是testcase
reports:是生成reports的方法和生成的报告

二、框架代码展示

base_page.py文件

# coding=utf-8


import time
from time import sleep
from log.getLogStream import logStream

log = logStream()


# 创建基类
class BasePage:
    # driver = webdriver.Chrome()
    # 构造函数
    def __init__(self, driver):
        log.info('初始化driver{}'.format(driver))
        self.driver = driver

    # 访问URL
    def open(self, url):
        """
        function: 打开浏览器,访问url
        description:
        arg:
        return:
        """
        log.info('访问网址')
        self.driver.get(url)
        self.driver.maximize_window()
        sleep(3)

    # 元素定位
    def locator(self, loc):
        """
        function: 定位元素
        description:
        arg:
        return:
        """
        log.info('正在定位{}元素'.format(loc))
        return self.driver.find_element(*loc)

    # 输入
    def input_(self, loc, txt):
        """
        function: 输入
        description:
        arg:
        return:
        """
        try:
            log.info('正在定位{}元素, 输入{}内容'.format(loc, txt))
            self.locator(loc).send_keys(txt)
            sleep(2)
        except Exception as e:
            self.screenShot()
            log.error('错误日志' % e)

    # 点击
    def click(self, loc):
        """
        function: 点击
        description:
        arg:
        return:
        """
        try:
            log.info('正在点击{}元素'.format(loc))
            self.locator(loc).click()
        except Exception as e:
            self.screenShot()
            log.error('错误日志' % e)

    # 等待
    def wait(self, time_):
        """
        function: 等待
        description:
        arg:
        return:
        """
        log.info('等待时间{}秒'.format(time_))
        sleep(time_)

    # 关闭
    def quit(self):
        """
        function: 退出
        description:
        arg:
        return:
        """
        log.info('退出')
        self.driver.quit()

    # 最大化
    def maxSize(self):
        """
        function: 最大化
        description:
        arg:
        return:
        """
        log.info('最大化')
        

你可能感兴趣的:(自动化,python,前端,运维,开发语言)