[บันทึก]xk6: Graph Report from result

Monchavin Pinthong
odds.team
Published in
2 min readDec 2, 2023
grafana xk6 dashboard
https://github.com/grafana/xk6-dashboard

วันนี้ผมจะมาพูดถึงเรื่องการนำ ผลลัพธ์ของ k6 ที่เราทำ loadtest มาแสดงผลเป็น Graph และ download ออกมาเป็น report file หากใครอยากรู้ว่าเจ้า k6 ใช้งานเพื่อทำ loadtest ยังไงแนะนำให้เริ่มจากบทความนี้เลยครับ

https://medium.com/@tiktoc.ks/ลองทำ-load-test-ด้วย-k6-674205597cc6

จริงๆแล้วเจ้า k6 ก็มี command ที่สามารถ export ออกมาในรูปแบบที่อ่านง่ายและสะดวกสบายกับผู้ใช้ด้วยนะครับ เช่น CSV หรือ JSON เป็นต้น ลองดูเพิ่มเติมที่ docs ของ k6 กันได้เลยว่า support รูปแบบไหนบ้าง

แต่วันนี้เราจะมา visualize result data ให้ออกมาอยู่ในรูปแบบกราฟอย่างง่ายกันครับ

เริ่มต้นเรามาทำความรู้จักกับ tools ที่จะมาเป็นพระเอกของวันนี้กัน นั่นก็คือ “xk6-dashboard

xk6-dashboard คือ k6 extension ที่แสดงผลผ่านเว็ปเป็น metrics dashboard สำหรับ k6 ครับ xk6-dashboard มีประโยชน์มากเมื่อเราต้องการ monitor, visualize และ แสดง performance test result ในรูปแบบที่เป็น dashboard เพื่อช่วยให้เราได้บริโภคข้อมูลกันง่ายขึ้น

มาเริ่มใช้งานพระเอก (xk6-dashboard) ของเรากันครับ

อย่างแรกเลยเราจะมี folder ที่เก็บ file script ที่เอาไว้ทำ loadtest นะครับ ตามรูปเลย

ทีนี้ step ตอนที่เรา run command ตัว xk6-dashboard จะมีให้เราเลือกรันนะครับ ว่าจะรันผ่านอะไร ไม่ว่าจะ install ตัว xk6 ด้วย go ก่อนแล้วค่อยรันด้วย k6 เอง อ่านเพิ่มเติม

แต่จากบทความนี้ผมขอเลือกไปใช้ image ของ docker ครับ

// Linux
docker run -v $(pwd):/scripts -p 5665:5665 -it --rm ghcr.io/grafana/xk6-dashboard:latest run --out=dashboard /scripts/script.js

// Window
docker run -v %cd%:/scripts -p 5665:5665 -it --rm ghcr.io/grafana/xk6-dashboard:latest run --out=dashboard /scripts/script.js

จากนั้นเข้าไปที่ url “http://localhost:5665” จะเห็นกราฟตามรูปด้านล่างเลยครับ

และหากเราอยากดูเป็น report ก็กดเข้าไปที่เมนู report ที่มุมขวาบนได้เลยครับ

หรือจะทำเป็น report file ออกมาเก็บไว้เราจะ save ผ่าน browser เลยก็ได้หรือตอน run command เราจะให้ mount volumes ออกมาเก็บเป็น report file ไว้ก็ทำได้เช่นกันครับ ตาม command ด้านล่างเลย

docker run -v ./scripts:/scripts -v ./report:/report -p 5665:5665 -it --rm ghcr.io/grafana/xk6-dashboard:latest run --out=dashboard=report=/report/test-report.html /scripts/scripts.js

เพียงเท่านี้เราก็จะเห็น report result ออกมาเป็น กราฟแล้วครับ

Trick: จากที่ได้เรียนเรื่องนี้มีตอนหนึ่ง ผู้สอนบอกว่า เราควรเริ่ม VUs ที่ 1 ก่อน เพื่อดูว่า TPS(Transaction per second) และ RPS(Request Per second) เป็นเท่าไหร่เพื่อนำค่ามาใช้ต่อว่า VUs ในลำดับถัดไปที่เครื่องของเราจะรับไหวเป็นเท่าไหร่ครับ

--

--