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