ทางเลือกที่ดีที่สุดแทน Gatling
Gatling สร้างชื่อเสียงมาอย่างยากลำบาก: เอนจินโหลดแบบ non-blocking ที่รีดผู้ใช้เสมือนหลายหมื่นคนออกมาจากเครื่องเดียว ขับเคลื่อนด้วยโค้ดทั้งหมด สิ่งที่เริ่มต้นในฐานะ Scala DSL ตอนนี้รองรับ Java, Kotlin, Scala, JavaScript และ TypeScript และครอบคลุม HTTP, WebSocket, SSE, gRPC, JMS และ MQTT หากงานของคุณคือการออกแบบโปรไฟล์โหลด (ramps, spikes, soak tests) Gatling คือเครื่องมือระดับจริงจัง
ปัญหาจะเริ่มขึ้นเมื่อ Gatling กลายเป็นเครื่องมือ API ประจำวัน ทุกการตรวจสอบ ไม่ว่าจะเล็กแค่ไหน ก็คือ simulation class: เขียนโค้ด คอมไพล์ รัน อ่านรายงาน ไม่มีไคลเอนต์สำหรับไล่ตรวจ endpoint ไม่มี mock server สำหรับทีม frontend ไม่มีเอกสารสำหรับผู้ใช้งาน และเครื่องมือที่ทำให้การรันเทียบเคียงกันได้เมื่อเวลาผ่านไป (ประวัติแบบรวมศูนย์, แดชบอร์ดแนวโน้ม, การสร้างโหลดแบบกระจาย, CI แบบไม่ต้องดูแล) อยู่ใน Gatling Enterprise เริ่มต้นที่ €89 ต่อเดือน คุณซื้อปืนใหญ่โหลดมา แล้วตอนนี้คุณใช้มันเคาะประตู
นี่คือคำตอบตรง ๆ: Apidog คือทางเลือกแทน Gatling ที่ดีที่สุดสำหรับงาน API ที่กินเวลาส่วนใหญ่ในสัปดาห์ของคุณ: การออกแบบ endpoint, การ debug คำขอ, การ mock, การทำเอกสาร และการรันการตรวจสอบเชิงฟังก์ชันและประสิทธิภาพจากแพลตฟอร์มภาพเดียว ฟีเจอร์ทดสอบประสิทธิภาพในตัวจะรันสคริปต์ทดสอบที่มีอยู่ของคุณด้วยผู้ใช้เสมือนสูงสุด 100 คน พร้อม ramp-up ที่ปรับแต่งได้ และเมตริกแบบเรียลไทม์ โดยไม่ต้องเขียนโค้ด simulation เลย สำหรับวันที่คุณต้องการ concurrency ระดับแสน คำแนะนำที่ตรงไปตรงมาอยู่ในหัวข้อส่วนสุดท้าย: เก็บ Gatling ไว้สำหรับเรื่องนั้น บทความนี้จะอธิบายว่าเส้นแบ่งอยู่ตรงไหน
Gatling เรียกร้องอะไรจากคุณ
Gatling เป็น test-as-code ไปจนถึงแก่น การทดสอบโหลดคือโปรแกรม: สายของ action ที่ต่อเข้ากับโปรไฟล์การ inject รันผ่าน Maven, Gradle, sbt หรือ npm นั่นคือที่มาของพลัง: code review ครอบคลุมการทดสอบโหลดของคุณ, version control ติดตามมัน และ DSL สามารถแสดงรูปร่างของ workload ที่สไลเดอร์ใน GUI ใด ๆ ทำไม่ได้
แต่มันก็เป็นภาษีที่ต้องจ่ายทุกวันเช่นกัน จะยิง staging endpoint ครั้งเดียวเพื่อตรวจ header? นั่นไม่ใช่สิ่งที่ simulation มีไว้ คุณจึงต้องเปิดเครื่องมือที่สอง ทีม frontend ที่กำลังสร้างงานบน API ที่ยังไม่มีอยู่? ไม่มี mock server เอกสารสำหรับผู้ใช้งาน? ไม่ใช่งานของมัน Gatling ไม่เคยอ้างว่าเป็นแพลตฟอร์ม API ปัญหาคือทีมต่าง ๆ ปฏิบัติกับมันเสมือนว่าเป็นแบบนั้น เพราะมันถูกติดตั้งไว้แล้ว ความไม่ลงรอยแบบเดียวกันนี้ปรากฏอยู่ในเครื่องมือทดสอบโหลดแบบ code-first ที่เราเปรียบเทียบไว้ใน ซอฟต์แวร์ทดสอบโหลดยอดนิยม
จุดที่ community edition หยุดลง
Gatling โอเพนซอร์ส (Apache 2.0, ดาวบน GitHub ประมาณ 6.9k) ฟรีจริงและมีความสามารถเพียงพอสำหรับการรันในเครื่อง แต่จุดยืนของ Gatling เองก็ตรงไปตรงมา: community edition นั้น "สำหรับการใช้งานในเครื่องเท่านั้น" ตามหน้าราคาและการเปรียบเทียบฉบับต่าง ๆ สิ่งที่เปลี่ยนการรันแบบครั้งเดียวให้กลายเป็นแนวปฏิบัติด้านประสิทธิภาพคือฟีเจอร์ของ Enterprise:
- การสร้างโหลดแบบกระจาย ใน community หนึ่งเครื่อง หนึ่ง generator ส่วนการ inject แบบหลาย generator หลายภูมิภาคเป็นของ Enterprise
- ประวัติการรันแบบรวมศูนย์และแดชบอร์ดแนวโน้ม community ให้รายงานต่อการรัน การเทียบสัปดาห์นี้กับสัปดาห์ก่อนเป็นของ Enterprise
- ระบบอัตโนมัติ CI/CD แบบจัดการให้, การจัดตารางเวลา, การติดตาม SLO เป็นของ Enterprise
- การทำงานร่วมกัน, RBAC, SSO เป็นของ Enterprise
ราคา Enterprise เริ่มต้นที่ €89 ต่อเดือน (Basic: ผู้ใช้เสมือนสูงสุด 60,000 คน, ทดสอบ 1 ชั่วโมง, load generator 1 ตัว, 2 ที่นั่ง) และ €356 ต่อเดือนสำหรับ Team (180,000 VUs, 5 ชั่วโมง, 3 generators, 10 ที่นั่ง) ส่วนที่สูงกว่านั้นเป็นราคาแบบกำหนดเอง ราคายุติธรรมดี แต่สังเกตว่าคุณได้อะไรจากการจ่าย: โหลดมากขึ้น ประวัติมากขึ้น ที่นั่งมากขึ้น ไม่มีแพ็กเกจใดเพิ่ม API client, mock server หรือเอกสาร เพราะนั่นไม่ใช่ตัวสินค้า
คำตอบ: Apidog
Apidog คือแพลตฟอร์มพัฒนา API ที่นักพัฒนามากกว่า 500,000 คนใช้งาน spec หนึ่งชุดขับเคลื่อนตัวออกแบบ endpoint แบบภาพ, ไคลเอนต์สำหรับส่งคำขอ, smart mock server, เอกสารที่สร้างอัตโนมัติ และสคริปต์ทดสอบอัตโนมัติ และสคริปต์เดียวกันนั้นก็ใช้เป็นบททดสอบประสิทธิภาพได้ด้วย
เมื่อเทียบกับ Gatling โดยเฉพาะ:
- การตรวจสอบประสิทธิภาพโดยไม่ต้องมี simulation class นำสคริปต์ทดสอบที่คุณสร้างไว้แล้ว ตั้งค่าผู้ใช้เสมือน (สูงสุด 100), ระยะเวลา และเวลา ramp-up แล้วรัน แผงแบบเรียลไทม์จะรายงาน throughput, เวลาตอบสนองเฉลี่ยและต่ำสุด/สูงสุด และข้อผิดพลาดต่อ endpoint การรันที่ขับเคลื่อนด้วยข้อมูลจะป้อนแถวข้อมูลที่ต่างกันให้ผู้ใช้เสมือนแต่ละคน แบบลำดับหรือแบบสุ่ม ดูขั้นตอนทั้งหมดได้ในบทแนะนำการทดสอบประสิทธิภาพ API ของเรา
- ส่วนที่เหลือของวงจรชีวิต API มีอยู่ครบ debug คำขอในไคลเอนต์ บันทึกเป็น endpoint พร้อมเอกสารและ schema มอบ URL mock ให้ผู้ใช้งานทันทีที่ endpoint ถูกนิยาม เผยแพร่เอกสารแบบอินเทอร์แอกทีฟบนโดเมนของคุณเอง Gatling ไม่มีสิ่งเทียบเคียงไม่ว่าจะราคาเท่าใด
- การทดสอบเชิงฟังก์ชันเป็นพลเมืองชั้นหนึ่ง สคริปต์แบบภาพเชื่อมต่อคำขอ ส่งข้อมูลระหว่างขั้นตอน ตรวจสอบ assertion บนคำตอบ และตรวจสอบกับ schema โดยไม่ต้องเขียนโค้ด ใน Gatling นั้น assertion ใช้ควบคุมการรันโหลด ไม่ได้ใช้ regression-test พฤติกรรม
- CI โดยไม่ต้องมีสัญญา Enterprise สคริปต์รันแบบ headless ใน pipeline ใด ๆ ผ่าน Apidog CLI บนแพ็กเกจฟรี ซึ่งครอบคลุมผู้ใช้สูงสุด 4 คน แพ็กเกจแบบเสียเงินเริ่มต้นที่ $9 ต่อผู้ใช้ต่อเดือน
การเปลี่ยนมาใช้เป็นอย่างไร ทีละฟีเจอร์
คำขอและการ debug ในชีวิตประจำวัน
นี่คือหมวดที่ Gatling ไม่ได้เข้าไปแตะ ใน Apidog คุณส่งคำขอเหมือนที่ทำใน API client ทั่วไป: เลือก method กรอกพารามิเตอร์ ใส่ auth ตรวจดูคำตอบ คำขอจะกลายเป็น endpoint ที่บันทึกไว้และมีเอกสาร แทนที่จะเป็นบรรทัด curl ที่ทิ้งได้ข้างโค้ด simulation ของคุณ มาจาก Postman มากกว่ามาจากศูนย์? การเปรียบเทียบที่คุณต้องการคือทางเลือกแทน Postman ที่ดีที่สุด
การตรวจสอบโหลด ถึงจุดหนึ่ง
จงแม่นยำเกี่ยวกับข้อแลกเปลี่ยนนี้ การทดสอบประสิทธิภาพของ Apidog จำกัดที่ผู้ใช้เสมือน 100 คน วนสคริปต์ของคุณตามระยะเวลาที่กำหนด และรายงานเมตริกรวมแบบเรียลไทม์ นั่นครอบคลุมคำถามที่ทีมส่วนใหญ่ถามในแต่ละสัปดาห์: endpoint รับไหวที่ concurrency ที่คาดไว้หรือไม่, query ใหม่ทำให้ช้าลงหรือเปล่า, rate limiter ทำงานตรงจุดที่ควรหรือไม่ มันไม่ครอบคลุมพื้นที่บ้านของ Gatling: ผู้ใช้หลายหมื่นคน, โมเดล workload แบบ open, โปรไฟล์การ inject แบบกำหนดเอง, โปรโตคอลอย่าง JMS และ MQTT เส้นแบ่งนี้อยู่ตรงไหนสำหรับเครื่องมือใกล้เคียง คือเรื่องที่เราเล่าไว้ในทางเลือกแทน Locust สำหรับการทดสอบโหลด API และคู่มือทดสอบโหลดด้วย k6 ของเรา
Mock, เอกสาร และ spec
นิยาม endpoint แล้ว smart mock ของ Apidog จะเสิร์ฟคำตอบตาม schema ทันที ไม่ต้องมีตัวอย่าง เอกสารสร้างจากนิยามเดียวกันและเผยแพร่ไปยังโดเมนที่กำหนดเอง สำหรับทีมที่เครื่องมือ API คือ repo ของ Gatling บวกหน้า wiki นี่คือการอัปเกรดครั้งใหญ่ที่สุด: spec กลายเป็นแหล่งความจริงแทนสิ่งที่ simulation บังเอิญเข้ารหัสไว้
CI และการรายงาน
Gatling community รันใน CI ได้ถ้าคุณต่อระบบ build เอง แต่ประวัติการรันและแนวโน้มอยู่ใน Enterprise สคริปต์ของ Apidog รันจาก CLI ใน pipeline ใด ๆ บนแพ็กเกจฟรี พร้อมรายงานบนคลาวด์ที่แชร์ไปยัง workspace ของทีม สำหรับสิ่งที่ควรวัดเมื่อการรันเป็นอัตโนมัติแล้ว เริ่มจากการทดสอบประสิทธิภาพซอฟต์แวร์คืออะไร
Gatling กับ Apidog โดยสรุป
| Gatling (community) | Gatling Enterprise | Apidog | |
|---|---|---|---|
| รูปแบบ | Code DSL (Java/Kotlin/Scala/JS/TS) | เอนจินเดียวกัน + แพลตฟอร์ม SaaS | แพลตฟอร์มแบบภาพ, เดสก์ท็อป + เว็บ |
| โหลดสูงสุด | ผู้ใช้เสมือนหลายหมื่นคน, 1 เครื่อง | หลายล้าน, แบบกระจาย | 100 VUs |
| API client ประจำวัน | ไม่มี | ไม่มี | มี |
| Mock server | ไม่มี | ไม่มี | smart mock ที่เข้าใจ schema, ฟรี |
| เอกสาร API | ไม่มี | ไม่มี | เอกสารอินเทอร์แอกทีฟที่เผยแพร่ได้ |
| สคริปต์ทดสอบเชิงฟังก์ชัน | Assertion บนการรันโหลด | เหมือนกัน | สคริปต์แบบภาพ, ตรวจสอบ schema |
| ประวัติการรันและแนวโน้ม | รายงานต่อการรันเท่านั้น | แดชบอร์ดแบบรวมศูนย์ | รายงานบนคลาวด์ใน workspace |
| การรันใน CI | ต่อระบบเองด้วยมือ | แบบจัดการให้, Enterprise | ฟรีผ่าน Apidog CLI |
| เส้นทางการเรียนรู้ | JVM หรือ build ด้วย npm + DSL | เหมือนกัน + แพลตฟอร์ม | แบบภาพ, เริ่มทดสอบครั้งแรกได้ในไม่กี่นาที |
| ราคา | ฟรี, ใช้ในเครื่อง | เริ่มต้น €89/เดือน | ฟรีถึง 4 ผู้ใช้, จากนั้น $9/ผู้ใช้/เดือน |
คำนวณต้นทุนและความเหมาะสม ตามจริง
หากความต้องการของคุณคือการจำลองโหลดขนาดใหญ่ Apidog ไม่ได้แข่งด้วย และส่วนนี้จะสั้น: จ่ายให้ Gatling (หรือรัน community ในเครื่อง) แล้วไปต่อ
กรณีที่น่าสนใจคือทีมที่กำลังชั่งน้ำหนัก €1,068 ต่อปีสำหรับ Gatling Enterprise Basic เพื่อให้ได้ประวัติการรันและระบบอัตโนมัติ CI สำหรับการทดสอบที่ไม่ค่อยเกินสองสามร้อยผู้ใช้เสมือน ขณะที่ยังขาด mock server และเอกสาร สำหรับทีม 4 คน Apidog ครอบคลุมไคลเอนต์, mock, เอกสาร, ชุดทดสอบเชิงฟังก์ชัน, การรันใน CI และการตรวจสอบ 100-VU ด้วยราคา $0 ที่ 10 คนจะเป็น $1,080 ต่อปี เกือบเท่าราคา Gatling Basic พอดี แต่การใช้จ่ายสองแบบซื้อคนละหมวด: แบบหนึ่งซื้อตัวเลขโหลดที่ใหญ่ขึ้นสำหรับเอนจินที่คุณยังต้องเขียนโปรแกรมด้วยมือ อีกแบบหนึ่งซื้อแพลตฟอร์มรอบ ๆ API ของคุณ หลายทีมลงเอยที่คำตอบถูกต้องแบบน่าเบื่อ: Apidog สำหรับวงจรชีวิต, community Gatling เก็บไว้ใน repo สำหรับการซ้อมโหลดใหญ่รายไตรมาส, งบเครื่องมือฝั่งโหลดเป็นศูนย์
การย้ายจาก Gatling
ไม่มีตัวช่วย import สำหรับโค้ด simulation และคุณก็ไม่จำเป็นต้องมี การย้ายคือการสร้างเจตนาขึ้นใหม่ และมันเร็ว:
- สำรวจว่า simulation ของคุณเข้ารหัสอะไรไว้ Base URL, ขั้นตอน auth, สายคำขอ, feeder (ข้อมูล CSV) และ assertion รายการนั้นคือพื้นที่ API ของคุณ
- import spec ถ้าคุณมี ไฟล์ OpenAPI ที่ import เข้า Apidog จะกลายเป็น endpoint พร้อม schema, เอกสาร และ mock แบบสด ไม่มี spec? สร้าง endpoint ขึ้นใหม่จากนิยามคำขอใน simulation ส่วนใหญ่แค่คัดลอกแล้ววาง
-
สร้างสายคำขอใหม่เป็นสคริปต์ทดสอบ สาย
execของ Gatling เทียบได้กับขั้นตอนในสคริปต์ ส่วน check และตัวแปร session กลายเป็นตัวแปรที่ดึงออกมาแล้วส่งต่อระหว่างขั้นตอน - สร้าง feeder ใหม่เป็นข้อมูลทดสอบ อัปโหลด CSV เดิม เลือกการจับคู่แบบลำดับหรือแบบสุ่มต่อผู้ใช้เสมือน
- ตั้งโปรไฟล์ประสิทธิภาพ ผู้ใช้เสมือน ระยะเวลา ramp-up ตรงกับ setup แบบ closed-model พื้นฐานของ Gatling โปรไฟล์ open-model ที่ซับซ้อนไม่มีสิ่งเทียบเคียง ซึ่งเป็นส่วนหนึ่งของเงื่อนไข "เก็บ Gatling ไว้"
- ต่อ CLI เข้ากับ CI แทนที่ขั้นตอน build ของ Gatling ที่ทำเองด้วยการรัน Apidog CLI ความล้มเหลวจะกั้น pipeline เหมือนกัน
API ที่มี endpoint ราวหนึ่งโหลและสองสคริปต์ย้ายได้ในหนึ่งบ่าย
เมื่อไหร่ที่ Gatling ยังสมเหตุสมผล
เก็บ Gatling ไว้ โดยไม่ต้องรู้สึกผิด เมื่องานคือวิศวกรรมโหลดไม่ใช่การพัฒนา API พูดให้ชัด: การทดสอบต่อเนื่องที่เกินสองสามร้อยผู้ใช้พร้อมกัน, โมเดล workload แบบ open ที่อัตราการมาถึงสำคัญกว่าจำนวนผู้ใช้, รูปร่างการ inject แบบกำหนดเอง, ทราฟฟิก JMS หรือ MQTT หรือองค์กรที่ลงทุนใน generator แบบกระจายและแดชบอร์ดแนวโน้มของ Enterprise อยู่แล้ว เพดาน 100-VU ของ Apidog เป็นเพดานจริง และการแสร้งว่าไม่ใช่จะทำให้คุณเสียเวลา รูปแบบที่เราแนะนำ: วงจรชีวิตประจำวันและการตรวจสอบต่ำกว่า 100 VU ใน Apidog, Gatling สำหรับการซ้อมหนักตามกำหนด การแบ่งงานแบบเดียวกับที่เราวาดไว้ในเครื่องมือทดสอบโหลด
คำถามที่พบบ่อย
Gatling ฟรีหรือไม่?
เอนจินหลักเป็นโอเพนซอร์สภายใต้ Apache 2.0 และฟรีสำหรับใช้ในเครื่อง Gatling Enterprise ซึ่งเพิ่มการสร้างโหลดแบบกระจาย, ประวัติการรันแบบรวมศูนย์, CI แบบจัดการให้ และการทำงานร่วมกัน เริ่มต้นที่ €89 ต่อเดือน ภาพรวมของตลาดที่กว้างกว่านี้สำรวจไว้ในซอฟต์แวร์ทดสอบโหลดยอดนิยม
Apidog แทน Gatling สำหรับการทดสอบโหลดได้ไหม?
ถึง 100 ผู้ใช้เสมือน ได้ครับ: Apidog รันสคริปต์ทดสอบของคุณภายใต้โหลด พร้อม ramp-up, ระยะเวลา และเมตริกแบบเรียลไทม์ เกินกว่านั้นไม่ได้ การจำลองขนาดใหญ่และแบบ open-model ยังคงเป็นอาณาเขตของ Gatling เส้นแบ่งแบบเดียวกับที่เราวาดไว้ในทางเลือกแทน Locust สำหรับการทดสอบโหลด API
ต้องรู้ Scala จึงจะใช้ Gatling ได้ไหม?
ไม่จำเป็นอีกต่อไป simulation เขียนได้ใน Java, Kotlin, Scala, JavaScript หรือ TypeScript คุณยังต้องเขียนและดูแลโค้ดและ setup การ build สำหรับทุกการทดสอบ ซึ่งเป็นภาระที่สคริปต์แบบภาพของ Apidog ขจัดออกไป
แล้ว k6 หรือ JMeter ล่ะ?
ทั้งคู่อยู่ในกลุ่มเครื่องมือทดสอบโหลดแบบ code-first เดียวกัน พร้อมช่องว่างในวงจรชีวิตแบบเดียวกัน: ไม่มี API client, mock หรือเอกสาร เราครอบคลุมการเปลี่ยนมาใช้ทั้งสองไว้ในทางเลือกแทน k6 ที่ดีที่สุด และทางเลือกแทน JMeter ที่ดีที่สุด และตัว k6 เองในการทดสอบโหลดด้วย k6
การทดสอบประสิทธิภาพของ Apidog รองรับการรันที่ขับเคลื่อนด้วยข้อมูลหรือไม่?
รองรับ แนบข้อมูลทดสอบเข้ากับสคริปต์ แล้วผู้ใช้เสมือนแต่ละคนจะดึงข้อมูลหนึ่งแถวแบบลำดับหรือแบบสุ่ม ผู้ใช้เสมือน 100 คนจึงไม่ล็อกอินด้วยบัญชีเดียวกันทั้งหมด ขั้นตอนการตั้งค่าอยู่ในบทแนะนำการทดสอบประสิทธิภาพ API
วางปืนใหญ่โหลดลงสำหรับงานประจำวัน
สร้างสายคำขอของ Gatling ใหม่เป็นสคริปต์แบบภาพ รันทุก commit ผ่าน CLI และนำไปทดสอบโหลดต่ำกว่า 100 VU ทุกครั้งที่คุณต้องการคำตอบเรื่อง concurrency เก็บ community Gatling ไว้ใน repo สำหรับการซ้อมครั้งใหญ่ ดาวน์โหลด Apidog หรือเริ่มในเบราว์เซอร์ ทีม 4 คนจ่าย $0 และ mock server กับเอกสารก็ได้ฟรีพร้อมกับ endpoint เดียวกัน


Top comments (0)