最近在webservice的項(xiàng)目中,主要使用SOAPUI進(jìn)行webservice的測(cè)試,SOAPUI是一個(gè)開源的測(cè)試API的工具,對(duì)于現(xiàn)在的SOAP,REST的webservice的支持都很好。下面簡(jiǎn)單介紹下SOAPUI的原理,SOAPUI和大多數(shù)的工具一樣,都是使用HTTPREQUEST對(duì)相應(yīng)的資源進(jìn)行請(qǐng)求很提取。再得到response之后進(jìn)行相應(yīng)的處理,對(duì)XML進(jìn)行XPATH定位。注意的是SOAP方法中包含GET,POST的方法,POST的方法主要使用Application/xml的MIME形式發(fā)送相應(yīng)的POST數(shù)據(jù)。這里注意webservice都有一些通病,對(duì)SQLinjection基本都沒有相應(yīng)的保護(hù),所以我們要注意的是對(duì)webservice中POST的數(shù)據(jù)進(jìn)行校驗(yàn)。也就是通常所說的安全校驗(yàn)。
對(duì)webservice的測(cè)試主要分為兩個(gè)階段,首先是對(duì)WEB Ui層面的數(shù)據(jù)XML Response與webservice的schema進(jìn)行對(duì)比測(cè)試,其次是web Ui層面的數(shù)據(jù)與數(shù)據(jù)庫(kù)服務(wù)器中相應(yīng)的數(shù)據(jù)進(jìn)行驗(yàn)證。這兩個(gè)階段的測(cè)試必須進(jìn)行對(duì)比,以防止webservice的編寫嚴(yán)謹(jǐn)度不夠。
在實(shí)際項(xiàng)目中遇到過這樣的一個(gè)BUG,在UI界面的功能中,詳細(xì)信息中的必填項(xiàng)(非0)與受限制項(xiàng)(比如有文本限制,字體限制等等)在webservice實(shí)現(xiàn)中沒有體現(xiàn),我們可以用0值POST到數(shù)據(jù)庫(kù)中。主要是由于開發(fā)在wenservice編寫中沒有校驗(yàn)和嚴(yán)謹(jǐn)?shù)脑O(shè)計(jì)。
SOAPUI支持的語言是GROOVY,作為JAVA的腳本語言,GROOVY的擴(kuò)展性很強(qiáng),再加上SOAPUI中原本實(shí)現(xiàn)的utils類能對(duì)相應(yīng)的response進(jìn)行XPATH的定位,得到相應(yīng)的數(shù)據(jù)進(jìn)行驗(yàn)證,在webservice實(shí)現(xiàn)中還能夠使用property transfer進(jìn)行對(duì)參數(shù)的傳遞,功能十分強(qiáng)大。
在使用SOAPUI前如果是大數(shù)據(jù)量的,比如100個(gè)CASE對(duì)數(shù)據(jù)的查詢比較頻繁,建議在使用前,對(duì)SOAPUI的JVM的設(shè)置提高,建議在
聯(lián)系客服