Gatling for Load Tests part 2

Phai Panda
3 min readSep 16, 2019

--

ด้วยโปรเจกต์ Scala เพิ่ม Gatling Library

เมื่อ Hello ด้วยภาษา Scala ได้แล้ว part นี้เราตรงไปยัง Gatling จะ config และรัน Load Test แรกให้ได้ครับ

รู้จัก Gatling

เพราะข้อมูลเรายังไม่พอ ดังนั้น Google ไปว่า

gradle gatling plugin
https://github.com/lkishalmi/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 project structure

สร้างไฟล์ทดสอบ

เพราะ Gatling นี้เขียนด้วย scala ดังนั้นเรามาสร้าง FirstTest.scala กันเถอะ

คลิกขวาที่ simulations folder เลือก New เลือก File

งานนี้ IDEA จะรู้จัก Scala หรือไม่ ยังไม่ต้องแคร์สื่อใดๆ ปล่อยไปก่อน

import io.gatling.core.scenario.Simulation

class FirstTest extends Simulation {

}

Simulation จะประกอบไปด้วย 3 ส่วน ได้แก่

  1. Common HTTP Configuration
  2. Scenario Definition
  3. 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 ดังกล่าว

หัวใจอยู่ตรง classOf[ class need to test ]

รัน main

รอมันทำงานและรอคอยผลลัพธ์

Gatling จะสร้าง report ให้ด้วย

เปิดดู report ดังกล่าวผ่าน Brawser

report ตัวนี้อ่านคร่าวๆได้ว่า ใช้เวลาเรียกหน้าแรกของ GitHub นานเกิน 1200ms

นี่แหละจึงเรียกว่า Load Test

ทำได้อย่างนี้ก็ตรงปรบมือให้ตัวเองนะครับ report จะถูกจะผิดไม่ต้องสงสัย เรายังเรียนมาน้อย ปล่อยไปก่อน part หน้าพบกันใหม่

อ่านต่อ part 3

--

--

No responses yet