{"id":108548,"date":"2019-12-10T09:21:46","date_gmt":"2019-12-10T09:21:46","guid":{"rendered":"https:\/\/www.softwaretestinghelp.com\/?page_id=108548"},"modified":"2025-04-01T08:14:31","modified_gmt":"2025-04-01T08:14:31","slug":"testng-tutorial","status":"publish","type":"page","link":"https:\/\/www.softwaretestinghelp.com\/testng-tutorial\/","title":{"rendered":"TestNG Tutorial: Introduction to TestNG Framework"},"content":{"rendered":"\n<p><b>This TestNG Tutorial Explains the TestNG Framework Along with its Features, Benefits, and Advantages Over the JUnit Framework:<\/b><\/p>\n\n\n\n<p>This tutorial will introduce you to the concept of Automation Framework, its benefits, and the types that are in use in the testing world.<\/p>\n\n\n\n<p>Along with the Automation Framework, we will also discuss one of the most important topics i.e. TestNG Testing Framework.<\/p>\n\n\n\n<p>Let&#8217;s Start!!<\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-Testing-Framework.png\"><img decoding=\"async\" width=\"650\" height=\"366\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-Testing-Framework.png\" alt=\"TestNG Tutorial\" class=\"wp-image-108692\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-Testing-Framework.png 650w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-Testing-Framework-300x169.png 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/a><\/figure>\n\n\n\n<p><strong>List Of All TestNG Tutorials In This Series<\/strong><\/p>\n\n\n\n<p><span style=\"color: #ff6600;\"><strong>Tutorial #1:<\/strong><\/span> <a href=\"https:\/\/www.softwaretestinghelp.com\/testng-tutorial\/\">Introduction to TestNG Framework&nbsp;<\/a><br><strong><span style=\"color: #ff6600;\">Tutorial #2:<\/span><\/strong> <a href=\"https:\/\/www.softwaretestinghelp.com\/testng-installation\/\">TestNG Installation<\/a><br><strong><span style=\"color: #ff6600;\">Tutorial #3:<\/span><\/strong> <a href=\"https:\/\/www.softwaretestinghelp.com\/testng-annotations-and-listeners\/\">TestNG Annotations and Listeners<\/a><br><strong><span style=\"color: #ff6600;\">Tutorial #4:<\/span><\/strong> <a href=\"https:\/\/www.softwaretestinghelp.com\/testng-example-to-create-testng-xml\/\">TestNG Example<\/a><br><strong><span style=\"color: #ff6600;\">Tutorial #5:<\/span><\/strong> <a href=\"https:\/\/www.softwaretestinghelp.com\/integration-of-maven-with-testng-using-surefire-plugin\/\">Integration Of Maven With TestNG Using Maven Surefire Plugin<\/a><br><strong><span style=\"color: #ff6600;\">Tutorial #6:<\/span><\/strong> <a href=\"https:\/\/www.softwaretestinghelp.com\/testng-process-execution-methods\/\">TestNG Process Execution: Batch, Controlled Batch &amp; Parallel<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Overview Of Tutorials In TestNG Series<\/strong><\/p>\n\n\n\n<div id=\"tablepress-1164-scroll-wrapper\" class=\"tablepress-scroll-wrapper\">\n<table id=\"tablepress-1164\" class=\"tablepress tablepress-id-1164 tablepress-responsive\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Tutorial_Num<\/th><th class=\"column-2\">What You Will Learn<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\"><strong>Tutorial #1<\/strong><\/td><td class=\"column-2\"><strong><a href=\"https:\/\/www.softwaretestinghelp.com\/testng-tutorial\/\">TestNG Tutorial Introduction to TestNG Framework<\/a><\/strong><br \/>\n<br \/>\nThis TestNG tutorial explains TestNG framework along with its features, benefits and advantages over the JUnit Framework.<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\"><strong>Tutorial #2<\/strong><\/td><td class=\"column-2\"><strong><a href=\"https:\/\/www.softwaretestinghelp.com\/testng-installation\/\">TestNG Installation<\/a><\/strong><br \/>\n<br \/>\nTestNG Installation is covered in detail here. We will also run a basic TestNG program and see what reports can be generated post-test run in TestNG.<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\"><strong>Tutorial #3<\/strong><\/td><td class=\"column-2\"><strong><a href=\"https:\/\/www.softwaretestinghelp.com\/testng-annotations-and-listeners\/\">TestNG Annotations and Listeners<\/a><\/strong><br \/>\n<br \/>\nThis tutorial explains different types of TestNG Annotations and Listeners. You will also learn how to use the TestNG Annotations &amp; Listeners with examples.<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\"><strong>Tutorial #4<\/strong><\/td><td class=\"column-2\"><strong><a href=\"https:\/\/www.softwaretestinghelp.com\/testng-example-to-create-testng-xml\/\">TestNG Example<\/a><\/strong><br \/>\n<br \/>\nLearn How to Create TestNG.xml File with the help of TestNG Example. Many tasks can be done simultaneously with the TestNG.xml file.<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\"><strong>Tutorial #5<\/strong><\/td><td class=\"column-2\"><strong><a href=\"https:\/\/www.softwaretestinghelp.com\/integration-of-maven-with-testng-using-surefire-plugin\/\">Integration Of Maven With TestNG Using Maven Surefire Plugin<\/a><\/strong><br \/>\n<br \/>\nThis tutorial explains How to use the Maven Surefire Plugin to Manage our Dependencies and Select &amp; Execute Particular Test Scripts or Suites using TestNG.<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\"><strong>Tutorial #6<\/strong><\/td><td class=\"column-2\"><strong><a href=\"https:\/\/www.softwaretestinghelp.com\/testng-process-execution-methods\/\">TestNG Process Execution: Batch, Controlled Batch &amp; Parallel<\/a><\/strong><br \/>\n<br \/>\nThis tutorial explains various types of execution processes in TestNG i.e. Batch Execution, Controlled Batch, Test Execution Report and Parallel Execution.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<!-- #tablepress-1164 from cache -->\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction To Automation Framework<\/h2>\n\n\n\n<p>A framework is a set of rules or guidelines like Coding standards, Test data handling, etc. that the testing world follows systematically during Automation scripting to achieve the best output or results. It comprises best practices and tools that help the QA professionals to test and achieve more efficient results.<\/p>\n\n\n\n<p>Testing frameworks are an essential part of any successful automation testing process as they help in reducing Maintenance costs, Testing efforts, Code reusability, and many other things to achieve. Here we can achieve the best Return on Investment (ROI) by showcasing it to the client along with the benefits that we are achieving.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color: #ff6600;\">Benefits of Automation Framework<\/span><\/h3>\n\n\n\n<p><strong>The major benefits include:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Increase the Testing team\u2019s speed and efficiency.<\/li>\n\n\n\n<li>Improve the Testing team\u2019s Accuracy.<\/li>\n\n\n\n<li>Reducing Test maintenance costs.<\/li>\n\n\n\n<li>Maximum test coverage.<\/li>\n\n\n\n<li>Code reusability.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color: #ff6600;\">Types Of Automation Framework<\/span><\/h3>\n\n\n\n<p>It is very important to choose the type of framework while chalking out the test plan. Enlisted below are the most common types of test automation frameworks.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Linear Automation Framework<\/strong>: Record and playback framework, no coding is required.<\/li>\n\n\n\n<li><strong>Modular Based Testing Framework: The application<\/strong> is divided into individual modules and then tested separately. These modules are then combined to build larger tests.<\/li>\n\n\n\n<li><strong>Data-Driven Testing Framework<\/strong>: Here, test data is stored externally in the form of Excel spreadsheets, Text files, CSV files, etc. Test scripts are connected to these files and the application is tested using these files multiple times with different test data sets.<\/li>\n\n\n\n<li><strong>Keyword-Drive Testing Framework<\/strong>: This framework utilizes data tables and self-descriptive keywords that are also stored in the external files. Keywords represent various actions like click, login, etc. Keywords are stored sequentially with the required object and testing is done accordingly.<\/li>\n\n\n\n<li><strong>Hybrid Test Automation Framework<\/strong>: This framework is a combination of one or more frameworks mentioned above.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">What Is TestNG?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/Test-Automation-Framework.png\"><img decoding=\"async\" width=\"537\" height=\"161\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/Test-Automation-Framework.png\" alt=\"Test Automation Framework\" class=\"wp-image-108565\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/Test-Automation-Framework.png 537w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/Test-Automation-Framework-300x90.png 300w\" sizes=\"(max-width: 537px) 100vw, 537px\" \/><\/a><\/figure>\n\n\n\n<p>It is a Test Automation Framework for Java, inspired by JUnit and NUnit with new introductory functionalities that make it more powerful and easier to use. NG means Next Generation. It is an open-source and free tool.<\/p>\n\n\n\n<p>It is designed to cover all the categories of testing like Unit Testing, Functional Testing, End to End Testing, Regression Testing, Integration Testing, etc. TestNG supports both Android as well as IOS Applications.<\/p>\n\n\n\n<p><strong>Further Reading => <a href=\"https:\/\/www.softwaretestinghelp.com\/automate-testng-in-selenium\/\">How to Automate TestNG in Selenium<\/a><\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color: #ff6600;\">Features Of TestNG<\/span><\/h3>\n\n\n\n<p><strong>Enlisted below are the most prominent features of TestNG:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Annotations: Multiple Annotations that provide powerful mechanisms to aid your automation scripts.<\/li>\n\n\n\n<li>Support for Data-Driven Testing using @ Data Provider Annotations.<\/li>\n\n\n\n<li>Supports a no. of Parameters.<\/li>\n\n\n\n<li>Generation of Automatic Reports which Selenium can\u2019t do by itself.<\/li>\n\n\n\n<li>It can run only the failed test case while there isn\u2019t a need to run the whole test suite in case of test failures.<\/li>\n\n\n\n<li>Supports a variety of tools and plug-ins like Maven, Jenkins, etc.<\/li>\n\n\n\n<li>Flexibility in test configurations.<\/li>\n\n\n\n<li>It provides a powerful execution model.<\/li>\n\n\n\n<li>Dependent methods are useful for Application server testing.<\/li>\n\n\n\n<li>Default JDK functions for runtime and logging (no more dependencies).<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG.png\"><img decoding=\"async\" width=\"650\" height=\"297\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG.png\" alt=\"TestNG Framework\" class=\"wp-image-108567\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG.png 650w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-300x137.png 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span style=\"color: #ff6600;\">Advantages Of TestNG Over JUnit<\/span><\/h3>\n\n\n\n<p>Both JUnit and TestNG are very popular in the test framework in Java. Both frameworks have similarities in their functionalities. However, TestNG has more features than JUnit and that indeed has made it very easy to use.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-over-JUnit.png\"><img decoding=\"async\" width=\"479\" height=\"222\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-over-JUnit.png\" alt=\"TestNG vs JUnit\" class=\"wp-image-108566\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-over-JUnit.png 479w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2019\/10\/TestNG-over-JUnit-300x139.png 300w\" sizes=\"(max-width: 479px) 100vw, 479px\" \/><\/a><\/figure>\n\n\n\n<p><strong>Let\u2019s discuss the advantages of TestNG over JUnit.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Grouping:<\/strong> Using TestNG, we can perform a lot of complex automation testing because of its ability to group test cases and execute the groups. However, in JUnit, we cannot perform Group Tests.<\/li>\n\n\n\n<li><strong>Extend Classes:<\/strong> In TestNG, we don\u2019t need to extend any classes. In JUnit, we have to use extended classes.<\/li>\n\n\n\n<li><strong>Mandatory Annotations:<\/strong> In TestNG, there are no constraints for any type of mandatory annotations. Whereas, in JUnit, we have to use mandatory annotations like @BeforeClass and @AfterClass.<\/li>\n\n\n\n<li><strong>Wider Range of Annotations:<\/strong> TestNG has a wider range of Annotations support like @Before\/After Suite, @Before\/After Test, @Before\/After Groups. JUnit has only a few annotations.<\/li>\n\n\n\n<li><strong>Dependency Test:<\/strong> In TestNG, we can use the \u201cdependsOnMethods\u201d to perform the dependency test. However, JUnit doesn\u2019t support this feature.<\/li>\n\n\n\n<li><strong>Parallel Test Execution:<\/strong> In TestNG, we can perform parallel test execution if run through XML. However, JUnit doesn\u2019t support this feature.<\/li>\n\n\n\n<li><strong>Parameterized Tests:<\/strong> TestNG\u2019s parameterized tests are very user-friendly and flexible as we can provide the values either in the XML file or inside the class. JUnit has many limitations while using this feature.<\/li>\n\n\n\n<li><strong>Test Order:<\/strong> TestNG is better than JUnit when test execution is done in a specific order. Methods with lower priority values will be executed first.<\/li>\n\n\n\n<li><strong>Listeners:<\/strong> TestNG supports various types of listeners and can be used by adding annotations. There is no mechanism in JUnit to add listeners using annotations.<\/li>\n\n\n\n<li><strong>HTML Reports:<\/strong> TestNG has rich HTML report generations for its test cases. It generates three types of reports i.e. Console output, HTML Report, and Index.html. However, JUnit does not create HTML Reports of its own. We have to use the ANT tool for the same.<\/li>\n<\/ul>\n\n\n\n<p><strong>Suggested reading =&gt; <a href=\"https:\/\/www.softwaretestinghelp.com\/junit-vs-testng\/\">JUnit Vs TestNG<\/a> &#8211; Know the differences<\/strong><\/p>\n\n\n\n<p><strong>Note:<\/strong> While comparing both frameworks, it is recommended to use TestNG as it\u2019s more flexible and compatible to use. TestNG is more advanced in terms of Parameterization, Dependency testing, and Grouping concepts. TestNG can be used for high-level testing and complex integration testing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>We have discussed the different frameworks in detail here. We made a thorough study of TestNG, its advantages, benefits, and features over the JUnit Framework.<\/p>\n\n\n\n<p><em>Our upcoming tutorial in this series explains TestNG Installation, our first test case in TestNG, configurations, and few annotations that make a basic TestNG test case along with the type of reports that generate post-execution of a test case.<\/em><\/p>\n\n\n\n<p><strong>=> <a href=\"https:\/\/www.softwaretestinghelp.com\/testng-tutorial\/\">Visit Here To Learn TestNG From Scratch<\/a><\/strong><\/p>\n\r\n\t\t\t<div id=\"daexthefup-container\"\r\n\t\t\t\tclass=\"daexthefup-container daexthefup-layout-stacked daexthefup-alignment-center\"\r\n\t\t\t\tdata-post-id=\"108548\">\r\n\r\n\t\t\t\t<div class=\"daexthefup-feedback\">\r\n\t\t\t\t\t<div class=\"daexthefup-text\">\r\n\t\t\t\t\t\t<h3 class=\"daexthefup-title\">Was this helpful?<\/h3>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"daexthefup-buttons-container\">\r\n\t\t\t\t\t\t<div class=\"daexthefup-buttons\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t<div class=\"daexthefup-yes daexthefup-button daexthefup-button-type-icon\" data-value=\"1\">\r\n\t\t\t\t\r\n                <svg>\r\n                    <defs>\r\n                        <style>.thumb-up-cls-1{fill:#c9c9c9;}.thumb-up-cls-2{fill:#e1e1e1;}.thumb-up-cls-3{fill:#676767;}<\/style>\r\n                    <\/defs>\r\n                    <g id=\"thumb_up\">\r\n                        <path class=\"thumb-up-cls-2 daexthefup-icon-circle\" d=\"m24,3c11.58,0,21,9.42,21,21s-9.42,21-21,21S3,35.58,3,24,12.42,3,24,3m0-1C11.85,2,2,11.85,2,24s9.85,22,22,22,22-9.85,22-22S36.15,2,24,2h0Z\" \/>\r\n                        <g>\r\n                            <rect class=\"thumb-up-cls-3 daexthefup-icon-secondary-color\" x=\"10\" y=\"20\" width=\"6\" height=\"15\" rx=\"1.5\" ry=\"1.5\" \/>\r\n                            <path class=\"thumb-up-cls-1 daexthefup-icon-primary-color\" d=\"m30.57,9.06l-.49-.1c-.81-.17-1.61.35-1.78,1.16l-5.3,11.74c-.17.81,3.16,1.61,3.97,1.78l1.96.41c.81.17,1.61-.35,1.78-1.16l2.18-10.27c.34-1.61-.7-3.21-2.31-3.56Z\" \/>\r\n                            <path class=\"thumb-up-cls-1 daexthefup-icon-primary-color\" d=\"m38.17,20h-18.67c-.83,0-1.5.67-1.5,1.5v12c0,.83.67,1.5,1.5,1.5h16.27c.71,0,1.33-.5,1.47-1.21l2.4-12c.19-.93-.53-1.8-1.47-1.8Z\" \/>\r\n                        <\/g>\r\n                    <\/g>\r\n                <\/svg>\t\t\t<\/div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t<div class=\"daexthefup-no daexthefup-button daexthefup-button-type-icon\" data-value=\"0\">\r\n\t\t\t\t\r\n                <svg>\r\n                    <defs>\r\n                        <style>.thumb-down-cls-1{fill:#c9c9c9;}.thumb-down-cls-2{fill:#e1e1e1;}.thumb-down-cls-3{fill:#676767;}<\/style>\r\n                    <\/defs>\r\n                    <g id=\"thumb_down\">\r\n                        <path class=\"thumb-down-cls-2 daexthefup-icon-circle\" d=\"m24,3c11.58,0,21,9.42,21,21s-9.42,21-21,21S3,35.58,3,24,12.42,3,24,3m0-1C11.85,2,2,11.85,2,24s9.85,22,22,22,22-9.85,22-22S36.15,2,24,2h0Z\" \/>\r\n                        <g>\r\n                            <rect class=\"thumb-down-cls-3 daexthefup-icon-secondary-color\" x=\"10\" y=\"13\" width=\"6\" height=\"15\" rx=\"1.5\" ry=\"1.5\" \/>\r\n                            <path class=\"thumb-down-cls-1 daexthefup-icon-primary-color\" d=\"m30.57,38.94l-.49.1c-.81.17-1.61-.35-1.78-1.16l-5.3-11.74c-.17-.81,3.16-1.61,3.97-1.78l1.96-.41c.81-.17,1.61.35,1.78,1.16l2.18,10.27c.34,1.61-.7,3.21-2.31,3.56Z\" \/>\r\n                            <path class=\"thumb-down-cls-1 daexthefup-icon-primary-color\" d=\"m38.17,28h-18.67c-.83,0-1.5-.67-1.5-1.5v-12c0-.83.67-1.5,1.5-1.5h16.27c.71,0,1.33.5,1.47,1.21l2.4,12c.19.93-.53,1.8-1.47,1.8Z\" \/>\r\n                        <\/g>\r\n                    <\/g>\r\n                <\/svg>\t\t\t<\/div>\r\n\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<div class=\"daexthefup-comment\">\r\n\t\t\t\t\t<div class=\"daexthefup-comment-top-container\">\r\n\t\t\t\t\t\t<label id=\"daexthefup-comment-label\" class=\"daexthefup-comment-label\"><\/label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"daexthefup-comment-character-counter-container\">\r\n\t\t\t\t\t\t\t\t<div id=\"daexthefup-comment-character-counter-number\"\r\n\t\t\t\t\t\t\t\t\tclass=\"daexthefup-comment-character-counter-number\"><\/div>\r\n\t\t\t\t\t\t\t\t<div class=\"daexthefup-comment-character-counter-text\"><\/div>\r\n\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<textarea id=\"daexthefup-comment-textarea\" class=\"daexthefup-comment-textarea\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Type your message\"\r\n\t\t\t\t\t\t\t\tmaxlength=\"\r\n\t\t\t\t\t\t\t\t400\t\t\t\t\t\t\t\t\t\"><\/textarea>\r\n\t\t\t\t\t<div class=\"daexthefup-comment-buttons-container\">\r\n\t\t\t\t\t\t<button class=\"daexthefup-comment-submit daexthefup-button\">Submit<\/button>\r\n\t\t\t\t\t\t<button class=\"daexthefup-comment-cancel daexthefup-button\">Cancel<\/button>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<div class=\"daexthefup-successful-submission-text\">Thanks for your feedback!<\/div>\r\n\r\n\t\t\t<\/div>\r\n\r\n\t\t\t","protected":false},"excerpt":{"rendered":"<p>This TestNG Tutorial Explains the TestNG Framework Along with its Features, Benefits, and Advantages Over the JUnit Framework: This tutorial will introduce you to the concept of Automation Framework, its benefits, and the types that are in use in the testing world. Along with the Automation Framework, we will also &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"TestNG Tutorial: Introduction to TestNG Framework\" class=\"read-more button\" href=\"https:\/\/www.softwaretestinghelp.com\/testng-tutorial\/#more-108548\" aria-label=\"Read more about TestNG Tutorial: Introduction to TestNG Framework\">Read more<\/a><\/p>\n","protected":false},"author":9,"featured_media":108692,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_helpful_pro_status":1,"footnotes":""},"categories":[572],"tags":[],"class_list":{"0":"post-108548","1":"page","2":"type-page","3":"status-publish","4":"has-post-thumbnail","6":"category-framework"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/pages\/108548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/comments?post=108548"}],"version-history":[{"count":0,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/pages\/108548\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/media\/108692"}],"wp:attachment":[{"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/media?parent=108548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/categories?post=108548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/tags?post=108548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}