壓力測試要知道的事(三)

更新於 發佈於 閱讀時間約 3 分鐘

壓力測試要知道的事(一)和壓力測試要知道的事(二)我們討論了進行測試的觀念、如何評估測試的目標,最後我們還需要了解要如何進行測試。

工具的特性

在市面上有不少測試的工具可以使用,然而每一種工具都有對應的差異。我在 TGONext 的時候跟著教練探討的時候,才了解到選擇適合的工具也是非常重要的一環。

大多數時候,我們在討論壓力測試通常會先想到 ab 這個工具,然而這個工具會一次性的發送請求,有時候不一定符合現實的使用情況,同時也會受限於運行測試機器的限制(例如:Thread 上限)因此可能會得到不太精確的結果,在測試一定請求等級的瞬間壓力是有用的。

又或者像是 wrk 這個工具,在計算上並不一定符合真實使用者的操作情況。然而替換成 wrk2 之後,採取了 Coordinated Omission 會將發出請求到收到回應等各種情況考慮進去,進而更加接近真實使用者用瀏覽器操作的狀況。

雲端服務

除了工具的特性之外,當我們想要發起比較大規模的壓力測試時,會受到單台機器無法模擬真實的大流量,那可能就需要借助雲端服務或者自己搭建 Cluster(叢集)的方式來解決。

舉例來說,我們可以利用 Python 的 Locus 開源專案來進行測試,除了可以透過 Python 腳本來撰寫測試之外,還能夠透過在多台機器上運行來組合成叢集,來發出比較大量的請求。

我個人比較喜歡的是 k6 這個專案,在過去是知名的壓力測試服務 LoadImpact 後來變成 k6 這個開源專案(也提供雲端服務)因為是 Golang 所撰寫具有不錯的可攜性,又能夠用 JavaScript 撰寫腳本以及和 Grafana 這類開源工具搭配,整體上來說是個相當容易入門的工具,也比較容易在大規模測試時直接導入雲端服務。

值得探索的領域

壓力測試對比稍微有規模的系統是很重要的一環,然而目前大多都是一些大公司有各自的處理方案,相比軟體開發世界還是有很多可以探索的地方。

舉例來說,我們該如何在測試環境進行測試來模擬正式環境能夠支撐預期的流量、是否能夠透過拆分服務之類的方式來進行測試,或者在測試時該如何產生用於測試的資料都會是不錯的議題,有點類似於整合測試的進階版本,還需要考慮到壓力極大時不會將其他第三方服務拖垮等等問題。


封面圖片使用 UnsplashNorbert Kundrak 的作品,有想聽的主題可以透過匿名問卷告訴我,想了解專業的技術主題可以到弦而時習之找找靈感。


