前段時(shí)間忙于接口測(cè)試,也看了幾款接口測(cè)試工具,,簡(jiǎn)單從幾個(gè)角度做了個(gè)比較,,拿出來(lái)與諸位分享一下吧。各位如果要轉(zhuǎn)載,,請(qǐng)一定注明來(lái)源,,最好在評(píng)論中告知博主一聲,感謝,。本報(bào)告從多個(gè)方面對(duì)接口測(cè)試的三款常用工具進(jìn)行比較分析,,以便于在特定的情況下選擇最合適的工具,或者使用自己編寫(xiě)的工具,。(不同工具定位不同,,我們只是主要從接口功能測(cè)試的角度進(jìn)行分析)。博主對(duì)這幾款工具也僅僅是淺嘗輒止,,并未做太過(guò)深入的應(yīng)用,,報(bào)告中如果有哪些不合適的地方,歡迎指正,。
1. 用例組織方式 首先是用例組織方式的不同,,不同的目錄結(jié)構(gòu)與組織方式代表不同工具的測(cè)試思想,學(xué)習(xí)一個(gè)測(cè)試工具應(yīng)該首先了解其組織方式,。 SoapUI的組織方式如下圖,,最上層是WorkSpace,每個(gè)窗口只可以打開(kāi)一個(gè)WorkSpace(這是一個(gè)xml文件),,每個(gè)Project也是一個(gè)單獨(dú)的xml文件(為了協(xié)同工作,,也可以通過(guò)設(shè)置將其轉(zhuǎn)化為一堆文件集合),所以每個(gè)WorkSpace中可以打開(kāi)多個(gè)Project,,一個(gè)Project也可以在不同的WorkSpace中,。 Project對(duì)應(yīng)我們的測(cè)試項(xiàng)目,其中可添加WSDL,、WADL資源,、TestSuite以及MockService。 TestSuite對(duì)應(yīng)我們的測(cè)試模塊,,比如商戶中心,,其中可以添加TestCase,TestCase對(duì)應(yīng)我們對(duì)某個(gè)模塊的不同接口,,比如訂單管理接口,。而一個(gè)接口可以能需要多個(gè)Step完成,變量,、數(shù)據(jù)源,、請(qǐng)求等都是一個(gè)Step,。
Jmeter的組織方式相對(duì)比較扁平,它首先沒(méi)有WorkSpace的概念,,直接是TestPlan,,等價(jià)于SoapUI中的Project,TestPlan下創(chuàng)建的Threads Group就相當(dāng)于TestCase,,并沒(méi)有TestSuite的層級(jí),。 TheadsGroup中的Sampler、管理器等均相當(dāng)于SoapUI中的一個(gè)Step,,如下圖:
Postman功能上更簡(jiǎn)單,,組織方式也更輕量級(jí),它主要針對(duì)的就是單個(gè)的HTTP請(qǐng)求,。Collection就相當(dāng)于是Project,,而Collection中可以創(chuàng)建不定層級(jí)的Folders,可以自己組織TestSuite,。每個(gè)Request可以當(dāng)做是一個(gè)TestCase或者Step:
2. 支持的接口類(lèi)型與測(cè)試類(lèi)型 從功能上Jmeter最為強(qiáng)大,,可以測(cè)試各種類(lèi)型的接口,不支持的也可以通過(guò)網(wǎng)上或自己編寫(xiě)的插件進(jìn)行擴(kuò)展,。SoapUI專(zhuān)門(mén)針對(duì)HTTP類(lèi)型的兩種接口,其初衷更是專(zhuān)門(mén)測(cè)試Soap類(lèi)型接口,,對(duì)于其他協(xié)議的接口不支持,。Postman更是輕量級(jí),定位也不同,,可用來(lái)測(cè)試Rest接口,。
3. 配置不同接口類(lèi)型 SoapUI可以創(chuàng)建Soap Project或者Rest Project(但Project中添加什么類(lèi)型的Step則不受影響),可添加wsdl,、wadl資源,,并能在TestCase里添加Rest或Soap的Step。 Jmeter可以在線程組里添加HTTP,、TCP或WebSocket的Sampler,。 Postman僅支持Rest接口。
4. 自定義變量以及變量的作用域 除以下表格中所列的變量之外,,每個(gè)工具都有系統(tǒng)變量,,未列在內(nèi),。
5. 數(shù)據(jù)源,、生成器,進(jìn)行參數(shù)化
6. 流程控制 SoapUI:由Conditioinal Goto控制流程,,以及Groovy腳本 Jmeter:由Switch控制器,、If控制器、隨機(jī)控制器等一系列控制器實(shí)現(xiàn)流程控制,,以及Beanshell腳本 Postman:通過(guò)JavaScript腳本控制
7. 結(jié)果解析,、展示
8. 斷言 SoapUI:每個(gè)Request可添加Assertion Jmeter:TestPlan、Threads Group,、Sampler均可添加斷言 Postman:請(qǐng)求的Tests中可添加斷言
9. 腳本擴(kuò)展能力 SoapUI:Groovy腳本 Jmeter:Bean shell(Java) Postman:JavaScript
10. 團(tuán)隊(duì)協(xié)作 SoapUI:本身一個(gè)project是一個(gè)xml文件,,但是可以通過(guò)配置變成一系列文件夾,每個(gè)Case,、每個(gè)Suite均是獨(dú)立的文件,,這樣可通過(guò)svn/git進(jìn)行團(tuán)隊(duì)協(xié)作。支持性較好,。 Jmeter:一個(gè)TestPlan也是一個(gè)jmx(xml)文件,,無(wú)法分割,但Jmeter有一個(gè)合并的功能,,允許將多個(gè)文件合并在一起,。只能每個(gè)團(tuán)隊(duì)成員自己建立一個(gè)TestPlan,分功能塊進(jìn)行測(cè)試,。最后整理合并,。 Postman:有團(tuán)隊(duì)協(xié)作的功能,需要付費(fèi),。 歡迎指正,,更多文章,,請(qǐng)關(guān)注本人博客——灰藍(lán)的博客。
|
|
來(lái)自: 昵稱32303054 > 《待分類(lèi)》