基于web的應(yīng)用的自動(dòng)化測(cè)試的制作方法
【技術(shù)領(lǐng)域】
[0001] 本說明書總體上描述了用于web應(yīng)用的自動(dòng)化測(cè)試的系統(tǒng)和過程。
【背景技術(shù)】
[0002] 基于web的應(yīng)用(web應(yīng)用)是在因特網(wǎng)web瀏覽器中執(zhí)行的軟件應(yīng)用。web應(yīng)用 通常包括在遠(yuǎn)程服務(wù)器中存儲(chǔ)和維持的軟件代碼。在用戶從web瀏覽器訪問web應(yīng)用時(shí), 用于web應(yīng)用的軟件代碼從服務(wù)器向用戶的計(jì)算機(jī)被傳輸并且在用戶的web瀏覽器上被執(zhí) 行。web應(yīng)用經(jīng)常由用戶下載作為更大web文檔的部分(例如,作為在網(wǎng)頁(yè)內(nèi)嵌入的軟件 代碼)并且通常在網(wǎng)頁(yè)內(nèi)提供動(dòng)態(tài)內(nèi)容,該動(dòng)態(tài)內(nèi)容可W改變而網(wǎng)頁(yè)本身未被重載。按照 各種編程語(yǔ)言使用各種技術(shù)來實(shí)施不同web應(yīng)用。在一些場(chǎng)景中,web應(yīng)用利用在遠(yuǎn)程服 務(wù)器上執(zhí)行的服務(wù)器側(cè)軟件代碼(例如,活躍服務(wù)器頁(yè)面(ASP)、PHP等)和由用戶的web 瀏覽器執(zhí)行的客戶端側(cè)軟件代碼(例如,超文本標(biāo)記語(yǔ)言(HTML) JavaScript、層疊樣式表 (CS巧、Flash插件、Java小應(yīng)用程序等)的組合。在運(yùn)樣的場(chǎng)景中,客戶端側(cè)軟件通常實(shí)現(xiàn) 信息的前端呈現(xiàn)并且經(jīng)由用戶的web瀏覽器與用戶交互,而服務(wù)器側(cè)軟件通常實(shí)現(xiàn)信息的 后端存儲(chǔ)和取回。web應(yīng)用在多種不同類型的網(wǎng)頁(yè)中用來使得用戶除了查看網(wǎng)頁(yè)上的靜態(tài) 內(nèi)容之外還能夠與網(wǎng)頁(yè)動(dòng)態(tài)地交互。
【發(fā)明內(nèi)容】
[0003] 在一個(gè)方面中,一種計(jì)算機(jī)實(shí)施的方法由至少一個(gè)計(jì)算機(jī)執(zhí)行,并且該方法包括 接收待測(cè)試的web應(yīng)用W及接收包括用于測(cè)試web應(yīng)用的多個(gè)用戶指定的指令的測(cè)試腳 本。該方法還包括將來自測(cè)試腳本的多個(gè)用戶指定的指令轉(zhuǎn)換成多個(gè)命令,運(yùn)多個(gè)命令包 括可由瀏覽器自動(dòng)化模塊執(zhí)行的、用于控制web瀏覽器的操作的第一類型命令和不可由瀏 覽器自動(dòng)化模塊執(zhí)行的第二類型的命令。多個(gè)命令中的命令的數(shù)目超過測(cè)試腳本中的指令 的數(shù)目。該方法還包括在web應(yīng)用在web瀏覽器上執(zhí)行之時(shí)執(zhí)行多個(gè)命令。執(zhí)行多個(gè)命令 包括向?yàn)g覽器自動(dòng)化模塊提供第一類型命令W控制web瀏覽器的操作W及執(zhí)行第二類型 命令W控制至少一個(gè)計(jì)算機(jī)的無法由瀏覽器自動(dòng)化模塊控制的操作。該方法還包括至少基 于執(zhí)行第一類型命令和第二類型命令輸出報(bào)告。
[0004] 實(shí)現(xiàn)方式可W包括W下特征中的一個(gè)或者多個(gè)特征。在一些實(shí)現(xiàn)方式中,將來自 測(cè)試腳本的多個(gè)用戶指定的指令轉(zhuǎn)換成多個(gè)命令包括將來自測(cè)試腳本的單個(gè)用戶指定的 指令擴(kuò)展成至少一個(gè)第一類型命令和至少一個(gè)第二類型命令。 陽(yáng)〇化]在一些實(shí)現(xiàn)方式中,執(zhí)行多個(gè)命令包括執(zhí)行命令序列,包括相互混合多個(gè)第一類 型命令與多個(gè)第二類型命令。
[0006] 在一些實(shí)現(xiàn)方式中,該方法還包括確定一個(gè)或者多個(gè)用戶指定的參數(shù),向?yàn)g覽器 自動(dòng)化模塊提供一個(gè)或者多個(gè)用戶指定的參數(shù)與第一類型命令,并且由瀏覽器自動(dòng)化模塊 執(zhí)行第一類型命令W基于一個(gè)或者多個(gè)用戶指定的參數(shù)控制web瀏覽器的操作。
[0007] 在一些實(shí)現(xiàn)方式中,由瀏覽器自動(dòng)化模塊執(zhí)行第一類型命令W控制web瀏覽器的 操作包括W下各項(xiàng)中的至少一項(xiàng):打開新web瀏覽器窗口、導(dǎo)航到不同網(wǎng)頁(yè)或者操作網(wǎng)頁(yè) 中的交互部件。
[0008] 在一些實(shí)現(xiàn)方式中,由瀏覽器自動(dòng)化模塊執(zhí)行第一類型命令W控制web瀏覽器的 操作包括將第一類型命令轉(zhuǎn)換成web瀏覽器原生的、并且執(zhí)行web瀏覽器的操作的命令。
[0009] 在一些實(shí)現(xiàn)方式中,第一類型的命令按照與web瀏覽器原生的命令的編程語(yǔ)言不 同的第一編程語(yǔ)言。
[0010] 在一些實(shí)現(xiàn)方式中,web瀏覽器原生的命令包括使用用于web瀏覽器的軟件驅(qū)動(dòng) 對(duì)web瀏覽器的直接調(diào)用。
[0011] 在一些實(shí)現(xiàn)方式中,執(zhí)行第二類型命令包括執(zhí)行第二類型命令而未利用瀏覽器自 動(dòng)化模塊,W及通過執(zhí)行第二類型命令而被控制的操作包括W下各項(xiàng)中的至少一項(xiàng):選擇 用于web瀏覽器的軟件驅(qū)動(dòng)、取回在網(wǎng)頁(yè)的元素中包含的數(shù)據(jù)或者取得網(wǎng)頁(yè)的屏幕截圖。
[0012] 在一些實(shí)現(xiàn)方式中,該方法還包括確定由瀏覽器自動(dòng)化模塊執(zhí)行至少一個(gè)第一類 型命令的結(jié)果,其中執(zhí)行第二類型命令包括基于由瀏覽器自動(dòng)化模塊執(zhí)行至少一個(gè)第一類 型的命令結(jié)果執(zhí)行至少一個(gè)第二類型命令。
[0013] 在一些實(shí)現(xiàn)方式中,基于由瀏覽器自動(dòng)化模塊執(zhí)行至少一個(gè)第一類型命令的結(jié)果 執(zhí)行至少一個(gè)第二類型命令包括:比較執(zhí)行至少一個(gè)第一類型命令的結(jié)果與用戶指定的條 件;W及基于比較結(jié)果與用戶指定的條件執(zhí)行至少一個(gè)第二類型命令。
[0014] 在一些實(shí)現(xiàn)方式中,由瀏覽器自動(dòng)化模塊執(zhí)行至少一個(gè)第一類型命令的結(jié)果包括 在網(wǎng)頁(yè)的內(nèi)容中或者在網(wǎng)頁(yè)的U化中包括的文本,并且其中比較結(jié)果與用戶指定的條件包 括比較文本與用戶指定的文本串。
[0015] 在一些實(shí)現(xiàn)方式中,由瀏覽器自動(dòng)化模塊執(zhí)行至少一個(gè)第一類型命令的結(jié)果包括 在web瀏覽器中加載網(wǎng)頁(yè)的內(nèi)容的測(cè)量的時(shí)間延遲,并且其中比較輸出與用戶指定的條件 包括比較測(cè)量的時(shí)間延遲與用戶指定的闊值。
[0016] 在一些實(shí)現(xiàn)方式中,基于比較由瀏覽器自動(dòng)化模塊執(zhí)行至少一個(gè)第一類型命令與 用戶指定的條件的結(jié)果執(zhí)行至少一個(gè)第二類型命令包括基于確定加載網(wǎng)頁(yè)的內(nèi)容的測(cè)量 的時(shí)間延遲大于用戶指定的闊值,確定網(wǎng)頁(yè)的內(nèi)容的一部分是否已經(jīng)加載。
[0017] 在一些實(shí)現(xiàn)方式中,該方法還包括操作至少一個(gè)計(jì)算機(jī)的通信部件W從位于至少 一個(gè)計(jì)算機(jī)外部的數(shù)據(jù)庫(kù)中的存儲(chǔ)器部件訪問用戶指定的條件。
[0018] 在一些實(shí)現(xiàn)方式中,可由瀏覽器自動(dòng)化模塊執(zhí)行的第一類型命令和不可由瀏覽器 自動(dòng)化模塊執(zhí)行的第二類型命令均按照相同編程語(yǔ)言被編寫。
[0019] 在一些實(shí)現(xiàn)方式中,該方法還包括基于執(zhí)行web應(yīng)用的自動(dòng)化測(cè)試的結(jié)果確定 web應(yīng)用是否滿足至少一個(gè)用戶指定的性能標(biāo)準(zhǔn)。
[0020] 在一些實(shí)現(xiàn)方式中,基于執(zhí)行web應(yīng)用的自動(dòng)化測(cè)試的結(jié)果輸出報(bào)告包括:至少 基于至少一個(gè)第二類型命令確定報(bào)告格式;W及根據(jù)確定的報(bào)告格式生成HTML文檔。
[0021] 貫穿本申請(qǐng)描述的特征的所有或者部分特征可W被實(shí)施為一種用計(jì)算機(jī)程序編 碼的計(jì)算機(jī)存儲(chǔ)介質(zhì),該計(jì)算機(jī)程序包括可由一個(gè)或者多個(gè)處理器執(zhí)行的指令。貫穿本申 請(qǐng)描述的特征的所有或者部分特征可W被實(shí)施為一種可W包括一個(gè)或者多個(gè)處理設(shè)備和 用于存儲(chǔ)用于實(shí)施陳述的功能的可執(zhí)行指令的存儲(chǔ)器的裝置、方法或者電子系統(tǒng)。
[0022] 在附圖和W下描述中闡述一個(gè)或者多個(gè)實(shí)現(xiàn)方式的細(xì)節(jié)。其他特征將從描述和附 圖w及從權(quán)利要求中變清楚。
【附圖說明】
[0023] 圖1是圖示了可W執(zhí)行本公開內(nèi)容的實(shí)現(xiàn)方式的系統(tǒng)的示例的框圖;
[0024] 圖2是圖示了執(zhí)行web應(yīng)用的自動(dòng)化測(cè)試的系統(tǒng)的部件的示例的框圖; 陽(yáng)025] 圖3是圖示了執(zhí)行自動(dòng)化測(cè)試web應(yīng)用的示例的略圖;W及
[002引圖4至圖6是圖示執(zhí)行web應(yīng)用的自動(dòng)化測(cè)試的示例的流程圖。
[0027] 在下文中,將參照附圖給出對(duì)示例的具體描述。應(yīng)當(dāng)理解,可W做出對(duì)示例的各種 修改。特別地,一個(gè)示例的單元可W在其他示例中被組合和使用W形成新示例。各種附圖 中的相似標(biāo)號(hào)指示相似單元。
【具體實(shí)施方式】
[0028] web應(yīng)用通常被設(shè)計(jì)為在許多不同類型的使用場(chǎng)景之下操作,運(yùn)些不同類型的使 用場(chǎng)景包括其中擅染web應(yīng)用的不同類型的網(wǎng)頁(yè)、不同類型的web瀏覽器、不同用戶導(dǎo)航行 為和不同類型的計(jì)算設(shè)備。在特定使用場(chǎng)景之下未能恰當(dāng)?shù)夭僮鞯膚eb應(yīng)用可能不僅影響 web應(yīng)用本身,而且還影響在主控web應(yīng)用的周圍網(wǎng)頁(yè)中的內(nèi)容。測(cè)試web應(yīng)用的過程通常 是設(shè)及測(cè)試許多不同場(chǎng)景和模擬許多不同用戶行為的復(fù)雜過程。
[0029] 根據(jù)本公開內(nèi)容的系統(tǒng)實(shí)現(xiàn)了對(duì)在web瀏覽器上運(yùn)行的web應(yīng)用的自動(dòng)化測(cè)試。 在一些實(shí)現(xiàn)方式中,系統(tǒng)使得用戶能夠使用比原本可能的指令集更簡(jiǎn)單的指令集來對(duì)web 應(yīng)用執(zhí)行更全面的測(cè)試。系統(tǒng)可W使得用戶能夠使用簡(jiǎn)單指令W執(zhí)行復(fù)雜測(cè)試操作。在一 些實(shí)現(xiàn)方式中,系統(tǒng)也可W有助于使用參數(shù)化W定制測(cè)試操作。系統(tǒng)可W提供使得用戶能 夠?qū)eb應(yīng)用的測(cè)試執(zhí)行多種測(cè)試的邏輯測(cè)試功能?;跍y(cè)試的結(jié)果,系統(tǒng)可W提供可定 制報(bào)告。例如,系統(tǒng)可W在報(bào)告中提供屏幕截圖或者其他類型的數(shù)據(jù)。
[0030] 在一些實(shí)現(xiàn)方式中,系統(tǒng)包括控制web瀏覽器和計(jì)算系統(tǒng)的其他部件W測(cè)試web 應(yīng)用的操作的web應(yīng)用測(cè)試模塊。web應(yīng)用測(cè)試模塊在一些實(shí)現(xiàn)方式中可W將用戶輸入的 指令轉(zhuǎn)換成控制web瀏覽器W及測(cè)試系統(tǒng)的用來執(zhí)行web應(yīng)用的其他部件的更復(fù)雜低級(jí)命 令。運(yùn)樣,web應(yīng)用測(cè)試模塊可W提供用于測(cè)試web應(yīng)用的統(tǒng)一、全面和易用的框架。
[0031] 在一些實(shí)現(xiàn)方式中,web應(yīng)用測(cè)試模塊可W利用瀏覽器自動(dòng)化模塊。瀏覽器自動(dòng) 化模塊可W在網(wǎng)頁(yè)中對(duì)用戶的動(dòng)作進(jìn)行自動(dòng)化。例如,瀏覽器自動(dòng)化模塊可W使得用戶能 夠指定命令集并且可W基于命令控制對(duì)web瀏覽器的一系列操作,比如加載特定網(wǎng)頁(yè)、填 寫網(wǎng)頁(yè)上的表(例如,文本框)、點(diǎn)擊按鈕等。
[0032] 然而,可W限制瀏覽器自動(dòng)化模塊。例如,在一些情況下,瀏覽器自動(dòng)化模塊可能 不能執(zhí)行由測(cè)試場(chǎng)景指定的更高級(jí)的操作。運(yùn)樣的操作例如可W包括高級(jí)功能,比如比較 網(wǎng)頁(yè)內(nèi)的文本與用戶指定的文本串、測(cè)量用于加載網(wǎng)頁(yè)的時(shí)間延遲、取得網(wǎng)頁(yè)的屏幕截圖、 與遠(yuǎn)程數(shù)據(jù)庫(kù)連接W存儲(chǔ)/取回信息等。在運(yùn)樣的情況下,可W要求實(shí)施測(cè)試場(chǎng)景的用戶 直接地控制測(cè)試系統(tǒng)的部件W執(zhí)行運(yùn)樣的操作,運(yùn)可W需要為了與那些部件對(duì)接而需要的 特定編程語(yǔ)言的知識(shí)。
[0033] 運(yùn)樣的困難可W由web應(yīng)用測(cè)試模塊克服,該web應(yīng)用測(cè)試模塊提供更全面的測(cè) 試環(huán)境W不僅控制web瀏覽器的可W由瀏覽器自動(dòng)化模塊操作的那些操作,而且還控制參 與對(duì)web應(yīng)用進(jìn)行測(cè)試的測(cè)試系統(tǒng)的其他操作。web應(yīng)用測(cè)試模塊可W在允許用戶執(zhí)行比 單獨(dú)使用瀏覽器自動(dòng)化模塊而原本可能的對(duì)web應(yīng)用的更全面的測(cè)試的單個(gè)統(tǒng)一框架之 下與web瀏覽器自動(dòng)化模塊的功能一起提供運(yùn)一附加功能。
[0034] 例如,web應(yīng)用測(cè)試模塊可W接收包含用戶指定的指令的測(cè)試腳本作為輸入。web 應(yīng)用測(cè)試模塊可W將測(cè)試腳本轉(zhuǎn)換成一系列命令W控制測(cè)試系統(tǒng)的各種部件的操作。將用 戶指定的測(cè)試腳本轉(zhuǎn)換成一系列命令可W完全地出現(xiàn)在執(zhí)行命令之前或者可W至少部分 地出現(xiàn)在執(zhí)行命令中的一些命令期間。在一些實(shí)現(xiàn)方式中,一系列命令可W包括可W按照 特定順序相互混合的兩個(gè)不同類型的命令。系統(tǒng)可W通過向?yàn)g覽器自動(dòng)化模塊提供第一類 型的命令W控制web瀏覽器并且執(zhí)行第二類型的命令W控制未被瀏覽器自動(dòng)化模塊控制 的部件(例如,非瀏覽器部件)的操作,來按照指定的順序