本發(fā)明涉及Web自動(dòng)化測(cè)試框架,具體的說(shuō)是基于Selenium和TestNG的自動(dòng)化測(cè)試方法。
背景技術(shù):
Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具,直接運(yùn)行在瀏覽器中,就像真正的用戶(hù)在操作一樣。Selenium支持的瀏覽器包括IE、Mozilla Firefox、Mozilla Suite、Google Chrome等。這個(gè)工具的主要功能包括:測(cè)試與瀏覽器的兼容性——測(cè)試應(yīng)用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上;測(cè)試系統(tǒng)功能——?jiǎng)?chuàng)建回歸測(cè)試檢驗(yàn)軟件功能和用戶(hù)需求;支持自動(dòng)錄制動(dòng)作和自動(dòng)生成.Net、Java、Perl等不同語(yǔ)言的測(cè)試腳本。Selenium是ThoughtWorks專(zhuān)門(mén)為Web應(yīng)用程序編寫(xiě)的一個(gè)驗(yàn)收測(cè)試工具。
TestNG是一個(gè)開(kāi)源自動(dòng)化測(cè)試框架,支持依賴(lài)性測(cè)試、套件測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試、失敗和重運(yùn)行、靈活的運(yùn)行時(shí)配置,適合進(jìn)行高級(jí)測(cè)試及大型測(cè)試套件的測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行。
當(dāng)前Web自動(dòng)化測(cè)試框架主要有以下兩種:1、基于QTP和QC的自動(dòng)化測(cè)試框架;2、基于Selenium的未分層的自動(dòng)化測(cè)試框架?;赒TP和QC的自動(dòng)化測(cè)試框架主要有以下不足:需要安裝QTP、QC等非開(kāi)源工具;對(duì)操作系統(tǒng)有限制,只能在Windows下;運(yùn)行速度較慢;可讀性較差;無(wú)法設(shè)置依賴(lài)測(cè)試;不方便進(jìn)行失敗重運(yùn)行。基于Selenium的未分層的自動(dòng)化測(cè)試框架,未進(jìn)行測(cè)試數(shù)據(jù)、頁(yè)面對(duì)象和方法、測(cè)試場(chǎng)景三者分層,主要有以下不足:測(cè)試場(chǎng)景和頁(yè)面對(duì)象、頁(yè)面方法都在一起,不方便維護(hù);不方便進(jìn)行參數(shù)化的數(shù)據(jù)驅(qū)動(dòng)測(cè)試;在較大項(xiàng)目進(jìn)行實(shí)際應(yīng)用會(huì)很困難,維護(hù)成本非常高;測(cè)試人員必須非常了解業(yè)務(wù)系統(tǒng)才能編寫(xiě)腳本。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)目前技術(shù)發(fā)展的需求和不足之處,提供基于Selenium和TestNG的自動(dòng)化測(cè)試方法。
本發(fā)明所述基于Selenium和TestNG的自動(dòng)化測(cè)試方法,解決上述技術(shù)問(wèn)題采用的技術(shù)方案如下:所述基于Selenium和TestNG的自動(dòng)化測(cè)試方法,將Web應(yīng)用程序測(cè)試工具Selenium和開(kāi)源自動(dòng)化測(cè)試框架TestNG進(jìn)行結(jié)合,采用測(cè)試數(shù)據(jù)、頁(yè)面對(duì)象和方法、測(cè)試場(chǎng)景三者分層的形式,搭建良好的Web自動(dòng)化測(cè)試框架,進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試。
優(yōu)選的,新建java工程,新建libs目錄,將所需jar包復(fù)制到libs目錄下,并且將jar包引入到工程的編譯路徑下。
優(yōu)選的,新建目錄,其中data目錄存放測(cè)試數(shù)據(jù),object存放頁(yè)面的對(duì)象和方法,scenario存放測(cè)試場(chǎng)景,commmon存放公共類(lèi)。
優(yōu)選的,運(yùn)行BaiduDemoScenario.java,運(yùn)行結(jié)束之后生成測(cè)試報(bào)告。
優(yōu)選的,在瀏覽器訪(fǎng)問(wèn)index.html:若一個(gè)測(cè)試類(lèi)中有多個(gè)@Test需要設(shè)置執(zhí)行順序,則使用屬性dependsOnMethods在@Test注釋。
本發(fā)明所述基于Selenium和TestNG的自動(dòng)化測(cè)試方法與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明將Selenium和TestNG進(jìn)行結(jié)合,采用測(cè)試數(shù)據(jù)、頁(yè)面對(duì)象和方法、測(cè)試場(chǎng)景三者分層的形式,降低各測(cè)試場(chǎng)景之間的耦合度,實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)測(cè)試,方便腳本的維護(hù),使得腳本可讀性更高,降低自動(dòng)化測(cè)試腳本維護(hù)成本,更加高效的開(kāi)展Web自動(dòng)化測(cè)試,提高測(cè)試的可靠性,避免人為因素。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,對(duì)本發(fā)明所述基于Selenium和TestNG的自動(dòng)化測(cè)試方法進(jìn)一步詳細(xì)說(shuō)明。
實(shí)施例:
本實(shí)施所述基于Selenium和TestNG的自動(dòng)化測(cè)試方法,將Web應(yīng)用程序測(cè)試工具Selenium和開(kāi)源自動(dòng)化測(cè)試框架TestNG進(jìn)行結(jié)合,采用測(cè)試數(shù)據(jù)、頁(yè)面對(duì)象和方法、測(cè)試場(chǎng)景三者分層的形式,搭建良好的Web自動(dòng)化測(cè)試框架,進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試、依賴(lài)測(cè)試、多線(xiàn)程測(cè)試。
下面以訪(fǎng)問(wèn)百度為例,對(duì)所述自動(dòng)化測(cè)試方法進(jìn)行詳細(xì)介紹,具體包括如下步驟:
步驟一,新建java工程,新建libs目錄,將所需jar包復(fù)制到libs目錄下,并且將jar包引入到工程的編譯路徑下;用到的jar包包括Selenium的所有jar包、feed4testng的所有jar包、以及guice-3.0.jar;
步驟二,新建目錄,其中data目錄存放測(cè)試數(shù)據(jù),object存放頁(yè)面的對(duì)象和方法,scenario存放測(cè)試場(chǎng)景,commmon存放公共類(lèi);在data目錄下新建xls數(shù)據(jù)文件,新增列input;在object目錄下新建頁(yè)面對(duì)象和方法類(lèi),定義頁(yè)面對(duì)象,創(chuàng)建用到的方法;在scenario目錄下新建測(cè)試場(chǎng)景類(lèi),在common目錄下新建公共類(lèi);
步驟三,運(yùn)行BaiduDemoScenario.java,運(yùn)行結(jié)束之后生成測(cè)試報(bào)告;
步驟四,在瀏覽器訪(fǎng)問(wèn)index.html:若一個(gè)測(cè)試類(lèi)中有多個(gè)@Test需要設(shè)置執(zhí)行順序,則使用屬性dependsOnMethods在@Test注釋。@Test注解是JUnit測(cè)試的基礎(chǔ)。
使用屬性groups在@Test注釋?zhuān)付╰estng.xml文件使用<groups>標(biāo)簽實(shí)現(xiàn)分組測(cè)試;使用<suite>標(biāo)簽實(shí)現(xiàn)套件測(cè)試;使用屬性expectedExceptions在@Test注釋?zhuān)瑢?shí)現(xiàn)異常測(cè)試;使用@Test(enabled=false)實(shí)現(xiàn)忽略測(cè)試;使用@Parameters在beforeClass()方法中參數(shù)化,指定testng.xml文件使用<suite>標(biāo)簽下的parallel、thread-count屬性,和<parameter>標(biāo)簽實(shí)現(xiàn)多線(xiàn)程并發(fā)測(cè)試。
本實(shí)施例所述基于Selenium和TestNG的自動(dòng)化測(cè)試方法,將Selenium和TestNG進(jìn)行結(jié)合,采用測(cè)試數(shù)據(jù)、頁(yè)面對(duì)象和方法、測(cè)試場(chǎng)景三者分層的形式,實(shí)現(xiàn)三者單獨(dú)維護(hù)。data層用來(lái)存放測(cè)試數(shù)據(jù),object層用來(lái)存放頁(yè)面對(duì)象和方法,scenario層用來(lái)存放測(cè)試場(chǎng)景。測(cè)試數(shù)據(jù)準(zhǔn)備人員可以專(zhuān)注于準(zhǔn)備測(cè)試場(chǎng)景對(duì)應(yīng)的測(cè)試數(shù)據(jù),無(wú)需關(guān)心頁(yè)面對(duì)象如何獲取,都有哪些方法;頁(yè)面腳本編寫(xiě)人員可以專(zhuān)注于定義頁(yè)面對(duì)象和封裝方法,無(wú)需關(guān)心如何組裝場(chǎng)景,數(shù)據(jù)如何準(zhǔn)備;測(cè)試場(chǎng)景設(shè)計(jì)人員可以專(zhuān)注于場(chǎng)景設(shè)置,無(wú)需關(guān)心頁(yè)面對(duì)象是如何獲取的。使得自動(dòng)化測(cè)試操作起來(lái)更加容易,同樣提高了測(cè)試效率。
該自動(dòng)化測(cè)試方法能夠支持多種瀏覽器,如IE8,9,10,11、Firefox、Opera、Safari、Chrome;能夠支持多種操作系統(tǒng),如Windows、Linux、Mac、Solaris;能夠支持多線(xiàn)程并發(fā)測(cè)試,可以調(diào)用不同瀏覽器測(cè)試,實(shí)現(xiàn)遠(yuǎn)程不同瀏覽器兼容性測(cè)試;頁(yè)面對(duì)象和方法可復(fù)用,測(cè)試數(shù)據(jù)易于維護(hù)和管理,降低各測(cè)試場(chǎng)景之間的耦合度;同時(shí),支持套件測(cè)試、分組測(cè)試、依賴(lài)測(cè)試、異常測(cè)試、忽略測(cè)試,方便組織測(cè)試場(chǎng)景;并且,支持失敗重運(yùn)行,可以單獨(dú)重運(yùn)行執(zhí)行失敗的用例??梢越Y(jié)合持續(xù)集成工具,實(shí)現(xiàn)自動(dòng)更新測(cè)試環(huán)境、自動(dòng)備份還原測(cè)試數(shù)據(jù)庫(kù),做到真正無(wú)人值守的高效的自動(dòng)化測(cè)試。
上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專(zhuān)利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的權(quán)利要求書(shū)的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專(zhuān)利保護(hù)范圍。