服務(wù)端的性能測試(二)

本文章轉(zhuǎn)載于搜狗測試

通過上一篇的講解隆箩,我們已經(jīng)了解了一些性能測試的指標了算墨,也知道性能測試的主要手段是通過發(fā)生出一些模擬真實業(yè)務(wù)的請求來造成壓力對被測系統(tǒng)進行不停的加壓掘殴,在這同時監(jiān)控被測服務(wù)器的各項性能指標递瑰,分析被測服務(wù)器在不同壓力的測試下的表現(xiàn),找出其可以突破的性能瓶頸枷邪。

那么榛搔,如何對系統(tǒng)進行性能測試,又如何對服務(wù)器的各種指標數(shù)據(jù)進行監(jiān)控呢?這里践惑,就不得不提到性能測試工具了腹泌。

在這之前,我們可以嘗試著先試想下在沒有性能測試工具的前提下童本,如何對一個系統(tǒng)進行一次壓力測試

假設(shè)現(xiàn)在我們要對一個接口進行一次性能測試真屯,模擬在15個用戶在線使用這個接口返回的數(shù)據(jù)是否可以在一個可接受的時間內(nèi)返回正確的數(shù)據(jù)。

理所當然的穷娱,我們可以想到測試的必要條件有如下幾點:

15個線程同時并發(fā)運行绑蔫,產(chǎn)生訪問壓力

1個線程協(xié)調(diào)程序,對15個線程的協(xié)調(diào)控制泵额,實現(xiàn)并發(fā)操作

1個數(shù)據(jù)記錄線程配深,對每一個線程的操作耗時數(shù)據(jù)進行記錄、監(jiān)控嫁盲、匯總和分析

1個服務(wù)器資源監(jiān)控線程篓叶,對15個線程訪問服務(wù)器的時長和服務(wù)器的性能指標進行匯總,計算其平均值

可以看出羞秤,要通過手動來進行性能測試缸托,過程中上極其繁瑣,需要投入的時間和資源非常多瘾蛋,而且這僅僅是一個很簡單的場景俐镐,沒有進行一些復雜操作。設(shè)想哺哼,如果要進行數(shù)萬并發(fā)佩抹,服務(wù)器有好幾十臺,顯而易見取董,這種情況下是完全不可能通過一個簡單的程序或者腳本可以解決的棍苹。這就是性能測試工具存在的原因和用處。

性能測試工具市面上有很多茵汰,除了我們耳熟能詳?shù)腖oadRunner枢里、Jmeter等測試工具,還有一些知名度不高但是有一些自己優(yōu)點的性能測試工具经窖,比如今天我給大家推薦一款有特點性能測試工具:Locust

目前階段坡垫,Locust工具在國內(nèi)的普遍性還是很低的,多數(shù)測試同學可能之前都沒有了解過這款工具画侣。為了便于理解冰悠,我先將Locust和LoadRunner、Jmeter這類大眾耳熟能詳?shù)男阅軠y試工具進行簡單對比配乱。

那么對于這個工具的優(yōu)缺點大家一目了然溉卓。Locust的最大優(yōu)點就是這個工具可以實現(xiàn)一個單機超高的并發(fā)量皮迟。一個性能測試的工具核心就是要有一個好的壓力發(fā)生器,那么不同于LoadRunner桑寨、Jmeter這些工具伏尼,Locust采用的并發(fā)機制為協(xié)程。使用多線程模擬多個并發(fā)用戶時候尉尾,線程數(shù)會隨著并發(fā)數(shù)量的增加而一直增加爆阶,但是在不同的線程之間來回切換是需要占用資源的,線程的等待和io的阻塞會無法避免的導致并發(fā)的效率下降沙咏。正是因為如此才用進程和線程的機制會難以模擬出較高并發(fā)的的壓力辨图,而協(xié)程的優(yōu)勢則在于,避免系統(tǒng)的資源調(diào)度肢藐,從而大幅的提高了性能故河。正常的情況下單臺測試機器可以產(chǎn)生數(shù)千的并發(fā)壓力,這是LoadRunner吆豹、Jmeter都無法實現(xiàn)的鱼的。

另一方面的優(yōu)點是模擬用戶操作的便捷,對測試腳本的友好性痘煤,Locust采用Pure Python腳本描述凑阶,對于測試同學十分容易接受,并且http請求完全基于Requests庫衷快。了解Requests庫的同學都知道晌砾,python官方明確推薦使用的庫。簡潔易用但是功能卻十分強大烦磁,很多其他編程語言的http庫都會借鑒Requests的思想和模式。個人覺得這是最好用的http庫哼勇。除了http協(xié)議都伪,Locust也可以測試其它任意協(xié)議,只需使用Python調(diào)用對應(yīng)的庫進行發(fā)送請求即可积担。

有了一個相對不錯的引擎陨晶,外部的包裝就顯得很簡陋,對于Locust的缺點也是很明顯:在性能指標監(jiān)控和測試報告圖表方面比較缺失帝璧,不過好在是Locust的核心代碼數(shù)量少先誉,并且開源的,有興趣的同學可以將其包裝并且封裝成自己想要的樣子的烁。

好了Locust先介紹到這兒褐耳,如果有同學希望了解一下Locust的安裝到使用的具體實例,可以在下方多多留言渴庆,要求強烈的話下期和大家一起搭建環(huán)境并且配有實例講解哦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铃芦,一起剝皮案震驚了整個濱河市雅镊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刃滓,老刑警劉巖仁烹,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咧虎,居然都是意外死亡卓缰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門砰诵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來征唬,“玉大人,你說我怎么就攤上這事胧砰△⑼遥” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵尉间,是天一觀的道長偿乖。 經(jīng)常有香客問我,道長哲嘲,這世上最難降的妖魔是什么贪薪? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮眠副,結(jié)果婚禮上画切,老公的妹妹穿的比我還像新娘。我一直安慰自己囱怕,他們只是感情好霍弹,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著娃弓,像睡著了一般典格。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上台丛,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天耍缴,我揣著相機與錄音,去河邊找鬼挽霉。 笑死防嗡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的侠坎。 我是一名探鬼主播蚁趁,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼实胸!你這毒婦竟也來了荣德?” 一聲冷哼從身側(cè)響起闷煤,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涮瞻,沒想到半個月后鲤拿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡署咽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年近顷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宁否。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡窒升,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出慕匠,到底是詐尸還是另有隱情饱须,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布台谊,位于F島的核電站蓉媳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锅铅。R本人自食惡果不足惜酪呻,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盐须。 院中可真熱鬧玩荠,春花似錦、人聲如沸贼邓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽塑径。三九已至眼溶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晓勇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工灌旧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绑咱,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓枢泰,卻偏偏與公主長得像描融,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子衡蚂,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容