Apache JMeter เป็นเครื่องมือซอฟต์แวร์ที่ใช้สำหรับทดสอบโหลดแอปพลิเคชันบนโปรโตคอลและเทคโนโลยีต่างๆ มันเขียนด้วยภาษา Java และสามารถทำงานบนแพลตฟอร์มที่รองรับ Java เช่น macOS, Windows และอื่น ๆ มันยังเสนอ IDE สำหรับการพัฒนาการทดสอบโหลด คุณสามารถรันการทดสอบโหลดได้สองวิธี: วิธีหนึ่งกับ IDE และอีกวิธีหนึ่งกับ CLI JMeter สามารถทดสอบทรัพยากรทั้งไดนามิกและสแตติกโดยระบุอินพุตขณะทดสอบ JMeter เป็นแบบมัลติเธรดและสามารถจำลองผู้ใช้เสมือนจำนวนมากได้
คุณสามารถกำหนดค่า JMeter ในแบบกระจายซึ่งคุณสามารถปรับขนาดในแนวนอนได้หากต้องการปรับขนาดการทดสอบประสิทธิภาพสำหรับแอปพลิเคชันของคุณ มีการทดสอบโหลดหลายประเภท เช่น เวลาตอบสนองของเว็บแอป จำนวนผู้ใช้ที่แอปพลิเคชันสามารถจัดการได้ ทำการทดสอบโหลดอัตโนมัติในกระบวนการ CI/CD เป็นต้น
ในโพสต์นี้ เราจะมาดูวิธีโหลดการทดสอบ Python REST API และดูเวลาตอบสนองและจำนวนผู้ใช้ที่สามารถจัดการได้ เป็นต้น
Python เป็นหนึ่งในภาษาการเขียนโปรแกรมที่เติบโตเร็วที่สุดในปัจจุบัน และใช้สำหรับการเรียนรู้ของเครื่อง วิทยาศาสตร์ข้อมูล และกรณีการใช้งานอื่นๆ มากมาย วิธีที่ดีที่สุดในการเริ่มเรียนรู้ python คือการฝึกฝนบนเครื่องของคุณ
เราต้องติดตั้ง python บนเครื่องของคุณก่อน เมื่อติดตั้งแล้ว คุณสามารถรันโค้ด python บนเครื่องของคุณได้ นี่คือสิ่งที่คุณต้องการในเครื่องของคุณก่อนที่จะเขียน REST API
// I am using Mac OS
python3 --version
pip3 --version
วิธีเขียน REST API ด้วย Python และ Flask
ใช้ JMeter เวอร์ชันล่าสุดเสมอเป็นหนึ่งในแนวทางปฏิบัติที่ดีที่สุดที่เราควรปฏิบัติตามโดยใช้ JMeter ไปที่ลิงก์นี้เพื่อดูคำแนะนำในการติดตั้งบนแพลตฟอร์มอื่นๆ
https://jmeter.apache.org/usermanual/get-started.html#install
// install Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
// update Homebrew
brew update
// install JMeter
brew install jmeter
jmeter
JMeter
JMeter GUI
นี่คือลิงค์ Github สำหรับโปรเจ็กต์ตัวอย่างที่คุณสามารถโคลนและรันบนเครื่องของคุณ
// clone the project
git clone https://github.com/bbachi/python-flask-restapi.git
// install dependencies (Mac OS)
python3 -m pip install -r requirements.txt
// run the app
flask run
นี่คือผลลัพธ์เมื่อคุณกดมันในเบราว์เซอร์
มีคำศัพท์บางอย่างที่เราต้องเข้าใจเกี่ยวกับ JMeter และสำหรับการจัดการบริการ RESTful ไปกันเลยละกัน
นี่คือองค์ประกอบรากของ JMeter และสิ่งที่คุณต้องการเพื่อบันทึกเป็นแผนการทดสอบ อันที่จริงมีส่วนประกอบมากมาย เช่น ThreadGroups, Preprocessors, Postprocessors, assertions และ listeners เป็นต้น แผนการทดสอบสามารถประกอบด้วยกลุ่มเธรดได้หลายกลุ่ม และกลุ่มเธรดทั้งหมดเหล่านี้ในแผนการทดสอบสามารถทำงานพร้อมกันได้โดยค่าเริ่มต้น
สิ่งต่อไปหลังจากแผนการทดสอบที่เรากำหนดค่าคือกลุ่มเธรด และนี่คือจุดเริ่มต้นสำหรับการทดสอบทั้งหมดของคุณ ตัวควบคุมและตัวเก็บตัวอย่างสำหรับการทดสอบต้องอยู่ภายใต้กลุ่มเธรด คุณสามารถวาง Listener ไว้ใต้กลุ่มเธรดหรือภายใต้แผนการทดสอบ หากคุณกำหนดให้ Listener อยู่ภายใต้แผนการทดสอบ จะมีผลกับกลุ่มเธรดทั้งหมด
คุณสามารถกำหนดค่าจำนวนเธรดและ JMeter แยกหลายเธรดเพื่อจำลองการเชื่อมต่อไปยังเซิร์ฟเวอร์พร้อมกัน มีเวลาเพิ่มขึ้นสำหรับเธรดทั้งหมดที่จะเปิดใช้งาน
ตัวควบคุมมีสองประเภท: ตัวควบคุม Sampler ส่งคำขอไปยังเซิร์ฟเวอร์ ซึ่งรวมถึง HTTP, FTP, JDBC, LDAP และอื่นๆ Logical Controllers ที่คุณสามารถปรับแต่งตรรกะได้
ส่วนประกอบเหล่านี้เป็นส่วนประกอบที่สามารถใช้ส่งคำขอไปยังเซิร์ฟเวอร์และรอการตอบกลับ เช่น คำขอ HTTP
ผู้ฟังเป็นองค์ประกอบที่สามารถรวบรวมผลลัพธ์และแสดงรายงานสรุปได้ ช่วยให้คุณบันทึกข้อมูลในรูปแบบ XML หรือ CSV
มีส่วนประกอบอื่นๆ มากมาย เช่น ตัวประมวลผลล่วงหน้า ตัวประมวลผลภายหลัง ตัวจับเวลา ฯลฯ แต่สิ่งเหล่านี้อยู่นอกขอบเขตสำหรับบทความนี้
มาสร้างแผนการทดสอบสำหรับคำขอด้านล่างสำหรับโครงการตัวอย่างที่ให้ไว้ด้านบน ขั้นแรก ตรวจสอบให้แน่ใจว่าโปรเจ็กต์ของคุณกำลังทำงานอยู่บนเครื่องของคุณ
นี่คือการดำเนินการสองอย่างที่เราทดสอบ
Create Task คือหลังการโทรที่นำเนื้อหาคำขอและบันทึกลงในคอลเล็กชัน todos
URL: http://127.0.0.1:5000/api/task
Method: POST
Body:
{
"task": {
"id": 234324,
"name": "task",
"description": "This is task erwer"
}
}
Testing in POSTMAN
Get Tasks เป็น GET URL แบบง่ายที่ดึงงานทั้งหมดจากคอลเล็กชัน todos
URL: http://127.0.0.1:5000/api/tasks
มาสร้างแผนการทดสอบใหม่โดยคลิกที่แผนใหม่ คุณสามารถเปลี่ยน URL ได้อย่างเหมาะสมไม่ว่าพอร์ตและโดเมนใดที่คุณใช้ Python REST API นี้
มาสร้างแผนการทดสอบใหม่โดยคลิกที่ใหม่
คลิกขวาที่แผนการทดสอบและเลือกกลุ่มเธรดดังต่อไปนี้
ตอนนี้ เราต้องกำหนดค่าจำนวนเธรด เวลา Ramp-up ฯลฯ
เมื่อเรากำหนดค่ากลุ่มเธรดแล้ว ก็ถึงเวลาเลือกตัวอย่าง เนื่องจากเราต้องทดสอบปลายทาง REST เราจึงต้องเลือกคำขอ HTTP
นี่คือคำขอรับงาน ทั้งหมดที่เราต้องระบุชื่อเซิร์ฟเวอร์ พอร์ต และเส้นทาง
มาเพิ่มคำขอโพสต์สำหรับการสร้างงาน เนื่องจากนี่เป็นการโพสต์โทร เราจึงต้องให้ร่างกายด้วย
เพิ่มผู้ฟังเพื่อดูรายงาน
สุดท้าย คุณสามารถดูหน้าต่างด้านล่างพร้อมส่วนประกอบทั้งหมดของแผนการทดสอบ
นี่คือปุ่มเริ่มต้นและหยุดสำหรับแผนการทดสอบเริ่มต้นและหยุด
เมื่อคุณเริ่มแผนการทดสอบ JMeter จะเริ่มดำเนินการสคริปต์และคุณสามารถดูได้ในบันทึกของแอปพลิเคชันเช่นกัน
สุดท้าย คุณสามารถวิเคราะห์รายงานได้ดังนี้
นี่เป็นวิธีหนึ่งในการทดสอบประสิทธิภาพด้วย JMeter JMeter มีปลั๊กอินและเทมเพลตมากมายที่คุณสามารถใช้ได้ โพสต์นี้เป็นจุดเริ่มต้นที่ดีมากในการสำรวจเพิ่มเติม ในโพสต์ต่อๆ ไป เราจะเห็นกรณีการใช้งานขั้นสูงเพิ่มเติม
เมื่อคุณส่งคำขอไปที่ facebook.com คอมพิวเตอร์ของคุณจะค้นหาชื่อโดเมนเพื่อแปลชื่อโดเมนนั้นเป็นที่อยู่ IP เพื่อให้คอมพิวเตอร์ของคุณสามารถเชื่อมต่อได้
คุณต้องเคยได้ยินเกี่ยวกับปลั๊กอิน ChatGPT อันทรงพลังใหม่ทั้งหมด เช่น เบราว์เซอร์ ตัวแปลรหัส ฯลฯ แต่มีปัญหา การเข้าถึงปลั๊กอินถูกจำกัดไว้เฉพาะรายการรอ และหลายคนไม่สามารถเข้าถึงได้
“หวัดดี Siri เล่น Me Dive โดย Olivia Dean” ในเดือนพฤษภาคม 2021 ฉันเริ่มฝึกงานที่ Future Academy Africa ในเมือง Akure ประเทศไนจีเรีย
บทนำ:ยินดีต้อนรับ ผู้อ่านผู้กล้าหาญ สู่การเดินทางที่จะพาเราไปสู่ความลึกที่มืดมนที่สุดบนโลกใบนี้ ในบล็อกนี้ เราเจาะลึกโลกอันน่าพิศวงของร่องลึกบาดาลมาเรียนา เปิดเผยความลับที่ซ่อนอยู่ และเปิดเผยความจริงอันน่าสะพรึงกลัวที่อยู่ใต้พื้นผิวของมัน
เมื่อเร็วๆ นี้ฉันใช้ Linkedin ซึ่งเป็นโซเชียลเน็ตเวิร์กระดับมืออาชีพที่ใหญ่ที่สุดในโลก และพบโพสต์จากนักออกแบบอิสระที่ฉันติดตามซึ่งดึงดูดความสนใจของฉัน พวกเขาทั้งหมดโพสต์ภาพถ่ายจากบนเครื่องบิน บนชายหาดพร้อมแล็ปท็อป จากสระว่ายน้ำ และสำนักงานที่มีทิวทัศน์สวยงาม
[ทริกเกอร์การแจ้งเตือน: บทความนี้รวมถึงภาพหน้าจอของผู้คนที่ยกย่องฆาตกรจอร์แดน นีลี] ในที่สุดเจ้าหน้าที่บังคับใช้กฎหมายก็ได้ตั้งข้อหาแดเนียล เพนนี ชายผู้บีบคอจอร์แดน นีลีจนเสียชีวิตในข้อหาฆาตกรรมครั้งนั้น และอาจไม่เต็มใจนัก