欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python+selenium自动化测试中如何获取Excel文件中的参数并执行

程序员文章站 2024-03-21 23:15:04
...

python+selenium自动化测试中如何获取Excel文件中的参数并执行

在自动化测试中,有常见的3中测试框架:模块化测试框架、关键字驱动测试框架、数据驱动测试框架。

数据驱动说白了就是数据的参数化,因为输入数据的不同获得不同的输出结果。不管把数据放在数组,字典或者外部的文件(excel,csv、txt、xml),目的都是为了让数据和操作分离。

本文主要以测试用例的数据存放在Excel文件中时,如何去获取Excel文件中的数据参数,并做相关的操作,以python+selenium+Excel为例:
python+selenium自动化测试中如何获取Excel文件中的参数并执行

首先先安装可读Excel文件的xlrd库(pip install xlrd),然后导入该库

代码如下

python+selenium自动化测试中如何获取Excel文件中的参数并执行

#!/usr/bin/python3
# -*- coding:utf-8 -*-
'''
@File  : Excel_util.py.py
@Author: Mr.Beetester
@Date  : 2020/2/18 18:26
@Desc  : 
'''

from selenium import webdriver
import time
import xlrd     # 读Excel

driver = webdriver.Firefox()

class ExcelUtil:
    def __init__(self,Excel_path=None,index=None):
        if Excel_path == None:
            Excel_path = "cases/WebCasestest.xlsx"
        if index == None:
            index = 0
        # 打开工作表
        self.data = xlrd.open_workbook(Excel_path)
        self.sheets = self.data.sheets()[index]
        self.rows = self.sheets.nrows  # 有效内容的行数

    def get_data(self):
        keyword, para1, para2, para3 = 3, 4, 5, 6   # 关键字和参数的列数
        for i in range(self.rows):
            # 获取单元格值
            kwv = self.sheets.cell(i,keyword).value
            para1v = self.sheets.cell(i, para1).value
            para2v = self.sheets.cell(i, para2).value
            para3v = self.sheets.cell(i, para3).value
	   # 通过Excel中的关键字进行判断,以此该执行何种操作
            if kwv == 'geturl' :
                driver.maximize_window()  # 打开的浏览器全屏显示
                driver.get(para1v)
                driver.refresh()
            if kwv == 'sleep' :
                time.sleep(para1v)
            if kwv == 'input':
                driver.find_element_by_xpath(para1v).clear()  # 定位方式
                driver.find_element_by_xpath(para1v).send_keys(para2v)
            if kwv == 'click':
                driver.find_element_by_xpath(para1v).click()
            if kwv == 'intoIframe':
                frameName = driver.find_element_by_xpath(para1v)
                driver.switch_to.frame(frameName)
            if kwv == 'outIframe':
                driver.switch_to_default_content()
            if kwv == 'closebrowser':
                driver.close()


if __name__ == "__main__":
    Ex = ExcelUtil()
    Ex.get_data()