日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tcp接口测试工具_你不了解的,完整“接口测试”与服务虚拟化

發(fā)布時間:2024/9/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tcp接口测试工具_你不了解的,完整“接口测试”与服务虚拟化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?如能幫到你,下方為我們點個??推薦:15款“云買菜”平臺如何選?36城200名體驗者告訴你!注:文章原標題“接口測試與服務虛擬化”正文開始:什么是接口測試?前幾年當我們提自動化測試時,很多時候是指UI界面層的自動化測試。但是近年來隨著分層自動化測試(圖1)概念的興起以及自動化測試自身的發(fā)展與細分,自動化測試有了更多的內(nèi)容。比如本文即將要談到的接口自動化測試,就是其中一種。

圖1:分層自動化測試接口測試并沒有一個標準的定義,老外的文章也較少提"Interface Testing"這個詞,一般見到比較多的是"API Testing"。我們從百度百科可以查到,“接口測試是測試系統(tǒng)組件間接口的一種測試。接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點。測試的重點是要檢查數(shù)據(jù)的交換,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等”。這幾年隨著微服務架構(gòu)的流行與發(fā)展,在接口測試領(lǐng)域又蹦出了一個詞,叫“契約測試”(Consumer-DrivenContracts Testing,簡稱CDC Testing)。但是正所謂萬變不離其宗,無論如何稱呼,始終都是圍繞著系統(tǒng)與系統(tǒng)之間,接口與接口之間邏輯的正確性來開展測試,所以也是屬于接口測試的一種。很多人一談到接口自動化測試,首當其沖就想到SoapUI,Postmon或者JMeter等接口自動化測試工具。誠然,這些工具都是屬于接口自動化測試的利器,解決了模擬客戶端向服務端發(fā)請求并且校驗結(jié)果的功能。但是在筆者看來,這些還不是接口自動化測試的全部內(nèi)涵。讓我們再回顧接口測試的定義,接口測試是測試系統(tǒng)組件間接口的一種測試,言下之意也就是說不僅要模擬客戶端組件測服務端功能,也要模擬服務端組件測客戶端功能,只有雙向都能進行測試,才是完整“接口測試”的含義。而對于模擬服務端,我們有一個高大上的術(shù)語,叫“服務虛擬化”,在老外的文章中經(jīng)常會看到這個詞的英文翻譯叫:“Service Virtualization”。什么是服務虛擬化?筆者最早接觸服務虛擬化這個詞,是在2013年左右。當時IBM收購了英國一家專門做接口測試工具的廠商叫“Green Hat”(這家公司在歐美很成功,四五十人的團隊每年的營業(yè)額卻能達到幾千萬美元)。由于Green Hat的中文翻譯有點令人尷尬,所以IBM索性改名為Rational Integration Tester,同時還配套推出了一本電子書叫“Service Virtualization for Dummies”。這本書有六七十頁,很系統(tǒng)的講了服務虛擬化的知識。那么,究竟什么是服務虛擬化呢?服務虛擬化是指通過錄制或構(gòu)造建模的方式產(chǎn)生服務仿真模塊(圖2),從而配合客戶端組件進行功能測試。看到這里可能有人會說,這不就是樁(Stub)嗎?我讓開發(fā)人員碼一個出來不就行了?確實,生成樁是結(jié)果,但是請注意生成樁的過程,服務虛擬化是通過錄制或構(gòu)造建模生成樁,而不是要靠開發(fā)人員大量編碼來生成。設想,要是一個復雜系統(tǒng)有上百的不同協(xié)議不同報文格式的接口,開發(fā)人員一個個開發(fā),那是何等大的開發(fā)量!

