diff --git a/robot-systest/lib/ns_lib.robot b/robot-systest/lib/ns_lib.robot
index a38a69e..49ac445 100644
--- a/robot-systest/lib/ns_lib.robot
+++ b/robot-systest/lib/ns_lib.robot
@@ -286,4 +286,18 @@
     ${rc}  ${stdout}=  Run and Return RC and Output  osm ns-show ${ns_name} --literal | yq ._admin.deployed.VCA[].application | tr -d \\"
     Should Be Equal As Integers  ${rc}  ${success_return_code}  msg=${stdout}  values=False
     @{app_names} =  Split String  ${stdout}
-    [Return]  ${app_names}
\ No newline at end of file
+    [Return]  ${app_names}
+
+
+Get VDU Affinity Group Name
+    [Documentation]   Return the affinity group name for a NF
+
+    [Arguments]   ${ns_name}   ${vnf_id}   ${vdur_id}
+
+    ${rc}   ${affinity_group_id}=   Run and Return RC and Output   osm vnf-show ${vnf_id} --literal | yq eval '.vdur[] | select(.id == "${vdur_id}") | .affinity-or-anti-affinity-group-id[0]' 2>&1
+    log   ${affinity_group_id}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}   msg=${affinity_group_id}   values=False
+    ${rc}   ${affinity_group_name}=   Run and Return RC and Output   osm ns-show ${ns_name} --literal | yq eval '.affinity-or-anti-affinity-group[] | select(.id == ${affinity_group_id}) | .name' 2>&1
+    log   ${affinity_group_name}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}   msg=${affinity_group_name}   values=False
+    [Return]   ${affinity_group_name}
diff --git a/robot-systest/lib/openstack_lib.robot b/robot-systest/lib/openstack_lib.robot
index c72892e..d544bb5 100644
--- a/robot-systest/lib/openstack_lib.robot
+++ b/robot-systest/lib/openstack_lib.robot
@@ -58,3 +58,48 @@
     Should Be Equal As Integers   ${rc}   ${success_return_code}
     [Return]  ${stdout}
 
+
+Get Server Property
+    [Documentation]     Get a field (flavor, image, volumes_attached, etc.) from a server.
+    [Arguments]    ${server_id}   ${field}
+
+    Should Not Be Empty   ${server_id}
+    Should Not Be Empty   ${field}
+    ${rc}   ${stdout}=   Run and Return RC and Output   openstack server show ${server_id} -c ${field} -f value
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
+
+
+Check VM In Server Group
+    [Documentation]   Check if a given server is included in an Openstack server group
+    [Arguments]   ${server_id}   ${server_group_name}
+
+    Should Not Be Empty   ${server_group_name}
+    Should Not Be Empty   ${server_id}
+    ${rc}   ${stdout}=   Run and Return RC and Output   openstack server group show ${server_group_name} -c members -f value
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    Should Contain   ${stdout}   ${server_id}
+
+
+Check If Volume Exists
+    [Documentation]     Checks if a volume id exists
+    [Arguments]    ${volume_id}
+
+    Should Not Be Empty   ${volume_id}
+    ${rc}   ${stdout}=   Run and Return RC and Output   openstack volume list | grep ${volume_id} | wc -l
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
+
+
+Delete Volume
+    [Documentation]     Delete a volume by its identifier
+    [Arguments]    ${volume_id}
+
+    Should Not Be Empty   ${volume_id}
+    ${rc}   ${stdout}=   Run and Return RC and Output   openstack volume delete ${volume_id}
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
diff --git a/robot-systest/lib/vnf_lib.robot b/robot-systest/lib/vnf_lib.robot
index eda7ff4..f58cd61 100644
--- a/robot-systest/lib/vnf_lib.robot
+++ b/robot-systest/lib/vnf_lib.robot
@@ -23,3 +23,29 @@
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
     [Return]  ${stdout}
