พูดคุย:Lightweight Web Load Testing Tool with Curl and Ruby

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

You can leave your comments or bug reports here. (Just go ahead and edit (แก้ไข)) Thank you. Jittat 08:39, 2 เมษายน 2008 (ICT)


Better write these topic in http://programming.wikia.com/ ? (See http://th.lug.wikia.com/wiki/Why_Wikia%3F for more reasons) --Ans 23:41, 26 กรกฎาคม 2008 (ICT)

perl + wget + fork

ปกติ ผมใช้ perl + wget แล้วก็ forkๆๆๆ และจับเวลา.

อันแรกเป็นแบบ 100 concurrent x 1 request = 100 requests

$ time -p perl -e 'for(1..100) { fork() or last; } system("wget -q -O/dev/null http://xxxxx/xxxx.html")'

อันนี้ 5 concurrent x 20 requests = 100 requests

$ time -p perl -e 'for(1..20) { push(@url, "http://xxxxx/xxxx.html"); } for(1..5) { fork() or last; } system("wget", "-q", "-O/dev/null", @url);'

ไม่แน่ใจว่า เหมือนหรือต่างกับ code อันที่ใช้ ruby นี้อย่างไร? (/me อ่าน code ruby ไม่รู้เรื่อง) --Ans 23:45, 26 กรกฎาคม 2008 (ICT)

/me เล่นเขียน perl เอาสดๆ จาก command line ประจำครับ --Ans 00:23, 27 กรกฎาคม 2008 (ICT)

โดยหลักการแล้วไม่ต่างกันเท่าไหร่ถ้ามีเว็บเพจหน้าเดียว แต่ความสะดวกและความคล่องตัวอาจจะต่างกันอยู่ คือตัว code ruby อันนี้นี่ มองว่างานหนึ่ง ๆ มันเป็นกระบวนการทำงานต่อเนื่อง ต้องโหลดเพจหลาย ๆ หน้าต่อเนื่องกัน อาจมีการ login มี session แล้วก็มีการ post ข้อมูล แล้วก็ถาม อะไรพวกนี้ ก็เลยพยายามออกแบบให้ในการเขียน "สคริปเทส" ระบุกระบวนการทำงานต่อเนื่องและพยายามทำให้ post ได้สะดวก แล้วทั้งหมดก็ abstract ออกมาเป็น object visitor ซึ่งถ้ามีหลาย ๆ ประเภทก็ทดลองให้ทำงานพร้อม ๆ กันเพื่อทดลองโหลดเทสเว็บได้
แต่สาเหตุหลัก ๆ ที่ทำให้เขียนออกมาเพราะว่าเรื่อง post ข้อมูล แล้วก็มี session นี่ล่ะครับ (เพราะว่าจะใช้เอง) --- Jittat 00:30, 27 กรกฎาคม 2008 (ICT)
เคยใช้ perl + wget เขียน post + login + session เหมือนกัน. wget ก็ support cookie session อยู่แล้ว, โดยใส่ url ต่อเนื่องไปใน command line wget อันเดียว ดังนี้,
$ wget -O/dev/null -q http://host/login.php --post-data='user=xxx&password=yyy' http://host/some_query.php
แต่ก็ยังติดตรงที่คำสั่ง --post-data ของ wget มันยังแยกไม่ได้ว่าจะให้ post เข้า url ไหนมั่ง. คือ --post-data เพียงอันเดียวจะถูก post เข้า ทุกๆ url ที่ส่งไปให้ wget. กรณีนี้ถ้า some_query.php มันไม่สน data ที่ post เข้าไป ก็ไม่เป็นไร, ก็พอกล้อมแกล้มใช้ไปได้.
--Ans 00:43, 27 กรกฎาคม 2008 (ICT)
เพิ่งรู้ว่า wget ทำพวก session ได้ด้วย ไม่รู้ว่า post จากไฟล์ได้ด้วยหรือเปล่า? จริง ๆ ทั้งหมดที่ทำก็ทำบน curl ตรง ๆ เอาไว้บ้างแล้วแล้ว แต่ว่าพอมันทำอะไรยุ่ง ๆ หน่อยมันก็เริ่มจะเละ ๆ ก็เลยเขียนเป็น dsl ด้วย ruby ครอบเอาไว้ แล้วก็เพิ่มส่วนที่เก็บพวกสถิติ จับเวลา response time อะไรพวกนี้ จริง ๆ ถ้าอยากเขียนเป็นสคริปหมดก็คงทำได้ แต่ที่อยากได้คือให้เวลาเขียนตัวสคริปขั้นตอนการทำงานของ user มันน่าจะเขียนง่าย อ่านง่ายมากกว่า -- Jittat 00:51, 27 กรกฎาคม 2008 (ICT)
wget มีคำสั่ง --post-file, แต่ว่ามันไม่ได้เป็นแบบที่ใช้ upload file ที่ใช้ใน html form. ของ curl อาจจะเก่งกว่า. --Ans 01:13, 27 กรกฎาคม 2008 (ICT)