آپاچی جیمتر (Apache Jmeter)، ابزاری متنباز و رایگان است که نخستین بار توسط استفانو مازوچی (Stefano Mazzocchi) بهعنوان یکی از اعضای بنیاد نرمافزار آپاچی (Apache Software Foundation) با هدف تست نرمافزار طراحی شد. با استفاده از این ابزار، میتوان عملکرد یک نرمافزار وب را تجزیه و تحلیل کرد و رفتار آن را در شرایط مختلف مورد سنجش قرار داد. امروزه از این نرمافزار در دستههای مختلفی از مبحث تست نظیر: تست بار (Load Testing)، تست عملکرد (Functional Testing)، تست فشار (Stress Testing) و ... استفاده شده و امکانات گسترده آن، جنبههای مختلفی از فرایند تست یک نرمافزار یا اپلیکیشن وب را تحت پوشش قرار میدهد.
شمار زیادی از کارشناسان فعال در زمینه تست نرمافزار، حاضر به پذیرش نقش مهم و پررنگ ابزارهای تست در کنترل کیفیت یک محصول نرمافزاری نیستند. به عقیده این دسته از افراد، بهترین راهکار موجود برای تست رفتار یک نرمافزار استفاده واقعی از آن بوده و نتایج یک آزمون تست به کمک ابزار چندان قابل استناد نیست. اما این ادعا تا چه اندازه میتواند صحیح باشد؟ سناریویی را در نظر بگیرید که مدیر بخش از شما میخواهد تست کارایی وبسایت گوگل را به ازای درخواست همزمان تعداد صد کاربر مورد سنجش قرار داده و نتیجه را به وی ارائه کنید. برای اجرای این سناریو، دو راهکار پیش روی شماست:
همانطور که پیداست، اجرای این آزمون با استفاده از راهکار اول هزینه بسیار زیادی را دربر خواهد داشت؛ این در حالی است که یک ابزار تست مناسب میتواند همین آزمون را با دقت بسیار بالا و تنها به کمک یک کامپیوتر به انجام برساند. نتیجه آنکه: استفاده از ابزارهای تست را باید جدی گرفت!
از آنجایی که فرایند تست یک نرمافزار با کیفیت نهایی آن رابطه مستقیمی دارد، همواره حساسیت بسیار زیادی متوجه بخش کنترل کیفیت در شرکتهای نرمافزاری است. نرمافزار Apache JMeter، ابزاری است که میتوان آن را بهطور خاص برای تست بار و فشار یک محصول نرمافزاری مورد استفاده قرار داد. به همین بهانه، شاید بد نباشد که با تشریح این مفاهیم، نگاهی جامعتر به امکانات نرمافزار مذکور داشته باشیم.
تست بار (Load Testing): آزمونی است که از آن برای سنجش عملکرد یک سیستم در برابر تعداد مشخصی از درخواستهای همزمان استفاده میشود. درصورتیکه نرمافزاری بتواند تست بار را با موفقیت پشت سر بگذارد، میتوان اطمینان حاصل کرد که محصول نرمافزاری قادر است در برابر حجم مشخصی از ترافیک درخواستها، رفتار قابلقبولی از خود نشان داده و دچار افت سرعت محسوس نشود.
تست فشار (Stress Testing): در سناریوی این آزمون، تعداد کاربران و درخواستهای همزمان به حداکثر ظرفیت سیستم افزایش پیدا کرده و گاهی تا نقطه شکست نیز ادامه پیدا میکند. در واقع زمانی که تست بار به ازای تعداد بیشتری از کاربران انجام شود، منجر به وقوع تست فشار میشود. در این حالت، ابزار تست سعی میکند که سیستم را در یک حالت ناتوانی بالقوه قرار دهد تا رفتار آن در راستای بازیابی و بهبود ظرفیت مورد سنجش قرار گیرد.
با کمی دقت در تعاریف فوق، میتوان به این نتیجه رسید که هیچیک از آنها مستقل از هم نبوده و بالعکس مکمل یکدیگر هستند. به همین دلیل و برای آزمودن کیفیت محصولات نرمافزاری، استفاده از ابزاری که بتواند تست بار و تست فشار را مورد سنجش قرار دهد، لازم و ضروری است.
آپاچی جیمتر بهعنوان یک ابزار تست قدرتمند در این زمینه، امکانات متعددی دارد که در زیر به آنها اشاره میکنیم:
نقاط قوت:
نقاط ضعف:
ترجمه و گردآوری: آرش صابری