#自動化測試庫、框架和工具的區別# 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...