微服務壓測功能可以用于壓測構建于VPC內的微服務應用,通過PTS界面的配置,可以快速實現微服務壓測。本文介紹如何對SpringCloud微服務進行壓測。
背景信息
經典微服務架構是通過網關暴露每一個服務,且通過網絡隔離來保障每個服務的安全性,因此云上微服務通常構建于安全性較高的VPC網絡內。但壓測VPC內的微服務應用會面臨著網絡隔離的難題,傳統的解決方案是基于VPC網絡搭建壓測工具進行壓測,例如JMeter壓測工具。但搭建JMeter需要一定的時間成本和代碼基礎,且對微服務壓測的支持不友好。
PTS自研的微服務壓測功能可以解決這些難題,通過PTS控制臺的簡單配置,快速實現微服務的壓測。
功能入口
登錄PTS控制臺,選擇 ,然后單擊SpringCloud壓測。
在創建微服務場景頁面,填寫場景名,選擇壓測應用來源,然后選擇地域和微服務空間。
在場景配置頁簽下,單擊+添加SpringCloud節點,為目標業務會話添加所需的測試節點。
場景配置
單擊業務會話右側的圖標,展開業務會話,并配置基本信息、出參、檢查點等信息。
參數 | 描述 | 示例 |
應用名 | 暴露服務的應用 | demo-pts-service-provider |
服務名 | 服務名稱 | demo-service |
注冊中心類型 | 包括Eureka、直連和Nacos類型。 | 直連 |
節點 | 微服務注冊中心的IP地址。格式為 重要 對于微服務引擎MSE用戶,注冊中心地址填寫方式取決于是否配置命名空間。
| http://172.16.0.0:8080 |
訪問路徑 | 請求路徑URL。 | /demo |
請求方式 | 包括GET、POST、PUT、DELETE,并需要在Header定義頁簽定義Header。若選擇POST和PUT請求,還需要填寫請求參數Body。 | GET |
超時時間(毫秒) | 請求發送之后,該虛擬用戶等待應答的最長時間,單位為毫秒。默認值為1000,即1秒。對于在線業務,建議超時時間小于5000毫秒。 | 1000 |
Header定義
在業務會話的Header定義頁簽設置Key和Value值。具體操作,請參見Header 定義。
Body定義
在業務會話的Body定義頁簽設置Key和Value值。具體操作,請參見Body 定義。
若選擇POST和PUT請求方式,還需要填寫請求參數Body。
出參設置
在串聯鏈路的出參設置頁簽設置出參。具體操作,請參見接口出參。
檢查點設置
在串聯鏈路的檢查點設置頁簽設置檢查點。具體操作,請參見檢查點(斷言)。
(可選)控制器和定時器
您可以根據不同壓測場景的需求,添加控制器和定時器。
在場景配置頁簽下,單擊+添加控制器選擇所需的控制器。
循環控制器:控制所含測試節點應循環執行的次數。
選擇循環控制器后,單擊其右側的圖標,選擇添加需循環執行的測試節點,并設置循環次數。壓測時,會將此循環控制器下的測試節點按序執行設置的次數。
事務控制器:事務控制器下所包含的所有測試節點將會被算作為一個事務。其包含生成父樣本和是否包含樣品中定時器和前后程序的持續時間兩個設置項。
生成父樣本:
開啟開關:該事務控制器下各測試節點自身的壓測結果不會在壓測報告中獨立輸出,而會被聚合作為事務控制器的結果呈現在報告中。
關閉開關:該事務控制器以及其包含的測試節點的壓測結果均會顯示在報告中。
是否包含樣品中定時器和前后程序的持續時間:若選擇開啟此開關,則壓測報告中事務控制器的平均響應時間為所有測試節點和定時器平均響應時間之和。若不開啟此開關,則事務控制器的平均響應時間僅為所有測試節點平均響應時間之和。
僅一次控制器:僅一次控制器下添加的節點僅會被執行一次。
在場景配置頁簽下,單擊+添加定時器選擇所需的定時器。
常量定時器:可設置停頓時長,表示壓測過程中,在此處停頓的時長,單位為毫秒。
同步定時器:可設置停頓時長和模擬用戶數,表示在一定時間內先等待達到一定用戶數,然后觸發測試,但若在設定時間內未達到指定用戶數,則不會繼續等待,直接觸發測試。
統一隨機定時器:統一隨機定時器用于控制停頓時長,可設置延遲基準和可變跨度。延遲基準為固定停頓時間,可變跨度為隨機停頓時間的最大值。統一隨機定時器的停頓時長為延遲基準所設的固定停頓時間加上可變跨度所設時間范圍內的隨機值。各隨機值出現的概率相等。
高斯定時器:高斯定時器與統一隨機定時器類似,同樣用于設置停頓時長,可設置延遲基準和可變跨度。若要求隨機停頓時間符合正態分布,可使用高斯定時器。
固定吞吐量定時器:固定吞吐量定時器用于控制吞吐量,使測試節點按照吞吐量執行。可設置條件和對應的吞吐量。條件包含僅當前線程、所有活躍線程、當前鏈路下活躍線程、全局活躍線程和當前鏈路下全局活躍線程。
施壓配置
壓測配置 | 描述 |
壓力來源 |
|
壓力模式 |
|
遞增模式 |
|
最大虛擬用戶數 | 虛擬用戶模式下,需要指定全場景的最大虛擬用戶數。 |
遞增百分比 | 階梯遞增模式下,需要指定遞增百分比。 |
單量級持續時長 | 階梯遞增模式下,為保證能在單量級持續過程中發現業務問題,單量級持續時長至少設置1分鐘。 |
壓測總時長 | 自動遞增時,總時長 >= 單量級持續時長/遞增量級 * 1.1 (向上取整),但不可超過24小時。 |
指定IP數 | 指定壓測來源的IP個數。具體詳情,請參見指定施壓IP數。 |
流量地域定制 | 通過指定施壓機的地理位置,即可模擬當地的用戶流量。開啟后可對施壓機地域分布進行配置,從而實現施壓流量地域分布的定制化。具體詳情,請參見定制流量。 |
啟動壓測
分析壓測結果
壓測結束后,系統會自動獲取壓測數據,例如壓測場景指標、業務詳情數據、監控詳情數據和API采樣日志等,生成壓測報告。更多信息,請參見查看PTS壓測報告。