Selenium數據驅動測試模型和實例
模組驅動的模型雖然解決了腳本的重複問題,但是需要測試不同數據的用例時,模組驅動的方式就不很適合了。 數據驅動就是數據的改變從而驅動自動化測試的執行,最終引起測試結果的改變。 裝載數據的方式可以是列表、字典或是外部文件(txt、csv、xml、excel),目的就是實現數據和腳本的分離。
程式碼實現如下:(文章程式碼url地址為內部地址,我隱藏掉了,你們可以換成其他地址哦)
# #!/usr/bin/python3 # -*- coding: utf-8 -*- # @Time : 2020/8/13 13:46 # @Author : Gengwu # @FileName: LoginClass_Para.py # @Software: PyCharm from selenium import webdriver from time import sleep from selenium.webdriver.common.action_chains import ActionChains class Login(): #定義一個類,類下面封裝兩個方法,一個登錄,一個退出 def user_login(self,driver,username,password): # 清除用戶名的框,防止自動帶入 driver.find_element_by_id('account').clear() driver.find_element_by_id('account').send_keys(username) # 清除密碼的框,防止自動帶入 driver.find_element_by_id('password').clear() driver.find_element_by_id('password').send_keys(password) # 點擊登錄按鈕 driver.find_element_by_css_selector( '#app > div > div > div.content > form > div.login-form-button-item > button').click() # copy到selector sleep(2) def user_logout(self,driver): # 通過懸浮框定位到退出登錄 above = driver.find_element_by_class_name('author') ActionChains(driver).move_to_element(above).perform() driver.find_element_by_link_text('退出登錄').click() sleep(2) # 點擊彈框的確定按鈕 driver.find_element_by_css_selector('.ant-modal-body .ant-btn-primary').click() sleep(2)
數據驅動調用——實現多個賬戶登錄
# #!/usr/bin/python3 # -*- coding: utf-8 -*- # @Time : 2020/8/13 14:11 # @Author : Gengwu # @FileName: CallLogin_Para.py # @Software: PyCharm from selenium import webdriver from time import sleep from LoginClass_Para import * driver=webdriver.Chrome() driver.get('//qa***.com/') driver.maximize_window() driver.implicitly_wait(10) sleep(3) Login().user_login(driver,'admin','admin') sleep(3) Login().user_logout(driver) Login().user_login(driver,'test','123456') sleep(3) Login().user_logout(driver) sleep(3) driver.quit()
腳本放到同一個文件夾下,就可以試下調用。
以上如果有問題歡迎隨時溝通和交流。
Best Regards!
Make a little progress every day!