30天的最後一天,寫到最後幾天才發現有一些想分享的沒有篇幅能寫入了,所以今天我認為分享的內容偏實用的JMeter測試比較合適,相信很多測試人員都有面臨大量的測試作業的問題,如果可以藉由k8s的特性重複佈署來做壓測會是非常方便的事情,也非常適合一次性測試或是模仿大量來源,所以今天就會介紹一套Jmeter on k8s的用法。
https://github.com/Rbillon59/jmeter-k8s-starterkit
這個是我使用下來覺得滿不錯的專案(不是我寫的QQ),概念上是使用wiremock作為環境模擬,然後用telegraf監控JVM、JMeter、wiremock的metrics到influxDB蒐集,並使用JMeter cluster架構可擴展slave來進行更完整的壓測,整組架構中也包含一個grafana主機(也可以使用之前外部建的)蒐集influxDB的資料做為圖表顯示,同時在git中也有包含啟動的shell來呼叫jmeter執行腳本和出報告。
對於整個架構的運行了解後,就來嘗試部署看看吧。
首先將專案clone下來,在專案目錄內會看到k8s這個目錄,裡頭放了接下來要佈建環境所需要的yaml
如果沒有對所有的套件都有需求的話其實也可以選擇自己想要的佈建就好,今天我會透過這30天最開始的概念生出一套完全乾淨的k8s來佈建JMeter測試環境,
首先apply k8s底下的yaml
kubectl apply -f k8s/目錄 -n jmeter
配置完成後會有兩個namespaces如下(我有改過yaml 這部分可以自行參考yaml做修改)
可以在cm中修改wiremock要回應的值
配置好要壓測的服務和要使用的jmeter腳本後,執行git clone下來的start test腳本
./start_test.sh -j JMeter腳本.jmx -n jmeter -c -m -i jmeter數量 -r
這樣就可以執行一次壓測囉。