生活随笔
收集整理的這篇文章主要介紹了
自动化测试模型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
自動化測試模型可以看作自動化測試框架與工具設計的思想。自動化測試不僅僅是單純寫腳本運行就可以了,還需要考慮到如何使腳本運行效率提高,代碼復用、參數化等問題。自動化測試模型分為四大類:線性模型、模塊化驅動測試、數據驅動、關鍵字驅動。
1、線性模型
通過錄制或編寫對應應用程序的操作步驟產生的線性腳本。單純的來模擬用戶完整的操作場景。線性腳本中每個腳本都相互獨立,且不會產生其他依賴與調用,其實就是簡單模擬用戶某個操作流程都腳本。
操作,重復操作,數據都混合在一起。
優點:每個腳本相對獨立,且不產生其他依賴和調用。
缺點:開發成本高,用例之間存在重復的操作。比如重復的用戶登錄和退出。維護成本高,由于重復的操作,當重復的操作發生改變時,則需要逐一進行腳本的修改。
'''
案例:自動登錄與退出操作
'''from selenium import webdriver
from time import sleepdriver = webdriver.Firefox()
driver.get_cookie("http://localhot/")# 輸入用戶名
driver.find_element_by_name('username').clear()
driver.find_element_by_name('username').send_keys('zxw')# 輸入密碼
driver.find_element_by_name('password').clear()
driver.find_element_by_name('password').send_keys('123456')# 登錄
driver.find_element_by_name('Submit').click()
sleep(3)# 退出
driver.find_element_by_link_text('退出').click()
driver.switch_to.alert().accept()
sleep(3)driver.quit()
2、模塊化驅動測試
線性模型雖然每個用例都可以拿來獨立運行,但是用例之間重復代碼很多,開發、維護成本高。其實把重復的操作代碼封裝為獨立的公共模塊,當用例執行時需要用到這部分,直接調用即可,這就是模塊驅動的方式。比如登錄系統、退出登錄、截圖函數等等。
操作+(重復操作,數據)混合在一起。
優點:由于最大限度消除了重復,從而提高了開發效率和提高測試用例的可維護性。
缺點:雖然模塊化的步驟相同,但是測試數據不同。比如說重復的登錄模塊,如果登錄用戶不同,依舊要重復編寫登錄腳本。
from selenium import webdriver
from time import sleepclass Login():def user_login(self, driver):# 輸入用戶名driver.find_element_by_name('username').clear()driver.find_element_by_name('username').send_keys('zxw')# 輸入密碼driver.find_element_by_name('password').clear()driver.find_element_by_name('password').send_keys('123456')# 登錄driver.find_element_by_name('Submit').click()def user_logout(self, driver):# 退出driver.find_element_by_link_text('退出').click()sleep(3)driver.switch_to.alert().accept()if __name__ == '__main__':driver = webdriver.Firefox()driver.get("http://127.0.0.1")# 隱式等待driver.implicitly_wait(10)Login.user_login(driver)Login.user_logout(driver)# 調用登錄模塊
from LoginClass import *driver = webdriver.Firefox()
driver.get("http://localhost/")
driver.implicitly_wait(10)Login().user_login(driver)
Login.user_logout(driver)
3、數據驅動測試(參數化)
模塊驅動測試等模型雖然解決了腳本的重復問題,但是需要測試不同數據的用例時,模塊驅動的方式就不狠適合了。數據驅動就是數據的改變從而驅動自動化測試的執行,最終引起測試結果的改變。裝載數據的方式可以使列表、字典或是外部文件(txt、csv、xml、excel),目的就是實現數據和腳本的分離。
操作+重復操作+數據分開。
優點:通過這種方式,將數據和重復操作分開,可以快速增加相似測試,完成不同數據情況下的測試。
from selenium import webdriver
from time import sleepclass Login():def user_login(self, driver, username, password):# 輸入用戶名driver.find_element_by_name('username').clear()driver.find_element_by_name('username').send_keys(username)# 輸入密碼driver.find_element_by_name('password').clear()driver.find_element_by_name('password').send_keys(password)# 登錄driver.find_element_by_name('Submit').click()def user_logout(self, driver):# 退出driver.find_element_by_link_text('退出').click()sleep(3)driver.switch_to.alert().accept()if __name__ == '__main__':driver = webdriver.Firefox()driver.get("http://127.0.0.1")# 隱式等待driver.implicitly_wait(10)Login.user_login(driver, "test", "123456")Login.user_logout(driver)# 調用登錄模塊
from LoginClass_para import *driver = webdriver.Firefox()
driver.get("http://localhost/")
driver.implicitly_wait(10)Login().user_login(driver, "test", "123456")
Login.user_logout(driver)
4、關鍵字驅動測試
通過關鍵字的改變從而驅動自動化測試的執行,最終引起測試結果的改變。selenium IDE是一種傳統的關鍵字驅動的自動化工具,Robot Framework是一個功能更強大的關鍵字驅動測試框架。
轉載于:https://www.cnblogs.com/xidian2014/p/10422736.html
總結
以上是生活随笔為你收集整理的自动化测试模型的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。