使用開源工具進(jìn)行性能測(cè)試-打破神話

誤解1:開源性能測(cè)試工具還不夠成熟
?
如果您要花費(fèi)時(shí)間和精力進(jìn)行性能測(cè)試,則很可能會(huì)在意從中獲得的結(jié)果。您將依靠這些結(jié)果,因此您將不得不依靠該工具。因此,必須確保該工具是您可以信任的工具。據(jù)說開源工具不是很值得信賴。我和我的同事花費(fèi)了大量時(shí)間來分析和對(duì)比從不同工具獲得的結(jié)果。如今,在進(jìn)行一些挖掘之后,我們最信任的兩個(gè)負(fù)載測(cè)試是JMeter和Gatling。為了比較不同條件下的結(jié)果,我們甚至對(duì)兩者進(jìn)行了相同的測(cè)試。在那些測(cè)試中,我們還比較了不同的指標(biāo),以查看它們是否正確相關(guān)。例如,服務(wù)器接收的字節(jié)數(shù)和工具報(bào)告中顯示的字節(jié)數(shù)或連接數(shù)等。
?
對(duì)此進(jìn)行思考的另一種方式是,開源解決方案比任何商用軟件都能看到更多的代碼審查。優(yōu)秀的軟件工程師會(huì)審查開放源代碼,以便開始做出貢獻(xiàn),了解其工作方式并進(jìn)行自己的擴(kuò)展。在這樣做的同時(shí),他們也要認(rèn)真思考,并以不同的質(zhì)量和安全性改進(jìn)為該項(xiàng)目做出貢獻(xiàn)。他們之所以這樣做,是因?yàn)樗麄冎涝撛趺醋觯⑶乙驗(yàn)樗麄冊(cè)诤酰ㄒ驗(yàn)樗麄円矔?huì)使用該軟件)。所涉及的過程以及我所看到的產(chǎn)品和結(jié)果使我考慮到,即使與傳統(tǒng)測(cè)試解決方案相比,我一直在使用的開源性能測(cè)試工具也非常成熟。
?
誤解二:開源工具有局限性且缺乏功能
?
15年前,當(dāng)我剛開始進(jìn)行性能測(cè)試時(shí),我記得我的內(nèi)部規(guī)則是:如果協(xié)議是開放的,我們可以使用JMeter,如果它是專有協(xié)議,那么我們應(yīng)該使用Rational Performance Tester或HP Loadrunner。如今,JMeter擁有許多支持不同協(xié)議的插件,這些插件不僅是開源的,而且還包含一些商業(yè)的。
?
除此之外,增加了很多功能非常好,例如漂亮的HTML報(bào)告,更好的記錄(具有更多的自動(dòng)化功能)和可追溯性,這使得調(diào)試腳本變得更加容易。
?
如果您缺少關(guān)鍵功能,JMeter允許您在腳本中包含Groovy代碼,當(dāng)您無法使用其本機(jī)功能解決某些問題時(shí),這非常有用。有了這種可能性,您實(shí)際上可以執(zhí)行腳本中需要執(zhí)行的任何操作。這也適用于Gatling,其中腳本是Scala解決方案的一部分,因此您可以針對(duì)需要在腳本中執(zhí)行的任何特定操作包括自己的庫。
?
誤解三:將開源解決方案與其他工具集成起來比較困難
?
同樣,這取決于您正在考慮的工具,但是通常還有其他工具可以為最流行的開源測(cè)試工具提供集成或擴(kuò)展。例如,在測(cè)試自動(dòng)化中,您可以看到Selenium是標(biāo)準(zhǔn)的,可以與任何東西集成。它還具有對(duì)大多數(shù)流行編程語言的綁定以及與任何CI / CD引擎的連接。
?
對(duì)于性能測(cè)試工具,我敢說JMeter是標(biāo)準(zhǔn)。諸如BlazeMeter之類的平臺(tái)使您能夠在云中擴(kuò)展性能腳本,并始終基于JMeter文件在多個(gè)位置并與許多并發(fā)用戶一起運(yùn)行。另外,借助Taurus,將JMeter腳本與Jenkins或Automic CDD之類的任何CI / CD平臺(tái)集成起來非常容易,并在將代碼推送到存儲(chǔ)庫后立即獲得測(cè)試結(jié)果。
?
還值得注意的是,可以根據(jù)您自己的特定需求量身定制開源工具。這可能需要一些努力,特別是如果您不熟悉該解決方案。就我而言,我的團(tuán)隊(duì)長期以來一直在為JMeter開發(fā)擴(kuò)展。有一個(gè)學(xué)習(xí)曲線,但是例如現(xiàn)在可以更輕松地開發(fā)對(duì)新協(xié)議的支持。為此,您應(yīng)該檢查可用資源以及該工具的代碼存儲(chǔ)庫。查看文檔的內(nèi)容,確認(rèn)是否有一節(jié)闡明如何自定義和擴(kuò)展它。
?
誤解四:開源工具很難使用
?
我聽說開源工具總是很難使用。由程序員為程序員制作的。在這種情況下,是的,在大多數(shù)情況下,性能測(cè)試將由程序員和性能工程師來驅(qū)動(dòng)。以我的經(jīng)驗(yàn),這些工具的可用性和用戶體驗(yàn)很棒。重要的是要提到甚至有多個(gè)品種。如果您喜歡代碼,則可以使用Gatling或Taurus;如果您喜歡圖形用戶界面,則可以使用JMeter,其中腳本由帶有不同元素的樹表示。
?
我認(rèn)為區(qū)分好可用性和“漂亮”很重要。重要的是它的易用性,用戶友好性以及使用效率。想象一下,您收到一個(gè)錯(cuò)誤,并且不知道如何解決它。在這種情況下,您將需要大量時(shí)間才能達(dá)到準(zhǔn)備性能測(cè)試的目標(biāo)。這將顯示不良的可用性。這些開源工具(例如JMeter和Gatling)不是這種情況,因?yàn)橛胁煌脑乜梢詭椭耆私庖l(fā)送到服務(wù)器的內(nèi)容,所接收的內(nèi)容,并且可以輕松嘗試其他方法。
?
誤解5:開放源代碼測(cè)試工具得不到很好的支持
?
明智地選擇開源性能測(cè)試工具非常重要,請(qǐng)注意該工具背后的采用水平和社區(qū)支持。在決定使用哪種工具之前,先做些功課,查看其Github存儲(chǔ)庫,可用的文檔,課程和教程,為他們提供專業(yè)服務(wù)的公司等。此外,如果需要,請(qǐng)查看Linkedin以查看是否有在該工具上有經(jīng)驗(yàn)的人聘請(qǐng)。這樣,您可以計(jì)劃所需的支持。
?
例如,就性能測(cè)試工具而言,JMeter擁有最大的社區(qū)。此外,許多開源工具背后都有一家公司提供支持,例如Gatling,后者以開源工具作為其商業(yè)版本的基礎(chǔ)。
?
只需在Web上進(jìn)行一次搜索即可了解您期望從開源工具獲得多少支持。對(duì)于JMeter,如果您需要幫助或支持,您會(huì)發(fā)現(xiàn)很多論壇,小組和渠道來提問。您還可以檢查問題的解答時(shí)間。
?
誤解6:遷移到開源測(cè)試工具需要付出巨大的努力
?
如果您已經(jīng)在使用商業(yè)測(cè)試工具,則遷移到開源替代方案似乎非常昂貴。為了在不損失任何遷移的情況下從一個(gè)解決方案過渡到另一個(gè)解決方案,您需要進(jìn)行大量投資,然后在此過程中開始節(jié)省成本(這可能是一開始的最初動(dòng)機(jī)之一)。
?
誤解7:很難對(duì)開源測(cè)試工具進(jìn)行專業(yè)培訓(xùn)
?
從我在測(cè)試世界中所看到的,您可以在線找到多種語言的開放源代碼工具培訓(xùn),這無休止。只需在YouTube上搜索“性能測(cè)試依據(jù)”并添加您最喜歡的開源性能測(cè)試工具的名稱,您就會(huì)得到很多結(jié)果。此外,您會(huì)在Udemy,Coursera等平臺(tái)上找到許多其他高質(zhì)量的選擇。
不要關(guān)閉用于性能測(cè)試的開源工具
?
在經(jīng)歷了所有這些神話之后,我還要指出一個(gè)主要的神話,那就是開源只是降低成本的一種廉價(jià)方法。事實(shí)是,有很多不錯(cuò)的選擇可供選擇,開源絕不意味著質(zhì)量低于商業(yè)。通過關(guān)注開源工具背后的社區(qū)以及其他公司對(duì)其的采用,您可以決定哪些工具具有競(jìng)爭(zhēng)力,并且可以最好地解決您所面臨的挑戰(zhàn)。?
