案例3 資料驅動測試 從excel匯入資料

2021-09-29 14:04:05 字數 3917 閱讀 1715

excel:測試資料.xlsx

python獲取excel中的資料方法,excelutil.py

#encoding =utf-8

# -*- coding:utf-8 -*-

from openpyxl import load_workbook

class

pexcel

(object):

def__init__

(self,excelpath,sheetname)

: self.wb=load_workbook(excelpath)

self.sheet=self.wb.get_sheet_by_name(sheetname)

self.maxrownum=self.sheet.max_row

defgetdatas

(self)

: datalist=

for line in self.sheet.rows[1:

]:tmplist=

1].value)2]

.value)

return datalist

if __name__==

"__main__"

: execelpath=u"c:\\測試資料.xlsx"

sheetname=u"sheet1"

for i in pexcel(execelpath,sheetname)

.getdatas():

print i[0]

,i[1

]

從excel匯入測試資料.py

#encoding =utf-8

# -*- coding:utf-8 -*-

from selenium import webdriver

import unittest,time

import logging,traceback

import ddt

from reporthtml import htmltemplate

from selenium.common.exceptions import nosuchelementexception

from excelutil import pexcel

logger = logging.getlogger(

'mylogger1'

)logger.setlevel(logging.debug)

# 建立乙個handler,用於寫入日誌檔案

fh = logging.filehandler(

'c:/test.log'

)fh.setlevel(logging.debug)

# 再建立乙個handler,用於輸出到控制台

ch = logging.streamhandler(

)ch.setlevel(logging.debug)

# 定義handler的輸出格式

formatter = logging.formatter(

'%(asctime)s - %(name)s - %(levelname)s - %(message)s'

)fh.setformatter(formatter)

ch.setformatter(formatter)

# 給logger新增handler

logger.addhandler(fh)

logger.addhandler(ch)

execelpath = u"c:\\測試資料.xlsx"

sheetname = u"sheet1"

excel=pexcel(execelpath,sheetname)

@ddt.ddt

class

testdemo

(unittest.testcase)

: @classmethod

defsetupclass

(cls)

: testdemo.trstr=

""def

setup

(self)

: self.driver=webdriver.firefox(executable_path=

"c:\\webdriver\geckodriver"

) status=

none

flag=

0 @ddt.data(

*excel.getdatas())

deftest_datadriverbyfile

(self,value)

: testdata,expectdata=

tuple

(value)

flagdict=

url=

""self.driver.get(url)

self.driver.maximize_window(

)# print value.decode('utf-8')

self.driver.implicitly_wait(10)

try:

start=time.time(

) starttime=time.strftime(

"%y-%m-%d %h:%m:%s"

,time.localtime())

self.driver.find_element_by_id(

"kw"

).send_keys(testdata)

self.driver.find_element_by_id(

"su"

).click(

) time.sleep(3)

self.asserttrue(expectdata in self.driver.page_source)

except nosuchelementexception,e:

logger.error(u"找不到頁面元素"

) status=

'fail'

flag=

0except assertionerror,e:

logger.info(u"搜尋失敗"

) status=

'fail'

flag=

0except exception,e:

logger.info(u"未知錯誤"

) status=

'fail'

flag=

0else

: logger.info(u"搜尋成功"

) status=

'pass'

flag=

1 wastetime=time.time(

)-start-

3 testdemo.trstr += u'''

%s%s%s

%.2f

%s'''

%(testdata,expectdata,starttime,wastetime,flagdict[flag]

,status)

defteardown

(self)

: self.driver.quit(

) @classmethod

defteardownclass

(cls)

: htmltemplate(testdemo.trstr)

if __name__==

'__main__'

: unittest.main(

)

Watir資料驅動 Excel

在watir 中做資料驅動,採用excel 作為資料來源是個不錯的選擇,使用excel 需要win32ole 包,讀取excel 非常方便 require win32ole workbook excel.workbooks.open d ruby watir watir watir project ...

excel學習 從基礎開始3

1 查詢替換 若是將 蘇州 替換成 蘇州市 注 假如直接替換,文件中存在的蘇州市會變成蘇州市市 需要在替換的時候,開啟 選項 選中 單元格匹配 按照單元格匹配,平時的時候用的不多,平時不選中 替換顏色 ctrl f開啟 查詢替換 選項 格式 查詢格式 模糊替換 將所有帶有 工資 字樣的都換成 錢 查...

Linux 字元驅動裝置的測試案例

linux驅動學習路線 1 編寫hello模組,學會基本的流程,能看到輸出 2 寫一完整驅動,加上read,write,ioctl,polling等各種函式的驅動實現,在ioctl裡完成從使用者空間向核心空間傳遞結構體的實現。3 寫一block驅動,加上read,write,ioctl,poll等各...