diff --git a/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot b/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot
index 76dc033..a36833e 100644
--- a/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot
+++ b/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot
@@ -37,4 +37,10 @@
 	[Documentation]				Verify that the size of the downloaded data volume is equal to a target value
 	[Arguments]            		${target_ctr_value}
     ${resp}=					Run Process     ${CLI_DR_REDIR_SIM_DOWNLOADED_VOLUME}  shell=yes
-    Should Be Equal As Strings  ${resp.stdout}  ${target_ctr_value}
\ No newline at end of file
+    Should Be Equal As Strings  ${resp.stdout}  ${target_ctr_value}
+
+Start DFC
+	[Documentation]				Start DFC container
+	${cli_cmd_output}=          Run Process                    ${DFC_ROOT}/dfc-start.sh   cwd=${DFC_ROOT}   env:SIMGROUP_ROOT=${SIMGROUP_ROOT}
+    Log To Console              Dfc-start:
+    Log To Console              ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
diff --git a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot
index 3f8be17..5b9048f 100755
--- a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot
+++ b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot
@@ -18,23 +18,46 @@
     [TAGS]                          DFC_FUNCTIONAL_1
     [Documentation]                 Verify single event with single SFTP 1MB file from event poll to published file.
     ${cli_cmd_output}=              Run Process             ${DFC_ROOT}/../dfc-containers-clean.sh           stderr=STDOUT
-    Log To Console                  Dfc containter clean: ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-    Set Environment Variable        MR_TC                   --tc100
-    Set Environment Variable        DR_TC                   --tc normal
-    Set Environment Variable        DR_REDIR_TC             --tc normal
-    Set Environment Variable        MR_GROUPS               OpenDcae-c12:PM_MEAS_FILES
-    Set Environment Variable        MR_FILE_PREFIX_MAPPING  PM_MEAS_FILES:A
-    Set Environment Variable        DR_REDIR_FEEDS          2:A
-    Set Environment Variable        FTP_FILE_PREFIXES       A
-    Set Environment Variable        NUM_FTPFILES            1
-    Set Environment Variable        NUM_PNFS                1
-    Set Environment Variable        FILE_SIZE               1MB
-    Set Environment Variable        FTP_TYPE                SFTP
-    Set Environment Variable        NUM_FTP_SERVERS         1
-    Set Environment Variable        DR_FEEDS                2:A
-    Set Environment Variable        DR_REDIR_SIM            drsim_redir
-    Set Environment Variable        SFTP_SIMS               sftp-server0:22
-    Set Environment Variable        FTPS_SIMS               ftpes-server-vsftpd0:21
+    Verify Single Event From Event Poll To Published File   1    --tc100    SFTP
+
+
+Verify single event with single 5MB SFTP file. From event poll to published file
+    [TAGS]                          DFC_FUNCTIONAL_2
+    [Documentation]                 Verify single event with single SFTP 5MB file from event poll to published file.
+    Verify Single Event From Event Poll To Published File   5    --tc101    SFTP
+
+
+Verify single event with single 50MB SFTP file. From event poll to published file
+    [TAGS]                          DFC_FUNCTIONAL_3
+    [Documentation]                 Verify single event with single SFTP 50MB file from event poll to published file.
+    Verify Single Event From Event Poll To Published File   50   --tc102    SFTP
+
+
+######## Single file, FTPS
+Verify single event with single 1MB FTPS file. From event poll to published file
+    [TAGS]                         DFC_FUNCTIONAL_10
+    [Documentation]                Verify single event with single FTPS 1MB file from event poll to published file.
+    Verify Single Event From Event Poll To Published File   1    --tc200    FTPS
+
+Verify single event with single 1MB FTPS file. From event poll to published file
+    [TAGS]                         DFC_FUNCTIONAL_11
+    [Documentation]                Verify single event with single FTPS 5MB file from event poll to published file.
+    Verify Single Event From Event Poll To Published File   5    --tc201    FTPS
+
+Verify single event with single 1MB FTPS file. From event poll to published file
+    [TAGS]                         DFC_FUNCTIONAL_12
+    [Documentation]                Verify single event with single FTPS 50MB file from event poll to published file.
+    Verify Single Event From Event Poll To Published File   50   --tc202    FTPS
+
+*** Keywords ***
+Verify Single Event From Event Poll To Published File
+    [Documentation]                 Keyword to verify single event with file with given parameters.
+    [Arguments]                     ${file_size_in_mb}    ${mr_tc}    ${ftp_type}
+    ${cli_cmd_output}=              Run Process     ${DFC_ROOT}/../dfc-containers-clean.sh
+    Set Environment Variable        MR_TC                   ${mr_tc}
+    Set Environment Variable        FILE_SIZE               ${file_size_in_mb}MB
+    Set Environment Variable        FTP_TYPE                ${ftp_type}
+    Set Default Environment Variables
 
     ${cli_cmd_output}=              Run Process     ./simulators-start.sh    cwd=${SIMGROUP_ROOT}
     Log To Console                  Simulator-start:
@@ -56,26 +79,19 @@
 
     Sleep                           10
 
-    ${cli_cmd_output}=              Run Process                    ${DFC_ROOT}/dfc-start.sh   cwd=${DFC_ROOT}
-    Log To Console                  Dfc-start:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
+    Start DFC
 
     Wait Until Keyword Succeeds     1 minute      10 sec    MR Sim Emitted Files Equal          1                       #Verify 1 file emitted from MR sim
     Wait Until Keyword Succeeds     1 minute      10 sec    DR Sim Query Not Published Equal    1                       #Verify 1 query response for not published files
     Wait Until Keyword Succeeds     1 minute      10 sec    DR Sim Published Files Equal        1                       #Verify 1 file published to DR sim
-    DR Redir Sim Downloaded Volume Equal          1 000 000                                                             #Verify 1 000 000 bytes published file data in DR redir sim
-
+    DR Redir Sim Downloaded Volume Equal          ${file_size_in_mb} 000 000                                            #Verify correct number of bytes published file data in DR redir sim
     ${cli_cmd_output}=              Run Process             ${SIMGROUP_ROOT}/simulators-kill.sh
     Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
     ${cli_cmd_output}=              Run Process             ${DFC_ROOT}/dfc-kill.sh
     Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
 
-Verify single event with single 5MB SFTP file. From event poll to published file
-    [TAGS]                          DFC_FUNCTIONAL_2
-    [Documentation]                 Verify single event with single SFTP 5MB file from event poll to published file.
-    ${cli_cmd_output}=              Run Process             ${DFC_ROOT}/../dfc-containers-clean.sh           stderr=STDOUT
-    Log To Console                  Dfc containter clean: ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-    Set Environment Variable        MR_TC                   --tc101
+Set Default Environment Variables
+    [Documentation]                 Set default environment variables for simulators setup
     Set Environment Variable        DR_TC                   --tc normal
     Set Environment Variable        DR_REDIR_TC             --tc normal
     Set Environment Variable        MR_GROUPS               OpenDcae-c12:PM_MEAS_FILES
@@ -84,177 +100,8 @@
     Set Environment Variable        FTP_FILE_PREFIXES       A
     Set Environment Variable        NUM_FTPFILES            1
     Set Environment Variable        NUM_PNFS                1
-    Set Environment Variable        FILE_SIZE               5MB
-    Set Environment Variable        FTP_TYPE                SFTP
     Set Environment Variable        NUM_FTP_SERVERS         1
     Set Environment Variable        DR_FEEDS                2:A
     Set Environment Variable        DR_REDIR_SIM            drsim_redir
     Set Environment Variable        SFTP_SIMS               sftp-server0:22
     Set Environment Variable        FTPS_SIMS               ftpes-server-vsftpd0:21