+
+
+Get VDU list from VNF
+    [Documentation]   Return a list of the VDUr ids for a VNF
+
+    [Arguments]   ${vnf_id}
+
+    Should Not Be Empty   ${vnf_id}
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnf-show ${vnf_id} --literal | yq '.vdur[].id'
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}   msg=${stdout}   values=False
+    @{vdur_ids}=   Split String   ${stdout}
+    [Return]   @{vdur_ids}
+
+
+Get VDU VIM Id
+    [Documentation]   Return the VIM VM ID for a VDU
+
+    [Arguments]   ${vnf_id}   ${vdur_id}
+
+    Should Not Be Empty   ${vnf_id}
+    ${rc}   ${vm_vim_id}=   Run and Return RC and Output   osm vnf-show ${vnf_id} --literal | yq eval '.vdur[] | select(.id == "${vdur_id}") | .vim-id'
+    log   ${vm_vim_id}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}   msg=${vm_vim_id}   values=False
+    [Return]   ${vm_vim_id}
+
diff --git a/robot-systest/testsuite/basic_24-affinity_groups.robot b/robot-systest/testsuite/basic_24-affinity_groups.robot
new file mode 100644
index 0000000..11f34b1
--- /dev/null
+++ b/robot-systest/testsuite/basic_24-affinity_groups.robot
@@ -0,0 +1,110 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+*** Settings ***
+Documentation     [BASIC-24] VNF with two VDUs belonging to an Openstack server group
+
+Library   OperatingSystem
+Library   String
+Library   Collections
+Library   Process
+
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/vnf_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/openstack_lib.robot
+
+Force Tags   basic_24   cluster_main   daily   regression
+
+
+Suite Teardown   Run Keyword And Ignore Error   Suite Cleanup
+
+
+*** Variables ***
+# NS and VNF descriptor package folder and ids
+${vnfd_pkg}   affinity_basic_vnf
+${vnfd_name}   affinity_basic-vnf
+${nsd_pkg}   affinity_basic_ns
+${nsd_name}   affinity_basic-ns
+
+# NS instance name and configuration
+${ns_name}   basic_24
+${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
+
+# SSH keys and username to be used
+${publickey}   %{HOME}/.ssh/id_rsa.pub
+${privatekey}   %{HOME}/.ssh/id_rsa
+${username}   ubuntu
+${password}   ${EMPTY}
+
+${ns_id}   ${EMPTY}
+${vnf_member_index}   affinity-basic-1
+${success_return_code}   0
+
+*** Test Cases ***
+Create VNF Package
+
+    Create VNFD   '%{PACKAGES_FOLDER}/${vnfd_pkg}'
+
+
+Create NS Package
+
+    Create NSD   '%{PACKAGES_FOLDER}/${nsd_pkg}'
+
+
+Network Service Instance Test
+
+    ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}
+    Set Suite Variable   ${ns_id}   ${id}
+
+
+Check Vnf Affinity Groups
+
+    Variable Should Exist   ${ns_id}   msg=NS is not available
+    ${vnf_id}   Get Vnf Id   ${ns_id}   ${vnf_member_index}
+    @{vdur_id_list}   Get VDU list from VNF   ${vnf_id}
+    FOR   ${vdur_id}   IN   @{vdur_id_list}
+        ${server_group_name}   Get VDU Affinity Group Name   ${ns_name}   ${vnf_id}   ${vdur_id}
+        ${vm_vim_id}   Get VDU VIM Id   ${vnf_id}   ${vdur_id}
+        Check VM In Server Group   ${vm_vim_id}   ${server_group_name}
+    END
+
+
+Delete NS Instance Test
+    [Tags]   cleanup
+
+    Delete NS   ${ns_name}
+
+
+Delete NS Descriptor Test
+    [Tags]   cleanup
+
+    Delete NSD   ${nsd_name}
+
+
+Delete VNF Descriptor Test
+    [Tags]   cleanup
+
+    Delete VNFD   ${vnfd_name}
+
+
+*** Keywords ***
+Suite Cleanup
+    [Documentation]  Test Suit Cleanup: Deleting Descriptor, instance and vim
+
+    Run Keyword If Any Tests Failed   Delete NS   ${ns_name}
+
+    Run Keyword If Any Tests Failed   Delete NSD   ${nsd_name}
+
+    Run Keyword If Any Tests Failed   Delete VNFD   ${vnfd_name}
+
