diff --git a/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt b/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
index c41170b5c..60b645cfa 100644
--- a/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
+++ b/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt b/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
index a62548ccc..ddee76f82 100644
--- a/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
+++ b/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt b/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
index 504ca8120..4121a6d48 100644
--- a/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
+++ b/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupToExtend.txt b/dev/tests/verification/Resources/ActionGroupToExtend.txt
index bd077636d..fb8a9fd60 100644
--- a/dev/tests/verification/Resources/ActionGroupToExtend.txt
+++ b/dev/tests/verification/Resources/ActionGroupToExtend.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt b/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
index 2acf9e297..41953aa3f 100644
--- a/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
+++ b/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt b/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
index a36c37e7a..674de1afc 100644
--- a/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt b/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
index c939f421e..6815d318b 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithDataTest.txt b/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
index d11eff9a8..e4b79cf73 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt b/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
index 421bb4af7..79c95b0df 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
index 3f907b9ee..620bbf5f5 100644
--- a/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt b/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
index b2fa98e5c..b0f709ac9 100644
--- a/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt b/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
index 8739d8fa0..a5119c368 100644
--- a/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt b/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
index c7c305cb8..33d3d3d13 100644
--- a/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt b/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
index 63fd6af52..133553573 100644
--- a/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
index f27695b2b..b5c871a0d 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
index ac56ca3f3..d3b910c0a 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
index 7b74e0c1d..027370779 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
index bd71ebdf7..7900385db 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
index 7b1a4d30d..28bb00d4d 100644
--- a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt b/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
index 1881a392a..4ec6520d9 100644
--- a/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt b/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
index 90b195688..a97fd116e 100644
--- a/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
+++ b/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/AssertTest.txt b/dev/tests/verification/Resources/AssertTest.txt
index 111b236ed..beb78eed1 100644
--- a/dev/tests/verification/Resources/AssertTest.txt
+++ b/dev/tests/verification/Resources/AssertTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/BasicActionGroupTest.txt b/dev/tests/verification/Resources/BasicActionGroupTest.txt
index 259016681..b8b491ef4 100644
--- a/dev/tests/verification/Resources/BasicActionGroupTest.txt
+++ b/dev/tests/verification/Resources/BasicActionGroupTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/BasicFunctionalTest.txt b/dev/tests/verification/Resources/BasicFunctionalTest.txt
index b826ecef8..4502be407 100644
--- a/dev/tests/verification/Resources/BasicFunctionalTest.txt
+++ b/dev/tests/verification/Resources/BasicFunctionalTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/BasicMergeTest.txt b/dev/tests/verification/Resources/BasicMergeTest.txt
index ad5a0c189..280630b6f 100644
--- a/dev/tests/verification/Resources/BasicMergeTest.txt
+++ b/dev/tests/verification/Resources/BasicMergeTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/CharacterReplacementTest.txt b/dev/tests/verification/Resources/CharacterReplacementTest.txt
index 466997a6f..844b08974 100644
--- a/dev/tests/verification/Resources/CharacterReplacementTest.txt
+++ b/dev/tests/verification/Resources/CharacterReplacementTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt b/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
index bf3d3a8c2..d8417f5cb 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestMerging.txt b/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
index 1efe59cb5..caf382718 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt b/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
index 3bc7b8a0a..130bc1599 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt b/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
index f24c3e6d1..4fefcd657 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt b/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
index 9d207e13f..5f135c6d7 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestReplace.txt b/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
index 6f3c3c9b3..650544131 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt b/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
index 2a5937381..9c05eb88e 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/DataReplacementTest.txt b/dev/tests/verification/Resources/DataReplacementTest.txt
index 57f94886d..2da8b00eb 100644
--- a/dev/tests/verification/Resources/DataReplacementTest.txt
+++ b/dev/tests/verification/Resources/DataReplacementTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ExtendParentDataTest.txt b/dev/tests/verification/Resources/ExtendParentDataTest.txt
index 5553b2e7a..a681733f0 100644
--- a/dev/tests/verification/Resources/ExtendParentDataTest.txt
+++ b/dev/tests/verification/Resources/ExtendParentDataTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ExtendedActionGroup.txt b/dev/tests/verification/Resources/ExtendedActionGroup.txt
index c89ce4e76..93acc8910 100644
--- a/dev/tests/verification/Resources/ExtendedActionGroup.txt
+++ b/dev/tests/verification/Resources/ExtendedActionGroup.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ExtendedParameterArrayTest.txt b/dev/tests/verification/Resources/ExtendedParameterArrayTest.txt
index 3c5e284eb..afdbdec3e 100644
--- a/dev/tests/verification/Resources/ExtendedParameterArrayTest.txt
+++ b/dev/tests/verification/Resources/ExtendedParameterArrayTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt b/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
index 6539bb8cc..2bfd08a91 100644
--- a/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
+++ b/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/HookActionsTest.txt b/dev/tests/verification/Resources/HookActionsTest.txt
index e15918c1c..76947ce61 100644
--- a/dev/tests/verification/Resources/HookActionsTest.txt
+++ b/dev/tests/verification/Resources/HookActionsTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/LocatorFunctionTest.txt b/dev/tests/verification/Resources/LocatorFunctionTest.txt
index 62fd808c5..b9423d1b5 100644
--- a/dev/tests/verification/Resources/LocatorFunctionTest.txt
+++ b/dev/tests/verification/Resources/LocatorFunctionTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt b/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
index 9ffc3d452..ddfa5da12 100644
--- a/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
+++ b/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt b/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
index a830c218c..82e2c4d6d 100644
--- a/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
+++ b/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MergedActionGroupTest.txt b/dev/tests/verification/Resources/MergedActionGroupTest.txt
index f1d73dba5..7862b0036 100644
--- a/dev/tests/verification/Resources/MergedActionGroupTest.txt
+++ b/dev/tests/verification/Resources/MergedActionGroupTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MergedReferencesTest.txt b/dev/tests/verification/Resources/MergedReferencesTest.txt
index fe0c9498f..39111ad40 100644
--- a/dev/tests/verification/Resources/MergedReferencesTest.txt
+++ b/dev/tests/verification/Resources/MergedReferencesTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MultipleActionGroupsTest.txt b/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
index 18f6df3a9..1b5a74c94 100644
--- a/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
+++ b/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/PageReplacementTest.txt b/dev/tests/verification/Resources/PageReplacementTest.txt
index f9fda51b2..1422a24ba 100644
--- a/dev/tests/verification/Resources/PageReplacementTest.txt
+++ b/dev/tests/verification/Resources/PageReplacementTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ParameterArrayTest.txt b/dev/tests/verification/Resources/ParameterArrayTest.txt
index d56a13386..4b56eb15c 100644
--- a/dev/tests/verification/Resources/ParameterArrayTest.txt
+++ b/dev/tests/verification/Resources/ParameterArrayTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ParentExtendedTest.txt b/dev/tests/verification/Resources/ParentExtendedTest.txt
index a79783217..a8e74e493 100644
--- a/dev/tests/verification/Resources/ParentExtendedTest.txt
+++ b/dev/tests/verification/Resources/ParentExtendedTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt b/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
index 9f60794e2..8ff0d58bd 100644
--- a/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
+++ b/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/PersistedReplacementTest.txt b/dev/tests/verification/Resources/PersistedReplacementTest.txt
index 4e85b0085..f4f9b0298 100644
--- a/dev/tests/verification/Resources/PersistedReplacementTest.txt
+++ b/dev/tests/verification/Resources/PersistedReplacementTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -52,6 +53,7 @@ class PersistedReplacementTestCest
$I->fillField("#selector", "StringBefore " . $createdData->getCreatedDataByName('firstname') . " StringAfter");
$I->fillField("#" . $createdData->getCreatedDataByName('firstname'), "input");
$I->fillField("#" . getenv("MAGENTO_BASE_URL") . "#" . $createdData->getCreatedDataByName('firstname'), "input");
+ $I->fillField("#" . CredentialStore::getInstance()->getSecret("SECRET_PARAM") . "#" . $createdData->getCreatedDataByName('firstname'), "input");
$I->dragAndDrop("#" . $createdData->getCreatedDataByName('firstname'), $createdData->getCreatedDataByName('lastname'));
$I->conditionalClick($createdData->getCreatedDataByName('lastname'), "#" . $createdData->getCreatedDataByName('firstname'), true);
$I->amOnUrl($createdData->getCreatedDataByName('firstname') . ".html");
diff --git a/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt b/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
index 51da945b2..eb9f2d234 100644
--- a/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
+++ b/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/SectionReplacementTest.txt b/dev/tests/verification/Resources/SectionReplacementTest.txt
index f0c71a7fa..d6afcaa5e 100644
--- a/dev/tests/verification/Resources/SectionReplacementTest.txt
+++ b/dev/tests/verification/Resources/SectionReplacementTest.txt
@@ -5,6 +5,7 @@ use Magento\FunctionalTestingFramework\AcceptanceTester;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/TestModule/Test/PersistedReplacementTest.xml b/dev/tests/verification/TestModule/Test/PersistedReplacementTest.xml
index 26885fda4..8fc8fd19a 100644
--- a/dev/tests/verification/TestModule/Test/PersistedReplacementTest.xml
+++ b/dev/tests/verification/TestModule/Test/PersistedReplacementTest.xml
@@ -17,6 +17,7 @@
+
diff --git a/etc/config/.credentials.example b/etc/config/.credentials.example
new file mode 100644
index 000000000..ea8b03480
--- /dev/null
+++ b/etc/config/.credentials.example
@@ -0,0 +1,75 @@
+#carriers/fedex/account=
+#carriers/fedex/meter_number=
+#carriers/fedex/key=
+#carriers/fedex/password=
+
+#carriers/ups/password=
+#carriers/ups/username=
+#carriers/ups/access_license_number=
+#carriers/ups/shipper_number=
+
+#carriers/usps/userid=
+#carriers/usps/password=
+
+#carriers_dhl_id_us=
+#carriers_dhl_password_us=
+#carriers_dhl_account_us=
+
+#carriers_dhl_id_eu=
+#carriers_dhl_password_eu=
+#carriers_dhl_account_eu=
+
+
+#payment_authorizenet_login=
+#payment_authorizenet_trans_key=
+#payment_authorizenet_trans_md5=
+
+#authorizenet_fraud_review_login=
+#authorizenet_fraud_review_trans_key=
+#authorizenet_fraud_review_md5=
+
+#braintree_enabled_fraud_merchant_account_id=
+#braintree_enabled_fraud_merchant_id=
+#braintree_enabled_fraud_public_key=
+#braintree_enabled_fraud_private_key=
+
+#braintree_disabled_fraud_merchant_account_id=
+#braintree_disabled_fraud_merchant_id=
+#braintree_disabled_fraud_public_key=
+#braintree_disabled_fraud_private_key=
+
+#payment/paypal_group_all_in_one/wpp_usuk/wpp_required_settings/wpp_and_express_checkout/business_account=
+#payment/paypal_group_all_in_one/wpp_usuk/wpp_required_settings/wpp_and_express_checkout/api_username=
+#payment/paypal_group_all_in_one/wpp_usuk/wpp_required_settings/wpp_and_express_checkout/api_password=
+#payment/paypal_group_all_in_one/wpp_usuk/wpp_required_settings/wpp_and_express_checkout/api_signature=
+#payment/paypal_express/merchant_id=
+
+#payflow_pro_fraud_protection_enabled_business_account=
+#payflow_pro_fraud_protection_enabled_partner=
+#payflow_pro_fraud_protection_enabled_user=
+#payflow_pro_fraud_protection_enabled_pwd=
+#payflow_pro_fraud_protection_enabled_vendor=
+
+#payflow_pro_business_account=
+#payflow_pro_partner=
+#payflow_pro_user=
+#payflow_pro_pwd=
+#payflow_pro_vendor=
+
+#payflow_link_business_account_email=
+#payflow_link_partner=
+#payflow_link_user=
+#payflow_link_password=
+#payflow_link_vendor=
+
+#payment/paypal_group_all_in_one/payments_pro_hosted_solution_with_express_checkout/pphs_required_settings/pphs_required_settings_pphs/business_account=
+#payment/paypal_group_all_in_one/payments_pro_hosted_solution_with_express_checkout/pphs_required_settings/pphs_required_settings_pphs/api_username=
+#payment/paypal_group_all_in_one/payments_pro_hosted_solution_with_express_checkout/pphs_required_settings/pphs_required_settings_pphs/api_password=
+#payment/paypal_group_all_in_one/payments_pro_hosted_solution_with_express_checkout/pphs_required_settings/pphs_required_settings_pphs/api_signature=
+
+#payment/paypal_alternative_payment_methods/express_checkout_us/express_checkout_required/express_checkout_required_express_checkout/business_account=
+#payment/paypal_alternative_payment_methods/express_checkout_us/express_checkout_required/express_checkout_required_express_checkout/api_username=
+#payment/paypal_alternative_payment_methods/express_checkout_us/express_checkout_required/express_checkout_required_express_checkout/api_password=
+#payment/paypal_alternative_payment_methods/express_checkout_us/express_checkout_required/express_checkout_required_express_checkout/api_signature=
+
+#fraud_protection/signifyd/api_key=
\ No newline at end of file
diff --git a/src/Magento/FunctionalTestingFramework/Console/BuildProjectCommand.php b/src/Magento/FunctionalTestingFramework/Console/BuildProjectCommand.php
index 66378da8d..88b15efd3 100644
--- a/src/Magento/FunctionalTestingFramework/Console/BuildProjectCommand.php
+++ b/src/Magento/FunctionalTestingFramework/Console/BuildProjectCommand.php
@@ -21,6 +21,7 @@
class BuildProjectCommand extends Command
{
const DEFAULT_YAML_INLINE_DEPTH = 10;
+ const CREDENTIALS_FILE_PATH = TESTS_BP . DIRECTORY_SEPARATOR . '.credentials.example';
/**
* Env processor manages .env files.
@@ -72,6 +73,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
$setupEnvCommand->run($commandInput, $output);
+
// TODO can we just import the codecept symfony command?
$codeceptBuildCommand = realpath(PROJECT_ROOT . '/vendor/bin/codecept') . ' build';
$process = new Process($codeceptBuildCommand);
@@ -126,5 +128,12 @@ private function generateConfigFiles(OutputInterface $output)
$output->writeln("functional.suite.yml applied to " .
TESTS_BP . DIRECTORY_SEPARATOR . 'tests' . DIRECTORY_SEPARATOR . 'functional.suite.yml');
}
+
+ $fileSystem->copy(
+ FW_BP . '/etc/config/.credentials.example',
+ self::CREDENTIALS_FILE_PATH
+ );
+
+ $output->writeln('.credentials.example successfully applied.');
}
}
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/CredentialStore.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/CredentialStore.php
new file mode 100644
index 000000000..edd5a7c18
--- /dev/null
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/CredentialStore.php
@@ -0,0 +1,110 @@
+readInCredentialsFile();
+ }
+
+ /**
+ * Returns the value of a secret based on corresponding key
+ *
+ * @param string $key
+ * @return string|null
+ * @throws TestFrameworkException
+ */
+ public function getSecret($key)
+ {
+ if (!array_key_exists($key, $this->credentials)) {
+ throw new TestFrameworkException(
+ "{$key} not defined in .credentials, please provide a value in order to use this secret in a test."
+ );
+ }
+
+ // log here for verbose config
+ if (MftfApplicationConfig::getConfig()->verboseEnabled()) {
+ LoggingUtil::getInstance()->getLogger(CredentialStore::class)->debug(
+ "retrieving secret for key name {$key}"
+ );
+ }
+
+ return $this->credentials[$key] ?? null;
+ }
+
+ /**
+ * Private function which reads in secret key/values from .credentials file and stores in memory as key/value pair.
+ *
+ * @return void
+ * @throws TestFrameworkException
+ */
+ private function readInCredentialsFile()
+ {
+ $credsFilePath = str_replace(
+ '.credentials.example',
+ '.credentials',
+ BuildProjectCommand::CREDENTIALS_FILE_PATH
+ );
+
+ if (!file_exists($credsFilePath)) {
+ throw new TestFrameworkException(
+ "Cannot find .credentials file, please create in "
+ . TESTS_BP . " in order to reference sensitive information"
+ );
+ }
+
+ $credContents = file($credsFilePath, FILE_IGNORE_NEW_LINES);
+ foreach ($credContents as $credValue) {
+ if (substr($credValue, 0, 1) === '#' || empty($credValue)) {
+ continue;
+ }
+
+ list($key, $value) = explode("=", $credValue);
+ if (!empty($value)) {
+ $this->credentials[$key] = $value;
+ }
+ }
+ }
+}
diff --git a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php
index 1fcff34db..6b361daa0 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php
@@ -23,6 +23,12 @@
class ActionObject
{
const __ENV = "_ENV";
+ const __CREDS = "_CREDS";
+ const RUNTIME_REFERENCES = [
+ self::__ENV,
+ self::__CREDS
+ ];
+
const DATA_ENABLED_ATTRIBUTES = [
"userInput",
"parameterArray",
@@ -499,8 +505,8 @@ private function findAndReplaceReferences($objectHandler, $inputString)
$obj = $objectHandler->getObject($objName);
- // Leave {{_ENV.VARIABLE}} references to be replaced in TestGenerator with getenv("VARIABLE")
- if ($objName === ActionObject::__ENV) {
+ // Leave runtime references to be replaced in TestGenerator with getter function accessing "VARIABLE"
+ if (in_array($objName, ActionObject::RUNTIME_REFERENCES)) {
continue;
}
diff --git a/src/Magento/FunctionalTestingFramework/Util/Env/EnvProcessor.php b/src/Magento/FunctionalTestingFramework/Util/Env/EnvProcessor.php
index 248e11288..a954e0681 100644
--- a/src/Magento/FunctionalTestingFramework/Util/Env/EnvProcessor.php
+++ b/src/Magento/FunctionalTestingFramework/Util/Env/EnvProcessor.php
@@ -106,11 +106,7 @@ public function putEnvFile(array $config = [])
$envData .= $key . '=' . $value . PHP_EOL;
}
- if ($this->envExists) {
- file_put_contents($this->envFile, $envData, FILE_APPEND);
- } else {
- file_put_contents($this->envFile, $envData);
- }
+ file_put_contents($this->envFile, $envData);
}
/**
diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
index 00203a7e7..022ccefc4 100644
--- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
+++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
@@ -6,6 +6,7 @@
namespace Magento\FunctionalTestingFramework\Util;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\Exceptions\TestReferenceException;
use Magento\FunctionalTestingFramework\Suite\Handlers\SuiteObjectHandler;
@@ -285,6 +286,7 @@ private function generateUseStatementsPhp()
$useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;\n";
$useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;\n";
$useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;\n";
+ $useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;\n";
$useStatementsPhp .= "use \Codeception\Util\Locator;\n";
$allureStatements = [
@@ -747,7 +749,7 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
$testSteps .= $contextSetter;
$testSteps .= $deleteEntityFunctionCall;
} else {
- $url = $this->resolveEnvReferences([$url])[0];
+ $url = $this->resolveAllRuntimeReferences([$url])[0];
$url = $this->resolveTestVariable([$url], null)[0];
$output = sprintf(
"\t\t$%s->deleteEntityByUrl(%s);\n",
@@ -1675,7 +1677,7 @@ private function wrapFunctionCall($actor, $action, ...$args)
if (!is_array($args)) {
$args = [$args];
}
- $args = $this->resolveEnvReferences($args);
+ $args = $this->resolveAllRuntimeReferences($args);
$args = $this->resolveTestVariable($args, $action->getActionOrigin());
$output .= implode(", ", array_filter($args, function($value) { return $value !== null; })) . ");\n";
return $output;
@@ -1706,7 +1708,7 @@ private function wrapFunctionCallWithReturnValue($returnVariable, $actor, $actio
if (!is_array($args)) {
$args = [$args];
}
- $args = $this->resolveEnvReferences($args);
+ $args = $this->resolveAllRuntimeReferences($args);
$args = $this->resolveTestVariable($args, $action->getActionOrigin());
$output .= implode(", ", array_filter($args, function($value) { return $value !== null; })) . ");\n";
return $output;
@@ -1716,21 +1718,21 @@ private function wrapFunctionCallWithReturnValue($returnVariable, $actor, $actio
/**
* Resolves {{_ENV.variable}} into getenv("variable") for test-runtime ENV referencing.
* @param array $args
+ * @param string $regex
+ * @param string $func
* @return array
*/
- private function resolveEnvReferences($args)
+ private function resolveRuntimeReference($args, $regex, $func)
{
- $envRegex = "/{{_ENV\.([\w]+)}}/";
-
$newArgs = [];
foreach ($args as $key => $arg) {
- preg_match_all($envRegex, $arg, $matches);
+ preg_match_all($regex, $arg, $matches);
if (!empty($matches[0])) {
$fullMatch = $matches[0][0];
- $envVariable = $matches[1][0];
+ $refVariable = $matches[1][0];
unset($matches);
- $replacement = "getenv(\"{$envVariable}\")";
+ $replacement = "{$func}(\"{$refVariable}\")";
$outputArg = $this->processQuoteBreaks($fullMatch, $arg, $replacement);
$newArgs[$key] = $outputArg;
@@ -1743,6 +1745,28 @@ private function resolveEnvReferences($args)
return $newArgs;
}
+ /**
+ * Takes a predefined list of potentially matching special paramts and they needed function replacement and performs
+ * replacements on the tests args.
+ *
+ * @param array $args
+ * @return array
+ */
+ private function resolveAllRuntimeReferences($args)
+ {
+ $runtimeReferenceRegex = [
+ "/{{_ENV\.([\w]+)}}/" => 'getenv',
+ "/{{_CREDS\.([\w]+)}}/" => 'CredentialStore::getInstance()->getSecret'
+ ];
+
+ $argResult = $args;
+ foreach ($runtimeReferenceRegex as $regex => $func) {
+ $argResult = $this->resolveRuntimeReference($argResult, $regex, $func);
+ }
+
+ return $argResult;
+ }
+
/**
* Validates parameter array format, making sure user has enclosed string with square brackets.
*