孫志斌 蒲春俊(青海中信國(guó)安科技發(fā)展有限公司,青海 格爾木 816099)
Web服務(wù)自動(dòng)化測(cè)試技術(shù)初探
孫志斌 蒲春俊(青海中信國(guó)安科技發(fā)展有限公司,青海 格爾木 816099)
web服務(wù)是web service的簡(jiǎn)稱,到目前為止,這種技術(shù)在當(dāng)前和未來都是網(wǎng)絡(luò)分布式應(yīng)用的主流軟件技術(shù)。因此,怎樣使得web服務(wù)軟件的質(zhì)量能夠更可靠是很重要的課題。在本文中,對(duì)web服務(wù)的測(cè)試工具以及層次和階段進(jìn)行了分析,也對(duì)其技術(shù)框架進(jìn)行了介紹,主要包括web服務(wù)操作序列、web服務(wù)組合wsb-pel流程測(cè)試等關(guān)鍵技術(shù),根據(jù)這一系列的探索,證明了web服務(wù)自動(dòng)化測(cè)試技術(shù)是值得進(jìn)一步探討的。
web服務(wù);自動(dòng)化測(cè)試;技術(shù)
1.1 Weblnject
簡(jiǎn)言之,Weblnject就是一種引擎,它的主職能就是執(zhí)行Web服務(wù)以及產(chǎn)生測(cè)試結(jié)果報(bào)告。這個(gè)工具在進(jìn)入工作狀態(tài)的時(shí)候,還需要xml文件的幫助,這種文件包含了描述測(cè)試用例,可以對(duì)需要測(cè)試的操作進(jìn)行描述、提供測(cè)試數(shù)據(jù)。
1.2 Wstest
Wstest工具主要用于自動(dòng)激活用戶指定的Web服務(wù)以及對(duì)測(cè)試返回的結(jié)進(jìn)行報(bào)告務(wù),主要操作步驟就是先后輸入需要測(cè)試的Web服務(wù)的地址、測(cè)試的操作名以及相應(yīng)操作的測(cè)試用劑。這種工具的操作功能的正確與否,主要是通過對(duì)返回結(jié)果和預(yù)期結(jié)果是否一致進(jìn)行查看來判斷的。
1.3 Soapul
Soapul工具的主要功能就是對(duì)一個(gè)或者幾個(gè)測(cè)試套件進(jìn)行組織,使其成為一個(gè)系統(tǒng)的項(xiàng)目。需要注意的是這些測(cè)試套件每一個(gè)都要包含一個(gè)或者幾個(gè)測(cè)試用例,相應(yīng)的每一個(gè)測(cè)試用例中要包含一個(gè)或者幾個(gè)測(cè)試步驟,這些步驟主要包括發(fā)送請(qǐng)求、接受請(qǐng)求、結(jié)果分析以及改變測(cè)試執(zhí)行流程。
1.4 Testmaker
這種工具測(cè)試的完成主要是通過“測(cè)試代理的腳本”,主要操作步驟就是先由Testmaker提供一個(gè)代理向?qū)?,之后再把WS?DL讀入到里面去,也要?jiǎng)?chuàng)建一個(gè)測(cè)試代理的基本結(jié)構(gòu),另外相關(guān)的測(cè)試人員要注意的是要對(duì)測(cè)試代理的源代碼進(jìn)行檢查,發(fā)現(xiàn)缺少的內(nèi)容后再進(jìn)行人工填寫。
1.5 Webservicetester
Webservicetester工具的主要職能就是進(jìn)行安全的測(cè)試診斷、對(duì)功能、回歸、Bpel進(jìn)行測(cè)試,另外還有一個(gè)不容忽視的職能就是提供Web服務(wù)自動(dòng)化測(cè)試的產(chǎn)生。
1.6 Qengine
Qengine工具的功能主要是能夠自動(dòng)的進(jìn)行負(fù)載測(cè)試,在使用這種工具的時(shí)候,為了能夠有更好的體驗(yàn),用戶要從Wsdl文檔來對(duì)測(cè)試腳本進(jìn)行生成,也能夠?qū)徍藢?shí)際的響應(yīng)結(jié)果。另外,Web服務(wù)測(cè)試自動(dòng)化的關(guān)鍵就是測(cè)試用例能夠自動(dòng)的生成,而且,在使用此工具的時(shí)候,用戶需要手工進(jìn)行設(shè)計(jì)和撰寫測(cè)試用例。在本文中,根據(jù)其相關(guān)的理論和技術(shù)對(duì)web服務(wù)測(cè)試用例自動(dòng)生成技術(shù)框架進(jìn)行了研究,主要是通過一系列的研究成果,對(duì)測(cè)試用例生成支持工具進(jìn)行探索。
對(duì)于Web服務(wù)自動(dòng)化測(cè)試的技術(shù)框架,如下圖,這種技術(shù)框架的測(cè)試是一種黑盒測(cè)試,可以單獨(dú)對(duì)Web服務(wù)進(jìn)行測(cè)試,進(jìn)行黑盒測(cè)試的主要原因就是,相關(guān)的服務(wù)者只能夠獲得Web服務(wù)的規(guī)格說明文檔。相反,Bpel的測(cè)試就是使用的白盒測(cè)試。
通過上面的圖我們可以得知,最開始的測(cè)試是從Wsd文檔l開始的,這種文檔可以在很大程度上滿足W3c系統(tǒng)。在當(dāng)前,精確的Wsdl文檔被一些學(xué)者所擴(kuò)展,擴(kuò)展的主要內(nèi)容就是通過對(duì)約束信息和語義信息的加強(qiáng)從而把描述能力增強(qiáng),最后能夠很好的輔助測(cè)試用例的產(chǎn)生。在擴(kuò)展以后,Wsdl文檔的數(shù)據(jù)類型變得更有層次性,主要包括內(nèi)置、簡(jiǎn)單和復(fù)雜數(shù)據(jù)類型,其中元素simple type是定義簡(jiǎn)單數(shù)據(jù)類型的,它和內(nèi)置的數(shù)據(jù)類型是存在著相互約束關(guān)系的。并且和自己的子元素之間也存在的約束關(guān)系,它的子元素也包括特定、選擇、任意順序。在這種技術(shù)框架內(nèi),可以通過Wsdl文檔了解Soap的封裝消息,到目前為止,可以使用這個(gè)技術(shù)填充相關(guān)的數(shù)據(jù)來促進(jìn)測(cè)試用例的生成。但是,這類生成器也有些缺點(diǎn),只能夠形成唯一的Soap信息架構(gòu),不能夠覆蓋所有的數(shù)據(jù)類型,不能夠完整的滿足測(cè)試用例設(shè)計(jì)的需求。
在上文中提到了Web服務(wù)測(cè)試架構(gòu),所以需要對(duì)數(shù)據(jù)類型值域的約束來進(jìn)行充分的考慮,以便能夠生成Soap的預(yù)留數(shù)據(jù)。其生成主要包括以下步驟:(1)先要對(duì)模型constrain的值域約束進(jìn)行讀取,因?yàn)檫@些約束對(duì)字符串候選的枚舉值數(shù)值類型、等信息是有很大的影響的。(2)在獲得了相關(guān)的值域約束以后,就要等價(jià)類的劃分輸入域迚行,從而能夠獲得有效和無效的數(shù)據(jù)。(3)第三個(gè)步驟的主要內(nèi)容就是組合測(cè)試數(shù)據(jù),這個(gè)測(cè)試數(shù)據(jù)主要是通過復(fù)雜數(shù)據(jù)類型的子元素所存在的規(guī)則以及可變力度來生成的,它能夠涵蓋很多方面,主要包括正常、空值、邊界以及異常組合力度。(4)主要是對(duì)這些數(shù)據(jù)類型進(jìn)行規(guī)則,規(guī)則的標(biāo)準(zhǔn)是通過約束關(guān)系進(jìn)行的,從而能夠生成滿足和不滿足約束的相關(guān)的無效和有效的數(shù)據(jù)。(5)在前四項(xiàng)步驟已經(jīng)完成了以后,要對(duì)Soap骨架中的每一個(gè)消息進(jìn)行相關(guān)的數(shù)據(jù)填充,以此來生成單個(gè)的操作測(cè)試用例。
在文章中利用了多種形式化的方法對(duì)一些工具的功能進(jìn)行了驗(yàn)證,從而證明了Web服務(wù)自動(dòng)化技術(shù)的可研究性。
[1]許蕾,李言輝,陳林等.一種面向用戶需求的Web服務(wù)測(cè)試方法[J].計(jì)算機(jī)學(xué)報(bào),2014,37(3):512-521.