diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh
index 205a600..b3074b3 100755
--- a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh
+++ b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh
@@ -2,3 +2,4 @@
 
 docker exec -i dfc_app0 cat /var/log/ONAP/application.log
 docker kill dfc_app0
+docker rm dfc_app0
diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml b/scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml
index 9e15ccf..02e0eb6 100644
--- a/scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml
+++ b/scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml
@@ -15,6 +15,8 @@
       - "8433:8433"
     networks:
       dfcnet: null
+    volumes:
+      - $SIMGROUP_ROOT/tls/:/opt/app/datafile/etc/cert/
     environment:
       CONSUL_HOST: "consul-server"
       CONSUL_PORT: 8500
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 ***
-
