博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ddt 测试用例UI运用
阅读量:4631 次
发布时间:2019-06-09

本文共 3032 字,大约阅读时间需要 10 分钟。

import xlrdfrom selenium import webdriverimport ddtimport timeimport unittestclass Excel(object):    def __init__(self,excel_path,sheet_name):        self.excel_file=xlrd.open_workbook(excel_path)        self.sheet =self.excel_file.sheet_by_name(sheet_name)        self.sheet_name =self.sheet.name        self.rows = self.sheet.nrows        self.cols = self.sheet.ncols    """返回单元格,计数(0,0)表示第一行,第一列的单元格"""    def get_sheet_data(self,row,col):            test_data = self.sheet.cell(row ,col).value    """读取excel,并处理数据返回"""    def read_excel(self):            list=[]            for row in range(2,self.rows):                lists=self.sheet.row_values(row)[:self.cols]                list1=[]                dict={}                for j in range(self.cols):                    list1.append(lists[j].encode('utf-8'))                dict['order_currency']=list1[0].decode('utf-8')                dict['order_amount']=list1[1].decode('utf-8')                dict['DFSXml']=list1[2].decode('utf-8')                dict['card_number']=list1[3].decode('utf-8')                dict['secureCode']=list1[4].decode('utf-8')                list.append(dict)            return  listclass Base(object):    def __init__(self,driver):        self.driver = driver    def by_xpath(self,xpath):        return self.driver.find_element_by_xpath(xpath)    def by_id(self,id):        return self.driver.find_element_by_id(id)    def inputText(self,ele,text):        ele.clear()        ele.send_keys(text)    def getTitle(self):        return self.driver.current_urldef run(browser,secureCode,order_currency,order_amount,card_number,DFSXml):    browser.get("https://dfs.oceanpayment.com/pages/testPay.html")    page = Base(browser)    page.inputText(page.by_id("secureCode"), secureCode)    page.inputText(page.by_id("order_currency"),order_currency)    page.inputText(page.by_id("order_amount"), order_amount)    js_bom = "document.documentElement.scrollTop=500"    browser.execute_script(js_bom)    page.inputText(page.by_id("order_number"),card_number)    jsToTop ="document.documentElement.scrollTop=-500"    browser.execute_script(jsToTop)    page.inputText(page.by_id("DFSXml"),DFSXml)    page.by_id("btnAdd").click()    alert = browser.switch_to_alert()    alert.accept()    time.sleep(5)    print(page.getTitle())@ddt.ddtclass TestRun(unittest.TestCase):    path=r"E://Card.xlsx" #windows 保存excel文件的路径,需要更改根据存放位置    st_name='Diners' # excel sheet 名称不变不改    test_data= Excel(path,st_name).read_excel()    def setUp(self):          opt= webdriver.ChromeOptions()          opt.add_argument('--start-maximized')          driver=webdriver.Chrome(options=opt)          driver.implicitly_wait(10)          self.driver=driver    def tearDown(self):        self.driver.close()    @ddt.data(*test_data)    def test_pay(self,dict):        run(self.driver,dict["secureCode"],dict["order_currency"],dict["order_amount"],dict["card_number"],dict['DFSXml'])if __name__ == '__main__':    unittest.main()

  

 

转载于:https://www.cnblogs.com/SunshineKimi/p/10631154.html

你可能感兴趣的文章
yaml语法三大规则
查看>>
【HANA系列】SAP HANA的特点总结
查看>>
修改选中文字的背景色
查看>>
【CodeForces - 546C】Soldier and Cards (vector或队列)
查看>>
Ubuntu 18.04 初始化(server版本 )
查看>>
【BZOJ-1449&2895】球队收益&球队预算 最小费用最大流
查看>>
TCP与UDP
查看>>
FolderSync :The various features and how to use them
查看>>
LPC43xx SGPIO DMA and Interrupts
查看>>
《剑指offer》面试题16—反转链表
查看>>
multiprocessing模块
查看>>
复合数据类型,英文词频统计
查看>>
随手之题(水2)
查看>>
Day4 闭包、装饰器decorator、迭代器与生成器、面向过程编程、三元表达式、列表解析与生成器表达式...
查看>>
用vector实现二维向量
查看>>
小C的记事本(栈记录字符串)
查看>>
32道常见的Java基础面试题
查看>>
javase中HashMap迭代器的使用
查看>>
请求分页中的内存分配之续
查看>>
redis和memcached的区别
查看>>