selenium+unittest搭建webUI自动化框架

本文介绍了作者使用selenium和unittest搭建的一个Web UI自动化测试框架,旨在减少代码量,实现面向对象的测试。框架包括日志记录、测试用例管理、截图、HTML测试报告等功能。测试用例按页面分包,通过数据参数化提高效率,并提供了部分代码示例。
摘要由CSDN通过智能技术生成

 

工作之余整理了一下思路,搞了一套符合自己思路、方便自己理解使用的框架,也方便工作中日常的回归测试

不足之处希望大佬指教

这套框架以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("用例结束")
    # 查找
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值