-
-    ${cli_cmd_output}=              Run Process     ./simulators-start.sh    cwd=${SIMGROUP_ROOT}
-    Log To Console                  Simulator-start: ${cli_cmd_output.stdout}
-    MR Sim Emitted Files Equal      0                                                                                   #Verify 0 file emitted from MR sim
-    DR Sim Published Files Equal    0                                                                                   #Verify 0 file published to DR sim
-
-    ${cli_cmd_output}=              Run Process             ${CONSUL_UPL_APP}           shell=yes
-    Log To Console                  Consul APP write:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    ${cli_cmd_output}=              Run Process             ${CONSUL_GET_APP}           shell=yes
-    Log To Console                  Consul APP read:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    ${cli_cmd_output}=              Run Process             ${CBS_GET_MERGED_CONFIG}    shell=yes
-    Log To Console                  CBS merged configuration:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    Sleep                           10
-
-    ${cli_cmd_output}=              Run Process                    ${DFC_ROOT}/dfc-start.sh   cwd=${DFC_ROOT}
-    Log To Console                  Dfc-start:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    Wait Until Keyword Succeeds     1 minute      10 sec    MR Sim Emitted Files Equal          1                       #Verify 1 file emitted from MR sim
-    Wait Until Keyword Succeeds     1 minute      10 sec    DR Sim Query Not Published Equal    1                       #Verify 1 query response for not published files
-    Wait Until Keyword Succeeds     1 minute      10 sec    DR Sim Published Files Equal        1                       #Verify 1 file published to DR sim
-    DR Redir Sim Downloaded Volume Equal          5 000 000                                                             #Verify 5 000 000 bytes published file data in DR redir sim
-
-    ${cli_cmd_output}=              Run Process             ${SIMGROUP_ROOT}/simulators-kill.sh
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-    ${cli_cmd_output}=              Run Process             ${DFC_ROOT}/dfc-kill.sh
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    ${cli_cmd_output}=              Run Process             docker  stop  $(docker ps -aq)      shell=yes
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    ${cli_cmd_output}=              Run Process             docker  rm $(docker ps -aq)          shell=yes
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    Sleep                           10
-
-Verify single event with single 50MB SFTP file. From event poll to published file
-    [TAGS]                          DFC_FUNCTIONAL_3
-    [Documentation]                 Verify single event with single SFTP 50MB file from event poll to published file.
-    ${cli_cmd_output}=              Run Process             ${DFC_ROOT}/../dfc-containers-clean.sh
-    Set Environment Variable        MR_TC                   --tc102
-    Set Environment Variable        DR_TC                   --tc normal
-    Set Environment Variable        DR_REDIR_TC             --tc normal
-    Set Environment Variable        MR_GROUPS               OpenDcae-c12:PM_MEAS_FILES
-    Set Environment Variable        MR_FILE_PREFIX_MAPPING  PM_MEAS_FILES:A
-    Set Environment Variable        DR_REDIR_FEEDS          2:A
-    Set Environment Variable        FTP_FILE_PREFIXES       A
-    Set Environment Variable        NUM_FTPFILES            1
-    Set Environment Variable        NUM_PNFS                1
-    Set Environment Variable        FILE_SIZE               50MB
-    Set Environment Variable        FTP_TYPE                SFTP
-    Set Environment Variable        NUM_FTP_SERVERS         1
-    Set Environment Variable        DR_FEEDS                2:A
-    Set Environment Variable        DR_REDIR_SIM            drsim_redir
-    Set Environment Variable        SFTP_SIMS               sftp-server0:22
-    Set Environment Variable        FTPS_SIMS               ftpes-server-vsftpd0:21
-
-    ${cli_cmd_output}=              Run Process             ./simulators-start.sh    cwd=${SIMGROUP_ROOT}
-    Log To Console                  Simulator-start: ${cli_cmd_output.stdout}
-    MR Sim Emitted Files Equal      0                                                                                   #Verify 0 file emitted from MR sim
-    DR Sim Published Files Equal    0                                                                                   #Verify 0 file published to DR sim
-
-    ${cli_cmd_output}=              Run Process             ${CONSUL_UPL_APP}           shell=yes
-    Log To Console                  Consul APP write:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    ${cli_cmd_output}=              Run Process             ${CONSUL_GET_APP}           shell=yes
-    Log To Console                  Consul APP read:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    ${cli_cmd_output}=              Run Process             ${CBS_GET_MERGED_CONFIG}    shell=yes
-    Log To Console                  CBS merged configuration:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    Sleep                           10
-
-    ${cli_cmd_output}=              Run Process             ${DFC_ROOT}/dfc-start.sh   cwd=${DFC_ROOT}
-    Log To Console                  Dfc-start:
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-    Wait Until Keyword Succeeds     1 minute      10 sec    MR Sim Emitted Files Equal          1                       #Verify 1 file emitted from MR sim
-    Wait Until Keyword Succeeds     1 minute      10 sec    DR Sim Query Not Published Equal    1                       #Verify 1 query response for not published files
-    Wait Until Keyword Succeeds     1 minute      10 sec    DR Sim Published Files Equal        1                       #Verify 1 file published to DR sim
-    DR Redir Sim Downloaded Volume Equal          50 000 000                                                            #Verify 50 000 000 bytes published file data in DR redir sim
-
-    ${cli_cmd_output}=              Run Process             ${SIMGROUP_ROOT}/simulators-kill.sh
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-    ${cli_cmd_output}=              Run Process             ${DFC_ROOT}/dfc-kill.sh
-    Log To Console                  ${cli_cmd_output.stdout} ${cli_cmd_output.stderr}
-
-######### Single file, FTPS
-# Temporarily removed due to issues with the certificates for the ftsp server simulator cert.
-#Verify single event with single 1MB FTPS file. From event poll to published file
-#    [TAGS]                         DFC_FUNCTIONAL_10
-#    [Documentation]                Verify single event with single FTPS 1MB file from event poll to published file.
-#    ${cli_cmd_output}=             Run Process     ${DFC_ROOT}/../dfc-containers-clean.sh
-#    Set Environment Variable       MR_TC           --tc200
-#    Set Environment Variable       DR_TC           --tc normal
-#    Set Environment Variable       DR_REDIR_TC     --tc normal
-#    Set Environment Variable       NUM_FTPFILES    1
-#    Set Environment Variable       NUM_PNFS        1
-#    Set Environment Variable       FILE_SIZE       1MB
-#    Set Environment Variable       FTP_TYPE        FTPS
-#    ${cli_cmd_output}=             Run Process     ./simulators-start.sh    cwd=${SIMGROUP_ROOT}
-#    MR Sim Emitted Files Equal     0                                                                                   #Verify 0 file emitted from MR sim
-#    DR Sim Published Files Equal   0                                                                                   #Verify 0 file published to DR sim
-#    ${cli_cmd_output}=             Run Process        ${DFC_ROOT}/dfc-start.sh  cwd=${DFC_ROOT}
-#    Wait Until Keyword Succeeds    1 minute    10 sec    MR Sim Emitted Files Equal            1                       #Verify 1 file emitted from MR sim
-#    Wait Until Keyword Succeeds    1 minute    10 sec    DR Sim Query Not Published Equal      1                       #Verify 1 query response for not published files
-#    Wait Until Keyword Succeeds    1 minute    10 sec    DR Sim Published Files Equal          1                       #Verify 1 file published to DR sim
-#    DR Redir Sim Downloaded Volume Equal       1 000 000                                                               #Verify 1 000 000 bytes published file data in DR redir sim
-#    ${cli_cmd_output}=             Run Process     ${SIMGROUP_ROOT}/simulators-kill.sh
-#    ${cli_cmd_output}=             Run Process     ${DFC_ROOT}/dfc-kill.sh
-#
-#Verify single event with single 5MB FTPS file. From event poll to published file
-#    [TAGS]                         DFC_FUNCTIONAL_11
-#    [Documentation]                Verify single event with single FTPS 5MB file from event poll to published file.
-#    ${cli_cmd_output}=             Run Process     ${DFC_ROOT}/../dfc-containers-clean.sh
-#    Set Environment Variable       MR_TC           --tc201
-#    Set Environment Variable       DR_TC           --tc normal
-#    Set Environment Variable       DR_REDIR_TC     --tc normal
-#    Set Environment Variable       NUM_FTPFILES    1
-#    Set Environment Variable       NUM_PNFS        1
-#    Set Environment Variable       FILE_SIZE       5MB
-#    Set Environment Variable       FTP_TYPE        FTPS
-#    ${cli_cmd_output}=             Run Process     ./simulators-start.sh    cwd=${SIMGROUP_ROOT}
-#    MR Sim Emitted Files Equal     0                                                                                   #Verify 0 file emitted from MR sim
-#    DR Sim Published Files Equal   0                                                                                   #Verify 0 file published to DR sim
-#    ${cli_cmd_output}=             Run Process        ${DFC_ROOT}/dfc-start.sh  cwd=${DFC_ROOT}
-#    Wait Until Keyword Succeeds    1 minute    10 sec    MR Sim Emitted Files Equal            1                       #Verify 1 file emitted from MR sim
-#    Wait Until Keyword Succeeds    1 minute    10 sec    DR Sim Query Not Published Equal      1                       #Verify 1 query response for not published files
-#    Wait Until Keyword Succeeds    1 minute    10 sec    DR Sim Published Files Equal          1                       #Verify 1 file published to DR sim
-#    DR Redir Sim Downloaded Volume Equal       5 000 000                                                               #Verify 5 000 000 bytes published file data in DR redir sim
-#    ${cli_cmd_output}=             Run Process     ${SIMGROUP_ROOT}/simulators-kill.sh
-#    ${cli_cmd_output}=             Run Process     ${DFC_ROOT}/dfc-kill.sh
-#
-#Verify single event with single 50MB FTPS file. From event poll to published file
-#    [TAGS]                         DFC_FUNCTIONAL_12
-#    [Documentation]                Verify single event with single FTPS 50MB file from event poll to published file.
-#    ${cli_cmd_output}=             Run Process     ${DFC_ROOT}/../dfc-containers-clean.sh
-#    Set Environment Variable       MR_TC           --tc202
-#    Set Environment Variable       DR_TC           --tc normal
-#    Set Environment Variable       DR_REDIR_TC     --tc normal
-#    Set Environment Variable       NUM_FTPFILES    1
-#    Set Environment Variable       NUM_PNFS        1
-#    Set Environment Variable       FILE_SIZE       50MB
-#    Set Environment Variable       FTP_TYPE        FTPS
-#    ${cli_cmd_output}=             Run Process     ./simulators-start.sh    cwd=${SIMGROUP_ROOT}
-#    MR Sim Emitted Files Equal     0                                                                                   #Verify 0 file emitted from MR sim
-#    DR Sim Published Files Equal   0                                                                                   #Verify 0 file published to DR sim
-#    ${cli_cmd_output}=             Run Process        ${DFC_ROOT}/dfc-start.sh  cwd=${DFC_ROOT}
-#    Wait Until Keyword Succeeds    1 minute    10 sec    MR Sim Emitted Files Equal            1                       #Verify 1 file emitted from MR sim
-#    Wait Until Keyword Succeeds    1 minute    10 sec    DR Sim Query Not Published Equal      1                       #Verify 1 query response for not published files
-#    Wait Until Keyword Succeeds    1 minute    10 sec    DR Sim Published Files Equal          1                       #Verify 1 file published to DR sim
-#    DR Redir Sim Downloaded Volume Equal       50 000 000                                                              #Verify 50 000 000 bytes published file data in DR redir sim
-#    ${cli_cmd_output}=             Run Process     ${SIMGROUP_ROOT}/simulators-kill.sh
-#    ${cli_cmd_output}=             Run Process     ${DFC_ROOT}/dfc-kill.sh
-#
-
-*** Keywords ***
-
