更新時(shí)間:2019-08-20 14:03:35 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽4153次
幾十年來(lái),Java一直是開(kāi)發(fā)應(yīng)用程序服務(wù)器端的首選編程語(yǔ)言。盡管JUnit與開(kāi)發(fā)人員一起幫助他們進(jìn)行自動(dòng)化單元測(cè)試,隨著時(shí)間的推移和測(cè)試的發(fā)展,當(dāng)自動(dòng)化測(cè)試正在興起時(shí),許多開(kāi)源框架已經(jīng)開(kāi)發(fā)出來(lái),。在這里,我將討論2019年用于使用SeleniumWebDriver和Java執(zhí)行測(cè)試自動(dòng)化的前五大Java測(cè)試框架。我還將重點(diǎn)介紹這些頂級(jí)Java測(cè)試框架的獨(dú)特之處。
KentBeck和ErichGamma開(kāi)發(fā)的JUnit,它是xUnit的一個(gè)實(shí)例。其背后的主要目的是使Java開(kāi)發(fā)人員能夠編寫(xiě)腳本并執(zhí)行可重復(fù)的測(cè)試用例。它通常用于測(cè)試小塊代碼。您還可以通過(guò)將JUnit與SeleniumWebDriver集成用于Java測(cè)試自動(dòng)化來(lái)執(zhí)行網(wǎng)站的自動(dòng)化測(cè)試。無(wú)論何時(shí)添加任何新代碼,您都需要重新執(zhí)行整個(gè)測(cè)試用例并確保沒(méi)有破損。
(1)先決條件
該框架與SeleniumWebDriverforJava高度兼容,原因是JUnit是一個(gè)基于Java的框架。作為一些先決條件,您需要:
在計(jì)算機(jī)中安裝最新版本的JDK。
下載最新版本的JUnit并設(shè)置環(huán)境。
熟悉面向?qū)ο缶幊陶Z(yǔ)言(尤其是Java)中的應(yīng)用程序開(kāi)發(fā)。
(2)使用JUnit的優(yōu)點(diǎn)和缺點(diǎn)?
JUnit有幾個(gè)優(yōu)點(diǎn):
在測(cè)試驅(qū)動(dòng)的環(huán)境中工作的開(kāi)發(fā)人員發(fā)現(xiàn)它非常有用,因?yàn)樗麄儽黄乳喿x代碼并查找是否存在異常。
早期檢測(cè)到錯(cuò)誤,從而產(chǎn)生更可靠的代碼。
開(kāi)發(fā)更具可讀性和無(wú)錯(cuò)誤的代碼可以起到增強(qiáng)信心的作用。
使用最新版本的JUnit(版本4),可以輕松識(shí)別異常。您甚至可以執(zhí)行在舊版本的JUnit中編寫(xiě)的測(cè)試用例。
您也可以將它與Java5或以上版本一起使用。
JUnit的唯一缺點(diǎn)是:
該框架無(wú)法執(zhí)行依賴(lài)性測(cè)試。這就是我們需要TestNG的地方。
(3)JUnit是您的頂級(jí)Java測(cè)試框架嗎?
實(shí)現(xiàn)過(guò)程在兩個(gè)框架中都是不同的。此外,由于JUnit已經(jīng)使用了很長(zhǎng)時(shí)間,因此有更好的社區(qū)支持,并且它已被定義為使用SeleniumWebDriver進(jìn)行基于Java的應(yīng)用程序的單元測(cè)試的標(biāo)準(zhǔn)。雖然TestNG的用戶很少,但社區(qū)非常龐大并且每天都在增長(zhǎng)。因此,我們可以得出結(jié)論,TestNG或JUnit之間對(duì)Java測(cè)試框架的選擇完全取決于應(yīng)用程序的性質(zhì)和要求。
我們都知道行為驅(qū)動(dòng)開(kāi)發(fā)或BDD。它是一種以透明的方式向業(yè)務(wù)用戶描述驗(yàn)收測(cè)試的測(cè)試類(lèi)型。JBehave是另一個(gè)用于BDD測(cè)試的Java測(cè)試框架,主要用于SeleniumWebDriverforJava。引入JBehave背后的主要目標(biāo)是讓新手能夠輕松理解并熟悉BDD。它是一種設(shè)計(jì)理念,使應(yīng)用程序的測(cè)試階段更多地基于其行為。
(1)先決條件
使用JBehave的理想方法是與Eclipse集成。為此,除了JDK1.7及更高版本以及Indigo上面的任何EclipseIDE之外,您還需要幾個(gè)jar文件,例如:
Junit-4.1.0.jar
Jbehave-core-3.8.jar
Commons-lang-2.4.jar
Paranamer-2.5.jar
Freemarker-2.3.9.jar
Org.apacje.commons.io.jar
Org.apache.commons.collections.jar
Plexus-utils-1.1.jar
(2)JBehave的優(yōu)點(diǎn)和缺點(diǎn)
與所有其他BDD測(cè)試框架一樣,JBehave在許多方面也具有優(yōu)勢(shì)。
通過(guò)在具有類(lèi)似規(guī)范的不同項(xiàng)目上工作的不同開(kāi)發(fā)團(tuán)隊(duì)之間實(shí)現(xiàn)更好的協(xié)調(diào),實(shí)現(xiàn)行為驅(qū)動(dòng)開(kāi)發(fā)的最重要目的。
由于規(guī)范具有類(lèi)似的格式,項(xiàng)目經(jīng)理和利益相關(guān)者可以更清楚地了解開(kāi)發(fā)團(tuán)隊(duì)和QA團(tuán)隊(duì)的輸出。
由于JBehave具有推理和思考的細(xì)節(jié),因此產(chǎn)品具有更好的規(guī)格。
JBehave使用半正式語(yǔ)言,它還有一個(gè)域詞匯表,有助于在團(tuán)隊(duì)結(jié)構(gòu)中保持一致的行為。
缺點(diǎn):
BDD測(cè)試工具的成功主要取決于項(xiàng)目中涉及的不同成員之間的溝通,利益相關(guān)者,開(kāi)發(fā)人員,測(cè)試人員以及組織的管理。缺乏溝通可能會(huì)導(dǎo)致無(wú)法回答的問(wèn)題和疑問(wèn),這可能最終導(dǎo)致錯(cuò)誤的申請(qǐng)或應(yīng)用程序無(wú)法滿足業(yè)務(wù)要求,從而導(dǎo)致所有各方互相指責(zé)。
(3)JBehave是您的頂級(jí)Java測(cè)試框架嗎?
JBehave的工作方式與Serenity相同。但是,如果您的目標(biāo)是使自動(dòng)驗(yàn)收測(cè)試更有效,那么將Serenity與JBehave集成以獲得更好的測(cè)試體驗(yàn)是理想的選擇。這是因?yàn)镾erenity的核心概念基于BDD開(kāi)發(fā),它還使用戶能夠編寫(xiě)功能強(qiáng)大且豐富的測(cè)試報(bào)告。
Serenity是一個(gè)開(kāi)源庫(kù),用于行為驅(qū)動(dòng)的測(cè)試。該框架可幫助您編寫(xiě)驗(yàn)收標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)結(jié)構(gòu)良好且維護(hù)更多。它擴(kuò)展了JUnit和WebDriver的功能。最初,它被稱(chēng)為修昔底德。名稱(chēng)改變背后的原因只不過(guò)是發(fā)音的難度。不過(guò),舊名稱(chēng)可以在引用時(shí)使用。
安裝Serenity的先決條件是什么?
由于該框架是基于Java的,因此您顯然需要Java或任何其他面向?qū)ο缶幊陶Z(yǔ)言的知識(shí)和經(jīng)驗(yàn)。除此之外,在您的工作站中,您將需要:
JDK5或更高版本。
Maven3.0或以上任何版本。
IDE工具-Eclipse通常是所有開(kāi)發(fā)人員首選的,因?yàn)镸aven和Eclipse的組合更易于使用。
CedricBeust創(chuàng)建了TestNG,這是一個(gè)基于Java的開(kāi)源自動(dòng)化測(cè)試框架,受JUnit的啟發(fā)。但是,它更強(qiáng)大。NG意味著TestNG中的下一代。該框架旨在在集成期間以更好的方式執(zhí)行。該框架可幫助開(kāi)發(fā)人員進(jìn)行排序,分組和參數(shù)化等功能,從而使新測(cè)試用例更加靈活,并消除了之前使用的框架的缺點(diǎn)。
(1)安裝TestNG的先決條件
要安裝TestNG,您需要:
系統(tǒng)中安裝了最新版本的JDK。
最新版本的Eclipse
Java或任何其他面向?qū)ο缶幊陶Z(yǔ)言的知識(shí)和實(shí)踐經(jīng)驗(yàn)
(2)TestNG的優(yōu)點(diǎn)和缺點(diǎn)
除了克服舊框架的缺點(diǎn)之外,TestNG還有幾個(gè)優(yōu)點(diǎn):
該框架使您能夠在多個(gè)代碼片段上運(yùn)行并行測(cè)試。
在測(cè)試用例執(zhí)行期間,您可以生成HTML報(bào)告。
可以根據(jù)優(yōu)先級(jí)對(duì)測(cè)試用例進(jìn)行分組和排列。只需要讓框架運(yùn)行數(shù)據(jù)庫(kù)測(cè)試或前端測(cè)試或任何你想要的東西,執(zhí)行測(cè)試就會(huì)簡(jiǎn)單得多。
您可以參數(shù)化數(shù)據(jù)并使用注釋來(lái)輕松設(shè)置優(yōu)先級(jí)。
唯一的缺點(diǎn)是:
這取決于您的要求。如果您的項(xiàng)目不需要測(cè)試用例優(yōu)先級(jí),則可能不想使用TestNG。此外,設(shè)置TestNG需要一點(diǎn)時(shí)間。
(3)TestNG是您最好的Java測(cè)試框架嗎?
雖然JUnit執(zhí)行與TestNG相同的所有功能,但它肯定有其局限性。當(dāng)單獨(dú)完成測(cè)試時(shí),JUnit是完美的。但是當(dāng)存在依賴(lài)性時(shí);您無(wú)法控制先執(zhí)行哪個(gè)測(cè)試。TestNG允許您以任何您想要的順序運(yùn)行測(cè)試用例,從而幫助您。此外,它還有助于參數(shù)化測(cè)試。雖然JUnit4.5中已經(jīng)存在此功能,但TestNG更有效。如果您的項(xiàng)目很復(fù)雜并且可能需要一百多個(gè)測(cè)試用例,那么花一些時(shí)間設(shè)置TestNG而不是依賴(lài)于JUnit是理想的。
Selenide由Selenium提供支持,是一種用于為Java應(yīng)用程序編寫(xiě)穩(wěn)定、精確和富有表現(xiàn)力的UI測(cè)試用例的流行工具。像Ajax這樣的現(xiàn)代Web技術(shù)的測(cè)試具有某些復(fù)雜性,例如超時(shí)。WebDriver是用于UI測(cè)試的流行工具,但它缺乏處理超時(shí)的功能。Selenide以簡(jiǎn)單的方式處理所有這些問(wèn)題。此外,它更容易抓住和學(xué)習(xí)。您無(wú)需任何Google要求并搜索教程。您需要做的就是專(zhuān)注于業(yè)務(wù)邏輯,只需幾行簡(jiǎn)單的代碼,您的工作就會(huì)完成。
(1)使用selenide的先決條件是什么?
selenide的安裝盡可能簡(jiǎn)單。如果您使用的是Maven,則需要在pom.xml文件中添加以下行。
(2)selenide的優(yōu)點(diǎn)和缺點(diǎn)
在應(yīng)用程序的前端層,在服務(wù)器端使用Java,測(cè)試人員面臨的最常見(jiàn)問(wèn)題是超時(shí)。您編寫(xiě)的測(cè)試用例目前可能正常工作,但幾天之后,也許某些Ajax請(qǐng)求將比現(xiàn)在花費(fèi)更多時(shí)間或者某些JavaScript將運(yùn)行得更慢。此外,您的系統(tǒng)可能同時(shí)運(yùn)行另一個(gè)進(jìn)程,導(dǎo)致測(cè)試用例失敗。更不幸的是,你可能花了幾天時(shí)間找出這些問(wèn)題的根源。Selenide通過(guò)以下方式幫助您:
簡(jiǎn)潔的測(cè)試用例編寫(xiě)過(guò)程,消除了超時(shí)問(wèn)題。
支持使用AngularJS開(kāi)發(fā)的應(yīng)用程序的測(cè)試
減少了傳統(tǒng)Selenium工具使用的大多數(shù)命令。
到目前為止,我們還沒(méi)有發(fā)現(xiàn)使用Selenide有任何明顯的缺點(diǎn)。
(3)Selenide是您最好的Java測(cè)試框架嗎?
對(duì)于UI測(cè)試,除了SeleniumWebDriver(Selenide的父框架)之外,沒(méi)有更好的基于Java的框架。顯然,WebDriver無(wú)法解決由AjaxTimeout或運(yùn)行緩慢的JavaScript或任何需要時(shí)間加載的動(dòng)態(tài)內(nèi)容引起的問(wèn)題。為了克服這些問(wèn)題,我們之前在測(cè)試用例中使用了“wait_until”或“sleep”方法。有了Selenide,我們不再需要考慮這些問(wèn)題了。只關(guān)注業(yè)務(wù)邏輯,測(cè)試用例可以很好地滿足其目的。
在當(dāng)前的敏捷時(shí)代,開(kāi)發(fā)人員也需要參與測(cè)試。了解測(cè)試知識(shí)的重要性是專(zhuān)業(yè)Java開(kāi)發(fā)人員與業(yè)余愛(ài)好者的區(qū)別。您沒(méi)有必要成為專(zhuān)家,但至少您應(yīng)具備編寫(xiě)可自動(dòng)驗(yàn)證代碼的測(cè)試用例的基本知識(shí)。在本文中,我們通過(guò)了五個(gè)工具,這些工具是全球開(kāi)發(fā)人員首選的UI測(cè)試,單元測(cè)試和應(yīng)用程序的BDD測(cè)試。根據(jù)比較結(jié)果,我們可以得出結(jié)論,如果您對(duì)自己的工作很誠(chéng)懇,并希望成為專(zhuān)家開(kāi)發(fā)人員和測(cè)試人員,那么上面提到的工具就會(huì)在您的日常任務(wù)中發(fā)揮作用。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743