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