工作之余整理了一下思路,搞了一套符合自己思路、方便自己理解使用的框架,也方便工作中日常的回归测试
不足之处希望大佬指教
这套框架以selenium调用浏览器驱动为基础,配合unittest管理并执行测试用例。当然有很多扩展处理,比如日志的输出,用例执行中遇到问题的截图,执行完后生成的html测试报告...
既然搭了框架,目的就是减少代码量, 把面向过程改成面向对象,把该简化的简化,该封装的封装,该偷懒的偷懒,再加上完全把数据分出来单独存放,再封装适合的读写文件方法来读取,再通过ddt库以修饰器的方式把数据传入函数内部,实现参数化等...
先贴下分包思路
下面按模块顺序介绍整体框架
common:
一些公共方法,基类。。首先实例化了getlogger类,方便后续直接调用输出日志。然后重写了测试用例类MyUnit,继承自unittest模块的tesecase类,里面重新封装了获取浏览器驱动,浏览器最大化,设置隐式等待等重复性操作,还有获取页面元素的方法,截图的方法,读取csv文件数据的方法...上代码:
import csv
import unittest
import time
import logging
from logging import config
# 配置日志输出
from selenium import webdriver
config.fileConfig('../config/log.conf')
# 实例化日志输出对象
logger = logging.getLogger()
# 单元测试父类 用于让测试用例类继承
class MyUnit(unittest.TestCase):
@classmethod
def setUpClass(self):
print("开始执行用例")
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
@classmethod
def tearDownClass(self):
print("用例结束")
# 查找