เครื่องมือทดสอบโหลดผู้ใช้ที่ปรับขนาดได้เขียนด้วย Python: Locust
ตั๊กแตน
ตั๊กแตนเป็นเครื่องมือทดสอบประสิทธิภาพที่ใช้งานง่าย เขียนสคริปต์ได้ และปรับขนาดได้ คุณกำหนดพฤติกรรมของผู้ใช้ในโค้ด Python ปกติ แทนที่จะใช้ UI ที่หยาบหรือภาษาเฉพาะโดเมน สิ่งนี้ทำให้ตั๊กแตนสามารถขยายได้ไม่สิ้นสุดและเป็นมิตรกับนักพัฒนามาก
คุณสมบัติ
เขียนสถานการณ์การทดสอบผู้ใช้ใน Python . แบบเก่าธรรมดา
หากคุณต้องการให้ผู้ใช้วนซ้ำ ดำเนินการตามเงื่อนไขหรือคำนวณบางอย่าง คุณเพียงแค่ใช้โครงสร้างการเขียนโปรแกรมปกติที่ Python ให้มา ตั๊กแตนเรียกใช้ผู้ใช้ทุกคนภายในกรีนเล็ตของตัวเอง (กระบวนการที่มีน้ำหนักเบา / coroutine) วิธีนี้ทำให้คุณสามารถเขียนการทดสอบได้เหมือนโค้ด Python ปกติ (บล็อก) แทนที่จะต้องใช้การเรียกกลับหรือกลไกอื่นๆ เนื่องจากสถานการณ์ของคุณเป็นเพียงหลาม คุณสามารถใช้ IDE ปกติ และเวอร์ชันควบคุมการทดสอบของคุณเป็นโค้ดปกติ (ซึ่งต่างจากเครื่องมืออื่นๆ ที่ใช้รูปแบบ XML หรือไบนารี)
from locust import HttpUser, task, between class QuickstartUser(HttpUser): wait_time = between(1, 2) def on_start(self): self.client.post('/login', json={'username':'foo', 'password':'bar'}) @task def hello_world(self): self.client.get('/hello') self.client.get('/world') @task(3) def view_item(self): for item_id in range(10): self.client.get(f'/item?id={item_id}', name='/item')
กระจายและปรับขนาดได้ - รองรับผู้ใช้หลายแสนคน
ตั๊กแตนทำให้ง่ายต่อการรันการทดสอบโหลดที่แจกจ่ายผ่านเครื่องหลายเครื่อง เป็นตามเหตุการณ์ (โดยใช้ ช่องระบายอากาศ ) ซึ่งทำให้กระบวนการเดียวสามารถจัดการผู้ใช้พร้อมกันหลายพันคนได้ แม้ว่าอาจมีเครื่องมืออื่นๆ ที่สามารถทำการร้องขอเพิ่มเติมต่อวินาทีบนฮาร์ดแวร์ที่กำหนด แต่โอเวอร์เฮดที่ต่ำของผู้ใช้ Locust แต่ละคนทำให้เหมาะสมมากสำหรับการทดสอบปริมาณงานที่เกิดขึ้นพร้อมกันในระดับสูง
UI บนเว็บ
ตั๊กแตนมีเว็บอินเตอร์เฟสที่เป็นมิตรต่อผู้ใช้ซึ่งแสดงความคืบหน้าของการทดสอบของคุณในแบบเรียลไทม์ คุณยังสามารถเปลี่ยนโหลดได้ในขณะทำการทดสอบ นอกจากนี้ยังสามารถเรียกใช้ได้โดยไม่ต้องใช้ UI ทำให้ง่ายต่อการใช้สำหรับการทดสอบ CI/CD
แผนที่จาวาสคริปต์เทียบกับ foreach
เข้าสู่ระบบแอพเงินสดออนไลน์
ทดสอบได้ทุกระบบ
แม้ว่าตั๊กแตนจะทำงานกับเว็บไซต์/บริการเป็นหลัก แต่ก็สามารถใช้เพื่อทดสอบระบบหรือโปรโตคอลเกือบทุกชนิด แค่ เขียนลูกค้า สำหรับสิ่งที่คุณต้องการทดสอบหรือ สำรวจบางส่วนที่สร้างขึ้นโดยชุมชน .
แฮ็กได้
ตั๊กแตนตัวเล็กและยืดหยุ่นมาก และเราตั้งใจที่จะรักษามันไว้ ถ้าคุณต้องการ ส่งข้อมูลการรายงานไปยังฐานข้อมูลและระบบกราฟที่คุณชอบ , ตัดการเรียกไปยัง REST API เพื่อจัดการข้อมูลเฉพาะของระบบหรือเรียกใช้ a รูปแบบการโหลดที่กำหนดเองโดยสิ้นเชิง , ไม่มีอะไรหยุดคุณ!
ลิงค์
- เว็บไซต์: locust.io
- เอกสารประกอบ: docs.locust.io
- รหัส/ปัญหา: Github
- การสนับสนุน/คำถาม: StackOverflow
- แชท/สนทนา: สมัครหย่อน
ผู้เขียน
- Carl Bystr ( @cgbystrom บนทวิตเตอร์)
- โจนาธาน เฮย์แมน ( @jonatanheyman บนทวิตเตอร์)
- Joakim Hamren ( @jahaaja บนทวิตเตอร์)
- ฮิวโก้ เฮย์แมน ( @hugoheyman บนทวิตเตอร์)
- ลาร์ส โฮล์มเบิร์ก
ดาวน์โหลดรายละเอียด:
การสาธิต/เอกสารประกอบ: ดูการสาธิต/เอกสารประกอบ
ลิ้งค์ดาวน์โหลด: ดาวน์โหลดซอร์สโค้ด
เว็บไซต์อย่างเป็นทางการ: https://github.com/locustio/locust
ใบอนุญาต: โอเพ่นซอร์สที่ได้รับอนุญาตภายใต้ใบอนุญาต MIT (ดู ใบอนุญาต ไฟล์สำหรับรายละเอียด)
#การทดสอบ #python
ดูสิ่งนี้ด้วย:
- จะซื้อประกันการเงินได้อย่างไรและที่ไหน (INFI) – คำแนะนำทีละขั้นตอนง่าย ๆ
- พิมพ์ความเร็วโปรแกรม Java - คำนวณ WPM (คำต่อนาที)
- เรียนรู้ปฏิกิริยาโดยการสร้างแอปพลิเคชันอีคอมเมิร์ซด้วยส่วนประกอบคลาส
- สถิติแบบเบย์: เมโทรโพลิส-เฮสติงส์ตั้งแต่เริ่มต้นใน Python
- มาสร้างแอป MongoDB, React, Node และ Express (MERN) แบบเต็มสแต็กกันเถอะ