第08節 雲端測試和效能測試實戰

2021-09-25 03:09:39 字數 2934 閱讀 1761

本課將分別介紹這兩種測試的方法和策略。

「雲端測試」這個概念實際上包括兩層含義:

從本地測試機器,測試部署在雲端的應用程式

根據我的經驗,本地程式和雲端程式的測試,主要區別包括以下兩點:

總而言之,如果是從本地測試機器,對部署在雲端的應用程式進行測試,需要注意下面三點:

用雲測試(taas)

這種新興的模式,就是所謂的測試即服務(taas)。簡單地說,其過程就是:雲服務商提供包含多種瀏覽器、多種配置的測試平台(也被稱為「測試雲」),開發團隊先在本地把自動化測試指令碼編寫好,再上傳給測試雲,從雲端執行這些指令碼,從而測試所指向的本地或者雲端應用程式。

這種方式的好處非常明顯:

雲測試的型別主要分為:

非功能性測試:即確保被測系統可以滿足使用者的非功能性需求。這包括:

安全測試:如果被測系統部署到雲端,那麼對安全性的檢查就變得非常重要,確保所有使用者的敏感資訊都不會遭到未經授權的訪問,而且使用者的隱私不受影響。

災難恢復測試:如果發生網路中斷、極度過載、系統崩潰等災難性事件,必須確保被測系統能夠妥善處理,不對丟失任何資料。

可擴充套件性測試:確保被測系統能夠根據需要,增加或者減少部署資源。

目前最常見的雲端測試工具包括:

一些常見的安全測試工具包括:

效能測試也是微服務測試的重要組成部分,特別是對於網頁端程式,在流量急劇增加時還能否保持穩定執行,是每個產品經理都需要了解的資訊。效能測試包括負荷測試、壓力測試、尖峰測試、永續性測試、可擴充套件性測試等,它可以證明系統能否符合預期的效能指標(sla),也可以找出系統中導致效能下降的部分。

它的總體流程包括:

目前可供選擇的主要工具包括:

其中,目前應用最為廣泛的是微軟的 microsoft visual studio load tester。它完全基於 http 協議,所以不需要使用瀏覽器。換句話說,就是和前端的所有 js 方法都無關,它只記錄 http 的請求。除此之外,它和 ui 的端到端測試很接近,都是基於請求響應,從返回結果中提取驗證規則,判斷是否成功。它的引數化、資料來源管理功能都很全面,自定義的驗證規則(validation rule)也可以應付大多數的情況。另外,它所記錄下來的指令碼還可以用做手動的測試**(用於微軟的 coded ui 自動化測試環境),這是乙個額外的好處。

在具體執行測試時,需要構建乙個負載模擬測試體系,其中包含了 visual studio 客戶端、測試控制器(test controller)和測試**(test agent)。

這樣的體系結構提供了以下好處:

例如:使用控制器和**的本地計算機:

即使測試控制器通常管理多個測試**,**也只能關聯到乙個控制器。 每個測試**可以由一組開發人員共享。

此體系結構可以輕鬆地增加測試**數量,從而生成更大的負載。測試控制器管理一組測試**來執行測試。

測試控制器與測試**進行通訊,以啟動測試、停止測試、跟蹤測試**狀態和收集測試結果。

測試控制器提供了執行測試的一般體系結構,並且包含執行載入測試的特殊功能。測試控制器會將負載測試傳送到所有的測試**並等待,直到所有的測試**都初始化該測試。

所有的測試**準備就緒後,測試控制器會將訊息傳送到測試**,以啟動測試。

測試**作為一種服務執行,它偵聽來自測試控制器的請求以啟動新的測試。當測試**收到請求時,測試**服務將啟動在其上執行測試的乙個程序。每個測試**都執行相同的負載測試。

測試**由管理員分配權重,並且根據測試**的權重分配負載。

例如,如果測試** 1 的權重為 30,測試** 2 的權重為 70,而且負載設定為 1000 個使用者,則測試** 1 將模擬 300 個虛擬使用者,而測試** 2 將模擬 700 個虛擬使用者。

下圖展示了測試控制器、測試**和客戶端之間的連線方式,尤其是傳入和傳出連線的埠以及在這些埠上使用的安全限制。注意,在這些主機上,必須開啟對應埠的防火牆,否則無法連線成功。另外,圖中顯示的均為預設埠,使用者可以根據需要修改埠配置。

除了上述工具以外,目前最新的趨勢是利用 microsoft visual studio team services(vsts)的壓力測試(load test)功能,直接從雲端執行效能測試。這要求使用者具有 vsts 賬戶,直接登入 visual studio team services 帳戶並單擊 load test,如下圖所示,就可以逐步完成負載測試的配置,非常簡單易用。

其中,還可以從網頁上直接設定壓力測試的持續時間、負載模式等,非常方便。

最終結束以後的結果顯示如下圖所示,非常直觀明了。這種方式節約了大量的配置和除錯時間,簡單易行,不過使用者要註冊雲賬號,需要考慮成本因素。

本課介紹了兩個新的測試主題:雲端測試和效能測試。對於雲端測試,主要區分兩種情況:

我們還了解了效能測試的主要流程和工具,尤其是 microsoft visual studio load tester 和基於 vsts 的效能測試。

下一節課,我們將介紹如何把上面介紹的各種型別的測試,整合到同乙個流水線(pipeline)之中,實現自動化的執行和管理,從而真正做到持續整合/持續交付。

《Web效能測試實戰》效能測試計畫模板

簡要接受專案背景。2.1 測試策略與目標 明確測試策略與目標。2.2 測試範圍描述 描述本次效能測試涉及的範圍。2.3 測試工具描述 描述用到了什麼效能測試工具。3.1硬體資源 描述效能測試過程中需要的硬體資源。3.2人力資源 明確效能測試團隊的人員安排和職責。任務工作內容 成果開始時間 結束時間 ...

《Web效能測試實戰》效能測試計畫模板

簡要接受專案背景。2.1 測試策略與目標 明確測試策略與目標。2.2 測試範圍描述 描述本次效能測試涉及的範圍。2.3 測試工具描述 描述用到了什麼效能測試工具。3.1硬體資源 描述效能測試過程中需要的硬體資源。3.2人力資源 明確效能測試團隊的人員安排和職責。任務 工作內容 成果 開始時間 結束時...

jmeter效能測試實戰

jmeter執 原理 jmerer通過執行緒組來驅動多個 也可以理解為lr 具 的虛擬 戶 運 測試指令碼對 標伺服器發起 量的 絡請 求,在每個客戶端上可以運 多個執行緒組,也就是說 個測試計畫 可以包含n個執行緒組。1.執行緒數 個執行緒可以理解為對應模擬 個 戶,所以執行緒數越多,那麼也就認為...