5 ม.ค. 2558

[Tutorial] Server side web application performance test using JMeter (Windows platform)

มี tools จำนวนมากในตลาดที่ช่วยในการทำ performance test นะฮะ. JMeter (by apache) น่าจะเป็นตัวเก๋าที่ทุกๆคนรู้จัก. มีข้อดีหลักๆคือ อยู่มานาน ทำให้มี tutorial เยอะ, รองรับการใช้งานหลากหลาย เช่น http, SOAP, JDBC, MongoDB, LDAP, TCP, ..., และมีลูกเล่นเยอะแยะ เช่นใส่ script นู่นนี่เพื่อประมวลผล response, assert response, monitor response.


บัวบานขอนำเสนอวิธีการใช้ JMeter ทำ performance test Web Application แบบง่ายๆ.
  1. เปิด JMeter
    เข้าไปที่ folder \bin แล้ว execute file jmeter.bat. Figure 1 แสดง folder bin ของ JMeter.
    Figure 1 Location ของ jmeter.bat

  2. Add Thread Group
    คลิกขวาที่ Test Plan, เลือก Add > Threads(User) > Thread Group. Figure 2 แสดงการเพิ่ม Thread Group และ Thread Group ที่ถูกสร้างขึ้นมา
    Figure 2 การเพิ่ม Thread Group

  3. Add Sampler > HTTP Request
    คลิกขวาที่ Thread Group, เลือก Add > Sampler > HTTP Request. Figure 3 แสดงการเพิ่ม HTTP Request.
    Figure 3 การเพิ่ม HTTP Request
  4. Config HTTP Request
    คลิกที่ HTTP Request ที่เพิ่งเพิ่มเข้าไป. บัวบานจะแสดงตัวอย่างการ request ไปเอา search result จาก google. Figure 4 แสดงการ config HTTP Request.

    ตัวอย่าง URL: https://www.google.co.uk/search?q=jmeter+tutorial&oq=jmeter+tutorial

    a. ตั้งชื่อเป็นอะไรก็ได้.
    Name: Google request
    b. ใส่ domain name หรือ IP ของ server.
    Server Name or IP: www.google.co.uk
    c. ใส่เลข port ของ HTTP service ที่ฝั่ง server เปิดไว้. ถ้าไม่ใส่ จะใช้ค่า default เป็น 80.
    Port Number:
    d. ใส่ Protocol ที่ฝั่ง HTTP service รองรับ.
    Protocol [http]: https
    e. ใส่ Method ของการ request นี้.
    Method: GET
    f. ใส่ Path ที่ต้องการ.
    Path: /search
    g. ใส่ Parameters.
    g.1 กดปุ่ม Add, จะมี row ใหม่เพิ่มเข้าไป.
    g.2 ใส่ชื่อ parameter: ไปที่ row ใหม่ แล้ว double click ที่ cell Name, จากนั้นใส่ตัวอักษร "q"
    g.3 ใส่ value ให้ parameter: ขยับไป column ด้านขวา แล้ว แล้ว double click, จากนั้นใส่ยสนค่า "jmeter tutorial"
    g.4 check checkbox Encode
    g.5 ทำซ้ำ g.1-g.5 แต่เปลี่ยนชื่อ parameter เป็น oq
    Figure 4 การ Config HTTP Request


  5. Add Listener > View Results in Table
    คลิกขวาที่ HTTP Request, เลือก Add > Listener > View Results in Table. Figure 5 แสดงการเพิ่ม Listener.
  6. Add Listener > View Results in Tree
    คลิกขวาที่ HTTP Request, เลือก Add > Listener > View Results in Tree. Figure 5 แสดงการเพิ่ม Listener.
    Figure 5 การเพิ่ม Listener

  7. กด Start
    Figure 6 ปุ่ม Start

หลังจากที่ JMeter ทำงานเสร็จ, ผลการ test จะอยู่ใน View Results in Table และ View Results in Tree.
Figure 7 แสดง View Results in Table. ส่วนที่เรามักจะสนใจก็คือ column Sample Time และ Latency.
Latency นับตั้งแต่เริ่มส่ง request จนเริ่มต้นรับ response, ส่วน Sample Time นับตั้งแต่เริ่มส่ง request จนรับ response เสร็จสิ้น.
Figure 7 Results in table view

ถ้าต้องการดูรายละเอียดของแต่ละ request ให้กดดูจาก View Results in Tree. Figure 8 แสดง View Results in Tree โดยส่วน (a) แสดง list ของ request ที่เราส่งออกไป, ใน Figure 8 มีการส่ง request 4 ครั้ง. ส่วน (b) แสดง request package และ response package.

Figure 8 View Results in Tree


Download Test plan ได้จาก Tutorial1_basic_google.zip : https://drive.google.com/file/d/0B69Rt-ghTQqyaTM5M216bThjaEk/view?usp=sharing

สามารถ Download JMeter ได้จาก http://jmeter.apache.org/download_jmeter.cgi
(โหลดตัว Binaries นะฮะ)