zoukankan      html  css  js  c++  java
  • ddt 测试用例UI运用

    import xlrd
    from selenium import webdriver
    import ddt
    import time
    import unittest
    
    class 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  list
    
    
    class 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_url
    
    
    def 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.ddt
    class 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()
    

      

  • 相关阅读:
    深度学习一:安装MXnet包,实现MNIST手写数体识别
    深度学习二:Neural art:用机器模仿梵高
    【Stanford CNN课程笔记】1. Image Classification and Nearest Neighbor Classifier
    PHP之图形处理
    Ubuntu14.10+cuda7.0+caffe配置
    CentOS系统上编译、安装、配置OpenCV
    安装MXnet包,实现MNIST手写数体识别
    Neural art:用机器模仿梵高
    String to Integer (atoi)
    Wildcard Matching
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/10631154.html
Copyright © 2011-2022 走看看