当前位置: 首页 > article >正文

Python UI自动化 —— 关键字+excel表格数据驱动

步骤:

  1. 对selenium进行二次封装,创建关键字的库

  2. 准备一个表格文件来写入所有测试用例步骤

  3. 对表格内容进行读取,使用映射关系来对用例进行调用执行

     4. 执行用例

1. 对selenium进行二次封装,创建关键字的库
from time import sleep
from selenium import webdriver
 
 
class Key:
 
    def __init__(self):
        self.driver = webdriver.Chrome()
 
    # 浏览器操作------------------------------------------------------------------
    def open(self, txt):
        # 打开网址
        self.driver.get(txt)
        # 最大化浏览器窗口
        self.driver.maximize_window()
        # 隐式等待10秒
        self.driver.implicitly_wait(10)
 
    def quit(self):
        # 退出浏览器
        self.driver.quit()
 
    def sleep(self, txt):
        # 强制等待
        sleep(txt)
 
    # 元素操作函数-----------------------------------------------------------------
    def input(self, txt, value, name="xpath"):
        # 输入
        el = self.driver.find_element(name, value)
        el.send_keys(txt)
 
    def click(self, value, name="xpath"):
        # 点击
        el = self.driver.find_element(name, value)
        el.click()
2. 创建一个表格,写入测试步骤

将表格放入项目任意路径下,记住路径,待会读取文件需要用到,我这里是放在这里

解释一下:(定位方法)为空,是因为关键字方法封装时,已经带上了默认参数

 

3. 写一个excel表格读取方法,对表格内容进行读取,使用映射关系来对用例进行调用执行。

看注释就明白是啥意思了

import os
import openpyxl
from UI.Base.selenium_key import Key
 
# 获取该路径“../TestExampleExcel”模板下所有xlsx文件
filenames = os.listdir(r"../TestExampleExcel")
 
# 实例化驱动
wd = Key()
 
# 遍历所有xlsx文件
for i in filenames:
    excel = openpyxl.load_workbook(f'../TestExampleExcel/{i}')
 
    # 获取全部sheet页,遍历sheet页执行不同sheet页中的用例
    for name in excel.sheetnames:
        sheet = excel[name]
        print(f"正在执行{i}文件中的{name}用例")
 
        # 打印每一行表格数据
        for values in sheet.values:
 
            # 如果excel表格的第三列不是int类型,则不打印。
            if isinstance(values[2], int):
                data = {}
                data['name'] = values[4]
                data['value'] = values[5]
                data['txt'] = values[6]
 
                # 将字典中的None值给去除掉
                for k in list(data.keys()):
                    if data[k] is None:
                        del data[k]
                print(f"正在执行:{values[1]}")
                getattr(wd, values[3])(**data)
4. 执行用例

执行Excel文件读取方法即可

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。  


http://www.kler.cn/a/134843.html

相关文章:

  • 三、损失函数
  • 向日葵软件Windows系统连接苹果系统(MacOS)的无反应问题解决办法
  • 【MySQL 保姆级教学】事务的隔离级别(详细)--下(13)
  • Android Studio 将项目打包成apk文件
  • Microsoft 365 Exchange如何设置可信发件IP白名单
  • 【计算机网络】【网络层】【习题】
  • “一键搜索,海量商品任你选!多平台聚合,购物更便捷!“
  • Django 入门学习总结2 创建一个投票系统
  • 【MySQL】CONCAT、CONCAT_WS、GROUP_CONCAT 函数用法
  • 【产品应用】一体化伺服电机在系留无人机中的应用
  • mfc140u.dll丢失的解决方法,以及mfc140u.dll解决方法的优缺点
  • debian/ubuntu/linux如何快速安装vscode
  • MySQL 8.0:性能优化与新功能
  • 解锁编程潜能:探索亚马逊CodeWhisperer,打造编程世界的声音引导者
  • Pyside6/PyQt6如何添加右键菜单,源码示例
  • mac环境使用sudo进行node包管理
  • 《QT从基础到进阶·三十》QVariant的基础用法
  • 什么是统一数据存储?
  • 【WSL/WSL2-Ubuntu】突破界限:不使用服务器在一台Windows搭建Nginx+FastDFS
  • 【计算机网络】P2 性能指标
  • OpenAI 的 API 简介
  • 淘宝商品详情数据接口,淘宝商品优惠券数据接口,淘宝API接口
  • 小程序富文本图片大小问题
  • 大数据安全 测试
  • Google的检索工具栏如何使用?
  • Vue 实现 Hover 功能( mouseover 与 mouseenter 的区别)