淺談性能測試中的場景設(shè)計

前言

我們在做性能測試的時候,大多數(shù)時候不僅僅是對一兩個接口單獨的測試,而是需要在一個盡可能體現(xiàn)真實應(yīng)用場景的情況下,了解到各個接口的響應(yīng)和各服務(wù)器的負載情況。這時候,場景的設(shè)計就變得尤為重要。模擬出更真實的使用場景,能使得測試結(jié)果更加可信。本文以在線考試系統(tǒng)作為被測系統(tǒng),Jmeter作為測試工具為例,來談進行場景設(shè)計時需要考慮的問題和解決方案。

流程梳理

一個完整的場景,一般包含好幾個步驟,比如在線考試,主要的操作流程有登錄系統(tǒng)、進入考試頁面、開始答題、保存答案和提交試卷。確保測試腳本中包含場景的各個步驟。

思考時間

對于真實的用戶而言,他們在進行各種操作時,操作與操作之間肯定會有一些停頓。所以,在測試腳本設(shè)計時,我們也應(yīng)該在一些請求之間加入一些停頓時間,我們通常稱為思考時間(think time)。每個用戶的停頓時間通常不是一模一樣的,比如,用戶在作答題目時,每完成一道題目,到答下一道題的時間肯定是不同的。因此,我們可以將思考時間隨機化,以此來達到最真實的效果。在Jmeter中可以使用高斯隨機定時器(Gaussian Random Timer)來實現(xiàn)思考時間隨機化,可以讓思考時間分布在一定范圍之內(nèi)。

非必要和可重復(fù)性操作的隨意性

在一些測試場景中,不是每個步驟都是必須執(zhí)行的,執(zhí)行的次數(shù)和時間間隔也是不一定的。比如考試中的保存答案這個步驟,有的用戶在考試過程中,可能不會用到保存答案的功能,直接作答完提交試卷即可。而有些更謹(jǐn)慎的人,可能每答幾道題就要去點一下保存按鈕。對于這種場景,Jmeter的隨機控制器(Random Controller)可以實現(xiàn),在該控制器下的請求將被隨機地執(zhí)行。

用戶數(shù)和并發(fā)時間

用戶數(shù)和并發(fā)時間往往是根據(jù)測試需求來設(shè)定。比如測試場景是在5分鐘內(nèi),2000個考生陸續(xù)登錄線上考試系統(tǒng)開始考試,那么,用戶數(shù)和并發(fā)時間就可以設(shè)定為2000和300s。但是整個流程中的不同步驟,可能的并發(fā)時間是不同的,比如登錄請求是在5分鐘內(nèi)并發(fā),但是最后的提交試卷的并發(fā)時間要短得多,因為在非常重要的考試?yán)?,用戶可能都會拖到最后的時間才會交卷,還有就是很多考試系統(tǒng)都有到時間后自動交卷的功能,因此,最后的并發(fā)時間可能只有幾秒。遇到這種情況,可以使用Jmeter的同步計時器(Synchronizing Timer)來實現(xiàn)這種集合點的功能。只要設(shè)置一個數(shù)值,運行到在這個計時器下的請求會等待積攢到設(shè)定數(shù)值的數(shù)量后,再一起向服務(wù)器發(fā)起請求。這樣便準(zhǔn)確模擬了一定數(shù)量用戶一起交卷的情況。

結(jié)語

本文給出了性能測試場景設(shè)計中的幾個常見問題,并簡略介紹了Jmeter的幾個組件(高斯隨機定時器、隨機控制器和同步計時器)來實現(xiàn)相應(yīng)場景,如需更多信息,請查閱Jmeter官方使用手冊。

參考文獻:

http://jmeter.apache.org/usermanual/component_reference.html#Gaussian_Random_Timer
http://jmeter.apache.org/usermanual/component_reference.html#Random_Controller
http://jmeter.apache.org/usermanual/component_reference.html#Synchronizing_Timer

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

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

  • 互聯(lián)網(wǎng)壓力性能Badboy.Jmeterhttp://itopic.org/jmeter-http-tcp.htm...
    燕京博士閱讀 3,141評論 0 20
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,697評論 19 139
  • 在使用Jmeter進行接口的性能測試時,由于Jmeter 是JAVA應(yīng)用,對于CPU和內(nèi)存的消耗比較大,所以,當(dāng)需...
    燕京博士閱讀 4,313評論 0 16
  • 每年的七月,都是讓家長萬分焦灼的季節(jié)。孩子的中考成績已經(jīng)揭曉,接下來就該考慮讓孩子讀哪一所高中了。稍有能力的家...
    玫蘭妮閱讀 619評論 0 0
  • 太長不看版: 首先,你要有一個可望不可及的目標(biāo) 其次,你要召之即速來,揮之即遠去 再者,你要擺正位置,被自己感動的...
    星青年互動閱讀 306評論 0 0

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