Gatling for Load Tests part 2
ด้วยโปรเจกต์ Scala เพิ่ม Gatling Library
เมื่อ Hello ด้วยภาษา Scala ได้แล้ว part นี้เราตรงไปยัง Gatling จะ config และรัน Load Test แรกให้ได้ครับ
รู้จัก Gatling
เพราะข้อมูลเรายังไม่พอ ดังนั้น Google ไปว่า
gradle gatling plugin
เริ่มต้นไม่ถูกก็ต้องอ่านครับ จากนั้นจึงวิเคราะห์ความน่าจะเป็นไปของ Framework หรือ Library เหล่านี้ว่าจะมีความคิดไปในแนวทางใด ไม่พอก็หา Document อ่านประกอบอีกที
ตรงไปยังหัวข้อ Installation ว่าด้วยเรื่อง portal page
เพิ่ม Gatling Library
ด้วย DSL plugin แบบใหม่ของ Gradle เปิดไฟล์ build.gradle
id 'com.github.lkishalmi.gatling' version '3.2.8'
จัดโครงสร้างของ Gatling
Gatling ต้องการโปรเจกต์โครงสร้างไม่ต่างจาก Scala โดย default คือ
src/gatling/simulations
ดังนั้น ณ Terminal ของ IntelliJ IDEA จัดไป
mkdir -p src/gatling/simulations
สร้างไฟล์ทดสอบ
เพราะ Gatling นี้เขียนด้วย scala ดังนั้นเรามาสร้าง FirstTest.scala กันเถอะ
คลิกขวาที่ simulations folder เลือก New เลือก File
งานนี้ IDEA จะรู้จัก Scala หรือไม่ ยังไม่ต้องแคร์สื่อใดๆ ปล่อยไปก่อน
import io.gatling.core.scenario.Simulation
class FirstTest extends Simulation {
}
Simulation จะประกอบไปด้วย 3 ส่วน ได้แก่
- Common HTTP Configuration
- Scenario Definition
- Load Scenario
เราจะทดสอบโดยการเปิดหน้าแรกของ https://github.com
ซึ่งหน้าแรกของมันก็คือ / ต่อท้าย .com
Common HTTP Configuration: ตรงไปยัง GitHub
val httpConfig = http
.baseUrl("https://github.com")
Scenario Definition: บอกว่าอยากเห็นหน้าแรก
val scen = scenario("Go To GitHub")
.exec(http("Get First Page").get("/"))
Load Scenario: ขอผู้ใช้แค่ 1 คนเรียกหน้านี้
setUp(
scen.inject(atOnceUsers(1))
).protocols(httpConfig)
สมบูรณ์
จากนั้นเรามาสร้าง main สำหรับเรียกใช้กัน
สร้าง main
คลิกขวาที่ simulations folder อีกครั้ง เลือก New เลือก File
ไฟล์นี้ตั้งชื่อว่า GatlingRunner.scala
เขียนโค้ดให้เรียกใช้ FirstTest ดังกล่าว
รัน main
รอมันทำงานและรอคอยผลลัพธ์
Gatling จะสร้าง report ให้ด้วย
เปิดดู report ดังกล่าวผ่าน Brawser
report ตัวนี้อ่านคร่าวๆได้ว่า ใช้เวลาเรียกหน้าแรกของ GitHub นานเกิน 1200ms
นี่แหละจึงเรียกว่า Load Test
ทำได้อย่างนี้ก็ตรงปรบมือให้ตัวเองนะครับ report จะถูกจะผิดไม่ต้องสงสัย เรายังเรียนมาน้อย ปล่อยไปก่อน part หน้าพบกันใหม่
อ่านต่อ part 3