Selenium2+python自動化59-資料驅動(ddt)

來源:互聯網
上載者:User

標籤:取數   text   環境   als   封裝   增加   fir   自動化   install   

前言

在設計用例的時候,有些用例只是參數資料的輸入不一樣,比如登入這個功能,操作過程但是一樣的。如果用例重複去寫操作過程會增加代碼量,對應這種多組資料的測試案例,可以用資料驅動設計模式,一組資料對應一個測試案例,用例自動載入產生。

一、環境準備

1.安裝ddt模組,開啟cmd輸入pip install ddt線上安裝

>>pip install ddt

 

二、資料驅動原理

1.測試資料為多個字典的list類型

2.測試類別前加修飾@ddt.ddt

3.case前加修飾@ddt.data()

4.運行後用例會自動載入成三個單獨的用例

5.測試結果:

Testing started at 21:51 ...
start!
{‘username‘: ‘selenium\xe7\xbe\xa4‘, ‘psw‘: ‘232607095‘}
end!
start!
{‘username‘: ‘python\xe7\xbe\xa4‘, ‘psw‘: ‘226296743‘}
end!
start!
{‘username‘: ‘appium\xe7\xbe\xa4‘, ‘psw‘: ‘512200893‘}
end!

 

三、selenium案例

1.從上一篇封裝的excel方法裡面讀取資料,作為測試測試Selenium2+python自動化58-讀取Excel資料(xlrd)

2.在之前寫的登入那篇基礎上做點修改,測試參數讀取excel裡的資料Selenium2+python自動化48-登入方法(參數化)

3.代碼參考如下

# 測試資料
testData = data.dict_data()
print testData

@ddt.ddt
class Bolg(unittest.TestCase):
    u‘‘‘登入部落格‘‘‘
    def setUp(self):
        self.driver = webdriver.Firefox()
        url = "https://passport.cnblogs.com/user/signin"
        self.driver.get(url)
        self.driver.implicitly_wait(30)

    def login(self, username, psw):
        u‘‘‘這裡寫了一個登入的方法,帳號和密碼參數化‘‘‘
        self.driver.find_element_by_id("input1").send_keys(username)
        self.driver.find_element_by_id("input2").send_keys(psw)
        self.driver.find_element_by_id("signin").click()
        time.sleep(3)

    def is_login_sucess(self):
        u‘‘‘判斷是否擷取到登入賬戶名稱‘‘‘
        try:
            text = self.driver.find_element_by_id("lnk_current_user").text
            print text
            return True
        except:
            return False

    @ddt.data(*testData)
    def test_login(self, data):
        u‘‘‘登入案例參考‘‘‘
        print ("當前測試資料%s"%data)
        # 調用登入方法
        self.login(data["username"], data["password"])
        # 判斷結果
        result = self.is_login_sucess()
        self.assertTrue(result)

    def tearDown(self):
        self.driver.quit()

if __name__ == "__main__":
    unittest.main()

 

Selenium2+python自動化59-資料驅動(ddt)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.