近年來,隨著云計(jì)算技術(shù)的發(fā)展和各種諸如AWS、GCP、阿里云等云平臺的日趨成熟,越來越多的的用戶選擇把系統(tǒng)搭建在云端,因此云測試的概念隨即產(chǎn)生。
云測試看字面意思就是關(guān)于云計(jì)算、云平臺的測試,而它大體又可以分成兩種類型:測試云(Test Cloud)和用云測試(TaaS)。 測試云,顧名思義測試的目標(biāo)是云,測試者通過設(shè)計(jì)測試去保證云平臺本身和部署在云端的應(yīng)用正確性。而用云測試是指利用搭建在云端的測試服務(wù) —— TaaS (Test as a Service)來進(jìn)行更高效的測試。云計(jì)算有著超大規(guī)模、虛擬化、高可靠性、高可伸縮性和按需服務(wù)等諸多優(yōu)點(diǎn),但平臺的特殊性也給測試帶來了新的挑戰(zhàn)和機(jī)遇,其中性能測試受其影響頗深,本文旨在針對云測試的兩種類型探討云與性能測試。
測試云
云環(huán)境最大的特點(diǎn)就是能夠通過高伸縮性按需為用戶分配資源,也正是因?yàn)檫@個特點(diǎn),我們對于基于云平臺的性能測試與普通系統(tǒng)性能測試的最大的區(qū)別就是要考慮測試云服務(wù)的伸縮功能,因?yàn)樵品?wù)的伸縮功能可能存在以下風(fēng)險:
云服務(wù)的auto scaling 不能執(zhí)行
Auto scaling會造成服務(wù)崩潰
Scaling up時資源不足
因此我們設(shè)計(jì)的測試應(yīng)該包含以下內(nèi)容:
測試目標(biāo)
確認(rèn)auto scaling能夠根據(jù)所制定的策略執(zhí)行
確認(rèn)auto scaling能得到相應(yīng)的資源
確認(rèn)云服務(wù)的性能能夠滿足不同的壓力變化
測試方法
給云端系統(tǒng)一直施加壓力到性能邊界值后繼續(xù)加壓,隨后給系統(tǒng)減少壓力,觀察系統(tǒng)在邊界值前后的性能表現(xiàn)。
測試技術(shù)
利用load profile進(jìn)行施壓
邊界值分析
Process cycle test
測試步驟
給系統(tǒng)施加壓力,壓力不會超過性能邊界值
維持壓力一段時間,確保系統(tǒng)在壓力下的錯誤率在可接受范圍內(nèi)
給系統(tǒng)施加更多的壓力,使系統(tǒng)超過性能邊界值,我們期望系統(tǒng)會自動scale up
系統(tǒng)scale up之后,我們期望response time會下降,但是不會觸發(fā)scale down
維持壓力一段時間,確保系統(tǒng)在scale up后一段時間內(nèi)的的錯誤率在可接受范圍內(nèi)
降低系統(tǒng)的壓力到性能scale up前的狀態(tài),確保系統(tǒng)可以自動scale down
系統(tǒng)scale down之后,我們期望response time會有上升但不會重新引起scale up
期望結(jié)果
TaaS
在TaaS出現(xiàn)前,性能測試一般都是在本地的測試環(huán)境中通過幾臺電腦對被測環(huán)境加壓進(jìn)行的,在這種模式下,測試環(huán)境的搭建和維護(hù)不僅要耗費(fèi)大量資源,而且測試環(huán)境由于并不能完全模擬真實(shí)生產(chǎn)環(huán)境以至于測試結(jié)果存在一定的局限性。而云計(jì)算出現(xiàn)后,一些基于云端性能測試服務(wù)(CLT - Cloud Load Test)相比于本地的性能測試展現(xiàn)出了很多優(yōu)點(diǎn):
CLT更簡單,大多數(shù)情況下, 云端的資源更好管理,環(huán)境更容易搭建,用戶只需設(shè)置簡單的一些參數(shù)或者提供簡單的測試腳本就能在云端執(zhí)行測試。同時,很多CLT工具允許用戶把不同性能測試工具的自動化腳本如Gatling,Jmeter,Selenium直接移植使用,為用戶節(jié)省了二次開發(fā)時間。
CLT工具可以提供更多的load generator,壓力測試中用戶通過在云端啟動load generator對被測系統(tǒng)進(jìn)行施壓,因?yàn)樵谠贫丝梢哉{(diào)用資源體量巨大,因此用戶可以完全模擬生產(chǎn)環(huán)境中可能面對的超大壓力。
測試成本低。CLT提供的測試服務(wù)是按照云端機(jī)器的運(yùn)行時間進(jìn)行收費(fèi)。在沒有測試需求時,用戶并不用為機(jī)器的運(yùn)行和維護(hù)買單,大大降低了用戶實(shí)施性能測試的成本,為一些沒有大型長期性能測試需求的企業(yè)節(jié)省了許多開支。
CLT提供的測試硬件資源大多分布在全球不同區(qū)域,在進(jìn)行性能測試時,用戶可以根據(jù)可能的實(shí)際情況選擇不同區(qū)域的機(jī)器定制化的為被測系統(tǒng)加壓,所得的測試結(jié)果由于更接近真實(shí)的網(wǎng)絡(luò)情況而更加準(zhǔn)確。