圖2:服務虛擬化服務虛擬化的價值那么服務虛擬化究竟有什么價值呢?筆者認為主要有以下幾點:1. 節(jié)省建設測試環(huán)境的費用大家知道,我們的測試環(huán)境一般有幾套,像常見的集成測試環(huán)境、系統(tǒng)測試環(huán)境、系統(tǒng)集成測試環(huán)境等等;如果這些環(huán)境所需的硬件資源要求不高則罷,若是要求很高的話是很難為每套環(huán)境都配置資源的。比如銀行corebanking有不少是用IBM system Z大機,這種一臺動輒上億投入的硬件,是根本不可能會隨便能配幾套做測試環(huán)境的。很多時候當進行前期的測試時如果需要跟核心系統(tǒng)聯(lián)調(diào)的話,勢必會存在資源不足的情況。這種情況下,如果能把核心系統(tǒng)的接口服務進行虛擬化,那么測試的過程則不必需要真的去調(diào)真正的接口,但同時也能使得整個交易的測試過程進行下去。這樣就可以在前期測試階段減少了大量的投入。另外一個方面是關(guān)于第三方測試環(huán)境,比如大家知道萬事達信用卡。如果您是作為銀行系統(tǒng)的測試人員,要想隨時和萬事達接口聯(lián)調(diào)是很困難的,而且每個月你還必須為聯(lián)調(diào)測試環(huán)境附上一筆不菲的租賃費用。那么我們其實也可以利用服務虛擬化技術(shù),在測試前期通過和虛擬服務樁的測試,確保早點完成業(yè)務交易測試過程,從而節(jié)省了第三方測試license的費用。2. 縮減環(huán)境建設時間在整個測試過程中,測試環(huán)境的搭建是非常花費時間的。據(jù)業(yè)界統(tǒng)計,大概有40%的測試時間都花在環(huán)境搭建上面。我們?nèi)绻谇捌跍y試階段的環(huán)境中某些子系統(tǒng)或者組件利用服務虛擬化的技術(shù),簡單的生成可測試的樁,這樣不僅能保證測試的業(yè)務流程不會阻塞,還能大大簡化整個測試環(huán)境的搭建時間,給項目帶來非常大的幫助。3. 降低風險我們在做系統(tǒng)聯(lián)調(diào)測試的時候最怕的就是那種所謂的“Big-Bang Testing”,也就是在測試的前面階段由于環(huán)境不具備、對端接口沒完成等各種環(huán)境問題導致測試人員在不停的等待,直到所有的環(huán)境接口都開發(fā)完后而測試時間所剩無幾的情況下再進行測試。這時的情況就像定時炸彈一樣隨時都有可能爆炸。為了避免“Big-Bang Testing”,就需要我們在前期階段就開始測試,這時需要通過服務虛擬化,先對自己的接口模塊進行自測,盡早發(fā)現(xiàn)問題并且盡早解決,從而降低了項目的質(zhì)量風險。服務虛擬化的局限任何事情都有兩面性,前面談了服務虛擬化這么多好處,當然它也是有局限性的,比如它就不是很適合在用戶驗收測試階段。因為用戶驗收測試階段已經(jīng)到了測試尾聲階段,這時需要在最接近生產(chǎn)系統(tǒng)的環(huán)境進行測試,而如果還用假的服務來測試當然會影響到結(jié)果的正確性。所以服務虛擬化最佳的適用測試階段應該是單元測試、集成測試、接口聯(lián)調(diào)等測試前期階段。接口測試工具現(xiàn)在一般開源的接口測試工具只能解決模擬客戶端測服務端的單向接口測試,而能做到模擬服務端提供服務虛擬化能力的開源工具幾乎沒有。具有雙向測試能力的工具基本上都是商業(yè)工具,比如CA的Lisa,IBM的Rational Integration Tester(圖3),惠普(現(xiàn)在被MicroFocus收購),Parasoft,Smartbear等。

圖3:IBM Rational Integration Tester架構(gòu)圖拋開商業(yè)開源之分,單從技術(shù)上來說,什么樣的接口測試工具是好的測試工具?筆者認為好的接口測試工具必須具備以下幾個條件:1. 能一個工具同時支持雙向測試過程。也就是即能模擬客戶端,也能模擬服務端。從這點看,大部分的開源接口測試工具功能都太有限。而其實即使是惠普的接口測試工具,也是客戶端和服務端分開成兩個工具(至少在2016年前是這樣)。這樣會給測試人員帶來很大的不便,同時也不能充分利用錄制或構(gòu)建一次測試報文可以同時給雙向的測試用例使用。在客戶端接口自動化測試功能方面:* 需要支持正則表達式;* 需要支持實際測試結(jié)果與預期結(jié)果自動比較,自動告知成功/失敗,同時自動高亮顯示失敗的行數(shù),杜絕人肉觀察的情況;* 需要支持復雜邏輯,比如分支、循環(huán)、判斷、會話連接和參數(shù)傳遞* 需要可擴展功能,支持自定義函數(shù);在服務端虛擬化功能方面:* 需要能根據(jù)不同的請求返回不同的結(jié)果;* 需要支持復雜邏輯,比如分支、循環(huán)、判斷、會話連接和參數(shù)傳遞* 需要能支持多并發(fā),多用戶同時使用* 需要能支持樁的定時起停;* 需要能支持CI持續(xù)集成和DevOps2. 支持越多的通訊協(xié)議、消息報文和行業(yè)標準接口自動化測試工具的強大與否,很重要的一點就是能否支持更多的協(xié)議、報文和標準。如果不能支持協(xié)議,通訊就好像雞同鴨講;如果不能支持報文格式,就好像獲取了天書,根本不知道里面是什么內(nèi)容,也就無法進行正確的解析。至少工具需要對業(yè)界流行的協(xié)議、報文和標準支持,才能更加方便的讓測試人員使用一個工具能進行更多的接口自動化測試。比如:Web方面:Http/Https、Webservice,Soap等;中間件方面:WebSphere、WebLogic、Tomcat等消息中間件方面:MQ、Tuxedo等;傳輸方面:FTP、TCP等;數(shù)據(jù)庫方面:Oracle、DB2等;報文格式方面:XML、Json、Stream等;行業(yè)標準方面:Fix、Swift、銀聯(lián)ISO8582等總結(jié)接口測試一般是在集成測試階段進行,很多時候都是在沒有界面的環(huán)境下進行測試,所以借助接口測試工具來進行測試是一個比較合適的方式。當然,在選擇接口測試工具的時候最關(guān)鍵的還是要根據(jù)實際情況來選擇,商業(yè)的工具功能強大操作方便但是貴;開源的工具功能較弱但是免費,針無兩頭尖。如果只是簡單的接口,找個開源工具進行測試,又何必非得花錢買商業(yè)工具殺雞用牛刀呢?

——————— ?End??———————

測試大咖秀5000人QQ交流群:QQ群號:636803769加群暗號:武漢加油,中國加油!測試大咖秀微信交流群:請加群主微信 1327239410回復數(shù)字2視頻公開課:釘釘掃描下方海報進入直播群即可!

如能幫到你,為我們點個哦?

總結(jié)

以上是生活随笔為你收集整理的tcp接口测试工具_你不了解的,完整“接口测试”与服务虚拟化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。