<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] 前言 在設計用例的時候,有些用例只是參數數據的輸入不一樣,比如登錄這個功能,操作過程但是一樣的。如果用例重復去寫操作過程會增加代碼量,對應這種多組數據的測試用例,可以用數據驅動設計模式,一組數據對應一個測試用例,用例自動加載生成。 <br /> ## **一、環境準備** 1. 安裝ddt模塊,打開cmd輸入pip3 install ddt在線安裝 ``` >>pip3 install ddt ``` <br /> ## **二、數據驅動原理** 1. 測試數據為多個字典的list類型 2. 測試類前加修飾@ddt.ddt 3. case前加修飾@ddt.data() 4. 運行后用例會自動加載成三個單獨的用例 ``` import ddt import unittest # 測試數據 testData = [{"username":"selenium", "password":"123"}, {"username":"python", "password":"123456"}, {"username":"appium", "password":"456"}] @ddt.ddt class Test(unittest.TestCase): def setUp(self): print("start!") def tearDown(self): print("end!") @ddt.data(*testData) def test_ddt(self, data): print(data) if __name__ == "__main__": unittest.main() ``` 5. 測試結果: ``` start! {'username': 'selenium', 'password': '123'} end! start! {'username': 'python', 'password': '123456'} end! start! {'username': 'appium', 'password': '456'} end! ``` <br /> ## **三、selenium案例** 1. 從上一篇封裝的excel方法里面讀取數據,作為測試測試 2. 在之前寫的登錄那篇基礎上做點修改,測試參數讀取excel里的數據 3. 代碼參考如下: ``` from selenium import webdriver import unittest from time import sleep import ddt # 測試數據 testData = [{"username":"selenium", "password":"123"}, {"username":"python", "password":"123456"}, {"username":"appium", "password":"456"}] print(testData) @ddt.ddt class Blog(unittest.TestCase): '''登錄博客''' def setUp(self): self.driver = webdriver.Chrome() url = "https://account.cnblogs.com/signin" self.driver.get(url) self.driver.implicitly_wait(30) def login(self, username, password): '''這里寫了一個登錄的方法,賬號和密碼參數化''' self.driver.find_element_by_id("mat-input-0").send_keys(username) self.driver.find_element_by_id("mat-input-1").send_keys(password) self.driver.find_element_by_css_selector(".mat-button-wrapper").click() sleep(3) def is_login_sucess(self): '''判斷是否獲取到登錄賬號名稱''' 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): '''登錄案例參考''' 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() ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看