execl的sheet数据驱动例子_byseyOrd

1)python 需要安装openpyxl支持包才能支持xml文件的读取

2)openpyxl里的load_workbook 方法可以读取xml文件,参数是文件名称

  返回的是一个work_book,可以使用get_sheet_by_name获取某个sheet,使用循环把数据存进数组

3)读取例子

from openpyxl import load_workbook
class ParseExcel():
    def __init__(self,excelPath,sheetName):
        self.wb = load_workbook(excelPath)
        self.sheet = self.wb.get_sheet_by_name(sheetName)
        self.maxRowNun = self.sheet.max_row
    def getDataFromSheet(self):
        datalist = []
        for i in self.sheet.rows[1:]:
            temlist = []
            temlist.append(i[1].value)
            temlist.append(i[2].value)
            datalist.append(temlist)
        return datalist
if __name__ == '__main__':
    excelPath=''
    sheetName=''
    pe = ParseExcel(excelPath,sheetName)
    li = pe.getDataFromSheet()
    for i in li:
        print(i[0])

4)数据驱动例子

import ddt
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
excelPath=''
sheetName=''
excel = ParseExcel(excelPath,sheetName)
@ddt.ddt
class TestCase(unittest.TestCase):
    def setup(self):
        self.driver = webdriver.Chrome()
    def teardown(self):
        self.driver.quit()
    def test_A(self):
        print("用例A")
        assert True
    @ddt.data( * excel.getDatasFromSheet())#( * 前后两空格相当于指针)
    def test_B(self,data):
        print("用例B")
        testdata, expected = tuple(data)
        self.driver.get('http://www.baidu.com')
        ele.self.driver.find_element_by_id("kw")
        ele.send_keys(testdata)
        ele.send_keys(Keys.ENTER)
        self.assertIn(expected ,self.driver.get_bage_source)
if __name__ == '__main__':
    unittest.main()

4)新版的支持

def getDataFromSheet(self):
        datalist = []
        for i in self.sheet:
            temlist = []
            temlist.append(i[1].value)
            temlist.append(i[2].value)
            datalist.append(temlist)
        return datalist
#新版去掉了sheet的rows和columns

猜你喜欢

转载自www.cnblogs.com/seyOrd/p/12685965.html