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

步骤:

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

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

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

  4. 执行用例

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

python 复制代码
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表格读取方法,对表格内容进行读取,使用映射关系来对用例进行调用执行。

看注释就明白是啥意思了

python 复制代码
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文件读取方法即可

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
2601_962298098 分钟前
零基础学大数据分析全栈
hadoop·python·spark·实战·大数据分析
quantdash_cc40 分钟前
Python 股票 K 线数据质量校验:字段、缺失值、重复行和价格异常
开发语言·python·数据分析·量化交易·股票数据·quantdash
长空任鸟飞_阿康43 分钟前
三、《从零手撸 Agent》 · system prompt 与核心参数:调好你的旋钮
人工智能·python·ai·prompt
一晌小贪欢1 小时前
python-第29天:Python面向对象之多态与抽象类
开发语言·python·数据可视化·面向对象·python办公·python多态
2601_962284501 小时前
从测试服务到智能化质量保障:测吧(北京)科技有限公司构建软件测试全链路服务体系
自动化测试·软件测试·人才培养·质量保障·人工智能测试
CoderYanger2 小时前
前端基础——JavaScript(基础语法)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
2601_962381582 小时前
ArcGIS+Python+AI赋能高标准农田建设项目审计提质增效
python·arcgis·ai·高标准农田审计·大数据审计
rust&python2 小时前
课程表的归一化处理
python·程序人生·信息可视化
Wang's Blog2 小时前
Vibe Coding一人即团队系列62: Excel数据分析与可视化自动化
数据分析·自动化·excel
玫瑰互动GEO2 小时前
腾讯AnswerBit(GEO优化监测平台)技术拆解:UI自动化如何采集真实AI回答
大数据·人工智能·ui·ai·自动化·geo优化