碼同學(xué)抖音號:小碼哥聊軟件測試
01 什么是自動(dòng)化測試框架
01 什么是框架
框架是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法。它規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個(gè)設(shè)計(jì)、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程,表現(xiàn)為一組抽象類以及其實(shí)例之間協(xié)作的方法。
框架一般是成熟、穩(wěn)健的,它可以處理系統(tǒng)很多細(xì)節(jié)問題,比如,事物處理,安全性,數(shù)據(jù)流控制等問題。還有框架一般都經(jīng)過很多人使用,所以結(jié)構(gòu)很好,所以擴(kuò)展性也很好,而且它是不斷升級的svn服務(wù)器空間不足,可以直接享受別人升級代碼帶來的好處。
02 什么是自動(dòng)化測試框架
自動(dòng)化測試框架是為自動(dòng)化測試用例或者腳本提供執(zhí)行環(huán)境而搭建的基礎(chǔ)設(shè)施。自動(dòng)化測試框架有助于有效地開發(fā)、執(zhí)行和報(bào)告自動(dòng)化測試用例。
1、優(yōu)點(diǎn):
2、框架的基本組件
總結(jié):
一個(gè)簡單的自動(dòng)化測試框架,可能包含哪些組成部分:
03 為什么需要自動(dòng)化測試框架
04 判斷是否需要自動(dòng)化測試
自動(dòng)化測試成本投入高,風(fēng)險(xiǎn)大,并且不是所有的項(xiàng)目都適合自動(dòng)化。自動(dòng)化測試的優(yōu)勢在于反復(fù)迭代,它的價(jià)值產(chǎn)出在于長期的回歸測試,以保證被測產(chǎn)品長期穩(wěn)定地版本更新。
適用項(xiàng)目:
02 自動(dòng)化測試框架的類型
01 自動(dòng)化測試框架的分類
下面是目前流行的各種類型的自動(dòng)化測試框架。這些框架可能基于對不同關(guān)鍵因素(例如驅(qū)動(dòng)類型、可重用性、易于維護(hù)等)進(jìn)行自動(dòng)化的支持而彼此不同。
1、基于模塊的測試框架:
這種框架將整個(gè)“測試中的應(yīng)用程序”分為許多邏輯和獨(dú)立的模塊。對每個(gè)模塊,創(chuàng)建一個(gè)獨(dú)立的測試腳本,這些腳本結(jié)合在一起時(shí),會構(gòu)建成更大的測試腳本,代表多個(gè)模塊,這些模塊被抽象層隔開,這樣在應(yīng)用程序的各個(gè)部分所做的更改不會對該模塊產(chǎn)生影響。
免費(fèi)領(lǐng)取 碼同學(xué)軟件測試 課程筆記+超多學(xué)習(xí)資料+完整視頻+最新面試題,可以轉(zhuǎn)發(fā)文章 + 私信「碼同學(xué)666」獲取資料哦
2、庫架構(gòu)測試框架
庫體系結(jié)構(gòu)測試框架是建立在基于模塊的測試框架之上,但比后者有一些額外的優(yōu)勢。它沒有將測試的應(yīng)用程序劃分為測試腳本,而是劃分為函數(shù)。因此,為測試中的應(yīng)用程序創(chuàng)建一個(gè)由公共函數(shù)組成的公共庫,當(dāng)需要時(shí),可以從測試腳本中調(diào)用這些庫。
它的基本原理就是確定通用的步驟,并將這些步驟分組到公共庫下的函數(shù)中,在需要的時(shí)候在測試腳本中調(diào)用這些函數(shù)。
比如:一個(gè)登錄的步驟,可以把它組合成一個(gè)函數(shù),并保存到一個(gè)庫中,登錄時(shí)可以直接從庫中調(diào)用這個(gè)函數(shù),而不需要重新再編寫代碼。
3、數(shù)據(jù)驅(qū)動(dòng)測試框架
數(shù)據(jù)驅(qū)動(dòng)測試框架將測試腳本邏輯和測試數(shù)據(jù)彼此分離。可以把測試數(shù)據(jù)單獨(dú)存儲起來,存儲數(shù)據(jù)的可以是 xml文件、excel文件、文本文件、csv文件、ODBC數(shù)據(jù)庫等。一般都是以 key-value 格式存儲,方便獲取使用。
4、關(guān)鍵字驅(qū)動(dòng)測試框架
關(guān)鍵字驅(qū)動(dòng)測試框架是對數(shù)據(jù)驅(qū)動(dòng)測試框架的擴(kuò)展,從某種意義上說,它不僅將測試數(shù)據(jù)從腳本中分離出來,它還將數(shù)據(jù)測試腳本的特定代碼集保存到外部數(shù)據(jù)文件中。這些代碼集被稱為關(guān)鍵字,每個(gè)關(guān)鍵字都一種操作。關(guān)鍵字和測試數(shù)據(jù)都是獨(dú)立于該框架。
5、混合測試框架
混合測試框架就是上述(模塊化,數(shù)據(jù)驅(qū)動(dòng)和關(guān)鍵字驅(qū)動(dòng))多種類型框架的組合。就是利用各種類型框架的優(yōu)點(diǎn),組合起來的混合型測試框架。
在這種框架中,通過將測試用例結(jié)合到模塊化測試框架中,從模塊化腳本中開發(fā)測試用例。每個(gè)測試用例都使用一個(gè)驅(qū)動(dòng)程序腳本,該腳本使用數(shù)據(jù)驅(qū)動(dòng)框架中的數(shù)據(jù)文件和關(guān)鍵字驅(qū)動(dòng)框架中的操作文件。
6、行為驅(qū)動(dòng)開發(fā)框架
行為驅(qū)動(dòng)測試框架可以讓開發(fā)人員、測試人員等以易于閱讀和理解的格式實(shí)現(xiàn)功能驗(yàn)證的自動(dòng)化。可通過自然語言來描述測試功能,測試場景,測試步驟,測試結(jié)果等。
02 流行的自動(dòng)化測試框架
1、Robot
如果要使用自動(dòng)化測試框架進(jìn)行測試自動(dòng)化,則Robot 是最佳選擇。Robot 是基于的,但是也可以使用 (Java)或(.NET)語言進(jìn)行腳本用例的編寫。
2、
是基于Node.js的自動(dòng)化測試框架。它具有集成的測試運(yùn)行程序,可以為Web應(yīng)用程序以及本機(jī)移動(dòng)APP運(yùn)行自動(dòng)化測試用例。而且,可以同時(shí)在協(xié)議和 協(xié)議上運(yùn)行,從而使其對于基于 的跨瀏覽器測試或基于的自動(dòng)化都非常有效。由于是開源的,因此測試工程師可以獲得一堆滿足自動(dòng)化需求的插件。
3、
是一個(gè)開源測試框架,測試人員可以使用該框架自動(dòng)化針對任何消息傳遞協(xié)議或數(shù)據(jù)格式的集成測試。對于諸如REST、HTTP、SOAP或JMS之類的任何消息傳遞傳輸,測試框架都適用于測試消息傳遞集成。如果需要與用戶界面進(jìn)行交互然后驗(yàn)證后端過程,則可以將與進(jìn)行集成
4、
是一個(gè)以開發(fā)人員為中心的測試自動(dòng)化框架,該框架使TDD測試驅(qū)動(dòng)開發(fā)對開發(fā)人員而言成為現(xiàn)實(shí)。它的設(shè)計(jì)原理是能夠非常簡單地將所有內(nèi)容打包并捆綁在一起以進(jìn)行整個(gè)端到端測試。的架構(gòu)與不同。 在瀏覽器外部遠(yuǎn)程運(yùn)行,而在其內(nèi)部運(yùn)行。這種方法有助于了解瀏覽器內(nèi)部和外部發(fā)生的所有事情,以提供更一致的測試結(jié)果。
5、
Web應(yīng)用程序中最受歡迎的開源測試自動(dòng)化框架之一。具有跨平臺和跨瀏覽器功能,它還可以用作許多其他測試工具的基礎(chǔ)。支持多種編程語言,例如Java、C#、PHP、、Ruby等。它擁有最大的在線社區(qū)之一,因此更加易于維護(hù)。
可以通過廣泛的庫和API進(jìn)行高度擴(kuò)展,以滿足每個(gè)團(tuán)隊(duì)的需求。是測試人員首選的測試框架,因?yàn)榭梢跃帉懜呒壍臏y試腳本來滿足各種復(fù)雜程度。它提供了用于測試創(chuàng)作的回放工具,而無需學(xué)習(xí)特定的腳本語言。
6、
使用流行的開源解決方案(如、和)構(gòu)建的,可減少對特定技術(shù)堆棧的依賴。測試人員可以測試APP(原生APP、混合APP、)、WEB應(yīng)用程序、REST服務(wù)和數(shù)據(jù)庫。框架支持不同類型的數(shù)據(jù)庫,例如MySQL、SQL 、、,從而提供了使用 ORM框架實(shí)現(xiàn)DAO層的完美體驗(yàn)。
支持所有流行的瀏覽器和移動(dòng)設(shè)備,并且在IOS/之間重用了高達(dá)80%的測試自動(dòng)化代碼。API測試基于模板引擎,它在生成REST請求方面提供了極大的靈活性。是跨平臺的,可以在Unix或 OS上輕松運(yùn)行測試用例。
03
是一個(gè)用于Web應(yīng)用程序測試的工具,是一套完整的web應(yīng)用程序測試系統(tǒng),包含了測試的錄制( IDE)、編寫及運(yùn)行( )和測試的并行處理( Grid)。的核心 Core基于,完全由編寫,因此可以用于任何支持的瀏覽器上。可以模擬真實(shí)瀏覽器,自動(dòng)化測試工具,支持多種瀏覽器,爬蟲中主要用來解決渲染問題。
這個(gè)工具的主要功能包括:測試與瀏覽器的兼容性,測試你的應(yīng)用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。
優(yōu)點(diǎn):
開源:不需要錢,且方便進(jìn)行二次開發(fā),例如提取對json和xml的處理來實(shí)現(xiàn)的數(shù)據(jù)驅(qū)動(dòng)等。
靈活性:因?yàn)楦尤肓藊path(當(dāng)然大型項(xiàng)目的腳本里xpath 慎用,盡量取id或穩(wěn)定的屬性),加上配合IDE進(jìn)行定位等,效果比較好。
資料更全面,用該框架的公司越來越多。
缺點(diǎn):
無論是RC還是,對測試人員的編碼水平有一定要求。
ant,,使用也都是小眾,大多數(shù)人執(zhí)行這個(gè)框架前需要有較長時(shí)間學(xué)習(xí)適應(yīng)。
時(shí)間較短,不如QTP如此完善。
免費(fèi)領(lǐng)取 碼同學(xué)軟件測試 課程筆記+超多學(xué)習(xí)資料+完整視頻+最新面試題,可以轉(zhuǎn)發(fā)文章 + 私信「碼同學(xué)666」獲取資料哦
01 1.0
1.0 包括兩部分:
支持的瀏覽器包括IE(7, 8, 9, 10, 11), ,, ,Opera,Edge等。
1、
負(fù)責(zé)控制瀏覽器的行為。主要有,Http Proxy, core。 core使用 嵌入到瀏覽器頁面中。實(shí)質(zhì)上, core是由JS函數(shù)組成,這樣我們可以實(shí)現(xiàn)用程序?qū)g覽器進(jìn)行操作。
2、
編寫測試用例時(shí)控制 的庫。
3、的執(zhí)行過程
02 2.0()
2.0 將瀏覽器原生的API封裝成 API,可以直接操作瀏覽器頁面里的元素,甚至操作瀏覽器本身(截屏,窗口大小,啟動(dòng),關(guān)閉,安裝插件,配置證書之類的),所以就像真正的用戶在操作一樣。
1、的架構(gòu):
按照–的經(jīng)典設(shè)計(jì)模式設(shè)計(jì):
2、 Wire
the Wire 是自己設(shè)計(jì)定義的協(xié)議,這套協(xié)議非常之強(qiáng)大,幾乎可以操作瀏覽器做任何事情,包括打開、關(guān)閉、最大化、最小化、元素定位、元素點(diǎn)擊、上傳文件等。
Wire協(xié)議是通用的,也就是說不管還是,啟動(dòng)之后都會在某一個(gè)端口啟動(dòng)基于這套協(xié)議的Web 。例如初始化成功,默認(rèn)從:7055開始,IE則是:52432。
3、的工作原理:
04
是一個(gè)開源的、跨平臺的自動(dòng)化測試工具,支持IOS、和平臺。通過,開發(fā)者無需重新編譯app或者做任何調(diào)整,就可以測試移動(dòng)應(yīng)用,可以使測試代碼訪問后端API和數(shù)據(jù)庫。它是通過驅(qū)動(dòng)蘋果的和的框架來實(shí)現(xiàn)的雙平臺支持,同時(shí)綁定了 用于老的平臺測試。開發(fā)者可以使用兼容的任何語言編寫測試腳本,如Java,OCsvn服務(wù)器空間不足, JS, PHP,, Ruby, C#, 和Perl語言。
01
是蘋果提供的UI自動(dòng)化測試框架,使用編寫。
基于有擴(kuò)展型的工具框架和驅(qū)動(dòng)型的框架:
是Apple官方提供的UI自動(dòng)化測試的解決方法,但接口不夠豐富。
02
是由谷歌提供的測試框架,它提供了原生 app和游戲的高級UI測試。這是一個(gè)包含API的Java庫,用來創(chuàng)建功能性UI測試,還有運(yùn)行測試的執(zhí)行引擎。該庫自帶 SDK。
如自動(dòng)化測試中有跨APP操作,可以結(jié)合實(shí)現(xiàn)。
END