自動化測試模型

2022-05-14 08:58:30 字數 3990 閱讀 2006

#自動化測試庫、框架和工具的區別

# 1.自動化測試庫(library)

# 庫是**整合的乙個產品,供程式設計師呼叫,如webdriver就是乙個庫(web自動化測試庫)。物件導向的**組織形成的庫叫類庫;面向過程的**組織形成的庫叫函式庫

# 2.自動化測試框架(framework)

# 框架是為解決乙個或一類問題而開發的產品。使用者一般只要使用框架提供的函式或類,就可實現全部功能,如unitest框架(他主要用於實現測試用例的組織和執行,以及測試結果的生成)

# 3.自動化測試工具(tools)

# 與框架所做的事情類似,遮蔽了底層**,一般會提供單獨的操作介面供使用者操作,如selenium ide和qtp

#自動化測試模型:自動化測試框架與工具設計的思想

# 1.線性測試

# a.通過錄製或編寫對應用程式的操作步驟產生相應的線性指令碼,每個測試指令碼相對獨立,且不產生其他依賴與呼叫

# b.開發成本搞,測試用例直接可以會存在重複的操作,需為每乙個用例去只做或編寫重複的操作

# c.維護成本高,正是因為用例之間存在重複操作,所以當這些用例發生變化後,就要逐一去修改

# 2.模組化驅動測試

# a.借鑑程式語言中模組化的思想,把重複的操作做成公共模組,當用例執行過程中需要用到這一模組操作時被呼叫,這樣消除了重複從而提高了用例的可維護性

# b.提高了開發效率,不用重複編寫相同的操作指令碼

# c.簡化了維護的複雜性,對於重複的操作只要修改公共模組即可,無需逐一去修改

#模組化驅動例項(將登入和退出寫成函式,需要的時候直接呼叫就好了)

# from selenium import webdriver

# driver = webdriver.firefox()

# driver.get("")

## def login():

# driver.find_element_by_link_text("密碼登入").click()

# driver.find_element_by_id("j_username").clear()

# driver.find_element_by_id("j_username").send_keys("13684995613")

# driver.find_element_by_id("j_password").clear()

# driver.find_element_by_id("j_password").send_keys("jmy@123")

# driver.find_element_by_id("login_btn").click()

## def logout():

# driver.find_element_by_link_text("[ 退出 ]").click()

# driver.quit()

# login()

# logout()

# 3.資料驅動測試

# a.資料驅動說白點就是資料的引數化,因為輸入資料的不同從而引起輸出結果的不同(資料與指令碼分離)

# b.進一步增強了指令碼的復用性,操作步驟一致、測試資料不一致的時候,只需要輸入不同的測試資料就可以執行

#資料驅動例項(將使用者名稱和密碼引數化,呼叫這個函式的時候隨意傳入乙個正確的賬號和密碼即可)

# from selenium import webdriver

# driver = webdriver.firefox()

# driver.get("")

## def login(username,passwd):

# driver.find_element_by_link_text("密碼登入").click()

# driver.find_element_by_id("j_username").clear()

# driver.find_element_by_id("j_username").send_keys(username)

# driver.find_element_by_id("j_password").clear()

# driver.find_element_by_id("j_password").send_keys(passwd)

# driver.find_element_by_id("login_btn").click()

## def logout():

# driver.find_element_by_link_text("[ 退出 ]").click()

# driver.quit()

# login("13694917391","xiu123456")

# logout()

# 4.關鍵字驅動測試

# a.關鍵字驅動與資料驅動相比,無非是把「資料」換成「關鍵字」,通過關鍵字的改變引起測試結果的改變

# b.典型的關鍵字驅動工具:qtp、robot framework(ride)、selenium ide等。這類工具封裝了底層的**,提供給使用者獨立的影象介面,以填**的形式免除測試人員對**的恐懼,從而降低指令碼編寫的難度

#引數化搜尋關鍵字

# from selenium import webdriver

# search_text = ['python','selenium','自動化測試']

## for text in search_text:

# driver = webdriver.firefox()

# driver.get("")

# driver.find_element_by_id("kw").send_keys(text)

# driver.find_element_by_id("su").click()

# driver.quit()

#讀取檔案:read()讀取整個檔案;readline()讀取一行資料;readlines()讀取所有行的資料

# 以上面的登入為例子

# 存放使用者資訊的檔案(user.txt)

# 13684995613,jmy@123

# 13694917391,xiu123456

# 111111,aaaa

# user_file = open('user.txt','r')

# lines = user_file.readlines()

# user_file.close()

## for line in lines:

# username = line.split(',')[0]

# password = line.split(',')[1]

# print("使用者名稱:%s,密碼:%s"%(username,password))

# 讀取csv檔案

# info.xml檔案

# <?xml version="1.0" encoding="utf-8" ?>

# #

# windows

#

firefox

#

#

#

#

#

# 北京

# 廣東

# 深圳

# 珠海

# 佛山

# 廣州

# 浙江

# 杭州

#

#

自動化測試模型

線性模型 指令碼相對獨立,單純的模擬使用者完整的操作場景,測試用例的開發和維護成本高 模組化驅動測試 把重複的操作獨立成公共模組,當用力執行過程中需要用到這一模組是則被呼叫,最大限度的消除了重複,提高了測試用例的可維護性 資料驅動測試 資料的改變從而驅動自動化測試的執行,最終引起測試結果的改變,其實...

自動化測試之六 自動化測試模型

from selenium import webdriver chrome driver path r c users administrator envs selenuimautotest lib site packages selenium webdriver chrome chromedriv...

Selenium 自動化測試模型

自動化測試模型可以看作自動化測試框架與工具設計的思想。線性指令碼中每個指令碼都相互獨立,且不會產生其他依賴與呼叫,其實就是簡單模擬使用者某個操作流程產生的指令碼。from selenium import webdriver from time import sleep driver webdrive...