NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #1969 most downloaded on Packagist
Magento2 Functional Testing Framework
Last release 1 months ago
14 Aug 2026
Release timing varies
gaps range from 2 weeks to 4 months
Most releases are documented
notes for 37 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
137 releases · first in 2017
Nothing published for this version
Nothing published for this version
Nothing published for this version
Removed obsolete docs/directories
One column per quarter.
Removed environment variable MAGENTO_ADMIN_PASSWORD
Composer updated to 2.4.2 version
Chrome settings for potential cost reductions
Fixed admin credentials being output to console in WebAPIAuth
Fixed allure reports not generating for composer builds.
Updated symfony/console and symfony/process constraints to support latest Symfony LTS (5.4v)
Fixed invalid UTF-8 chars returned from magentoCLI that breaks allure reporting
Allow MFTF Helpers to Return Data to MFTF Test
Fix encoding issue when secret key contains plus sign
Failed tests weren't logged correctly to failed file which caused a failure during run:failed command execution
failed file which caused a failure during run:failed command executionMoved hoa/console to suggest section to avoid issues with PHP8.0
hoa/console to suggest section to avoid issues with PHP8.0vlucas/phpdotenv to the latest versions<seeInCurrentUrl /> encodes special character which caused test failedrun:failed command to generate:failed and run:failed
run:failed command can execute failed tests without need to regenerate failed tests### GitHub Pull Requests: * #842 -- Eliminated AspectMock from FileStorageTest * #843 -- Eliminated AspectMock from ObjectExtensionUtilTest * #844 --
Updated allure dependencies to pull package from new repo allure-framework/allure-php-api.
allure-framework/allure-php-api.Updated composer dependencies to be PHP 8 compatible with the except of codeception/aspect-mock.
### GitHub Pull Requests: * #825 -- Update allure-codeception in order to support php8
Added new config:parallel --groups option in generate:tests command to generate and split tests/suites into required number of execution time balanced
config:parallel --groups option in generate:tests command to generate and split tests/suites into required number of execution time balanced groups.### Enhancements * Maintainability * Added support for composer 2.
Fixed test generation error in a split suite group (--config=parallel) to allow generation of subsequent groups.
Usability
Maintainability
Fixed issue that causes Magento bin/magento to fail when xdebug 3 is used. GitHub Issue #808
Introduced error tolerance during test and suite generation. See the command page for details. Addressed github issue #276.
Usability
Maintainability
failed file.Removed travis.yml and replaced with .github/workflows/main.yml
travis.yml and replaced with .github/workflows/main.ymlFixed issue with XPath locators for waits in MagentoPwaWebDriver.
A deprecation notice is now added at test execution time for deprecated metadata usage.
Customizability
return action that allows action groups to return a value. See the actions page for details.vendor/bin/codecept run. See the mftf page for details.Usability
pause, to invoke codeception interactive pause for debugging during test execution. See the Interactive Pause page for details..env configuration option ENABLE_PAUSE, to enable the new pause feature.Maintainability
pause action. See the command page for details.Modularity
Traceability
createData with required entity.Documented 3.0.0 Backward Incompatible Changes.
Customizability
<helper> to create custom actions outside of MFTF.See custom-helpers page for details<executeSelenium> and <performOn>.<group value="skip"/> no longer skips a test. Instead, the test is added to the skip group.Maintainability
<magento>dev/tests/acceptance/tests/functional/Magento/FunctionalTest.<module> in suiteSchema.pauseExecution and added pause. See actions page for detailsformatMoney and added formatCurrency. See actions page for detailsassertEqualsWithDelta, assertNotEqualsWithDelta, assertEqualsCanonicalizing, assertNotEqualsCanonicalizing, assertEqualsIgnoringCase, assertNotEqualsIgnoringCase.assertStringContainsString, assertStringNotContainsString, assertStringContainsStringIgnoringCase, assertStringNotContainsStringIgnoringCase for string haystacks.assertInternalType, assertNotInternalType, assertArraySubset.assertEquals and assertNotEquals.deprecatedEntityUsage that checks and reports references to deprecated test entities.annotations that checks and reports missing annotations in tests.bin/mftf static-checks command to allow executing static-checks defined in staticRuleSet.json by default. See command page for detailsmftf.log no longer includes notices and warnings at test execution time.--ignore-certificate-errors to functional.suite.dist.yml.Traceability
--debug option NONE to disallow ability to turn off schema validation.*Meta.xml..env configuration VERBOSE_ARTIFACTS to toggle saving attachments in Allure. See configuration page for detailsbin/mftf static-checks error file directory from the current working directory to TESTS_BP/tests/_output/static-results/.Readability
Upgrade scripts added to upgrade tests to MFTF major version requirements. See upgrade instructions below.
Bumped dependencies to support PHP/PHPUnit upgrade.
bin/mftf reset --hard to remove old generated configurations.bin/mftf build:project to generate new configurations.bin/mftf upgrade:tests. See command page for details.<executeInSelenium> and <performOn>.<module file=""/> from any <suite>s.<assert*> actions in your tests have a valid schema.amOnPage.request_timeout and connection_timeout added to functional.suite.yml.dist.ModuleResolver to resolve test modules moved out of deprecated path.entity in action groups within a custom helper.testDependencies static check.actionGroupArguments static check when action group filename is missing ActionGroup._suite directory in Standalone MFTF.array items in data entity.WebDriverCurlException is encountered in afterStep.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
added dependency to packages MFTF used but never specified in composer.json
--filter option was added to bin/mftf generate:tests command. For more details please go to https://devdocs.magento.com/mftf/docs/commands/mftf.html#g
--filter option was added to bin/mftf generate:tests command. For more details please go to https://devdocs.magento.com/mftf/docs/commands/mftf.html#generatetestsFixed float conversion error in test generation
Added deprecation notices for upcoming MFTF 3.0.0
.env configuration ELASTICSEARCH_VERSION to support multiple elasticsearch versionsSupport deprecated syntax for the following test entities:
magentoCron action added by community maintainer @lbajsarowiczdry-run.mftf generate:tests and mftf run:test commands now accept suite scoped test names in format [suitename:testname]....deprecated syntax for the following test entities:
mftf static-checks command to allow executing all or specific static checks.--allow-skipped option.Suites page after mftf run:group command.createData action now shows a meaningful error message at runtime when the entity does not exist.Introduced new mftf doctor command
mftf doctor command
<*Data> actions now contain API Endpoint and Request Header artifacts..env configurations ENABLE_BROWSER_LOG and BROWSER_LOG_BLOCKLIST
timeout="" to magentoCLI actions.<after> exception overriding all test exceptions).MAGENTO_BASE_URL to contain a leading /.magentoCLI actions for config:sensitive:set no longer obscure CLI output.WAIT_TIMEOUT in the .env now correctly sets pageload_timeout configuration.run:group could not consolidate a group that had tests in and out of <suite>s.Fixed an issue where createData actions would cause an exception when used in hooks.
createData actions would cause an exception when used in <suite> hooks.Removed path deprecation warning from ModuleResolver.
<magento>dev/tests/acceptance/tests/functional/<vendor_name>/<module_name>/*ModuleResolver.Fixed missing use statement in the generate:suite command
use statement in the generate:suite commandAllure output has been enhanced to contain new test artifacts created and used per MFTF step:
makeScreenshot will contain an attachment under its Allure step.seeInCurrentUrl and all other Url asserts now contain an attachment with the expects vs actual comparison.createData and all other Data actions now contain attachments with Request Body and Response Body.mftf run:manifest command to run testManifest files generated by generate:tests.
mftf generate/run:test commands now implicitly generates the suite the test exists in.
mftf run:test <testName> will now only run the exact test provided, regardless of what is generated.--allow-skipped flag that allows MFTF to ignore the <skip> annotation. This was added to the following commands:
generate:testrun:testrun:grouprun:failed<entity> defined in data.xml can now reference other <entity> directly.
grab action variables were not substituting correctly when used as an element parameter.$persisted.field$ that does not exist.extends="" itself will no longer cause infinite recursion.$data.field$ whose casing was modified by the API that it used.functional.suite.yml where it was incompatible with symfony/yaml 4.0.0.~10% faster).Fixed an issue where .credentials was required when using actions with field overrides.
.credentials was required when using <createData> actions with field overrides.Fixed an issue where _CREDS could not be resolved when used in a suite.
_CREDS could not be resolved when used in a suite.Use of _CREDS has been extended to and actions
_CREDS has been extended to <magentoCLI> and <createData> actionsBROKEN.static-checks command now properly returns 1 if any static check failed.--steps and other flags passed directly to codecept commands.*source actions correctly print when using userInput or html attributes.test/actionGroupTest action stepKeys are now included in both console output and Allure report.
stepKeys are now included in both console output and Allure report.<comment> action.epfremme/swagger-php dependency to suggests block due to a conflict with Magento extensions.XSD Schema validation is now enabled by default in generate:tests, run:test, run:failed, run:group
generate:tests, run:test, run:failed, run:group--debug option for the above commands has been updated to include different debug levels
skipReadiness attribute would cause false XSD Schema validation errors.Added new mftf static-checks command to run new static checks against the attached test codebase
mftf static-checks command to run new static checks against the attached test codebase
mftf generate:docs command that generates documentation about attached test codebase
actionGroups used in execution.magentoCli would treat argument="0" as a null value.amOnPage and waitForPwaElementVisible would not utilize the timeout attribute correctly when MagentoPwaWebDriver is enabled.codeception.dist.yml configuration for keeping previous test run results.fillSecretField action from schema.command.php is now configured with an idleTimeout of 60 seconds, which will allow tests to continue execution if a CLI command is hanging indefinitely
command.php is now configured with an idleTimeout of 60 seconds, which will allow tests to continue execution if a CLI command is hanging indefinitely.Failed test steps are now marked with a red x in the generated Allure report.
x in the generated Allure report.suite <before> now correctly causes subsequent tests to marked as failed instead of skipped.waitForPwaElementVisible and waitForPwaElementNotVisible actions.vendor.MAGENTO_BASE_URL responded with anything but a 200.<after> would run twice with Codeception 2.4.xextends would not correctly override parent test stepsFetched latest allure-codeception package
mftf run:failed now correctly regenerates tests that are in suites that were parallelized (suite => suite_0, suite_1)
mftf run:failed now correctly regenerates tests that are in suites that were parallelized (suite => suite_0, suite_1)Added new mftf run:failed commands, which reruns all failed tests from last run configuration.
mftf run:failed commands, which reruns all failed tests from last run configuration.vendor.ComponentRegistrar to aggregate paths.element with no type would cause PHP warnings during test runs.Logic for parallel execution were updated to split default tests and suites from running in one group.
ModuleResolver will now only scan under MAGENTO_BP/app/code/... and MAGENTO_BP/vendor/... for /Test/Mftf directories.
ModuleResolver will now only scan under MAGENTO_BP/app/code/... and MAGENTO_BP/vendor/... for /Test/Mftf directories.Test.xml files that did not end with *Test.xml would not be scanned for duplicates and other XML validation.Your coding agent can read these notes before it upgrades. Set up the MCP server →