為Jmeter開(kāi)發(fā)插件分享

最近一直在用Jmeter做接口測(cè)試的工作,這款工具同時(shí)具備GUI和non-GUI的功能,也就是既可以方便測(cè)試人員用GUI進(jìn)行接口測(cè)試用例的編寫(xiě)和分析,也能很容易的使用non-GUI的方式部署到持續(xù)集成環(huán)境中去,可謂一舉兩得。

要做接口測(cè)試,輸出結(jié)果的斷言是必不可少的。Jmeter提供了很多的斷言方式,如下圖:

圖片.png

這些斷言可以在我們編寫(xiě)case時(shí)很有用,但是并不是能夠很方便的滿足我們對(duì)于測(cè)試的要求,后期維護(hù)起來(lái)也有些麻煩。在測(cè)試用例的開(kāi)發(fā)中,我總結(jié)了幾點(diǎn)對(duì)于我們接口測(cè)試的需求(還在豐滿中):

  1. 可檢驗(yàn)一個(gè)期待的完整Json結(jié)果數(shù)據(jù)是否完全一致,包括所有的key和value
  2. 可檢驗(yàn)一個(gè)期待的完整Json結(jié)果數(shù)據(jù)的key是否完全一致
  3. 在1的基礎(chǔ)上,可排除規(guī)定的key的檢驗(yàn),如serverTime能字段,只檢查key是否存在

目前,在Jmeter里沒(méi)有能滿足以上我們需求的斷言,所以,要是想實(shí)現(xiàn)上面的需求,我們需要構(gòu)造大量的斷言來(lái)實(shí)現(xiàn)接口測(cè)試,性?xún)r(jià)比有些得不償失。

我們?cè)撛趺醋霾拍軆?yōu)化這個(gè)問(wèn)題呢?
答案就是我們自己為Jmeter做插件!

既然有了需求,我們只要在Jmeter的基礎(chǔ)上去加我們實(shí)現(xiàn)需求的功能不就行了。但是問(wèn)題沒(méi)有那么簡(jiǎn)單,我在網(wǎng)上搜了一下,沒(méi)有找到相關(guān)技能的文章可以借鑒。怎么辦?突然想到Jmeter本身是可以裝載插件的,如下圖:

圖片.png

這個(gè)是Jmeter插件下載的官網(wǎng),并且最大的一點(diǎn)是這些插件是開(kāi)源的?。?!所以,我們需要做的不就是下載插件的源碼,然后仿照插件的設(shè)計(jì)去完成我們自己的實(shí)現(xiàn)嗎!

(…此處實(shí)現(xiàn)過(guò)程省略很多字,在研發(fā)過(guò)程中也遇到了各種坑,甚至發(fā)現(xiàn)了官網(wǎng)插件源碼還有一些bug,對(duì)于了解JavaSwing界面設(shè)計(jì)的童鞋會(huì)很好上手)

最后,在完成了插件開(kāi)發(fā),并且將生成的jar放到了Jmeter的lib里面后,我們成功的看到了自己開(kāi)發(fā)的插件 - jp@gc - JSON Content Assertion:

圖片.png

打開(kāi)后界面是這樣的:

圖片.png

里面的功能就是之前需求里面提到的實(shí)現(xiàn),而且用了中文,更加方面測(cè)試人員的使用:)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 在使用Jmeter進(jìn)行接口的性能測(cè)試時(shí),由于Jmeter 是JAVA應(yīng)用,對(duì)于CPU和內(nèi)存的消耗比較大,所以,當(dāng)需...
    燕京博士閱讀 4,304評(píng)論 0 16
  • Swift版本點(diǎn)擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 26,135評(píng)論 7 249
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,769評(píng)論 8 183
  • 不知不覺(jué),又到了年底,周?chē)呐笥褌兌奸_(kāi)始在計(jì)劃著一年當(dāng)中的目標(biāo),新的一年,我要去完成一些什么呢? 最近和朋友聊天,...
    錦瀟閱讀 259評(píng)論 0 0

友情鏈接更多精彩內(nèi)容