Multi-Mechanize – web performance and load testing framework

4 Mar
2010

สวัสดีเช้าวันพฤหัสบดีที่ 4 มีนาคม พ.ศ. 2553 ครับ เช้าวันนี้แวะมาปล่อยของก่อนที่จะเริ่มทำงานประจำวันครับ เผอิญไปเจอเจ้า Testing Tools ของ Performance Testing มาครับ แถมยังเป็น Open Source ด้วย ก็เลยไม่รอช้าที่จะนำมาบอกเล่าให้เพื่อนพ้องน้องพี่ได้รับรู้กันครับในเช้าวันนี้

รูปจาก http://www.jamiegaines.com
คำเตือน: ขณะเขียนบทความนี้ ผมยังมิได้ลองใช้งาน Performance Testing Tool ที่กำลังจะพูดถึงนะครับ (เปลี่ยนใจได้) :)

พระเอกของเราในเช้าวันนี้มีนามว่า Multi-Mechanize ถูกพัฒนาขึ้นโดย Corey Goldberg : Software Engineer – Boston, MA และขอบอกว่าคุณ Corey Goldberg พัฒนา Tools ที่เกี่ยวกับการ Test ไว้หลายๆ ตัว ติดตามได้จากที่เว็บของคุณ Corey Goldberg ได้ครับ

Multi-Mechanize

Multi-Mechanize ถูกพัฒนาขึ้นด้วยภาษา Python ซึ่งในการใช้งานเพื่อนพ้องน้องพี่สามารถที่จะสร้าง Test Script ตาม Activity ต่างๆ ของการทำงานบนหน้า Web และสร้าง Virtual Users เข้าไป เพื่อจำลองการใช้งานไปตาม Activity ต่างๆ ที่เราได้สร้างไว้ ซึ่งจะต้องเป็นไปตาม Syntax ของภาษา Python นะครับ แต่ผมเชื่อได้ว่าไม่ยากเกินความสามารถของเราหรอกครับ :)

มาลองดู Features ที่เป็นหน้าเป็นตาของ Multi-Mechanize (ตามที่คุณ Corey Goldberg เขียนไว้)

Features include:

  • HTTP methods
  • high-level hyperlink and HTML form support
  • SSL support
  • automatic cookies
  • custom headers
  • redirections
  • proxies
  • HTTP authentication

ตัวอย่างของ Scripts (Virtual User Transactions)

simple web request

import mechanize

class Transaction:
def run(self):
br = mechanize.Browser()
br.set_handle_robots(False)
resp = br.open(‘http://www.example.com/’)
resp.read()

web request with timer and assertions

import mechanize
import time

class Transaction:
def run(self):
self.custom_timers = {}

br = mechanize.Browser()
br.set_handle_robots(False)

start_timer = time.time()
resp = br.open(‘http://www.example.com/’)
resp.read()
latency = time.time() – start_timer

self.custom_timers['Example_Homepage'] = latency

assert (resp.code == 200), ‘Bad HTTP Response’
assert (‘Example Web Page’ in resp.get_data()), ‘Failed Content Verification’

แอบยากใช่ไหมครับ หากมีเพื่อน มีพี่ มีน้อง ที่เขียน Python ได้ เรียนเชิญมาช่วยได้เลยนะครับ

Report

เรื่องที่สำคัญเช่นกันคือเรื่องของ รายงาน หรือ Report ที่ Test Tool จะสร้าง และสรุป ออกมาให้เห็นถึงผลการทดสอบที่ได้ดำเนินการไป ในส่วนของ Multi-Mechanize รายงานก็หน้าตาดีใช้ได้นะครับ จากที่ดูจากตัวอย่างของ Report ที่คุณ Corey Goldberg นำมาให้ชม ซึ่งมีอยู่ 2 รายงานตามด้านล่างครับ

Download

สำหรับเพื่อนพ้องน้องพี่ที่สนอกสนใจอยากที่จะลองเล่นกับเจ้า Multi-Mechanize สามารถที่จะเข้าไปอ่านข้อมูลเพิ่มเติม และ Download ได้ที่

http://code.google.com/p/multi-mechanize/

ผมเองก็จะเล่นเจ้า Multi-Mechanize ในเร็วๆ นี้ ได้ผลเช่นไรจะมาเล่าให้ฟังในครั้งต่อๆ ไปนะครับ และหากเพื่อนพ้องน้องพี่ท่านใดที่ได้ลองเล่นเจ้า Multi-Mechanize แล้วก็อยากให้ร่วมแบ่งปันเ่ช่นกันครับ จะเขียนสรุปบน welovebug เอง หรือหากไม่ถนัดสรุปๆ แล้วส่งมาให้ผมก็ได้ครับ จะช่วยเขียนขึ้นบน welovebug ให้ครับผม

ร่วมด้วยช่วยกันสร้างสังคมแห่งการเรียนรู้ และแบ่งปันครับ :)

3 Responses to Multi-Mechanize – web performance and load testing framework

Avatar

kannique

March 8th, 2010 at 12:49 pm

ขอบคุณมากสำหรับคำแนะนำครับ :D

Avatar

KOBDESIGN

March 11th, 2010 at 9:41 pm

ขอบคุณครับ :)

Avatar

werry

October 20th, 2011 at 5:11 pm

ได้ผลว่าไงบ้างครับ เล่าให้ฟังหน่อยนะครับ :)

Comment Form

top