{"id":153766,"date":"2018-12-12T07:54:06","date_gmt":"2018-12-12T07:54:06","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=153766"},"modified":"2018-12-12T08:04:32","modified_gmt":"2018-12-12T08:04:32","slug":"magento2-functional-testing-framework-mftf-merging","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/","title":{"rendered":"Magento 2 Functional Testing Framework (MFTF) Merging"},"content":{"rendered":"<p><strong>Merging<\/strong> is the most beneficial feature of MFTF. It helps to avoid code duplicacy. Magento already provides it&#8217;s prewritten test cases for its basic functionalities. I&#8217;ll explain Merging here with an example of the Customer Signup form. Magento already provides its test cases for the customer signup form but let&#8217;s say I have installed a custom module and some new form attributes added on this page.<\/p>\n<p>Now, we don&#8217;t need to write the complete test case of this particular page. Here we can use merging. For merging, we need to create a new file inside the custom module&#8217;s Test folder and add all details related to the newly added fields only.<\/p>\n<p><strong>Magento Customer Signup Form-<\/strong><\/p>\n<p><a href=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-154015\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png\" alt=\"mage2sign\" width=\"587\" height=\"604\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png 587w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1-242x249.png 242w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1-292x300.png 292w\" sizes=\"(max-width: 587px) 100vw, 587px\" loading=\"lazy\" \/><\/a><\/p>\n<p><strong>Magento customer signup form after module installation-<\/strong><\/p>\n<p><a href=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/2-1.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-154016\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/2-1.png\" alt=\"CustomFields\" width=\"548\" height=\"635\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/2-1.png 548w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/2-1-215x249.png 215w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/2-1-259x300.png 259w\" sizes=\"(max-width: 548px) 100vw, 548px\" loading=\"lazy\" \/><\/a><\/p>\n<p><strong>Let&#8217;s see the technical implementation-<\/strong><\/p>\n<p>Navigate to <strong>MagentoRoot\/dev\/tests\/acceptance\/tests\/functional\/Magento\/FunctionalTest\/Customer\/Test<\/strong> here you&#8217;ll see a file\u00a0 <strong>StorefrontCreateCustomerTest.xml.\u00a0<\/strong>This is the test written by Magento for the customer signup form from the frontend.<\/p>\n<pre class=\"brush:xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;!--\r\n \/**\r\n  * Copyright \u00a9 Magento, Inc. All rights reserved.\r\n  * See COPYING.txt for license details.\r\n  *\/\r\n--&gt;\r\n\r\n&lt;tests xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n        xsi:noNamespaceSchemaLocation=\"..\/..\/..\/..\/..\/..\/vendor\/magento\/magento2-functional-testing-framework\/src\/Magento\/FunctionalTestingFramework\/Test\/etc\/testSchema.xsd\"&gt;\r\n    &lt;test name=\"StorefrontCreateCustomerTest\"&gt;\r\n        &lt;annotations&gt;\r\n            &lt;features value=\"Customer Creation\"\/&gt;\r\n            &lt;stories value=\"Create a Customer via the Storefront\"\/&gt;\r\n            &lt;title value=\"You should be able to create a customer via the storefront\"\/&gt;\r\n            &lt;description value=\"You should be able to create a customer via the storefront.\"\/&gt;\r\n            &lt;severity value=\"CRITICAL\"\/&gt;\r\n            &lt;testCaseId value=\"MAGETWO-23546\"\/&gt;\r\n            &lt;group value=\"customer\"\/&gt;\r\n            &lt;group value=\"create\"\/&gt;          \r\n        &lt;\/annotations&gt;\r\n        &lt;!-- &lt;after&gt;\r\n            &lt;amOnPage url=\"admin\/admin\/auth\/logout\/\" stepKey=\"amOnLogoutPage\"\/&gt;\r\n        &lt;\/after&gt; --&gt;\r\n\r\n        &lt;amOnPage stepKey=\"amOnStorefrontPage\"  url=\"\/\"\/&gt;\r\n        &lt;click stepKey=\"clickOnCreateAccountLink\" selector=\"{{StorefrontPanelHeaderSection.createAnAccountLink}}\"\/&gt;\r\n        &lt;fillField  stepKey=\"fillFirstName\" userInput=\"{{CustomerEntityOne.firstname}}\" selector=\"{{StorefrontCustomerCreateFormSection.firstnameField}}\"\/&gt;\r\n        &lt;fillField  stepKey=\"fillLastName\" userInput=\"{{CustomerEntityOne.lastname}}\" selector=\"{{StorefrontCustomerCreateFormSection.lastnameField}}\"\/&gt;\r\n        &lt;fillField  stepKey=\"fillEmail\" userInput=\"{{CustomerEntityOne.email}}\" selector=\"{{StorefrontCustomerCreateFormSection.emailField}}\"\/&gt;\r\n        &lt;fillField  stepKey=\"fillPassword\" userInput=\"{{CustomerEntityOne.password}}\" selector=\"{{StorefrontCustomerCreateFormSection.passwordField}}\"\/&gt;\r\n        &lt;fillField  stepKey=\"fillConfirmPassword\" userInput=\"{{CustomerEntityOne.password}}\" selector=\"{{StorefrontCustomerCreateFormSection.confirmPasswordField}}\"\/&gt;\r\n        &lt;click stepKey=\"clickCreateAccountButton\" selector=\"{{StorefrontCustomerCreateFormSection.createAccountButton}}\"\/&gt;\r\n        &lt;see stepKey=\"seeThankYouMessage\" userInput=\"Thank you for registering with Main Website Store.\"\/&gt;\r\n        &lt;see stepKey=\"seeFirstName\" userInput=\"{{CustomerEntityOne.firstname}}\" selector=\"{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}\" \/&gt;\r\n        &lt;see stepKey=\"seeLastName\" userInput=\"{{CustomerEntityOne.lastname}}\" selector=\"{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}\" \/&gt;\r\n        &lt;see stepKey=\"seeEmail\" userInput=\"{{CustomerEntityOne.email}}\" selector=\"{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}\" \/&gt;\r\n    &lt;\/test&gt;\r\n&lt;\/tests&gt;<\/pre>\n<p>Now I&#8217;ll\u00a0create a new folder of my custom module inside\u00a0<strong>MagentoRoot\/dev\/tests\/acceptance\/tests\/functional\/Magento\/FunctionalTest\/MyModuleName\/<\/strong>\u00a0and inside this folder, I&#8217;ll create a <strong>Test<\/strong> folder and inside this Test folder, I&#8217;ll create a file with the same name used by Magento which is\u00a0<strong>StorefrontCreateCustomerTest.xml\u00a0<\/strong>and will write the steps for newly added fields.<\/p>\n<pre class=\"brush:xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;!--\r\n \/**\r\n * Webkul Software.\r\n * @category  Webkul\r\n * @author    Webkul\r\n * @copyright Copyright (c) Webkul Software Private Limited (https:\/\/webkul.com)\r\n * @license   https:\/\/store.webkul.com\/license.html\r\n *\/\r\n--&gt;\r\n\r\n&lt;tests xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n        xsi:noNamespaceSchemaLocation=\"..\/..\/..\/..\/..\/..\/vendor\/magento\/magento2-functional-testing-framework\/src\/Magento\/FunctionalTestingFramework\/Test\/etc\/testSchema.xsd\"&gt;\r\n    &lt;test name=\"StorefrontCreateCustomerTest\"&gt;\r\n        &lt;annotations&gt;\r\n            &lt;features value=\"Seller Creation\"\/&gt;\r\n            &lt;stories value=\"Create a Seller via the Storefront\"\/&gt;\r\n            &lt;title value=\"You should be able to create a seller via the storefront\"\/&gt;\r\n            &lt;description value=\"You should be able to create a seller via the storefront.\"\/&gt;\r\n            &lt;severity value=\"CRITICAL\"\/&gt;\r\n            &lt;testCaseId value=\"WEBKULMP-00001\"\/&gt;\r\n            &lt;group value=\"sellercreate\"\/&gt;\r\n        &lt;\/annotations&gt;\r\n        &lt;click stepKey=\"clickBecomeSellerRadioButton\" selector=\"{{StorefrontCustomerCreateFormSection.becomeSellerRadioButton}}\" before=\"fillEmail\"\/&gt;\r\n        &lt;waitForAjaxLoad time=\"5\" stepKey=\"waitForAjaxResponse\" before=\"clickBecomSellerRadioButton\"\/&gt;\r\n        &lt;fillField stepKey=\"shopUrl\" userInput=\"{{SellerEntityOne.shopurl}}\" selector=\"{{StorefrontCustomerCreateFormSection.shopUrlField}}\" after=\"fillPassword\"\/&gt;\r\n        &lt;remove keyForRemoval=\"seeFirstName\"\/&gt;\r\n        &lt;remove keyForRemoval=\"seeLastName\"\/&gt;\r\n        &lt;remove keyForRemoval=\"seeEmail\"\/&gt;\r\n    &lt;\/test&gt;\r\n&lt;\/tests&gt;<\/pre>\n<p>As you can see in my custom module file\u00a0<strong>StorefrontCreateCustomerTest.xml\u00a0<\/strong>I have not written the steps already written in Magento file. I have written the steps for my newly added fields only.<\/p>\n<p>Now the steps of test cases will work like &#8211; Fill the First Name, Last Name, Email, Yes(Radio Button), Shop URL (Text Field) and then Password and Confirm Password and then it will click on the submit button.<\/p>\n<p><strong>before=&#8221;fillEmail&#8221;<\/strong> will make sure that after filling details in email field it will select the radio button.\u00a0fillEmail is a\u00a0stepKey\u00a0of the step of filling the data in email field written in Magento&#8217;s\u00a0 customer creation test file\u00a0<strong>StorefrontCreateCustomerTest.xml\u00a0<\/strong><\/p>\n<p><strong>after=&#8221;fillPassword&#8221;<\/strong> will make sure that after filling the data in ShoP Url field only it will fill the data in the password field.fillPassword is a\u00a0stepKey\u00a0of the step of filling the data in password field written in Magento&#8217;s\u00a0 customer creation test file\u00a0<strong>StorefrontCreateCustomerTest.xml\u00a0<\/strong><\/p>\n<p><strong>&lt;remove keyForRemoval=&#8221;seeFirstName&#8221;\/&gt;<\/strong> I have used it to remove this step because after my custom module installation it will be redirected to a new page where it will not get the email of customer. After registration Magento by default redirects on the customer dashboard page. Where we get the customer email, first name, last name.<\/p>\n<p><strong>Customer dashboard after registration &#8211;<\/strong><\/p>\n<p><a href=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/4-1.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-154035\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/4-1.png\" alt=\"M2Dashboard\" width=\"848\" height=\"244\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/4-1.png 848w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/4-1-250x72.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/4-1-300x86.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/4-1-768x221.png 768w\" sizes=\"(max-width: 848px) 100vw, 848px\" loading=\"lazy\" \/><\/a><\/p>\n<p><strong>Seller dashboard after\u00a0registration &#8211;<\/strong><\/p>\n<p><a href=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/3-1.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-154034\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/3-1.png\" alt=\"seller\" width=\"1001\" height=\"341\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/3-1.png 1001w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/3-1-250x85.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/3-1-300x102.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2018\/12\/3-1-768x262.png 768w\" sizes=\"(max-width: 1001px) 100vw, 1001px\" loading=\"lazy\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>For <strong>userInput<\/strong> and <strong>selector<\/strong> also I have created the files.<\/p>\n<p>Now merge both the files by running this command &#8211;\u00a0<strong>vendor\/bin\/<em>robo<\/em> generate<\/strong>:<strong>tests<\/strong><\/p>\n<p>It will generate <strong>StorefrontCreateCustomerTestCest.php<\/strong>\u00a0inside <strong>_generated<\/strong> folder of the test file of your XML test file.<\/p>\n<p>That&#8217;s all about merging. If you have any doubt then please\u00a0drop your comment below.<\/p>\n<p>Thanks! \ud83d\ude42<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merging is the most beneficial feature of MFTF. It helps to avoid code duplicacy. Magento already provides it&#8217;s prewritten test cases for its basic functionalities. I&#8217;ll explain Merging here with an example of the Customer Signup form. Magento already provides its test cases for the customer signup form but let&#8217;s say I have installed a <a href=\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":66,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[302],"tags":[35,4910,7879,2460,7272,2070,7880,7060,3250],"class_list":["post-153766","post","type-post","status-publish","format-standard","hentry","category-magento2","tag-framework","tag-functional","tag-magenot","tag-magento-2","tag-magento-functional-testing-framework","tag-magento2","tag-merging","tag-mftf","tag-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Magento 2 Functional Testing Framework (MFTF) Merging - Webkul Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Magento 2 Functional Testing Framework (MFTF) Merging - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"Merging is the most beneficial feature of MFTF. It helps to avoid code duplicacy. Magento already provides it&#8217;s prewritten test cases for its basic functionalities. I&#8217;ll explain Merging here with an example of the Customer Signup form. Magento already provides its test cases for the customer signup form but let&#8217;s say I have installed a [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-12T07:54:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-12T08:04:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png\" \/>\n<meta name=\"author\" content=\"Shruti Baranwal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shruti Baranwal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/\"},\"author\":{\"name\":\"Shruti Baranwal\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/d90db6dde51254f8d7bda2539b81386e\"},\"headline\":\"Magento 2 Functional Testing Framework (MFTF) Merging\",\"datePublished\":\"2018-12-12T07:54:06+00:00\",\"dateModified\":\"2018-12-12T08:04:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/\"},\"wordCount\":512,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png\",\"keywords\":[\"framework\",\"functional\",\"magenot\",\"Magento 2\",\"magento functional testing framework\",\"Magento2\",\"merging\",\"mftf\",\"testing\"],\"articleSection\":[\"Magento2\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/\",\"url\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/\",\"name\":\"Magento 2 Functional Testing Framework (MFTF) Merging - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png\",\"datePublished\":\"2018-12-12T07:54:06+00:00\",\"dateModified\":\"2018-12-12T08:04:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#primaryimage\",\"url\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png\",\"contentUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Magento 2 Functional Testing Framework (MFTF) Merging\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/d90db6dde51254f8d7bda2539b81386e\",\"name\":\"Shruti Baranwal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2ecd6b094113b3e2f346229e04e90fcb6e242f28b3a1dbcb2f44fd9eefb93dbc?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2ecd6b094113b3e2f346229e04e90fcb6e242f28b3a1dbcb2f44fd9eefb93dbc?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"caption\":\"Shruti Baranwal\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/shruti-baranwal890\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Magento 2 Functional Testing Framework (MFTF) Merging - Webkul Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/","og_locale":"en_US","og_type":"article","og_title":"Magento 2 Functional Testing Framework (MFTF) Merging - Webkul Blog","og_description":"Merging is the most beneficial feature of MFTF. It helps to avoid code duplicacy. Magento already provides it&#8217;s prewritten test cases for its basic functionalities. I&#8217;ll explain Merging here with an example of the Customer Signup form. Magento already provides its test cases for the customer signup form but let&#8217;s say I have installed a [...]","og_url":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2018-12-12T07:54:06+00:00","article_modified_time":"2018-12-12T08:04:32+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png","type":"","width":"","height":""}],"author":"Shruti Baranwal","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Shruti Baranwal","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/"},"author":{"name":"Shruti Baranwal","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/d90db6dde51254f8d7bda2539b81386e"},"headline":"Magento 2 Functional Testing Framework (MFTF) Merging","datePublished":"2018-12-12T07:54:06+00:00","dateModified":"2018-12-12T08:04:32+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/"},"wordCount":512,"commentCount":4,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png","keywords":["framework","functional","magenot","Magento 2","magento functional testing framework","Magento2","merging","mftf","testing"],"articleSection":["Magento2"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/","url":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/","name":"Magento 2 Functional Testing Framework (MFTF) Merging - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png","datePublished":"2018-12-12T07:54:06+00:00","dateModified":"2018-12-12T08:04:32+00:00","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#primaryimage","url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png","contentUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2018\/12\/1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/magento2-functional-testing-framework-mftf-merging\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Magento 2 Functional Testing Framework (MFTF) Merging"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/d90db6dde51254f8d7bda2539b81386e","name":"Shruti Baranwal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2ecd6b094113b3e2f346229e04e90fcb6e242f28b3a1dbcb2f44fd9eefb93dbc?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2ecd6b094113b3e2f346229e04e90fcb6e242f28b3a1dbcb2f44fd9eefb93dbc?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","caption":"Shruti Baranwal"},"url":"https:\/\/webkul.com\/blog\/author\/shruti-baranwal890\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/153766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=153766"}],"version-history":[{"count":15,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/153766\/revisions"}],"predecessor-version":[{"id":154058,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/153766\/revisions\/154058"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=153766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=153766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=153766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}