منبع: چارچوبهای تست واحد Dev.to Java ابزارهای استاندارد، پیچیده و قابل توسعه را برای توسعهدهندگان برای ایجاد برنامهها یا هر نرمافزار دیگری فراهم میکنند. آنها از تعداد زیادی اشیاء حاوی کد از پیش نوشته شده تشکیل شده اند. بسته به انتخاب چارچوب تست، شامل کتابخانه ها، کامپایلرها، ابزارها و APIها می شود. چارچوبهای تست واحد جاوا کنترلهای امنیتی قوی را برای برنامه ارائه میکنند. اگر آسیبپذیری امنیتی پیدا شود، میتوان آن را در وبسایت/پشتیبانی چارچوب برطرف کرد. سازندگان چارچوب حتی توابع و ماژول های داخلی را ارائه می دهند که کارایی و سرعت برنامه نویسان و آزمایش کنندگان را افزایش می دهد. از تست پلتفرم های این دهه چه انتظاری باید داشت؟ ما لیستی از بهترین فریم ورک های تست جاوا را تا سال 2020 به شما توجه می کنیم.
1. JBehave
JBehave یکی از بهترین چارچوب های تست جاوا با پشتیبانی از BDD (Behavior-Driven Development) است. BDD ادامه تکاملی TDD (Test-Driven Development) و ATDD (Acceptance Test-Driven Development) است. توزیع های اصلی Jbehave:- وب JBehave،
- JBehave Core.
- Commons-lang-2.4.jar
- Junit-4.1.0.jar
- Jbehave-core-3.8.jar
- Freemarker-2.3.9.jar
- Plexus-utils-1.1.jar
- Paranamer-2.5.jar
- org.apache.commons.collections.jar
- org.apache.commons.io.jar
- چارچوب تست JBehave به لطف جزئیات متفکرانه و سهولت استفاده بصری عالی است.
- JBehave یک کار عالی برای BDD انجام می دهد و یکپارچگی بین تیم های توسعه مجزا که روی پروژه های مختلف اما با مشخصات مشابه کار می کنند را ارائه می دهد.
- چارچوب JBehave از یک زبان نیمه رسمی استفاده می کند که برای توسعه دهندگان بسیار مفید است. واژگان دامنه ثبات در ساختار تیم را تضمین می کند.
- ذینفعان و همچنین مدیران پروژه شفافیت بیشتری را در تیم های آزمایشی و عملکرد تیم توسعه به دست می آورند زیرا مشخصات از همان قالب پیروی می کنند.
2. JUnit
JUnit یک چارچوب تست رگرسیون منبع باز است که عمدتا توسط توسعه دهندگان با تجربه برای انجام تست واحد، سرعت بخشیدن به برنامه نویسی و بهبود کیفیت کد جاوا استفاده می شود. هدف اصلی استفاده از این ابزار این است که توسعه دهندگان جاوا را قادر به نوشتن اسکریپت و پیاده سازی موارد تست تکرار شونده می کند. این یکی از رایج ترین فریم ورک های تست واحد در جاوا است. اغلب، JUnit برای آزمایش قطعات کوچک کد استفاده می شود. همچنین می توان از آن برای انجام تست های وب سایت خودکار با ترکیب Selenium WebDriver با JUnit برای آزمایش خودکار جاوا استفاده کرد. هنگام افزودن کد جدید، از آزمایشکننده خواسته میشود تا موارد کامل تست را دوباره بارگیری کند و مطمئن شود که هیچ وقفهای وجود ندارد. ویژگی های JUnit:- مجموعه های آزمایشی؛
- استفاده از مجموعه های مشترک اشیاء؛
- کلاس های JUnit;
- دوندگان تست.
- آخرین نسخه JDK را روی رایانه خود داشته باشید.
- (اختیاری) $JUNIT_HOME/src را از حالت فشرده خارج کنید. فایل jar.
- مهارت و تجربه توسعه برنامه های کاربردی در یک زبان شی گرا، ترجیحا جاوا.
- نسخه جدید JUnit را دانلود کرده و فریم ورک را پیکربندی کنید.
- از آنجایی که JUnit از ویژگیهای جاوا 8 پشتیبانی میکند، میتوان از آن برای تستهای ادغام و واحد استفاده کرد.
- این چارچوب تشخیص خطاها را در مراحل اولیه آسان میکند و در نتیجه کدهای سالم و قابل اعتماد ایجاد میکند.
- برنامه نویسانی که با JUnit کار می کنند آن را بسیار مفید می دانند. خواندن کد و بررسی آسیب پذیری ها را آسان تر می کند.
- JUnit به شما امکان می دهد کدی بدون خطا و با خوانایی بهتر ایجاد کنید.
- سازگار با تقریبا تمام IDE های اصلی مانند Eclipse، NetBeans، Maven، Ant و IntelliJ IDEA. بنابراین می توانید به راحتی تست های واحد را مستقیماً از این IDE ها بنویسید و اجرا کنید.
- با استفاده از نسخه به روز شده JUnit (نسخه 5)، می توانید به راحتی یک استثنا تعریف کنید.
- چارچوب تست واحد را می توان با جاوا 5 یا نسخه های دیگر استفاده کرد.
3. آرامش
Serenity که قبلا با نام Thucydides شناخته میشد، یکی از پرکاربردترین چارچوبهای تست منبع باز جاوا است. چارچوب Serenity BDD به شما کمک می کند تا معیارهای آزمایشی واضح، ساختاریافته و قابل مدیریت را ایجاد کنید. این عملکرد هر دو Selenium WebDriver و JUnit را گسترش می دهد. با استفاده از این پلتفرم تخصصی می توانید گزارش های تست تشریحی ایجاد کنید. علاوه بر این، می توانید تست خودکار را با نیازهای خود مطابقت دهید. به طور کلی، این چارچوب توسعه جاوا را قابل اعتمادتر و کارآمدتر می کند. ویژگی های Serenity:- پروژه متن باز؛
- گزارش کامل در مورد نتایج آزمایش و پیاده سازی؛
- گزارش قالب تجاری برای هر آزمون.
- JDK 5 یا بالاتر.
- Maven 3.0 یا بالاتر.
- IDE (معمولا Eclipse).
- چارچوب به آزمایش کننده کمک می کند تا موارد آزمایشی را برای سرویس های REST ایجاد کند.
- تعادل بین توصیف و درک یک مورد آزمایشی و همچنین رویکرد اجرای آن را حفظ می کند.
- کاربران نیازی به صرف زمان اضافی برای حفظ یا ایجاد زیرساخت های خودکار خود ندارند.
- Serenity را می توان با چارچوب های توسعه مختلف مانند Spring و چارچوب های آزمایشی مانند Selenium، JBehave و همچنین ابزارهای مدیریت پروژه مانند JIRA ادغام کرد.
4.TestNG
TestNG یکی از محبوب ترین چارچوب های تست جاوا است که برای تست یکپارچه سازی، عملکردی و واحد استفاده می شود. این برنامه توسط سدریک بیست در سال 2004 ایجاد شد و اکنون به نسخه 7 به روز شده است. این رقیب اصلی چارچوب JUnit است. TestNG مشابه JUnit است، اما دارای برخی از حاشیه نویسی ها و ویژگی هایی است که توسط Junit پشتیبانی نمی شوند. TestNG را می توان تقریباً در همه انواع تست های نرم افزاری از جمله end-to-end، unit، integration و functional استفاده کرد. هر دو TestNG و JUnit فریمورک های مبتنی بر جاوا هستند که به شما امکان می دهند تست بنویسید و نتیجه نهایی را تأیید کنید. اگر تست موفقیت آمیز بود، یک نوار سبز و در غیر این صورت یک نوار قرمز خواهید دید. ویژگی های TestNG:- پشتیبانی از تست روش های وابسته
- پیکربندی تست انعطاف پذیر؛
- پشتیبانی از مدل اجرای محکم؛
- برای انعطاف بیشتر در BeanShell نصب شده است.
- آخرین نسخه JDK;
- آخرین نسخه Eclipse;
- درک و تجربه عملی از زبان برنامه نویسی جاوا یا سایر زبان های برنامه نویسی شی گرا.
- به شما امکان میدهد آزمایش موازی چند قطعه کد را ایجاد و اجرا کنید.
- هنگام اجرای یک مورد آزمایشی، می توانید یک گزارش در قالب HTML ایجاد کنید.
- تست ها را می توان به راحتی بر اساس اولویت ها سازماندهی و گروه بندی کرد. اجرای آزمایشها با قرار دادن چارچوب برای انجام آزمایش خارجی یا پایگاه داده بسیار آسانتر است.
- با پارامترسازی داده ها و استفاده از حاشیه نویسی می توان اولویت ها را به راحتی تنظیم کرد.
5. سلنید
Selenide یک چارچوب تست جاوا منبع باز محبوب است که توسط Selenium WebDriver طراحی شده است. این یک ابزار عالی برای نوشتن تست های رابط کاربری دقیق، ارتباطی و پایدار برای یک برنامه جاوا است. عملکرد WebDriver و JUnit را گسترش می دهد. WebDriver یکی از ابزارهای مورد علاقه ما برای تست رابط کاربری است، اما فاقد قابلیت مهلت زمانی است. به عنوان مثال، آزمایش فناوری های وب مانند Ajax. فریم ورک سلنید به راحتی تمام این مشکلات را کنترل می کند. به علاوه، نصب و یادگیری آن آسان تر است. شما فقط باید روی منطق تمرکز کنید و سلنید بقیه کارها را انجام خواهد داد. ویژگی های سلنید:- به تنظیمات پیچیده نیاز ندارد.
- نیازی به نوشتن کد زیادی ندارد.
- زمانی زیادی را ذخیره میکند؛
- پیکربندی ایده آل برای ابزار CI مانند جنکینز.
- JDK 5 یا جدیدتر؛
- Maven 3.0 یا نسخه های دیگر؛
- ابزار محیط توسعه یکپارچه (IDE). اغلب، همه توسعه دهندگان Eclipse را ترجیح می دهند زیرا ترکیب Eclipse و Maven کار کردن با آن آسان تر است.
- سلنید تست های شما را دقیق و پایدار می کند و (تقریبا) تمام مشکلات آژاکس/زمان بندی را حل می کند.
- کاهش روند نوشتن موارد آزمون.
- پشتیبانی از تست های برنامه های توسعه یافته با استفاده از AngularJS.
- تعداد دستوراتی را که قبلاً توسط سایر ابزارهای سلنیوم استفاده می شد کاهش می دهد.
6. سنج
سازندگان Selenium Thoughtworks یک چارچوب تست جاوا دیگر را برای انجام تستهای خودکار روی برنامههای وب منتشر کردهاند. Gauge یک چارچوب اتوماسیون تست رایگان و متن باز برای جاوا است که بار تست پذیرش را با کد کمتر کاهش می دهد. این یکی از رایج ترین چارچوب های تست جاوا در دسته فناوری پشته برای آزمایش وب سایت های تلفن همراه است. تستهای خودکار با استفاده از این چارچوب میتوانند بدون توجه به زبان، تستهای آسانخوانی تولید کنند. مشابه سلنیوم، این چارچوب تست از چندین زبان برنامه نویسی از جمله Ruby، JavaScript، Java، C# و Python پشتیبانی می کند. ویژگی های گیج:- آسان برای استفاده، نحو انعطاف پذیر.
- از زبان تجاری استفاده می کند.
- پشتیبانی از چندین زبان و پلتفرم؛
- تعداد زیادی افزونه.
- Maven را دانلود و نصب کنید .
- سیستم عامل مایکروسافت ویندوز 10 یا بالاتر؛
- حافظه - 512 مگابایت RAM (حداقل)؛
- پلاگین Gauge باید با محیط توسعه یکپارچه شما (IDE) پیکربندی شود یا اگر در حال اجرای آزمایش از CMD/Terminal هستید، چارچوب Gauge باید نصب شود.
- اسکریپت ها را خوانا و قابل فهم می کند.
- استفاده آسان، نحو انعطاف پذیر و پشتیبانی از انواع زبان ها (جاوا، جاوا اسکریپت، سی شارپ، روبی، پایتون و غیره) و پلتفرم ها.
- به شما امکان میدهد آزمایشهایی را در محیط توسعه یکپارچه (IDE) دلخواه خود (IntelliJ، Vi VS Code، Visual Studio، Maven، Gradle، Eclipse و غیره) ایجاد کنید.
- تست های موازی را انجام می دهد و گزارش های سفارشی تولید می کند.
- به راحتی مجموعه داده های بزرگ را با حفظ دقت و خوانایی بالا آزمایش می کند.
- Gauge یک چارچوب جدید است، بنابراین کاربران اطلاعات زیادی در مورد آن ندارند.
- Gauge از اجرای موازی ایمن مشخصات در IntelliJ پشتیبانی نمی کند، زیرا درایور ثابت است و باید در ارتباط با اسکریپت ها استفاده شود.
7. گب
Geb یک چارچوب تست مرورگر است که بر روی Selenium WebDriver ساخته شده است. این آن را برای تستهای خودکار ایدهآل میکند و شما به راحتی میتوانید تست مرورگر متقابل را در تمام مرورگرهای پشتیبانی شده توسط WebDriver انجام دهید. Geb قابلیتهای فوقالعادهای برای تجزیه و تحلیل دادههای جلویی، تست وب و موارد دیگر ارائه میکند. چیزی که آن را استثنایی می کند روشی است که در صفحات HTML پرس و جو می کند و نحوی شبیه به جی کوئری تولید می کند. پلتفرم Geb همچنین از مدل شیء صفحه پشتیبانی میکند . Geb را می توان برای خراش دادن عمومی، اسکریپت نویسی و همچنین برای اتوماسیون استفاده کرد. به دلیل ادغام آن با چارچوب های آزمایشی مانند TestNG، JUnit و Spock، به همان اندازه به عنوان راه حلی برای تست پذیرش، تست وب یا تست عملکردی مناسب است. ویژگی های Geb:- پشتیبانی کامل از نحو jQuery.
- مجوز آپاچی 2.0;
- سازگار با WebDriver؛
- پایداری مدلسازی شی صفحه؛
- مفصل بندی شیاردار.
- شما باید Maven را دانلود و نصب کنید .
- در دسترس بودن جاوا 8 یا بالاتر.
- احراز هویت و تأیید اعتبار LambdaTest؛
- یک کپی از مخزن LambdaTest در GitHub برای چارچوب اتوماسیون تست Geb.
- فرم شیء صفحه و Geb's Groovy DSL خواندن تست ها را آسان می کند زیرا کم و بیش شبیه به انگلیسی هستند.
- تست ها را با سرعت بالا اجرا می کند و در هزینه های تست شما صرفه جویی می کند. سازگار با مرورگرهای مختلف مانند اینترنت اکسپلورر، HTMLUnit، فایرفاکس و کروم.
- آزمایش هایی را در زمان واقعی و در یک محیط واقعی انجام می دهد - محیطی که کاربر مشاهده می کند. حداکثر کارایی تست ها را در یک اسکریپت ارائه می دهد.
- به شما امکان می دهد بدون مشکل تست رگرسیون را انجام دهید. میتوانید موارد تست Geb را اجرا کنید تا بررسی کنید که آیا هر یک از عملکردهای فعال پس از اصلاح یا اصلاح در برنامه خراب است یا خیر.
- نقطه ضعف Geb این است که از WebDriver در زبان Groovy استفاده می کند. بنابراین، هنگام استفاده از Webdriver فقط آن زبان خاص پشتیبانی می شود. با این حال، اگر سعی کنید مستقیماً از WebDriver استفاده کنید، از زبان های دیگر از جمله جاوا، روبی، سی شارپ و پایتون پشتیبانی می کند.
- Geb برای پروژه های کوچک مناسب نیست، اما برای کارهای بزرگ به خوبی کار می کند. اگر برنامه وب شما حاوی صفحات و فرم هایی نباشد که داده ها باید از طریق آنها جریان یابد، ساختار آن ممکن است سخت به نظر برسد.
8. اسپاک
Spock یک چارچوب تست اتوماسیون محبوب برای جاوا است. این به زبان Groovy نوشته شده است و به آزمایشکنندگان اجازه میدهد تا تستهای مبتنی بر داده را روی ماشین مجازی جاوا اجرا کنند. Spock سازگاری عالی با بسیاری از زبان هایی که از JVM پشتیبانی می کنند فراهم می کند. یکی از ویژگی های Spock این است که اسناد کد و خوانایی کد سازماندهی شده و منظم هستند، به علاوه می تواند جملات ساده انگلیسی را تفسیر کند. اغلب توسط توسعه دهندگان نرم افزار برای ایجاد برنامه های کاربردی سازمانی در جاوا استفاده می شود. به همین دلایل، Spock به محبوب ترین و کاربرپسندترین چارچوب تست جاوا در سال 2020 تبدیل شده است. ویژگی های Spock:- در واقع، این یک نسخه توسعه یافته از چارچوب JUnit Java است.
- پشتیبانی از اشیاء ساختگی؛
- تست ها را می توان به هر زبانی نوشت.
- آخرین نسخه JDK;
- نسخه به روز شده Eclipse.
- آشنایی با زبان برنامه نویسی جاوا.
- خوانایی خیره کننده، اطمینان از سازگاری با جملات ساده انگلیسی در مقایسه با سایر چارچوب های تست اتوماسیون جاوا.
- کله زدن و تمسخر با اسپاک راحت تر و بی دردسرتر از همیشه است. علاوه بر این، آنها در چارچوب ساخته شده اند.
- پارامترسازی واضح تر و کوتاه تر.
- زمینه اطراف را حفظ می کند و کشف علت شکست را آسان تر می کند.
- زبان اختصاصی دامنه ساده و ارتباطی (DSL).
- این به زبان Groovy نوشته شده است، بنابراین شما باید دانش اولیه Groovy را داشته باشید.
- ممکن است فریم ورک Spock را کمی گیجکننده بیابید، اما زمانی که با آن آشنا شدید، دیگر به تغییر چارچوبهای آزمایشی جاوا فکر نخواهید کرد.
9. HttpUnit
HttpUnit یک چارچوب تست منبع باز پرکاربرد است. این به شما امکان می دهد وب سایت ها را بدون نیاز به مرورگر آزمایش کنید. HttpUnit برای اجرای اسکریپت های تست خودکار برای برنامه های کاربردی وب عالی است. همانطور که از نام آن پیداست، HttpUnit را می توان برای تست های واحد استفاده کرد. با این حال، عناصر لایه وب متداول مانند servlets، JSP (صفحات جاواسرور) و سایر عناصر الگو برای آزمایش واحد قابل قبول نیستند. این فریم ورک که به زبان جاوا نوشته شده است به شما اجازه می دهد تا آزمایشات را روی صفحات برگشتی، XML DOM، متن، ظروف جدول، پیوندها و فرم ها اجرا کنید. ویژگی های HttpUnit:- پشتیبانی از کوکی؛
- پشتیبانی از پروتکل های HTTPS و HTTP.
- پشتیبانی از پاسخ HTML؛
- پشتیبانی از سرور پروکسی؛
- پشتیبانی عالی از جاوا اسکریپت
- سیستم باید جاوا JDK 1.4 یا آخرین نسخه را پشتیبانی کند.
- Tidy.jar و httpunit.ja را که با HttpUnit یکپارچه شدهاند، به مسیر کلاس خود اضافه کنید. همچنین مطمئن شوید که تجزیه کننده XML از قبل نصب شده است.
- اگر از نسخه قدیمی جاوا استفاده می کنید، باید یک تجزیه کننده XML سازگار با JAXP در مسیر کلاس خود قرار دهید.
- آخرین نسخه HttpUnit در این صفحه موجود است .
- به شما امکان میدهد تست برنامههای کاربردی وب را خودکار کنید و به تست رگرسیون کمک میکند.
- یکی از مزایای HTTPUnit این است که بسیار سریعتر از سایر چارچوب های اتوماسیون تست مانند سلنیوم است.
- پشتیبانی عالی از جاوا اسکریپت، که به شما امکان می دهد کار یک مرورگر سفارشی (IE یا Firefox) را شبیه سازی کنید.
- HTTPUnit از موتور جاوا اسکریپت Rhino به عنوان زبان اصلی خود استفاده می کند و اجرای شی را دقیقاً برای پیاده سازی مرورگر ارائه می دهد.
- تست های واحد از کتابخانه های محبوب جاوا اسکریپت بر اساس این تست های واحد در تست های واحد خود HtmlUnit ادغام می شوند. از کتابخانه های jQuery 1.11.3، MochiKit 1.4.1، MooTools 1.2.1 و غیره پشتیبانی می کند، با HtmlUnit عالی کار می کند.
- امکان درج کد در صفحه فعلی با استفاده از HtmlPage.executeJavascript (String yourJsCode).
- این گزینه خوبی برای اجرای تست های ساده است، اما ایجاد تست های پیچیده به کد بسیار بیشتری نیاز دارد.
- چارچوبی مانند سلنیوم خاص تر است و به رفتار مرورگر محور اجازه می دهد تا برنامه های مورد آزمایش را محدود نکند. با چارچوب HttpUnit به جز برخی از مرورگرهای اصلی، پشتیبانی محدودی خواهید داشت.
10. JWebUnit
JWebUnit یک چارچوب آزمایشی مبتنی بر جاوا است که توسعه JUnit است. برای ادغام، رگرسیون و تست عملکردی استفاده می شود. JWebUnit چارچوب های فعال فعلی مانند HTMLUnit و Selenium را با یک رابط آزمایشی ساده ترکیب می کند. به این ترتیب می توانید فوراً دقت برنامه های وب خود را بررسی کنید. از JWebUnit می توان برای انجام تست های ناوبری صفحه استفاده کرد. این پلتفرم همچنین یک رابط برنامه نویسی برنامه کاربردی جاوا پیشرفته برای پیمایش در برنامه وب برای تأیید صحت برنامه ارائه می دهد. این امر ناوبری پیوند، ورود و ارسال فرم، توجیه محتویات جدول و سایر ویژگی های رایج برنامه های تجاری را در نظر می گیرد. ویژگی های JWebUnit:- Java API سطح بالا برای پیمایش یک برنامه وب.
- چارچوب مبتنی بر جاوا منبع باز.
- باید Maven را نصب کنید.
- نسخه پایدار فعلی JWebUnit 3.3 است. جاوا 1.7 مورد نیاز است.
- افزونه مورد نیاز خود را اضافه کنید: HtmlUnit برای تست های سریعتر و پشتیبانی عالی از Javascript و Webdriver: کیفیت BETA.
- برای مدیریت وابستگی ها در Eclipse هنگام استفاده از Maven 2، از افزونه m2e استفاده کنید.
- برای تست ناوبری روی صفحه استفاده می شود.
- یک API سطح بالا برای پیمایش برنامه های وب ارائه می دهد.
- پیمایش ساده با ادعاهایی که به راحتی قابل دسترسی است به شما امکان می دهد تست ها را سریعتر از استفاده از JUnit یا HtmlUnit ایجاد کنید.
- اگر شخصی بخواهد از HtmlUnit به انواع دیگر پلاگین ها مانند سلنیوم سوئیچ کند، نیازی به بازنویسی تست ها نیست.
GO TO FULL VERSION