用Excel表格编写用例的自动化测试框架

上次写的这个框架(如下),编写用例对编辑者的python能力有一定要求;用例如果是用Excel表格来维护,可以降低用例编写的门槛,可以增加这个自动化测试框架的维护效率。

selenium二次封装的步骤_python_problem的博客-CSDN博客为一个比较复杂的系统写UI自动化时,需要考虑提高代码的复用率、各个页面测试用例的管理等方面,所以我们需要对代码进行封装。1.建立项目建立项目:com.baidu2.获取浏览器驱动在baidu文件夹下建立common文件夹,下面创建seleniumDriver.py文件,用于获取浏览器驱动3.集成setUp和tearDown函数在common文件夹下,创建myUnit.py文件,写入MyUnit类,用于集成setUp和tearDown两个函数;4.集成页面元素获取/页面截屏等方法.https://blog.csdn.net/python_problem/article/details/121848038?spm=1001.2014.3001.5501

目录

资源地址

思路整理

改造过程

1.设计用例模版

2.表格中内容的读取

3.字典数据转化为selenium操作

4.创建驱动文件

5.生成用例文件的方法

6.将用例加入测试套件的方法(用例执行文件)

7.执行运行文件的方法

8.恢复初始状态的方法

9.进行测试

框架的维护使用


资源地址

不想看详细的编写过程,着急使用的小伙伴,可点下方链接,内附了完整框架资源和使用文档

https://download.csdn.net/download/python_problem/72603388

思路整理

  1. 在Excel表格中写入用例,每个sheet页写一条完整的测试用例,每行写一条操作步骤;
  2. 将表格中的内容读取出来;
  3. 根据每条操作的描述转化成python语言的文件,方便测试用例文件进行调用;
  4. 把读取的内容根据每个sheet页转化为对应的测试用例文件;
  5. 把这些用例添加到执行文件里的测试套件中;
  6. 最后执行“执行文件”。

改造过程

1.设计用例模版

  • 序号/模块名称的填写需要与操作内容相符合
  • 操作名称列:同一操作,必须是约定好的唯一的名称,便于以后转换为selenium操作
  • 是否执行:填写yes/no,决定是否执行该操作,便于以后维护 
  • 元素定位方法:ID/ name/ class/ tagName/ linkText/ css/ xpath
  • 元素定位路径:根据元素定位方法写入对应的路径
  • 文本值:在输入值、判断等需要文本值的操作,填入对应文本
  • 等待时间:需要等待时可填入等待时间(若为隐式等待也可不写等待操作)

2.表格中内容的读取

import openpyxl


def dataRead(lujing="../data/测试用例模板.xlsx"):
    # 读取Excel
    excel = openpyxl.load_workbook(lujing)
    # 第一层字典 ------ 创建data空字典
    data = {}
    # 获取所有sheet页名称并进行遍历
    for sheet_name in excel.sheetnames:
        # 若sheet页名称包含test_case,就将这个sheet页赋给变量"sheet"
        if "test_case" in sheet_name:
            sheet = excel[sheet_name]
            # 第二层字典 ------ 在data字典中,创建以sheet页名称为键的空字典
            data[sheet_name] = {}
            # 获取所有行的数据,并进行遍历
            for row_data in sheet.rows:
                # 第三层字典 ------ 创建以操作序号为键的空字典
                data[sheet_name][row_data[0].value] = {}
                # 第四层字典 ------ 内容放入键值对
                data[sheet_name][row_data[0].value]['operation'] = row_data[2].value  # 操作名称
                data[sheet_name][row_data[0].value]['perform'] = row_data[3].value  # 是否执行
                data[sheet_name][row_data[0].value]['method'] = row_data[4].value  # 元素定位方法
                data[sheet_name][row_data[0].
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值