python+selenium自动化测试中如何获取Excel文件中的参数并执行
程序员文章站
2024-03-21 23:15:04
...
python+selenium自动化测试中如何获取Excel文件中的参数并执行
在自动化测试中,有常见的3中测试框架:模块化测试框架、关键字驱动测试框架、数据驱动测试框架。
数据驱动说白了就是数据的参数化,因为输入数据的不同获得不同的输出结果。不管把数据放在数组,字典或者外部的文件(excel,csv、txt、xml),目的都是为了让数据和操作分离。
本文主要以测试用例的数据存放在Excel文件中时,如何去获取Excel文件中的数据参数,并做相关的操作,以python+selenium+Excel为例:
首先先安装可读Excel文件的xlrd库(pip install xlrd),然后导入该库
代码如下:
#!/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()
上一篇: 跟我一起写makefile入门笔记
下一篇: Unittest框架的使用方法