在先前的文章,已分享過使用 JMeter 和 drill 進行小規模 Load Testing,今天延續同樣的主題,這次要使用另一個新興熱門的 Load Testing 工具 K6,試一試「如何透過 GitLab CI + K6 進行小規模 Load Testing」。
操作步驟 首先,K6 在 2021 年已經被 Grafana Labs 買下來了,但目前(2022/02/03)看來,K6 官網依然還維持原貌,沒有太大的變化,只是多掛上了 Grafana Labs 的 Logo。K6 有提供 Open Source 與 K6 Cloud 兩種方案,而本文將採用的是 Open Source 方案。
準備 GitLab Runner 老樣子,第一步我們要先預備合適的 GitLab CI 環境,應該不用再多做解釋,請先準備好能夠操控 Container 的 GitLab Runner,如果你不知該如何準備 Runner,又想要快速試一下本文的內容,那最簡單的做法是註冊一個 gitlab.com 帳號,然後建立新 Project 並使用官方提供的 Shared Runners。
準備 Docker image - K6 第二步,預備一個能夠運行 K6 的 Docker image。
這次很幸運,已經有現成的 Image 可以使用 loadimpact/k6...
在 2021 年四月的文章中,我分享了透過 GitLab CI + JMeter 進行小規模 Load Testing;而在 2021 年七月的文章中,我則是試用了 Drill 這個新興的 Load Testing 工具。
承襲這兩次的經驗,在本文我們就以 GitLab CI + Drill,試一試「如何透過 GitLab CI + Drill 進行小規模 Load Testing」。
(本文同步發表於 Medium。)
操作步驟 首先我們要準備合適的 GitLab CI 環境,老樣子會需要一個可以操控 Container 的 GitLab Runner。如果你只是打算先試玩看看,那最簡單的方式就是使用 gitlab.com 以及官方提供的 Shared runners。
【小提醒】再次提醒大家 gitlab.com 的 Free plan 現在只有 400 CI/CD minutes per month。而且由於一直都有人在濫用這些免費資源,因此官方也有在評估該如何規範濫用的狀況。假如你真的想要由 GitLab CI 觸發 Load Testing,最好還是使用自己架設的 GitLab Runner 喔!
準備 Docker image - drill 接著準備合適的 Docker image。這邊一樣偷懶,就不追求容器 size 最小化,用最直白的方式建立一個可以在 GitLab CI 中使用的 Docker image - drill。...
Drill 是一個以程式語言 Rust 撰寫的輕量級 HTTP Load testing 工具,Load testing 工具百百款,之所以會特別想認識 Drill 則是因為該工具的一段簡介「You can write benchmark files, in YAML format, describing all the stuff you want to test. It was inspired by Ansible syntax because it is really easy to use and extend.」
看到上面那段簡介,身為 Ansible 的使用者,怎麼可以不來驗證一下,是不是真的如它所言!
(本文撰寫時,使用的 Drill 版本為 0.7.1。)
(本文同步發表於 Medium。)
操作步驟 我們知道試用任何工作的第一步是先看官方文件!
錯!當然是先看有沒有已經包好立即可用的 Container image!(咦)
可惜在撰文的當下,尚未看見官方有自己包好 Container image,在 Docker Hub 只有找到 Drill 版本 0.5.0 的 Docker image。
https://hub.docker.com/r/xridge/drill 由於沒有最新版的 Container image,只好自己 build 一個,這邊就偷懶不追求 Container Size 的最小化,先搶快做出 Drill 0....
本文將說明如何透過 GitLab CI + JMeter 實現小規模的 Load testing。
(本文同步發表於 Medium。)
操作步驟 先準備一個能夠操控 Container 的 GitLab Runner,gitlab.com 的使用者可直接用官方提供的 Shared runners。
站在巨人的肩膀上,我們要借用 justb4/docker-jmeter 這個優秀的 GitHub 專案,用它作為基底。
【補充說明】justb4/docker-jmeter 的作者已經寫好一個立即可用的 Test Plan 並搭配變數和幾個 script,也有易讀易懂的文件。因此如果你只是想要立即使用 JMeter 執行小規模的 Load testing,它只需要稍微微調就可以直接在 local 環境中拿來運用。
先將此專案 import 至 GitLab。由於是公開的 GitHub 專案,所以 Import project from 我們直接選擇 Repo by URL 並填入 GitHub 的 Git repository URL 即可順利 Import。 (等待 Import 動作執行完畢。)
由於 justb4/docker-jmeter 是設計用來直接拿來使用的,因此我們要稍作微調,讓它變成適合我們放在 GitLab CI 的模樣。調整的方向有 2 個:
修改 Test Plan,讓我們可以用 Variables 動態調整更多的 Load testing 參數。 讓 Variables 可以透過 GitLab CI 的各種方式輸入,方便以各種測試參數進行 Load testing。 決定好方向之後,開始實施客製作業。首先修改 Test Plan (....