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


    步骤:

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

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

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

         4. 执行用例

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

    1. from time import sleep
    2. from selenium import webdriver
    3. class Key:
    4. def __init__(self):
    5. self.driver = webdriver.Chrome()
    6. # 浏览器操作------------------------------------------------------------------
    7. def open(self, txt):
    8. # 打开网址
    9. self.driver.get(txt)
    10. # 最大化浏览器窗口
    11. self.driver.maximize_window()
    12. # 隐式等待10秒
    13. self.driver.implicitly_wait(10)
    14. def quit(self):
    15. # 退出浏览器
    16. self.driver.quit()
    17. def sleep(self, txt):
    18. # 强制等待
    19. sleep(txt)
    20. # 元素操作函数-----------------------------------------------------------------
    21. def input(self, txt, value, name="xpath"):
    22. # 输入
    23. el = self.driver.find_element(name, value)
    24. el.send_keys(txt)
    25. def click(self, value, name="xpath"):
    26. # 点击
    27. el = self.driver.find_element(name, value)
    28. el.click()

    2. 创建一个表格,写入测试步骤

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

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

    1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
    2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
    3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
    4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
    5. 可以免费学习!划重点!开源的!!!
    6. qq群号:110685036

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

    看注释就明白是啥意思了

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

    4. 执行用例

    执行Excel文件读取方法即可

    如果有写的不好的地方,请大家多多指教。如果有其他想法,也欢迎在评论区和我交流。

  • 相关阅读:
    死锁(知识体系架构和详细解释)
    【LeetCode每日一题】——38.外观数列
    webhook-django框架
    R - Sonya and Hotels
    ssm毕设项目学生社团管理系统jcjyw(java+VUE+Mybatis+Maven+Mysql+sprnig)
    pdf编辑软件哪个好?编辑pdf的软件分享一款,像word一样好用!
    应用层协议 —— HTTP(一)
    python中的装饰器
    Ansible role
    LeetCode 318 周赛
  • 原文地址:https://blog.csdn.net/m0_47485438/article/details/133945685