留言
avatar-img
留言分享你的想法!
avatar-img
蒼時弦也的沙龍
55會員
40內容數
軟體工程師逐漸變成一個熱門的職業,當我們進入這個職業之後應該要具備怎樣的技能才會在工作上更加順利呢?這系列的專欄會分享日常工作中的經驗以及一些案例分析,讓我們一起努力成為一位更優秀的軟體工程師吧!
蒼時弦也的沙龍的其他內容
2022/04/04
在我們要進行壓力測試的時候,必定會需要有「目標」而這個目標大多就是商業考量,也就是我們希望提供多大規模的服務。
Thumbnail
2022/04/04
在我們要進行壓力測試的時候,必定會需要有「目標」而這個目標大多就是商業考量,也就是我們希望提供多大規模的服務。
Thumbnail
2022/03/28
在一個功能完成後,比較嚴謹的方式會進行壓力測試來驗證是否能夠符合業務上的需求,在測試的時候是否能夠準確的測試就變得相當重要。
Thumbnail
2022/03/28
在一個功能完成後,比較嚴謹的方式會進行壓力測試來驗證是否能夠符合業務上的需求,在測試的時候是否能夠準確的測試就變得相當重要。
Thumbnail
2022/03/07
在雲端的時代中,我們可以利用 Auto Scaling(自動規模化)的方式來自動的增加或者減少伺服器的數量。也因此很多人會認為這是一個針對「大流量」的機制,也會把它當作一個解決「突發狀況」的解決方案,然而實際上真的是這樣嗎?
Thumbnail
2022/03/07
在雲端的時代中,我們可以利用 Auto Scaling(自動規模化)的方式來自動的增加或者減少伺服器的數量。也因此很多人會認為這是一個針對「大流量」的機制,也會把它當作一個解決「突發狀況」的解決方案,然而實際上真的是這樣嗎?
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
大家好!我們都知道,程式碼寫出來不代表就完工了,還要確保它真的“做到”我們想要的。這就是測試的力量!尤其是在 Web 開發中,測試確保我們的應用正確、穩定且高效地運行。今天,我們就來探討如何在 Gin 應用中進行測試和單元測試。
Thumbnail
大家好!我們都知道,程式碼寫出來不代表就完工了,還要確保它真的“做到”我們想要的。這就是測試的力量!尤其是在 Web 開發中,測試確保我們的應用正確、穩定且高效地運行。今天,我們就來探討如何在 Gin 應用中進行測試和單元測試。
Thumbnail
上一篇我們介紹了模擬API的工具箱「【Mockoon工具箱】awesome API mocking簡介」, 也示範如何模擬回傳資料, 但我們的API通常千變萬化, 尤其是會搭配不同的查詢條件進行資料的抓取,正好Mockoon也提供了Rules的一個功能, 透過規則的設定回應不同的資料內容。 API入
Thumbnail
上一篇我們介紹了模擬API的工具箱「【Mockoon工具箱】awesome API mocking簡介」, 也示範如何模擬回傳資料, 但我們的API通常千變萬化, 尤其是會搭配不同的查詢條件進行資料的抓取,正好Mockoon也提供了Rules的一個功能, 透過規則的設定回應不同的資料內容。 API入
Thumbnail
上一篇我們有介紹「【Postman工具箱】 Mock Server簡介」,相信對於Mock Server的用途應該都具備一些基本概念了,那這次就來介紹一套免費開源的工具庫「Mockoon」並附帶安裝架設的方法,讓我們簡單輕鬆的上架我們的模擬API Server。 系統開發的過程中,假設前/後端分離的
Thumbnail
上一篇我們有介紹「【Postman工具箱】 Mock Server簡介」,相信對於Mock Server的用途應該都具備一些基本概念了,那這次就來介紹一套免費開源的工具庫「Mockoon」並附帶安裝架設的方法,讓我們簡單輕鬆的上架我們的模擬API Server。 系統開發的過程中,假設前/後端分離的
Thumbnail
相信有在開發Web應用的朋友應該對於Postman這套工具相當熟悉, 這套工具可以協助我們在產品尚未完成之前可以先進行一些基本的介接測試,甚至我們可以使用Postman去呼叫雲端的API,像是Google的語音辨識、文字翻譯、字典查詢…,這類大廠相信也都開放許多標準API(Application P
Thumbnail
相信有在開發Web應用的朋友應該對於Postman這套工具相當熟悉, 這套工具可以協助我們在產品尚未完成之前可以先進行一些基本的介接測試,甚至我們可以使用Postman去呼叫雲端的API,像是Google的語音辨識、文字翻譯、字典查詢…,這類大廠相信也都開放許多標準API(Application P
Thumbnail
Locust 介紹 An open source load testing tool. Define user behaviour with Python code, and swarm your system with millions of simultaneous users. 如果你也是py
Thumbnail
Locust 介紹 An open source load testing tool. Define user behaviour with Python code, and swarm your system with millions of simultaneous users. 如果你也是py
Thumbnail
在先前的教學中,我都教大家程式寫完以後就架設到「Heroku」的雲端上做使用,但如果你想嘗試其他自創的功能,這時一定會需要一直Debug,如果每次想看結果都要部屬一次Heroku,那這樣就變得相當麻煩,所以今天我就教大家如何利用本機端來提供外網連接的方式吧!!
Thumbnail
在先前的教學中,我都教大家程式寫完以後就架設到「Heroku」的雲端上做使用,但如果你想嘗試其他自創的功能,這時一定會需要一直Debug,如果每次想看結果都要部屬一次Heroku,那這樣就變得相當麻煩,所以今天我就教大家如何利用本機端來提供外網連接的方式吧!!
Thumbnail
大多數時候,我們在討論壓力測試通常會先想到 ab 這個工具,然而這個工具會一次性的發送請求,有時候不一定符合現實的使用情況,同時也會受限於運行測試機器的限制(例如:Thread 上限)因此可能會得到不太精確的結果,在測試一定請求等級的瞬間壓力是有用的。
Thumbnail
大多數時候,我們在討論壓力測試通常會先想到 ab 這個工具,然而這個工具會一次性的發送請求,有時候不一定符合現實的使用情況,同時也會受限於運行測試機器的限制(例如:Thread 上限)因此可能會得到不太精確的結果,在測試一定請求等級的瞬間壓力是有用的。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News