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