From b00741383c3c4ef8fa23b76bbd730119102d2b51 Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 2 Jul 2025 17:52:14 +0200 Subject: [PATCH 01/28] Updated TCs of MEC011v3.3.1 specification. --- MEC011/SRV/APPSAQ/PlatAppServices.robot | 70 +-- MEC011/SRV/APPSUB/PlatAppSubscriptions.robot | 32 +- MEC011/SRV/CAPIF/MecProfileCapif.robot | 539 ++++++++++++++++++ MEC011/SRV/CAPIF/environment/variables.txt | 24 + ...tConfirmation.robot => ConfirmTasks.robot} | 24 +- MEC011/SRV/DNS/PlatDnsRules.robot | 48 +- MEC011/SRV/MLS/Liveness.robot | 36 +- ...gApps.robot => RegisterAppsServices.robot} | 86 +-- MEC011/SRV/SAQ/PlatServices.robot | 24 +- MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot | 48 +- MEC011/SRV/TIME/PlatTiming.robot | 12 +- MEC011/SRV/TRAF/PlatTrafficRules.robot | 48 +- MEC011/SRV/TRANS/PlatTransport.robot | 6 +- 13 files changed, 780 insertions(+), 217 deletions(-) create mode 100644 MEC011/SRV/CAPIF/MecProfileCapif.robot create mode 100644 MEC011/SRV/CAPIF/environment/variables.txt rename MEC011/SRV/CONFTASK/{PlatConfirmation.robot => ConfirmTasks.robot} (87%) rename MEC011/SRV/REGAPPS/{RegApps.robot => RegisterAppsServices.robot} (79%) diff --git a/MEC011/SRV/APPSAQ/PlatAppServices.robot b/MEC011/SRV/APPSAQ/PlatAppServices.robot index 7781340..f1afa13 100644 --- a/MEC011/SRV/APPSAQ/PlatAppServices.robot +++ b/MEC011/SRV/APPSAQ/PlatAppServices.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_APPSAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -36,9 +36,9 @@ TC_MEC_MEC011_SRV_APPSAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI G3.2.1 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.1 + ... Reference ETSI G3.3.1 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES # Wrong query parameter name should trigger an error response. Get a list of mecService of an application instance with parameters ${APP_INSTANCE_ID} ${INSTANCE_ID} ${FAKE_INSTANCE_ID_VALUE} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_OK ... Check that the IUT notifies the authorised relevant (subscribed) application ... instances when a new service for a given application instance is registered ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -70,9 +70,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create new service ServiceInfoError ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 400 @@ -83,9 +83,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${NON_EXISTENT_APP_INSTANCE_ID} ${SERVICE_ID} Create new service ServiceInfo ${NON_EXISTENT_APP_INSTANCE_ID} @@ -97,9 +97,9 @@ TC_MEC_MEC011_SRV_APPSAQ_003_OK ... Check that the IUT responds with the information on a specific service ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -115,9 +115,9 @@ TC_MEC_MEC011_SRV_APPSAQ_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${NON_EXISTENT_APP_INSTANCE_ID} ${SERVICE_ID} Get individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} @@ -129,9 +129,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_OK ... Check that the IUT updates a service information for a given ... application instance when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.4, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -147,9 +147,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.4, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -163,9 +163,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.4, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Update service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} ServiceInfoUpdated @@ -177,9 +177,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.4, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -193,7 +193,7 @@ TC_MEC_MEC011_SRV_APPSAQ_005_OK ... Check that the IUT executes the deletion of a service ... for a given application instance when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 8.2.7.3.5 + ... Reference ETSI GS MEC 011 3.3.1, clause 8.2.7.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -206,7 +206,7 @@ TC_MEC_MEC011_SRV_APPSAQ_005_NF ... Check that the IUT responds with an error when ... a request for deletion of a unknown service is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 8.2.7.3.5 + ... Reference ETSI GS MEC 011 3.3.1, clause 8.2.7.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} diff --git a/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot b/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot index 80e7e90..964998f 100644 --- a/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot +++ b/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot @@ -18,8 +18,8 @@ TC_MEC_MEC011_SRV_APPSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.3.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -35,8 +35,8 @@ TC_MEC_MEC011_SRV_APPSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.3.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUB_ID} Get Subscriptions list ${NON_EXISTENT_APP_INSTANCE_ID} @@ -48,8 +48,8 @@ TC_MEC_MEC011_SRV_APPSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.3.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription @@ -69,8 +69,8 @@ TC_MEC_MEC011_SRV_APPSUB_002_BR ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.3.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscriptionBR Check HTTP Response Status Code Is 400 @@ -81,8 +81,8 @@ TC_MEC_MEC011_SRV_APPSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.4.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -98,8 +98,8 @@ TC_MEC_MEC011_SRV_APPSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.4.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -111,8 +111,8 @@ TC_MEC_MEC011_SRV_APPSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.4.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -126,8 +126,8 @@ TC_MEC_MEC011_SRV_APPSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.4.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID} Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot new file mode 100644 index 0000000..edfcc16 --- /dev/null +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -0,0 +1,539 @@ +*** Settings *** + +Documentation +... A test suite for validating Common API Framework (CAPIF) operations. + +Resource ../../../GenericKeywords.robot +Resource environment/variables_sandbox.txt +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem + +Default Tags TC_MEC_SRV_TRANS + + +*** Test Cases *** +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_01 + [Documentation] + ... Check that the IUT responds with all service APIs when + ... queried by a MEC Application - No filter + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get all services APIs + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_02 + [Documentation] + ... Check that the IUT responds with all service APIs when + ... queried by a MEC Application - Filter on apiName + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params apiName=${API_NAME_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[apiName] ${API_NAME_QUERY_PARAM} + END + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_03 + [Documentation] + ... Check that the IUT responds with all service APIs when + ... queried by a MEC Application - Filter on apiId + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params apiId=${API_ID_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[apiId] ${API_ID_QUERY_PARAM} + END + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_04 + [Documentation] + ... Check that the IUT responds with all service APIs when + ... queried by a MEC Application - Filter on apiId and apiName + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params apiId=${API_ID_QUERY_PARAM}&apiName=${API_NAME_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[apiId] ${API_ID_QUERY_PARAM} + Should Be Equal As Strings ${element}[apiName] ${API_NAME_QUERY_PARAM} + END + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_BR + [Documentation] + ... Check that the IUT responds with an error + ... when applying a malformed filter + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params badQueryParam=${API_ID_QUERY_PARAM} + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_NF + [Documentation] + ... Check that the IUT responds with an error + ... when applying a filter on an unknown apiName + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params apiName=${UNKNOWN_MEC_SRV_SER_NAME} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_OK + [Documentation] + ... Check that the IUT responds with all service APIs + ... for a specific apfId when queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published services APIs ${MEC_SRV_INSTANCE_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[apiId] ${MEC_SRV_INSTANCE_ID} + END + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_NF + [Documentation] + ... Check that the IUT responds with an error when + ... applying a filter on an unknown apfId + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published services APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} + Check HTTP Response Status Code Is 404 + + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_OK + [Documentation] + ... Check that the IUT acknowledges the publishing of a new API when + ... queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is ServiceApiDescription + ${MEC_SRV_SER_NAME} Get value entry from JSON file ServiceApiDescription apiName + Check Response Contains ${response['body']} apiId ${MEC_SRV_SER_INSTANCE_ID} + Check Response Contains ${response['body']} apiName ${MEC_SRV_SER_NAME} + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_BR + [Documentation] + ... Check that the IUT responds with an error when incorrect parameters were sent by a MEC + ... Application - supportedFeatures shall be present + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0", + ... "ETSI GS MEC 011 3.3.1, clause 9.1.2.2", + ... "ETSI GS MEC 011 3.3.1, clause 9.2.4.3.4", + ... "ETSI TS 129 222 V18.6.0 (2024-07), Table 8.2.4.2.2-1: Definition of type ServiceAPIDescription + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescriptionBR + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_OK + [Documentation] + ... Check that the IUT responds with a serviceAPIDescription + ... when queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescription + Check Response Contains ${response['body']} apiId ${SERVICE_API_ID} + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_01 + [Documentation] + ... Check that the IUT responds with an error when + ... applying a filter on an unknown apfId + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_02 + [Documentation] + ... Check that the IUT responds with an error + ... when applying a filter on an unknown serviceApiId + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF + [Documentation] + ... Check that the IUT responds with an error + ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update published APIs wrong HTTP method ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK + [Documentation] + ... Check that the IUT changes the publishing of a new API + ... when queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.3, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.3 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescription + ${MEC_SRV_SER_NAME} Get value entry from JSON file ServiceApiDescription apiName + Check Response Contains ${response['body']} apiId ${MEC_SRV_SER_INSTANCE_ID} + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF + [Documentation] + ... Check that the IUT responds with an error + ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.3, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.3 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate + Check HTTP Response Status Code Is 404 + + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK + [Documentation] + ... Check that the IUT acknowledges the removing of a published API + ... when queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.5 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Remove published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} + Check HTTP Response Status Code Is 204 + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF + [Documentation] + ... Check that the IUT responds with an error + ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.5 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Remove published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK + [Documentation] + ... Check that the IUT acknowledges the publishing of a new API when + ... queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create CAPIF subscription ${MEC_SRV_INSTANCE_ID} eventSubscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF + [Documentation] + ... Check that the IUT responds with an error + ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create CAPIF subscription ${UNKNOWN_MEC_SRV_INSTANCE_ID} eventSubscription + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK + [Documentation] + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF + [Documentation] + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK + [Documentation] + ... Check that the IUT acknowledges the changes of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionPatch + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF + [Documentation] + ... Check that the IUT acknowledges the changes of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionPatch + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_OK + [Documentation] + ... Check that the IUT acknowledges the cancellation of a CAPIF subscription + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Delete existing CAPIF subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_NF + [Documentation] + ... Check that the IUT responds with an error + ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Delete existing CAPIF subscription ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + +*** Keywords *** +Get all services APIs + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Get ${apiRoot}/${apiName}/${apiVersion}/allServiceAPIs + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Get services APIs with query params + [Arguments] ${query_params} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Get ${apiRoot}/${apiName}/${apiVersion}/allServiceAPIs?${query_params} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Get published services APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Get ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Publish new APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Post ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Get published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Post ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update published APIs wrong HTTP method + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Put ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Patch ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Remove published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + + Delete ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Create CAPIF subscription + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + Post ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Replace existing CAPIF subscription + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + Put ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Modify existing CAPIF subscription + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + Patch ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + +Modify existing CAPIF subscription + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Delete ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/environment/variables.txt b/MEC011/SRV/CAPIF/environment/variables.txt new file mode 100644 index 0000000..22d2b3d --- /dev/null +++ b/MEC011/SRV/CAPIF/environment/variables.txt @@ -0,0 +1,24 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} service-apis +${publApiName} published-apis +${capifSubApiName} capif-events +${apiVersion} v1 + +# Specific variables +${API_NAME_QUERY_PARAM} mec015-1 +${API_ID_QUERY_PARAM} mec015-1 +${UNKNOWN_MEC_SRV_SER_NAME} UNKNOWN_MEC_SRV_SER_NAME +${MEC_SRV_INSTANCE_ID} MEC_SRV_SER_INSTANCE_ID +${NOT_EXISTING_MEC_SRV_INSTANCE_ID} NOT_EXISTING_MEC_SRV_INSTANCE_ID +${SERVICE_API_ID} SERVICE_API_ID +${UNKNOWN_SERVICE_API_ID} UNKNOWN_SERVICE_API_ID +${UNKNOWN_MEC_SRV_INSTANCE_ID} UNKNOWN_MEC_SRV_INSTANCE_ID +${SUBSCRIPTION_ID} SUBSCRIPTION_ID +${UNKNOWN_SUBSCRIPTION_ID} UNKNOWN_SUBSCRIPTION_ID diff --git a/MEC011/SRV/CONFTASK/PlatConfirmation.robot b/MEC011/SRV/CONFTASK/ConfirmTasks.robot similarity index 87% rename from MEC011/SRV/CONFTASK/PlatConfirmation.robot rename to MEC011/SRV/CONFTASK/ConfirmTasks.robot index cc52e8b..f0827fc 100644 --- a/MEC011/SRV/CONFTASK/PlatConfirmation.robot +++ b/MEC011/SRV/CONFTASK/ConfirmTasks.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_CONFTASK_001_OK ... Check that the IUT responds that it has completed ... the application level termination ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Request termination of MEC Application ${APP_INSTANCE_ID} AppTerminationConfirmation @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_CONFTASK_001_NF ... Check that the IUT responds with an error ... when requested graceful termination/stop of an unknown MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Teardown] Delete MEC application instance profile ${NON_EXISTING_APP_INSTANCE_ID} Request termination of MEC Application ${NON_EXISTING_APP_INSTANCE_ID} AppTerminationConfirmation @@ -49,9 +49,9 @@ TC_MEC_MEC011_SRV_CONFTASK_002_OK ... Check that the IUT responds with an acknowledge ... when requested readiness status for a MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Request readiness status of MEC Application ${APP_INSTANCE_ID} AppReadyConfirmation @@ -64,9 +64,9 @@ TC_MEC_MEC011_SRV_CONFTASK_002_NF ... Check that the IUT responds with an error ... when requested readiness status for an unknown MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NON_EXISTING_APP_INSTANCE_ID} Request readiness status of MEC Application ${NON_EXISTING_APP_INSTANCE_ID} AppReadyConfirmation diff --git a/MEC011/SRV/DNS/PlatDnsRules.robot b/MEC011/SRV/DNS/PlatDnsRules.robot index 6776a15..1bf39a4 100644 --- a/MEC011/SRV/DNS/PlatDnsRules.robot +++ b/MEC011/SRV/DNS/PlatDnsRules.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_DNS_001_OK ... Check that the IUT responds with a list of active DNS rules ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.9.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Get list of active DNS rules ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_DNS_001_NF ... Check that the IUT responds with a list of active DNS rules ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.9.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTENT_APP_INSTANCE_ID} Get list of active DNS rules ${NOT_EXISTENT_APP_INSTANCE_ID} @@ -49,9 +49,9 @@ TC_MEC_MEC011_SRV_DNS_002_OK ... Check that the IUT responds with the information on a specific DNS rule ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Get individual DNS rule ${APP_INSTANCE_ID} ${DNS_RULE_ID} @@ -66,9 +66,9 @@ TC_MEC_MEC011_SRV_DNS_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual DNS rule ${APP_INSTANCE_ID} ${NON_ESISTENT_DNS_RULE_ID} Check HTTP Response Status Code Is 404 @@ -79,9 +79,9 @@ TC_MEC_MEC011_SRV_DNS_003_OK ... Check that the IUT responds with the information on a specific DNS rule ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Update a DNS Rule ${APP_INSTANCE_ID} ${DNS_RULE_ID} DnsRuleUpdate @@ -97,9 +97,9 @@ TC_MEC_MEC011_SRV_DNS_003_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -113,9 +113,9 @@ TC_MEC_MEC011_SRV_DNS_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -130,9 +130,9 @@ TC_MEC_MEC011_SRV_DNS_003_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Update a DNS Rule with invalid etag ${APP_INSTANCE_ID} ${DNS_RULE_ID} DnsRuleUpdate diff --git a/MEC011/SRV/MLS/Liveness.robot b/MEC011/SRV/MLS/Liveness.robot index 6f3906f..2b070ee 100644 --- a/MEC011/SRV/MLS/Liveness.robot +++ b/MEC011/SRV/MLS/Liveness.robot @@ -14,9 +14,9 @@ TC_MEC_MEC011_SRV_MSL_001_OK [Documentation] ... Check that the IUT responds with the liveness of a MEC service instance ... when queried by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.4", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.4", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Individual MEC service liveness ${LIVENESS_URI} @@ -30,9 +30,9 @@ TC_MEC_MEC011_SRV_MSL_001_NF ... Check that the IUT responds with an error when ... a request for an URI that cannot be mapped to a valid resource URI ... is sent by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.4", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.4", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES Individual MEC service liveness ${NOT_EXISTING_URL_SERVICE_MEC_LIVENESS} Check HTTP Response Status Code Is 404 @@ -42,9 +42,9 @@ TC_MEC_MEC011_SRV_MSL_002_OK_01 [Documentation] ... Check that the IUT updates the liveness of a MEC service instance ... when requested by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdate .json @@ -61,9 +61,9 @@ TC_MEC_MEC011_SRV_MSL_002_OK_02 [Documentation] ... Check that the IUT updates the liveness of a MEC service instance ... when requested by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdate .json @@ -76,9 +76,9 @@ TC_MEC_MEC011_SRV_MSL_002_BR [Documentation] ... Check that the IUT responds with an error when ... incorrect parameters were sent by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} @@ -93,9 +93,9 @@ TC_MEC_MEC011_SRV_MSL_002_NF ... Check that the IUT responds with an error when ... a request for an URI that cannot be mapped to a valid ... resource URI is sent by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdateError .json diff --git a/MEC011/SRV/REGAPPS/RegApps.robot b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot similarity index 79% rename from MEC011/SRV/REGAPPS/RegApps.robot rename to MEC011/SRV/REGAPPS/RegisterAppsServices.robot index f6fcace..1326ea2 100644 --- a/MEC011/SRV/REGAPPS/RegApps.robot +++ b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_01 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo Check HTTP Response Status Code Is 201 @@ -35,9 +35,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_02 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo2 ${APP_INSTANCE_ID_REQ} Get value entry from JSON file AppInfo2 appInstanceId @@ -55,9 +55,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_03 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo3 ${APP_INSTANCE_ID_REQ} Get value entry from JSON file AppInfo3 appInstanceId @@ -78,9 +78,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_01 ... Check that the IUT responds with an error message when the IUT received a registration with ... missing fields from a MEC Application instantiated by the MEC platform ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR1 Check HTTP Response Status Code Is 400 @@ -91,9 +91,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_02 ... Check that the IUT responds with an error message ... when the IUT received by a MEC Application registration with missing endpoint ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR2 Check HTTP Response Status Code Is 400 @@ -104,9 +104,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_03 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appServiceRequired ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR3 Check HTTP Response Status Code Is 400 @@ -117,9 +117,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_04 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appServiceRequired ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR4 Check HTTP Response Status Code Is 400 @@ -130,9 +130,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_05 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appFeatureRequired ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR5 @@ -144,9 +144,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_06 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appFeatureOptional ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR6 @@ -159,9 +159,9 @@ TC_MEC_MEC011_SRV_REGAPPS_002_OK ... Check that the IUT responds with the AppInfo description ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -177,9 +177,9 @@ TC_MEC_MEC011_SRV_REGAPPS_002_NF ... Check that the IUT responds with an error ... when it receives a request for returning an AppInfo with a wrong ID ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} @@ -193,9 +193,9 @@ TC_MEC_MEC011_SRV_REGAPPS_003_OK ... Check that the IUT responds with 204 No Content ... when queried to update MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -211,7 +211,7 @@ TC_MEC_MEC011_SRV_REGAPPS_003_NF ... Check that the IUT responds with 204 No Content ... when queried to update MEC Application registration ... - ... Reference ETSI GS MEC 011 3.2.1, clause 7.2.14.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 7.2.14.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} @@ -225,9 +225,9 @@ TC_MEC_MEC011_SRV_REGAPPS_004_OK ... Check that the IUT responds with 204 No Content ... when queried to delete an existing MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -242,9 +242,9 @@ TC_MEC_MEC011_SRV_REGAPPS_004_NF ... Check that the IUT responds with an error when queried to ... delete an unknown MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} diff --git a/MEC011/SRV/SAQ/PlatServices.robot b/MEC011/SRV/SAQ/PlatServices.robot index afe9b9f..afaf846 100644 --- a/MEC011/SRV/SAQ/PlatServices.robot +++ b/MEC011/SRV/SAQ/PlatServices.robot @@ -16,9 +16,9 @@ TC_MEC_MEC011_SRV_SAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.5", - ... Reference "ETSI GS MEC 011 3.2.1, clause 8.1.2.2", - ... Reference "ETSI GS MEC 011 3.2.1, clause 8.2.3.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.5", + ... Reference "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", + ... Reference "ETSI GS MEC 011 3.3.1, clause 8.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_SAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.5", - ... Reference "ETSI GS MEC 011 3.2.1, clause 8.1.2.2", - ... Reference "ETSI GS MEC 011 3.2.1, clause 8.2.3.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.5", + ... Reference "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", + ... Reference "ETSI GS MEC 011 3.3.1, clause 8.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_SAQ_002_OK ... Check that the IUT responds with the information on a specific service ... when queried by a MEC Application ... - ... "ETSI GS MEC 011 3.2.1, clause 5.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.2", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.4.3.1" + ... "ETSI GS MEC 011 3.3.1, clause 5.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} ${SER_NAME} Get value entry from JSON file ServiceInfo serName @@ -67,9 +67,9 @@ TC_MEC_MEC011_SRV_SAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... "ETSI GS MEC 011 3.2.1, clause 5.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.2", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.4.3.1" + ... "ETSI GS MEC 011 3.3.1, clause 5.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [TearDown] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Get specific MEC service ${NON_EXISTENT_SERVICE_ID} diff --git a/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot b/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot index 405a2c2..fe25c15 100644 --- a/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot +++ b/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_SRVSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.8.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Get list of subscriptions ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_SRVSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.8.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove MEC application ${NON_EXISTENT_INSTANCE_ID} @@ -47,9 +47,9 @@ TC_MEC_MEC011_SRV_SRVSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.8.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo @@ -69,9 +69,9 @@ TC_MEC_MEC011_SRV_SRVSUB_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.8.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Create a new subscription ${APP_INSTANCE_ID} SerAvailabilityNotificationSubscriptionError @@ -84,9 +84,9 @@ TC_MEC_MEC011_SRV_SRVSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.9.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Get individual subscription ${APP_INSTANCE_ID} ${SUB_ID} @@ -103,9 +103,9 @@ TC_MEC_MEC011_SRV_SRVSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.9.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -117,9 +117,9 @@ TC_MEC_MEC011_SRV_SRVSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.9.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Remove subscription ${APP_INSTANCE_ID} ${SUB_ID} @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_SRVSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.9.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [TearDown] Remove MEC application ${NON_EXISTENT_INSTANCE_ID} Remove subscription ${NON_EXISTENT_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/MEC011/SRV/TIME/PlatTiming.robot b/MEC011/SRV/TIME/PlatTiming.robot index f18f776..f024bb6 100644 --- a/MEC011/SRV/TIME/PlatTiming.robot +++ b/MEC011/SRV/TIME/PlatTiming.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_TIME_001_OK [Documentation] ... Check that the IUT responds with timing capabilities ... when queried by a MEC Application - ... ETSI GS MEC 011 3.2.1, clause 5.2.10.3, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.4, - ... ETSI GS MEC 011 3.2.1, clause 7.2.5.3.1 + ... ETSI GS MEC 011 3.3.1, clause 5.2.10.3, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.4, + ... ETSI GS MEC 011 3.3.1, clause 7.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get time capabilities Check HTTP Response Status Code Is 200 @@ -32,9 +32,9 @@ TC_MEC_MEC011_SRV_TIME_002_OK [Documentation] ... Check that the IUT responds with current time ... when queried by a MEC Application - ... ETSI GS MEC 011 3.2.1, clause 5.2.10.2, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.5, - ... ETSI GS MEC 011 3.2.1, clause 7.2.5.3.1 + ... ETSI GS MEC 011 3.3.1, clause 5.2.10.2, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.5, + ... ETSI GS MEC 011 3.3.1, clause 7.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get current time diff --git a/MEC011/SRV/TRAF/PlatTrafficRules.robot b/MEC011/SRV/TRAF/PlatTrafficRules.robot index af69463..ac781b1 100644 --- a/MEC011/SRV/TRAF/PlatTrafficRules.robot +++ b/MEC011/SRV/TRAF/PlatTrafficRules.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_TRAF_001_OK ... when queried by a MEC Application ... ... Reference - ... ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.7.3.1 + ... ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo @@ -36,9 +36,9 @@ TC_MEC_MEC011_SRV_TRAF_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.7.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove MEC application ${NON_EXISTENT_APP_INSTANCE_ID} @@ -51,9 +51,9 @@ TC_MEC_MEC011_SRV_TRAF_002_OK ... Check that the IUT responds with the information on a specific traffic rule ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Get individual traffic rule ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} @@ -68,9 +68,9 @@ TC_MEC_MEC011_SRV_TRAF_002_NF ... Check that the IUT responds with an error when a request for an unknown traffic rule ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual traffic rule ${APP_INSTANCE_ID} ${NON_EXISTENT_TRAFFIC_RULE_ID} @@ -83,9 +83,9 @@ TC_MEC_MEC011_SRV_TRAF_003_OK ... Check that the IUT updates a specific traffic rule ... when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo ${TRAFFIC_RULE_ID} Get value entry from JSON file TrafficRuleUpdate trafficRuleId @@ -101,9 +101,9 @@ TC_MEC_MEC011_SRV_TRAF_003_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} TrafficRuleUpdateError @@ -116,9 +116,9 @@ TC_MEC_MEC011_SRV_TRAF_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7", - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2", - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7", + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2", + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule ${APP_INSTANCE_ID} ${NON_EXISTENT_TRAFFIC_RULE_ID} TrafficRuleUpdate @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_TRAF_003_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule with invalid etag ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} TrafficRuleUpdate diff --git a/MEC011/SRV/TRANS/PlatTransport.robot b/MEC011/SRV/TRANS/PlatTransport.robot index e2917b5..f95e42a 100644 --- a/MEC011/SRV/TRANS/PlatTransport.robot +++ b/MEC011/SRV/TRANS/PlatTransport.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_TRANS_001_OK ... Check that the IUT responds with a list of available transports ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.9, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.3, - ... ETSI GS MEC 011 3.2.1, clause 8.2.5.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.9, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.3, + ... ETSI GS MEC 011 3.3.1, clause 8.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of available transports -- GitLab From dc4d1cf4fad1220bf0e7c09bb6b4ef178a267d97 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 10:41:03 +0200 Subject: [PATCH 02/28] Fixes on pipeline errors for MEC011 TCs --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index edfcc16..0c0f7e8 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -4,7 +4,7 @@ Documentation ... A test suite for validating Common API Framework (CAPIF) operations. Resource ../../../GenericKeywords.robot -Resource environment/variables_sandbox.txt +Resource environment/variables.txt Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem @@ -529,7 +529,7 @@ Modify existing CAPIF subscription -Modify existing CAPIF subscription +Delete existing CAPIF subscription [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} -- GitLab From e163ee4120898cf81f8d354dac55bf7b0660e38f Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 11:10:50 +0200 Subject: [PATCH 03/28] Fixes on MEC011 TCs. --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 160 ++++++++++++------------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 0c0f7e8..e37b2b6 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_01 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - No filter ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get all services APIs @@ -32,9 +32,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_02 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiName ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiName=${API_NAME_QUERY_PARAM} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_03 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiId ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiId=${API_ID_QUERY_PARAM} @@ -68,9 +68,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_04 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiId and apiName ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiId=${API_ID_QUERY_PARAM}&apiName=${API_NAME_QUERY_PARAM} @@ -86,9 +86,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_BR ... Check that the IUT responds with an error ... when applying a malformed filter ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params badQueryParam=${API_ID_QUERY_PARAM} @@ -100,9 +100,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_NF ... Check that the IUT responds with an error ... when applying a filter on an unknown apiName ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiName=${UNKNOWN_MEC_SRV_SER_NAME} @@ -114,9 +114,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_OK ... Check that the IUT responds with all service APIs ... for a specific apfId when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published services APIs ${MEC_SRV_INSTANCE_ID} @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_NF ... Check that the IUT responds with an error when ... applying a filter on an unknown apfId ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published services APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} @@ -146,9 +146,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_OK ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.4.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescription @@ -164,9 +164,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_BR ... Check that the IUT responds with an error when incorrect parameters were sent by a MEC ... Application - supportedFeatures shall be present ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0", - ... "ETSI GS MEC 011 3.3.1, clause 9.1.2.2", - ... "ETSI GS MEC 011 3.3.1, clause 9.2.4.3.4", + ... Reference ETSI GS MEC 011, clause 9.0", + ... "ETSI GS MEC 011, clause 9.1.2.2", + ... "ETSI GS MEC 011, clause 9.2.4.3.4", ... "ETSI TS 129 222 V18.6.0 (2024-07), Table 8.2.4.2.2-1: Definition of type ServiceAPIDescription [Tags] PIC_MEC_PLAT PIC_SERVICES @@ -179,9 +179,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_OK ... Check that the IUT responds with a serviceAPIDescription ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -195,9 +195,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_01 ... Check that the IUT responds with an error when ... applying a filter on an unknown apfId ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -208,9 +208,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_02 ... Check that the IUT responds with an error ... when applying a filter on an unknown serviceApiId ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -222,9 +222,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.2 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs wrong HTTP method ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -236,9 +236,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK ... Check that the IUT changes the publishing of a new API ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.3, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.3 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.3, + ... ETSI GS MEC 011, clause 9.2.5.3.3 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate @@ -253,9 +253,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.3, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.3 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.3, + ... ETSI GS MEC 011, clause 9.2.5.3.3 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate @@ -268,9 +268,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK ... Check that the IUT acknowledges the removing of a published API ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.5 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -281,9 +281,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.5 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -295,9 +295,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create CAPIF subscription ${MEC_SRV_INSTANCE_ID} eventSubscription @@ -310,9 +310,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create CAPIF subscription ${UNKNOWN_MEC_SRV_INSTANCE_ID} eventSubscription @@ -324,9 +324,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK ... Check that the IUT acknowledges the update of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate @@ -339,9 +339,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF ... Check that the IUT acknowledges the update of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate @@ -353,9 +353,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK ... Check that the IUT acknowledges the changes of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionPatch @@ -368,9 +368,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF ... Check that the IUT acknowledges the changes of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionPatch @@ -383,12 +383,12 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_OK ... Check that the IUT acknowledges the cancellation of a CAPIF subscription ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES - Delete existing CAPIF subscription ${SUBSCRIPTION_ID} + Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 @@ -397,12 +397,12 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES - Delete existing CAPIF subscription ${UNKNOWN_SUBSCRIPTION_ID} + Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 -- GitLab From d7e0239c979c415aa88d6255a07a1978cee60d87 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 11:12:27 +0200 Subject: [PATCH 04/28] Minor --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 158 ++++++++++++------------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index e37b2b6..4b6751d 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_01 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - No filter ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get all services APIs @@ -32,9 +32,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_02 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiName ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiName=${API_NAME_QUERY_PARAM} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_03 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiId ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiId=${API_ID_QUERY_PARAM} @@ -68,9 +68,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_04 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiId and apiName ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiId=${API_ID_QUERY_PARAM}&apiName=${API_NAME_QUERY_PARAM} @@ -86,9 +86,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_BR ... Check that the IUT responds with an error ... when applying a malformed filter ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params badQueryParam=${API_ID_QUERY_PARAM} @@ -100,9 +100,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_NF ... Check that the IUT responds with an error ... when applying a filter on an unknown apiName ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiName=${UNKNOWN_MEC_SRV_SER_NAME} @@ -114,9 +114,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_OK ... Check that the IUT responds with all service APIs ... for a specific apfId when queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.4.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published services APIs ${MEC_SRV_INSTANCE_ID} @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_NF ... Check that the IUT responds with an error when ... applying a filter on an unknown apfId ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.4.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published services APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} @@ -146,9 +146,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_OK ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.4.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.4.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescription @@ -164,10 +164,10 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_BR ... Check that the IUT responds with an error when incorrect parameters were sent by a MEC ... Application - supportedFeatures shall be present ... - ... Reference ETSI GS MEC 011, clause 9.0", - ... "ETSI GS MEC 011, clause 9.1.2.2", - ... "ETSI GS MEC 011, clause 9.2.4.3.4", - ... "ETSI TS 129 222 V18.6.0 (2024-07), Table 8.2.4.2.2-1: Definition of type ServiceAPIDescription + ... Reference ETSI GS MEC 011 clause 9.0" + ... "ETSI GS MEC 011 clause 9.1.2.2" + ... "ETSI GS MEC 011 clause 9.2.4.3.4" + ... "ETSI TS 129 222 V18.6.0 (2024-07) Table 8.2.4.2.2-1: Definition of type ServiceAPIDescription [Tags] PIC_MEC_PLAT PIC_SERVICES Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescriptionBR @@ -179,9 +179,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_OK ... Check that the IUT responds with a serviceAPIDescription ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -195,9 +195,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_01 ... Check that the IUT responds with an error when ... applying a filter on an unknown apfId ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -208,9 +208,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_02 ... Check that the IUT responds with an error ... when applying a filter on an unknown serviceApiId ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -222,9 +222,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.2 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs wrong HTTP method ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -236,9 +236,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK ... Check that the IUT changes the publishing of a new API ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.3, - ... ETSI GS MEC 011, clause 9.2.5.3.3 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.3 + ... ETSI GS MEC 011 clause 9.2.5.3.3 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate @@ -253,9 +253,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.3, - ... ETSI GS MEC 011, clause 9.2.5.3.3 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.3 + ... ETSI GS MEC 011 clause 9.2.5.3.3 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate @@ -268,9 +268,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK ... Check that the IUT acknowledges the removing of a published API ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.5 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -281,9 +281,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.5 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -295,9 +295,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create CAPIF subscription ${MEC_SRV_INSTANCE_ID} eventSubscription @@ -310,9 +310,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create CAPIF subscription ${UNKNOWN_MEC_SRV_INSTANCE_ID} eventSubscription @@ -324,9 +324,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK ... Check that the IUT acknowledges the update of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate @@ -339,9 +339,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF ... Check that the IUT acknowledges the update of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate @@ -353,9 +353,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK ... Check that the IUT acknowledges the changes of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionPatch @@ -368,9 +368,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF ... Check that the IUT acknowledges the changes of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionPatch @@ -383,9 +383,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_OK ... Check that the IUT acknowledges the cancellation of a CAPIF subscription ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} @@ -397,9 +397,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_NF ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} -- GitLab From 8c02ded5dcc7cbd6e6d1432af198bf6b75296f7f Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:19:47 +0200 Subject: [PATCH 05/28] First version of TCs for MEC045 related to Event subscription of QoS --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 270 ++++++++++++++++++ MEC045/EVENTSUBNOT/environment/variables.txt | 15 + MEC045/EVENTSUBNOT/libraries/Server.py | 52 ++++ .../EVENTSUBNOT/libraries/StressGenerator.py | 37 +++ 4 files changed, 374 insertions(+) create mode 100644 MEC045/EVENTSUBNOT/QoSEventSubNot.robot create mode 100644 MEC045/EVENTSUBNOT/environment/variables.txt create mode 100644 MEC045/EVENTSUBNOT/libraries/Server.py create mode 100644 MEC045/EVENTSUBNOT/libraries/StressGenerator.py diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot new file mode 100644 index 0000000..3333358 --- /dev/null +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -0,0 +1,270 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot +... Test Suite to validate CustomerSelfServiceEnablement Service API operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../../pics.txt +Resource ../../../GenericKeywords.robot +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem +Library libraries/Server.py +Library libraries/StressGenerator.py +Library JSONLibrary +Library String +Library Collections +Library DateTime + +*** Test Cases *** +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_01 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_01 + ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscription + ${SUB_TYPE} Get value entry from JSON file QoSEventSubscription subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_02 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_02 + ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application - With thresholds + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionWithThreshold + ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionWithThreshold subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_01 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_01 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid SubscritionType + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_02 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_02 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Neither callbackReference nor websockNotifConfig provided + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR2 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_03 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_03 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Both callbackReference and websockNotifConfig provided + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR3 + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_04 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_04 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - users not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR4 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - flowFilter not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR5 + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - flowFilter not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR5 + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid flowFilter + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR6 + Check HTTP Response Status Code Is 400 + + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK + ... Check that the IUT acknowledges the changes of QoS event subscription request + ... when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 7.4.3.2 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription QoSEventSubscriptionUpdate ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is QoSEventSubscription + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_NF + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_NF + ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 7.4.3.2 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription QoSEventSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK + ... Check that the IUT acknowledges the cancellation of QoS event subscription when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 7.4.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF + ... Check that the IUT acknowledges the cancellation of QoS event subscription when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 7.4.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_004_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_004_OK + ... Check that the IUT provides a test notification when requested by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.4.1, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionTestNotification + ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionTestNotification subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_005_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_005_OK + ... Check that the IUT terminates notifications when the expiry timer expires + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.4.1, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionExpiryTimer + ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionExpiryTimer subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + + +*** Keywords *** +Spawn Expiry Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} for expiry notification + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Resource Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} SiteResourceUsageSubscription + [Return] ${notification} + +Create QoS Event Subscription + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update QoS Event Subscription + [Arguments] ${content} ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + +Delete QoS Event Subscription + [Arguments] ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} diff --git a/MEC045/EVENTSUBNOT/environment/variables.txt b/MEC045/EVENTSUBNOT/environment/variables.txt new file mode 100644 index 0000000..3cbcf8c --- /dev/null +++ b/MEC045/EVENTSUBNOT/environment/variables.txt @@ -0,0 +1,15 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +#${HOST} 10.192.2.172 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} qms +${apiVersion} v1 + + +##Specific +${SUBSCRIPTION_ID} subscription_id \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/libraries/Server.py b/MEC045/EVENTSUBNOT/libraries/Server.py new file mode 100644 index 0000000..b1b6c85 --- /dev/null +++ b/MEC045/EVENTSUBNOT/libraries/Server.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 +# filepath: c:\Users\Ikram Laptop\ROBOT-Framework\gs032p3-robot-test-suite\MEC048\MEO\CSE\libraries\Server.py + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +class Server(object): + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server(self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class POST_Server(BaseHTTPRequestHandler): + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body = post_body + logging.info(f"Received notification: {post_body}") + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + self.handler = POST_Server(endpoint, resp_body) + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + logging.info(f"Starting notification server on {host}:{port} with timeout {timeout}") + self.app.handle_request() + self.app.server_close() + + if self.handler.get_req_body() is not None: + return json.loads(self.handler.get_req_body().decode("utf-8")) + return None \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/libraries/StressGenerator.py b/MEC045/EVENTSUBNOT/libraries/StressGenerator.py new file mode 100644 index 0000000..ae9419a --- /dev/null +++ b/MEC045/EVENTSUBNOT/libraries/StressGenerator.py @@ -0,0 +1,37 @@ +import multiprocessing +import time + +class StressGenerator: + ROBOT_LIBRARY_VERSION = '0.0.1' + + def generate_cpu_load(self, duration=30, cpu_cores=None): + """ + Generate CPU load by spinning up processes that perform intensive calculations. + + Args: + duration: How long to run the stress test in seconds + cpu_cores: Number of CPU cores to use. If None, uses all available cores. + """ + if cpu_cores is None: + cpu_cores = multiprocessing.cpu_count() + + processes = [] + + def cpu_intensive_task(): + end_time = time.time() + duration + while time.time() < end_time: + # Perform CPU-intensive calculations + for i in range(10000000): + _ = i * i + + # Create and start processes + for _ in range(cpu_cores): + p = multiprocessing.Process(target=cpu_intensive_task) + p.start() + processes.append(p) + + # Wait for all processes to complete + for p in processes: + p.join() + + return f"Generated CPU load on {cpu_cores} cores for {duration} seconds" \ No newline at end of file -- GitLab From 2f6fbfd38536feb997dbf339004ccc65a6550c68 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:23:32 +0200 Subject: [PATCH 06/28] Fixes --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 84 ++++++++++---------- MEC045/EVENTSUBNOT/environment/variables.txt | 3 +- 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot index 3333358..fa9841f 100644 --- a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -1,10 +1,10 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot -... Test Suite to validate CustomerSelfServiceEnablement Service API operations. +... Test Suite to validate QoSEventSubNot Service API operations. *** Settings *** Resource environment/variables.txt -Resource ../../../pics.txt -Resource ../../../GenericKeywords.robot +Resource ../../../../pics.txt +Resource ../../../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py @@ -19,9 +19,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_01 [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_01 ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscription ${SUB_TYPE} Get value entry from JSON file QoSEventSubscription subscriptionType @@ -34,9 +34,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_02 [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_02 ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application - With thresholds ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionWithThreshold ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionWithThreshold subscriptionType @@ -51,9 +51,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_01 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - Invalid SubscritionType ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR Check HTTP Response Status Code Is 400 @@ -64,9 +64,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_02 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - Neither callbackReference nor websockNotifConfig provided ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR2 Check HTTP Response Status Code Is 400 @@ -77,9 +77,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_03 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - Both callbackReference and websockNotifConfig provided ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR3 Check HTTP Response Status Code Is 400 @@ -89,9 +89,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_04 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - users not present (Note 2) ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR4 Check HTTP Response Status Code Is 400 @@ -102,9 +102,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - flowFilter not present (Note 2) ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR5 Check HTTP Response Status Code Is 400 @@ -114,9 +114,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - flowFilter not present (Note 2) ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR5 Check HTTP Response Status Code Is 400 @@ -126,9 +126,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - Invalid flowFilter ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR6 Check HTTP Response Status Code Is 400 @@ -140,8 +140,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK ... Check that the IUT acknowledges the changes of QoS event subscription request ... when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 7.4.3.2 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.4.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Update QoS Event Subscription QoSEventSubscriptionUpdate ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 @@ -152,8 +152,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_NF [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_NF ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 7.4.3.2 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.4.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Update QoS Event Subscription QoSEventSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 @@ -163,8 +163,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK ... Check that the IUT acknowledges the cancellation of QoS event subscription when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 7.4.3.5 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.4.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Update QoS Event Subscription ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 @@ -174,8 +174,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF ... Check that the IUT acknowledges the cancellation of QoS event subscription when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 7.4.3.5 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.4.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Update QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 @@ -185,8 +185,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_004_OK [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_004_OK ... Check that the IUT provides a test notification when requested by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.4.1, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.4.1, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionTestNotification ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionTestNotification subscriptionType @@ -200,8 +200,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_005_OK [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_005_OK ... Check that the IUT terminates notifications when the expiry timer expires ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.4.1, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.4.1, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionExpiryTimer ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionExpiryTimer subscriptionType diff --git a/MEC045/EVENTSUBNOT/environment/variables.txt b/MEC045/EVENTSUBNOT/environment/variables.txt index 3cbcf8c..8a7f3b8 100644 --- a/MEC045/EVENTSUBNOT/environment/variables.txt +++ b/MEC045/EVENTSUBNOT/environment/variables.txt @@ -12,4 +12,5 @@ ${apiVersion} v1 ##Specific -${SUBSCRIPTION_ID} subscription_id \ No newline at end of file +${SUBSCRIPTION_ID} subscription_id +${UNKNOWN_SUBSCRIPTION_ID} unknown_sub_id \ No newline at end of file -- GitLab From 6eee358ba19bb9b5aefee853aacd3cfa2cb722a3 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:43:49 +0200 Subject: [PATCH 07/28] TCs for MEC045 for QkD Measurement subscription --- MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot | 263 ++++++++++++++++++ MEC045/MEASSUBNOT/environment/variables.txt | 16 ++ MEC045/MEASSUBNOT/libraries/Server.py | 52 ++++ .../MEASSUBNOT/libraries/StressGenerator.py | 37 +++ 4 files changed, 368 insertions(+) create mode 100644 MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot create mode 100644 MEC045/MEASSUBNOT/environment/variables.txt create mode 100644 MEC045/MEASSUBNOT/libraries/Server.py create mode 100644 MEC045/MEASSUBNOT/libraries/StressGenerator.py diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot new file mode 100644 index 0000000..0829568 --- /dev/null +++ b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot @@ -0,0 +1,263 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.robot +... Test Suite to validate QoSMeasurementSubNot Service API operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../../../pics.txt +Resource ../../../../GenericKeywords.robot +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem +Library libraries/Server.py +Library libraries/StressGenerator.py +Library JSONLibrary +Library String +Library Collections +Library DateTime + +*** Test Cases *** +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_01 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_01 + ... Check that the IUT acknowledges the creation of QoS measurement subscription request when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 6.4.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSMeasureSubscription + ${SUB_TYPE} Get value entry from JSON file QoSMeasureSubscription subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_02 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_02 + ... Check that the IUT acknowledges the creation of QoS measurement subscription request when commanded by a MEC Application - with reportingInterval + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 6.4.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSMeasureSubscriptionWithRepInterval + ${SUB_TYPE} Get value entry from JSON file QoSMeasureSubscriptionWithRepInterval subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_03 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_03 + ... Check that the IUT acknowledges the creation of QoS measurement subscription request when commanded by a MEC Application - with numberOfReports + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 6.4.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSMeasureSubscriptionWithNumOfReports + ${SUB_TYPE} Get value entry from JSON file QoSMeasureSubscriptionWithNumOfReports subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_01 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_01 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid subscriptionType + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_02 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_02 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Neither callbackReference nor websockNotifConfig provided + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR2 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_03 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_03 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Both callbackReference and websockNotifConfig provided + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR3 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_04 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_04 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - users not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR4 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_05 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_05 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - flowInfo not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR5 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_06 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_06 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid flowFilter + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR6 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_07 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_07 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid condition on reportingInterval/measuringPeriod + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR7 + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_08 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_08 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid condition on measuringArea + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR8 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_OK + ... Check that the IUT acknowledges the changes of an existing QoS measurement subscription request when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.2 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription QoSEventSubscriptionUpdate ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is QoSEventSubscription + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_NF + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_NF + ... Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.2 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription QoSEventSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is QoSEventSubscription + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_003_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_003_OK + ... Check that the IUT acknowledges the cancellation of QoS measurement subscription when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Delete QoS Event Subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_003_NF + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_003_NF + ... Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Delete QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + +*** Keywords *** +Spawn Expiry Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} for expiry notification + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Resource Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} SiteResourceUsageSubscription + [Return] ${notification} + +Create QoS Event Subscription + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update QoS Event Subscription + [Arguments] ${content} ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + +Delete QoS Event Subscription + [Arguments] ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} diff --git a/MEC045/MEASSUBNOT/environment/variables.txt b/MEC045/MEASSUBNOT/environment/variables.txt new file mode 100644 index 0000000..8a7f3b8 --- /dev/null +++ b/MEC045/MEASSUBNOT/environment/variables.txt @@ -0,0 +1,16 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +#${HOST} 10.192.2.172 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} qms +${apiVersion} v1 + + +##Specific +${SUBSCRIPTION_ID} subscription_id +${UNKNOWN_SUBSCRIPTION_ID} unknown_sub_id \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/libraries/Server.py b/MEC045/MEASSUBNOT/libraries/Server.py new file mode 100644 index 0000000..b1b6c85 --- /dev/null +++ b/MEC045/MEASSUBNOT/libraries/Server.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 +# filepath: c:\Users\Ikram Laptop\ROBOT-Framework\gs032p3-robot-test-suite\MEC048\MEO\CSE\libraries\Server.py + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +class Server(object): + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server(self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class POST_Server(BaseHTTPRequestHandler): + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body = post_body + logging.info(f"Received notification: {post_body}") + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + self.handler = POST_Server(endpoint, resp_body) + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + logging.info(f"Starting notification server on {host}:{port} with timeout {timeout}") + self.app.handle_request() + self.app.server_close() + + if self.handler.get_req_body() is not None: + return json.loads(self.handler.get_req_body().decode("utf-8")) + return None \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/libraries/StressGenerator.py b/MEC045/MEASSUBNOT/libraries/StressGenerator.py new file mode 100644 index 0000000..ae9419a --- /dev/null +++ b/MEC045/MEASSUBNOT/libraries/StressGenerator.py @@ -0,0 +1,37 @@ +import multiprocessing +import time + +class StressGenerator: + ROBOT_LIBRARY_VERSION = '0.0.1' + + def generate_cpu_load(self, duration=30, cpu_cores=None): + """ + Generate CPU load by spinning up processes that perform intensive calculations. + + Args: + duration: How long to run the stress test in seconds + cpu_cores: Number of CPU cores to use. If None, uses all available cores. + """ + if cpu_cores is None: + cpu_cores = multiprocessing.cpu_count() + + processes = [] + + def cpu_intensive_task(): + end_time = time.time() + duration + while time.time() < end_time: + # Perform CPU-intensive calculations + for i in range(10000000): + _ = i * i + + # Create and start processes + for _ in range(cpu_cores): + p = multiprocessing.Process(target=cpu_intensive_task) + p.start() + processes.append(p) + + # Wait for all processes to complete + for p in processes: + p.join() + + return f"Generated CPU load on {cpu_cores} cores for {duration} seconds" \ No newline at end of file -- GitLab From c34c9612769bf960ae7b6a7f1da1bb658f1d7fbe Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:50:32 +0200 Subject: [PATCH 08/28] Fix on import paths --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 4 ++-- MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot index fa9841f..1ad93a2 100644 --- a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -3,8 +3,8 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot *** Settings *** Resource environment/variables.txt -Resource ../../../../pics.txt -Resource ../../../../GenericKeywords.robot +Resource ../../pics.txt +Resource ../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot index 0829568..7ce5343 100644 --- a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot +++ b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot @@ -3,8 +3,8 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.r *** Settings *** Resource environment/variables.txt -Resource ../../../../pics.txt -Resource ../../../../GenericKeywords.robot +Resource ../../pics.txt +Resource ../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py -- GitLab From db757954f41836687185091bdbd9bb49afbe2f87 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:50:32 +0200 Subject: [PATCH 09/28] Fix on import paths and TCs content --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 19 ++++--------------- MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot | 4 ++-- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot index fa9841f..2ff9682 100644 --- a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -3,8 +3,8 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot *** Settings *** Resource environment/variables.txt -Resource ../../../../pics.txt -Resource ../../../../GenericKeywords.robot +Resource ../../pics.txt +Resource ../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py @@ -109,17 +109,6 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 Create QoS Event Subscription QoSEventSubscriptionBR5 Check HTTP Response Status Code Is 400 -TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 - [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 - ... Check that the IUT responds with an error when a request with incorrect parameters is sent - ... by a MEC Application - flowFilter not present (Note 2) - ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 045 Clause 6.3.3, - ... ETSI GS MEC 045 Clause 6.4.3, - ... ETSI GS MEC 045 Clause 7.3.3.4 - [Tags] PIC_MEC_PLAT PIC_SERVICES - Create QoS Event Subscription QoSEventSubscriptionBR5 - Check HTTP Response Status Code Is 400 TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 @@ -166,7 +155,7 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK ... ETSI GS MEC 045 Clause 6.3.3, ... ETSI GS MEC 045 Clause 7.4.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update QoS Event Subscription ${SUBSCRIPTION_ID} + Delete QoS Event Subscription ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 @@ -177,7 +166,7 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF ... ETSI GS MEC 045 Clause 6.3.3, ... ETSI GS MEC 045 Clause 7.4.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} + Delete QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot index 0829568..7ce5343 100644 --- a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot +++ b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot @@ -3,8 +3,8 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.r *** Settings *** Resource environment/variables.txt -Resource ../../../../pics.txt -Resource ../../../../GenericKeywords.robot +Resource ../../pics.txt +Resource ../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py -- GitLab From f8c8e3a1b89d49d6a24ee33f75c15a660aa35c9a Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 14:53:11 +0200 Subject: [PATCH 10/28] First implementation of TCs for QoS Subscription lookup for MEC045 spec. --- MEC045/SUBLOOKUP/QoSLookup.robot | 159 +++++++++++++++++++++ MEC045/SUBLOOKUP/environment/variables.txt | 21 +++ 2 files changed, 180 insertions(+) create mode 100644 MEC045/SUBLOOKUP/QoSLookup.robot create mode 100644 MEC045/SUBLOOKUP/environment/variables.txt diff --git a/MEC045/SUBLOOKUP/QoSLookup.robot b/MEC045/SUBLOOKUP/QoSLookup.robot new file mode 100644 index 0000000..0c94711 --- /dev/null +++ b/MEC045/SUBLOOKUP/QoSLookup.robot @@ -0,0 +1,159 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.robot +... Test Suite to validate QoSMeasurementSubNot Service API operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../pics.txt +Resource ../../GenericKeywords.robot +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem +Library libraries/Server.py +Library libraries/StressGenerator.py +Library JSONLibrary +Library String +Library Collections +Library DateTime + +*** Test Cases *** +TC_MEC_MEC045_SRV_QOSLOOKUP_001_OK + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_001_OK + ... Check that the IUT responds with the list of QoS measurement subscriptions when queried by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.4, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve all subscriptions + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is SubscriptionList + + +TC_MEC_MEC045_SRV_QOSLOOKUP_001_BR + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_001_BR + ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.4, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${WRONG_QUERY_PARAM} + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOSLOOKUP_001_NF + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_001_NF + ... Check that the IUT responds with an error when no subscription are created + ... ETSI GS MEC 045 Clause 5.2.4, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve all subscriptions + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_01 + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_OK_01 + ... Check that the IUT responds with the list of QoS measurement subscriptions when queried by a MEC Application - Filter on subscriptionId + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${SUB_ID_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SubscriptionList + + +TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_02 + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_OK_02 + ... Check that the IUT responds with the list of QoS measurement subscriptions when queried by a MEC Application - Filter on subscriptionType + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${SUB_TYPE_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SubscriptionList + +TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 + ... Check that the IUT responds with with an error when no subscription matches with the filter - Filter on subscriptionType + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${NF_SUB_TYPE_QUERY_PARAM} + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is SubscriptionList + + +TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_02 + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_NF_02 + ... Check that the IUT responds with with an error when no subscription matches with the filter - Filter on subscriptionId + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${NF_SUB_TYPE_QUERY_PARAM} + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is SubscriptionList + + +TC_MEC_MEC045_SRV_QOSLOOKUP_003_OK + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_003_OK + ... Check that the IUT responds with a QoS measurement subscription when queried by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is QoSMeasurementSubscription + + +TC_MEC_MEC045_SRV_QOSLOOKUP_003_NF + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_003_NF + ... Check that the IUT responds with an error + ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscription ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404ì + + +*** Keywords *** +Retrieve all subscriptions + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve Subscription + [Arguments] ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve Subscriptions with query params + [Arguments] ${SUBSCRIPTION_ID} ${QUERY_PARAMS} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID}?${QUERY_PARAMS} + ${output}= Output response + Set Suite Variable ${response} ${output} + diff --git a/MEC045/SUBLOOKUP/environment/variables.txt b/MEC045/SUBLOOKUP/environment/variables.txt new file mode 100644 index 0000000..9b8c7d3 --- /dev/null +++ b/MEC045/SUBLOOKUP/environment/variables.txt @@ -0,0 +1,21 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +#${HOST} 10.192.2.172 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} qms +${apiVersion} v1 + + +##Specific +${SUBSCRIPTION_ID} subscription_id +${UNKNOWN_SUBSCRIPTION_ID} unknown_sub_id +${WRONG_QUERY_PARAM} subscriptionIdentity=any_value +${SUB_ID_QUERY_PARAM} subscriptionId=HREF_VALUE_1&subscriptionId=HREF_VALUE_3 +${NF_SUB_ID_QUERY_PARAM} subscriptionId=UKNOWN_SUB_ID +${SUB_TYPE_QUERY_PARAM} subscriptionType=SUB_TYPE +${NF_SUB_TYPE_QUERY_PARAM} subscriptionType=QoSEventSubscription \ No newline at end of file -- GitLab From 53e2f41d65b9c25a3ccda784ad4d6c81cc601014 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 14:59:15 +0200 Subject: [PATCH 11/28] Fixes based on pipeline error --- MEC045/SUBLOOKUP/QoSLookup.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MEC045/SUBLOOKUP/QoSLookup.robot b/MEC045/SUBLOOKUP/QoSLookup.robot index 0c94711..d307e38 100644 --- a/MEC045/SUBLOOKUP/QoSLookup.robot +++ b/MEC045/SUBLOOKUP/QoSLookup.robot @@ -1,5 +1,5 @@ -Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.robot -... Test Suite to validate QoSMeasurementSubNot Service API operations. +Y''[Documentation] robot --outputdir ../../../outputs ./QoSLookup.robot +... Test Suite to validate QoSLookup API operations. *** Settings *** Resource environment/variables.txt @@ -117,7 +117,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_003_NF ... ETSI GS MEC 045 Clause 7.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscription ${UNKNOWN_SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 404ì + Check HTTP Response Status Code Is 404 *** Keywords *** -- GitLab From 28508c643258794f98d22057358046ab35900c0d Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 15:06:37 +0200 Subject: [PATCH 12/28] Updated MEC033 TCs --- .../MEX/IOTS/IOTDEV/RegisteredDevices.robot | 42 +++++++++---------- .../IOTS/IOTPLAT/RegisteredIoTPlatform.robot | 28 ++++++------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot b/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot index ba938d8..4e52467 100644 --- a/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot +++ b/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot @@ -17,8 +17,8 @@ Test Teardown Test TearDown ${DEVICE_ID_PLACEHOLDER} DeviceInfo ${N TC_MEC_MEC033_IOTS_IOTDEV_001_OK_01 [Documentation] ... Check that the IUT responds with the list of registered IoT devices - ... when queried by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.1 + ... when queried by a Service Consumer - No Filter + ... ETSI GS MEC 033 clause 7.3.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} @@ -35,7 +35,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_001_OK_01 TC_MEC_MEC033_IOTS_IOTDEV_001_OK_02 [Documentation] ... "Check that the IUT responds with the list of registered IoT devices when queried using a filter by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 033 clause 7.3.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -51,8 +51,8 @@ TC_MEC_MEC033_IOTS_IOTDEV_001_OK_02 TC_MEC_MEC033_IOTS_IOTDEV_001_OK_03 [Documentation] - ... "Check that the IUT responds with the list of registered IoT devices when queried by a Service Consumer filtering one field - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.1 + ... "Check that the IUT responds with the list of registered IoT devices when queried by a Service Consumer, filtering one field + ... ETSI GS MEC 033 clause 7.3.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -63,8 +63,8 @@ TC_MEC_MEC033_IOTS_IOTDEV_001_OK_03 TC_MEC_MEC033_IOTS_IOTDEV_001_OK_04 [Documentation] - ... "Check that the IUT responds with the list of registered IoT devices when queried by a Service Consumer filtering one field - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.1 + ... "Check that the IUT responds with the list of registered IoT devices when queried by a Service Consumer, filtering one field + ... ETSI GS MEC 033 clause 7.3.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -80,7 +80,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_001_OK_04 TC_MEC_MEC033_IOTS_IOTDEV_002_OK [Documentation] ... Check that the IUT registers the information of an IoT device when requested by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.4 + ... ETSI GS MEC 033 clause 7.3.3.4 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${DEVICE_ID} ${None} ${REMOVE_ACTION} @@ -103,7 +103,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_002_OK TC_MEC_MEC033_IOTS_IOTDEV_002_BR [Documentation] ... Check that the IUT returns an error when Service Consumer request to register an IoT device with incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.4 + ... ETSI GS MEC 033 clause 7.3.3.4 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf ## No setup needed Register IOT Device information DeviceInfoBR @@ -113,7 +113,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_002_BR TC_MEC_MEC033_IOTS_IOTDEV_003_OK [Documentation] ... Check that the IUT returns the IoT device information when requested by Service Consumer specifying the device identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.1 + ... ETSI GS MEC 033 clause 7.4.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -127,7 +127,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_003_OK TC_MEC_MEC033_IOTS_IOTDEV_003_NF [Documentation] ... Check that the IUT returns error when Service Consumer request to retrieve a not registered IoT device - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.1 + ... ETSI GS MEC 033 clause 7.4.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_DEVICE_ID} ${None} ${REMOVE_ACTION} Retrieve specific registered IOT Device information ${NOT_EXISTING_DEVICE_ID} @@ -138,7 +138,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_003_NF TC_MEC_MEC033_IOTS_IOTDEV_004_OK [Documentation] ... Check that the IUT returns an error when Service Consumer request to register an IoT device with incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.2 + ... ETSI GS MEC 033 clause 7.4.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -159,7 +159,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_004_OK TC_MEC_MEC033_IOTS_IOTDEV_004_NF [Documentation] ... Check that the IUT returns an error when a Service Consumer requests to update a not registered IoT device - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.2 + ... ETSI GS MEC 033 clause 7.4.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_DEVICE_ID} ${None} ${REMOVE_ACTION} Update IOT Device information ${NOT_EXISTING_DEVICE_ID} DeviceInfoUpdate @@ -169,7 +169,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_004_NF TC_MEC_MEC033_IOTS_IOTDEV_004_BR [Documentation] ... Check that the IUT returns an error when a Service Consumer requests to update an existing IoT device with incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.2 + ... ETSI GS MEC 033 clause 7.4.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_DEVICE_ID} ${None} ${REMOVE_ACTION} Update IOT Device information ${NOT_EXISTING_DEVICE_ID} DeviceInfoUpdateBR @@ -178,23 +178,23 @@ TC_MEC_MEC033_IOTS_IOTDEV_004_BR TC_MEC_MEC033_IOTS_IOTDEV_005_OK [Documentation] - ... Check that the IUT deregisters an IoT device information when requested by a Service Consumer specifying the IoT registered device identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.5 + ... Check that the IUT unregisters an IoT device information when requested by a Service Consumer specifying the IoT registered device identifier + ... ETSI GS MEC 033 clause 7.4.3.5 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId - Deregister IOT Device information ${DEVICE_ID_VALUE} + Unregister IOT Device information ${DEVICE_ID_VALUE} Check HTTP Response Status Code Is 204 ## No Teardown needed TC_MEC_MEC033_IOTS_IOTDEV_005_NF [Documentation] - ... "Check that the IUT returns an error when a Service Consumer requests to deregisters an IoT device using incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.5 + ... "Check that the IUT returns an error when a Service Consumer requests to unregisters an IoT device using incorrect parameters + ... ETSI GS MEC 033 clause 7.4.3.5 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_DEVICE_ID} ${None} ${REMOVE_ACTION} - Deregister IOT Device information ${NOT_EXISTING_DEVICE_ID} + Unregister IOT Device information ${NOT_EXISTING_DEVICE_ID} Check HTTP Response Status Code Is 404 ##No tearDown needed @@ -294,7 +294,7 @@ Update IOT Device information Set Suite Variable ${response} ${output} -Deregister IOT Device information +Unregister IOT Device information [Arguments] ${deviceId} Should Be True ${PIC_MEC_PLAT} == 1 Should Be True ${PIC_SERVICES} == 1 diff --git a/MEC033/MEX/IOTS/IOTPLAT/RegisteredIoTPlatform.robot b/MEC033/MEX/IOTS/IOTPLAT/RegisteredIoTPlatform.robot index 664a174..43cb156 100644 --- a/MEC033/MEX/IOTS/IOTPLAT/RegisteredIoTPlatform.robot +++ b/MEC033/MEX/IOTS/IOTPLAT/RegisteredIoTPlatform.robot @@ -17,7 +17,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_001_OK [Documentation] ... Check that the IUT responds with the list of registered IoT platforms ... when queried by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 033 clause 7.5.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} IoTPlatformInfo ${REGISTER_ACTION} ${IOT_PLATFORM_ID_VALUE} Get value entry from JSON file IoTPlatformInfo iotPlatformId @@ -33,7 +33,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_002_OK [Documentation] ... Check that the IUT registers the information of a new IoT platform ... when requested by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.4 + ... ETSI GS MEC 033 clause 7.5.3.4 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${IOT_PLATFORM_ID} ${None} ${REMOVE_ACTION} @@ -55,7 +55,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_002_BR [Documentation] ... Check that the IUT returns an error ... when Service Consumer request to register an IoT device with incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.4 + ... ETSI GS MEC 033 clause 7.5.3.4 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf Register IOT Platform information IotPlatformInfoBR Check HTTP Response Status Code Is 400 @@ -65,7 +65,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_003_OK [Documentation] ... Check that the IUT returns the IoT platform information ... when requested by Service Consumer specifying the IoT platform identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 033 clause 7.5.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} IoTPlatformInfo ${REGISTER_ACTION} ${IOT_PLATFORM_ID_VALUE} Get value entry from JSON file IoTPlatformInfo iotPlatformId @@ -84,7 +84,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_003_NF [Documentation] ... Check that the IUT returns the IoT platform information ... when requested by Service Consumer specifying the IoT platform identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 033 clause 7.5.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_IOT_PLATFORM_ID} ${None} ${NOT_EXISTING_IOT_PLATFORM_ID} Retrieve specific registered IOT Platform information ${NOT_EXISTING_IOT_PLATFORM_ID} @@ -95,7 +95,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_004_OK [Documentation] ... Check that the IUT updates the information about a registered IoT platform ... when requested by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.2 + ... ETSI GS MEC 033 clause 7.5.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} IoTPlatformInfo ${REGISTER_ACTION} ${IOT_PLATFORM_ID_VALUE} Get value entry from JSON file IotPlatformInfoUpdate iotPlatformId @@ -114,7 +114,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_004_NF [Documentation] ... Check that the IUT returns an error ... when a Service Consumer requests to update a not registered IoT platform - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.2 + ... ETSI GS MEC 033 clause 7.5.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_IOT_PLATFORM_ID} ${None} ${NOT_EXISTING_IOT_PLATFORM_ID} Update registered IOT Platform information ${NOT_EXISTING_IOT_PLATFORM_ID} IotPlatformInfoUpdate @@ -123,13 +123,13 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_004_NF TP_MEC_MEC033_MEX_IOTS_IOTPLAT_005_OK [Documentation] - ... Check that the IUT deregisters an IoT platform information + ... Check that the IUT unregisters an IoT platform information ... when requested by a Service Consumer specifying the registered IoT platform identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.5 + ... ETSI GS MEC 033 clause 7.5.3.5 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} IoTPlatformInfo ${REGISTER_ACTION} ${IOT_PLATFORM_ID_VALUE} Get value entry from JSON file IoTPlatformInfo iotPlatformId - Deregister IOT Platform information ${IOT_PLATFORM_ID} + Unregister IOT Platform information ${IOT_PLATFORM_ID} Check HTTP Response Status Code Is 204 [Teardown] Test TearDown ${IOT_PLATFORM_ID_VALUE} ${None} ${REMOVE_ACTION} @@ -137,11 +137,11 @@ TP_MEC_MEC033_MEX_IOTS_IOTPLAT_005_OK TC_MEC_MEC033_MEX_IOTS_IOTPLAT_005_NF [Documentation] ... Check that the IUT returns an error - ... when a Service Consumer request to deregister an IoT platform using incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.5 + ... when a Service Consumer request to unregister an IoT platform using incorrect parameters + ... ETSI GS MEC 033 clause 7.5.3.5 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_IOT_PLATFORM_ID} ${None} ${NOT_EXISTING_IOT_PLATFORM_ID} - Deregister IOT Platform information ${NOT_EXISTING_IOT_PLATFORM_ID} + Unregister IOT Platform information ${NOT_EXISTING_IOT_PLATFORM_ID} Check HTTP Response Status Code Is 404 @@ -229,7 +229,7 @@ Register IOT Platform information Set Suite Variable ${response} ${output} - Deregister IOT Platform information +Unregister IOT Platform information [Arguments] ${registeredPlatformId} Should Be True ${PIC_MEC_PLAT} == 1 Should Be True ${PIC_SERVICES} == 1 -- GitLab From 7344ec8e83029de9bb418b3755950b5350773c2f Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 15:19:31 +0200 Subject: [PATCH 13/28] Removed specification version from MEC011 TCs --- MEC011/SRV/APPSAQ/PlatAppServices.robot | 70 +++++++-------- MEC011/SRV/APPSUB/PlatAppSubscriptions.robot | 32 +++---- MEC011/SRV/CONFTASK/ConfirmTasks.robot | 24 +++--- MEC011/SRV/DNS/PlatDnsRules.robot | 48 +++++------ MEC011/SRV/MLS/Liveness.robot | 36 ++++---- MEC011/SRV/REGAPPS/RegisterAppsServices.robot | 86 +++++++++---------- MEC011/SRV/SAQ/PlatServices.robot | 24 +++--- MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot | 48 +++++------ MEC011/SRV/TIME/PlatTiming.robot | 12 +-- MEC011/SRV/TRAF/PlatTrafficRules.robot | 48 +++++------ MEC011/SRV/TRANS/PlatTransport.robot | 6 +- 11 files changed, 217 insertions(+), 217 deletions(-) diff --git a/MEC011/SRV/APPSAQ/PlatAppServices.robot b/MEC011/SRV/APPSAQ/PlatAppServices.robot index f1afa13..1847fe8 100644 --- a/MEC011/SRV/APPSAQ/PlatAppServices.robot +++ b/MEC011/SRV/APPSAQ/PlatAppServices.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_APPSAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -36,9 +36,9 @@ TC_MEC_MEC011_SRV_APPSAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI G3.3.1 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.1 + ... Reference ETSI G3.3.1 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES # Wrong query parameter name should trigger an error response. Get a list of mecService of an application instance with parameters ${APP_INSTANCE_ID} ${INSTANCE_ID} ${FAKE_INSTANCE_ID_VALUE} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_OK ... Check that the IUT notifies the authorised relevant (subscribed) application ... instances when a new service for a given application instance is registered ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -70,9 +70,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create new service ServiceInfoError ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 400 @@ -83,9 +83,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${NON_EXISTENT_APP_INSTANCE_ID} ${SERVICE_ID} Create new service ServiceInfo ${NON_EXISTENT_APP_INSTANCE_ID} @@ -97,9 +97,9 @@ TC_MEC_MEC011_SRV_APPSAQ_003_OK ... Check that the IUT responds with the information on a specific service ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -115,9 +115,9 @@ TC_MEC_MEC011_SRV_APPSAQ_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${NON_EXISTENT_APP_INSTANCE_ID} ${SERVICE_ID} Get individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} @@ -129,9 +129,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_OK ... Check that the IUT updates a service information for a given ... application instance when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.4, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -147,9 +147,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.4, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -163,9 +163,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.4, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Update service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} ServiceInfoUpdated @@ -177,9 +177,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.4, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -193,7 +193,7 @@ TC_MEC_MEC011_SRV_APPSAQ_005_OK ... Check that the IUT executes the deletion of a service ... for a given application instance when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 8.2.7.3.5 + ... Reference ETSI GS MEC 011 clause 8.2.7.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -206,7 +206,7 @@ TC_MEC_MEC011_SRV_APPSAQ_005_NF ... Check that the IUT responds with an error when ... a request for deletion of a unknown service is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 8.2.7.3.5 + ... Reference ETSI GS MEC 011 clause 8.2.7.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} diff --git a/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot b/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot index 964998f..9a77897 100644 --- a/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot +++ b/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot @@ -18,8 +18,8 @@ TC_MEC_MEC011_SRV_APPSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -35,8 +35,8 @@ TC_MEC_MEC011_SRV_APPSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUB_ID} Get Subscriptions list ${NON_EXISTENT_APP_INSTANCE_ID} @@ -48,8 +48,8 @@ TC_MEC_MEC011_SRV_APPSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.3.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription @@ -69,8 +69,8 @@ TC_MEC_MEC011_SRV_APPSUB_002_BR ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.3.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscriptionBR Check HTTP Response Status Code Is 400 @@ -81,8 +81,8 @@ TC_MEC_MEC011_SRV_APPSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -98,8 +98,8 @@ TC_MEC_MEC011_SRV_APPSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -111,8 +111,8 @@ TC_MEC_MEC011_SRV_APPSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.4.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -126,8 +126,8 @@ TC_MEC_MEC011_SRV_APPSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.4.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID} Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/MEC011/SRV/CONFTASK/ConfirmTasks.robot b/MEC011/SRV/CONFTASK/ConfirmTasks.robot index f0827fc..b2935a9 100644 --- a/MEC011/SRV/CONFTASK/ConfirmTasks.robot +++ b/MEC011/SRV/CONFTASK/ConfirmTasks.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_CONFTASK_001_OK ... Check that the IUT responds that it has completed ... the application level termination ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.3", + ... "ETSI GS MEC 011 clause 7.1.4.3", + ... "ETSI GS MEC 011 clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Request termination of MEC Application ${APP_INSTANCE_ID} AppTerminationConfirmation @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_CONFTASK_001_NF ... Check that the IUT responds with an error ... when requested graceful termination/stop of an unknown MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.3", + ... "ETSI GS MEC 011 clause 7.1.4.3", + ... "ETSI GS MEC 011 clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Teardown] Delete MEC application instance profile ${NON_EXISTING_APP_INSTANCE_ID} Request termination of MEC Application ${NON_EXISTING_APP_INSTANCE_ID} AppTerminationConfirmation @@ -49,9 +49,9 @@ TC_MEC_MEC011_SRV_CONFTASK_002_OK ... Check that the IUT responds with an acknowledge ... when requested readiness status for a MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.3", + ... "ETSI GS MEC 011 clause 7.1.4.3", + ... "ETSI GS MEC 011 clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Request readiness status of MEC Application ${APP_INSTANCE_ID} AppReadyConfirmation @@ -64,9 +64,9 @@ TC_MEC_MEC011_SRV_CONFTASK_002_NF ... Check that the IUT responds with an error ... when requested readiness status for an unknown MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.3", + ... "ETSI GS MEC 011 clause 7.1.4.3", + ... "ETSI GS MEC 011 clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NON_EXISTING_APP_INSTANCE_ID} Request readiness status of MEC Application ${NON_EXISTING_APP_INSTANCE_ID} AppReadyConfirmation diff --git a/MEC011/SRV/DNS/PlatDnsRules.robot b/MEC011/SRV/DNS/PlatDnsRules.robot index 1bf39a4..4aa0927 100644 --- a/MEC011/SRV/DNS/PlatDnsRules.robot +++ b/MEC011/SRV/DNS/PlatDnsRules.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_DNS_001_OK ... Check that the IUT responds with a list of active DNS rules ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.9.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Get list of active DNS rules ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_DNS_001_NF ... Check that the IUT responds with a list of active DNS rules ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.9.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTENT_APP_INSTANCE_ID} Get list of active DNS rules ${NOT_EXISTENT_APP_INSTANCE_ID} @@ -49,9 +49,9 @@ TC_MEC_MEC011_SRV_DNS_002_OK ... Check that the IUT responds with the information on a specific DNS rule ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Get individual DNS rule ${APP_INSTANCE_ID} ${DNS_RULE_ID} @@ -66,9 +66,9 @@ TC_MEC_MEC011_SRV_DNS_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual DNS rule ${APP_INSTANCE_ID} ${NON_ESISTENT_DNS_RULE_ID} Check HTTP Response Status Code Is 404 @@ -79,9 +79,9 @@ TC_MEC_MEC011_SRV_DNS_003_OK ... Check that the IUT responds with the information on a specific DNS rule ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Update a DNS Rule ${APP_INSTANCE_ID} ${DNS_RULE_ID} DnsRuleUpdate @@ -97,9 +97,9 @@ TC_MEC_MEC011_SRV_DNS_003_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -113,9 +113,9 @@ TC_MEC_MEC011_SRV_DNS_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -130,9 +130,9 @@ TC_MEC_MEC011_SRV_DNS_003_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Update a DNS Rule with invalid etag ${APP_INSTANCE_ID} ${DNS_RULE_ID} DnsRuleUpdate diff --git a/MEC011/SRV/MLS/Liveness.robot b/MEC011/SRV/MLS/Liveness.robot index 2b070ee..695c8e6 100644 --- a/MEC011/SRV/MLS/Liveness.robot +++ b/MEC011/SRV/MLS/Liveness.robot @@ -14,9 +14,9 @@ TC_MEC_MEC011_SRV_MSL_001_OK [Documentation] ... Check that the IUT responds with the liveness of a MEC service instance ... when queried by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.4", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.4", + ... "ETSI GS MEC 011 clause 8.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Individual MEC service liveness ${LIVENESS_URI} @@ -30,9 +30,9 @@ TC_MEC_MEC011_SRV_MSL_001_NF ... Check that the IUT responds with an error when ... a request for an URI that cannot be mapped to a valid resource URI ... is sent by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.4", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.4", + ... "ETSI GS MEC 011 clause 8.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES Individual MEC service liveness ${NOT_EXISTING_URL_SERVICE_MEC_LIVENESS} Check HTTP Response Status Code Is 404 @@ -42,9 +42,9 @@ TC_MEC_MEC011_SRV_MSL_002_OK_01 [Documentation] ... Check that the IUT updates the liveness of a MEC service instance ... when requested by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.5", + ... "ETSI GS MEC 011 clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdate .json @@ -61,9 +61,9 @@ TC_MEC_MEC011_SRV_MSL_002_OK_02 [Documentation] ... Check that the IUT updates the liveness of a MEC service instance ... when requested by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.5", + ... "ETSI GS MEC 011 clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdate .json @@ -76,9 +76,9 @@ TC_MEC_MEC011_SRV_MSL_002_BR [Documentation] ... Check that the IUT responds with an error when ... incorrect parameters were sent by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.5", + ... "ETSI GS MEC 011 clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} @@ -93,9 +93,9 @@ TC_MEC_MEC011_SRV_MSL_002_NF ... Check that the IUT responds with an error when ... a request for an URI that cannot be mapped to a valid ... resource URI is sent by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.5", + ... "ETSI GS MEC 011 clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdateError .json diff --git a/MEC011/SRV/REGAPPS/RegisterAppsServices.robot b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot index 1326ea2..964ad1b 100644 --- a/MEC011/SRV/REGAPPS/RegisterAppsServices.robot +++ b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_01 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo Check HTTP Response Status Code Is 201 @@ -35,9 +35,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_02 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo2 ${APP_INSTANCE_ID_REQ} Get value entry from JSON file AppInfo2 appInstanceId @@ -55,9 +55,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_03 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo3 ${APP_INSTANCE_ID_REQ} Get value entry from JSON file AppInfo3 appInstanceId @@ -78,9 +78,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_01 ... Check that the IUT responds with an error message when the IUT received a registration with ... missing fields from a MEC Application instantiated by the MEC platform ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR1 Check HTTP Response Status Code Is 400 @@ -91,9 +91,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_02 ... Check that the IUT responds with an error message ... when the IUT received by a MEC Application registration with missing endpoint ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR2 Check HTTP Response Status Code Is 400 @@ -104,9 +104,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_03 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appServiceRequired ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR3 Check HTTP Response Status Code Is 400 @@ -117,9 +117,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_04 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appServiceRequired ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR4 Check HTTP Response Status Code Is 400 @@ -130,9 +130,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_05 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appFeatureRequired ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR5 @@ -144,9 +144,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_06 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appFeatureOptional ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR6 @@ -159,9 +159,9 @@ TC_MEC_MEC011_SRV_REGAPPS_002_OK ... Check that the IUT responds with the AppInfo description ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -177,9 +177,9 @@ TC_MEC_MEC011_SRV_REGAPPS_002_NF ... Check that the IUT responds with an error ... when it receives a request for returning an AppInfo with a wrong ID ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} @@ -193,9 +193,9 @@ TC_MEC_MEC011_SRV_REGAPPS_003_OK ... Check that the IUT responds with 204 No Content ... when queried to update MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -211,7 +211,7 @@ TC_MEC_MEC011_SRV_REGAPPS_003_NF ... Check that the IUT responds with 204 No Content ... when queried to update MEC Application registration ... - ... Reference ETSI GS MEC 011 3.3.1, clause 7.2.14.3.2 + ... Reference ETSI GS MEC 011 clause 7.2.14.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} @@ -225,9 +225,9 @@ TC_MEC_MEC011_SRV_REGAPPS_004_OK ... Check that the IUT responds with 204 No Content ... when queried to delete an existing MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -242,9 +242,9 @@ TC_MEC_MEC011_SRV_REGAPPS_004_NF ... Check that the IUT responds with an error when queried to ... delete an unknown MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} diff --git a/MEC011/SRV/SAQ/PlatServices.robot b/MEC011/SRV/SAQ/PlatServices.robot index afaf846..57a653f 100644 --- a/MEC011/SRV/SAQ/PlatServices.robot +++ b/MEC011/SRV/SAQ/PlatServices.robot @@ -16,9 +16,9 @@ TC_MEC_MEC011_SRV_SAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.5", - ... Reference "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", - ... Reference "ETSI GS MEC 011 3.3.1, clause 8.2.3.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.5", + ... Reference "ETSI GS MEC 011 clause 8.1.2.2", + ... Reference "ETSI GS MEC 011 clause 8.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_SAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.5", - ... Reference "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", - ... Reference "ETSI GS MEC 011 3.3.1, clause 8.2.3.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.5", + ... Reference "ETSI GS MEC 011 clause 8.1.2.2", + ... Reference "ETSI GS MEC 011 clause 8.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_SAQ_002_OK ... Check that the IUT responds with the information on a specific service ... when queried by a MEC Application ... - ... "ETSI GS MEC 011 3.3.1, clause 5.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.4.3.1" + ... "ETSI GS MEC 011 clause 5.2.5", + ... "ETSI GS MEC 011 clause 8.1.2.2", + ... "ETSI GS MEC 011 clause 8.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} ${SER_NAME} Get value entry from JSON file ServiceInfo serName @@ -67,9 +67,9 @@ TC_MEC_MEC011_SRV_SAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... "ETSI GS MEC 011 3.3.1, clause 5.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.4.3.1" + ... "ETSI GS MEC 011 clause 5.2.5", + ... "ETSI GS MEC 011 clause 8.1.2.2", + ... "ETSI GS MEC 011 clause 8.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [TearDown] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Get specific MEC service ${NON_EXISTENT_SERVICE_ID} diff --git a/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot b/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot index fe25c15..8836128 100644 --- a/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot +++ b/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_SRVSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.8.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Get list of subscriptions ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_SRVSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.8.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove MEC application ${NON_EXISTENT_INSTANCE_ID} @@ -47,9 +47,9 @@ TC_MEC_MEC011_SRV_SRVSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.8.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo @@ -69,9 +69,9 @@ TC_MEC_MEC011_SRV_SRVSUB_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.8.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Create a new subscription ${APP_INSTANCE_ID} SerAvailabilityNotificationSubscriptionError @@ -84,9 +84,9 @@ TC_MEC_MEC011_SRV_SRVSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Get individual subscription ${APP_INSTANCE_ID} ${SUB_ID} @@ -103,9 +103,9 @@ TC_MEC_MEC011_SRV_SRVSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -117,9 +117,9 @@ TC_MEC_MEC011_SRV_SRVSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.9.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Remove subscription ${APP_INSTANCE_ID} ${SUB_ID} @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_SRVSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.9.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [TearDown] Remove MEC application ${NON_EXISTENT_INSTANCE_ID} Remove subscription ${NON_EXISTENT_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/MEC011/SRV/TIME/PlatTiming.robot b/MEC011/SRV/TIME/PlatTiming.robot index f024bb6..a80dd3d 100644 --- a/MEC011/SRV/TIME/PlatTiming.robot +++ b/MEC011/SRV/TIME/PlatTiming.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_TIME_001_OK [Documentation] ... Check that the IUT responds with timing capabilities ... when queried by a MEC Application - ... ETSI GS MEC 011 3.3.1, clause 5.2.10.3, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.4, - ... ETSI GS MEC 011 3.3.1, clause 7.2.5.3.1 + ... ETSI GS MEC 011 clause 5.2.10.3, + ... ETSI GS MEC 011 clause 7.1.2.4, + ... ETSI GS MEC 011 clause 7.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get time capabilities Check HTTP Response Status Code Is 200 @@ -32,9 +32,9 @@ TC_MEC_MEC011_SRV_TIME_002_OK [Documentation] ... Check that the IUT responds with current time ... when queried by a MEC Application - ... ETSI GS MEC 011 3.3.1, clause 5.2.10.2, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.5, - ... ETSI GS MEC 011 3.3.1, clause 7.2.5.3.1 + ... ETSI GS MEC 011 clause 5.2.10.2, + ... ETSI GS MEC 011 clause 7.1.2.5, + ... ETSI GS MEC 011 clause 7.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get current time diff --git a/MEC011/SRV/TRAF/PlatTrafficRules.robot b/MEC011/SRV/TRAF/PlatTrafficRules.robot index ac781b1..5ffad06 100644 --- a/MEC011/SRV/TRAF/PlatTrafficRules.robot +++ b/MEC011/SRV/TRAF/PlatTrafficRules.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_TRAF_001_OK ... when queried by a MEC Application ... ... Reference - ... ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.7.3.1 + ... ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo @@ -36,9 +36,9 @@ TC_MEC_MEC011_SRV_TRAF_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.7.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove MEC application ${NON_EXISTENT_APP_INSTANCE_ID} @@ -51,9 +51,9 @@ TC_MEC_MEC011_SRV_TRAF_002_OK ... Check that the IUT responds with the information on a specific traffic rule ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Get individual traffic rule ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} @@ -68,9 +68,9 @@ TC_MEC_MEC011_SRV_TRAF_002_NF ... Check that the IUT responds with an error when a request for an unknown traffic rule ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual traffic rule ${APP_INSTANCE_ID} ${NON_EXISTENT_TRAFFIC_RULE_ID} @@ -83,9 +83,9 @@ TC_MEC_MEC011_SRV_TRAF_003_OK ... Check that the IUT updates a specific traffic rule ... when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo ${TRAFFIC_RULE_ID} Get value entry from JSON file TrafficRuleUpdate trafficRuleId @@ -101,9 +101,9 @@ TC_MEC_MEC011_SRV_TRAF_003_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} TrafficRuleUpdateError @@ -116,9 +116,9 @@ TC_MEC_MEC011_SRV_TRAF_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7", - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2", - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.7", + ... ETSI GS MEC 011 clause 7.1.2.2", + ... ETSI GS MEC 011 clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule ${APP_INSTANCE_ID} ${NON_EXISTENT_TRAFFIC_RULE_ID} TrafficRuleUpdate @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_TRAF_003_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule with invalid etag ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} TrafficRuleUpdate diff --git a/MEC011/SRV/TRANS/PlatTransport.robot b/MEC011/SRV/TRANS/PlatTransport.robot index f95e42a..5044f7d 100644 --- a/MEC011/SRV/TRANS/PlatTransport.robot +++ b/MEC011/SRV/TRANS/PlatTransport.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_TRANS_001_OK ... Check that the IUT responds with a list of available transports ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.9, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.3, - ... ETSI GS MEC 011 3.3.1, clause 8.2.5.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.9, + ... ETSI GS MEC 011 clause 8.1.2.3, + ... ETSI GS MEC 011 clause 8.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of available transports -- GitLab From b3273e2bc3b3197293e5e75a18381827419b953d Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 15:56:27 +0200 Subject: [PATCH 14/28] Added missing JSON schema and JSOn payloads --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 17 +++---- MEC011/SRV/CAPIF/jsons/eventSubscription.json | 9 ++++ .../CAPIF/jsons/eventSubscriptionUpdate.json | 9 ++++ .../CAPIF/jsons/serviceApiDescription.json | 11 +++++ .../CAPIF/jsons/serviceApiDescriptionBR.json | 8 ++++ .../schemas/EventSubscription.json.schema | 32 +++++++++++++ .../schemas/ServiceApiDescription.json.schema | 44 +++++++++++++++++ .../ServiceApiDescriptionList.json.schema | 48 +++++++++++++++++++ 8 files changed, 170 insertions(+), 8 deletions(-) create mode 100644 MEC011/SRV/CAPIF/jsons/eventSubscription.json create mode 100644 MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json create mode 100644 MEC011/SRV/CAPIF/jsons/serviceApiDescription.json create mode 100644 MEC011/SRV/CAPIF/jsons/serviceApiDescriptionBR.json create mode 100644 MEC011/SRV/CAPIF/schemas/EventSubscription.json.schema create mode 100644 MEC011/SRV/CAPIF/schemas/ServiceApiDescription.json.schema create mode 100644 MEC011/SRV/CAPIF/schemas/ServiceApiDescriptionList.json.schema diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 4b6751d..950122f 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -319,6 +319,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF Check HTTP Response Status Code Is 404 +##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK [Documentation] ... Check that the IUT acknowledges the update of a CAPIF subscription request @@ -333,7 +334,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription - +##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF [Documentation] ... Check that the IUT acknowledges the update of a CAPIF subscription request @@ -341,13 +342,13 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 - ... ETSI GS MEC 011 clause 9.2.6.3.4 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 404 - +##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK [Documentation] ... Check that the IUT acknowledges the changes of a CAPIF subscription request @@ -362,7 +363,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription - +##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF [Documentation] ... Check that the IUT acknowledges the changes of a CAPIF subscription request @@ -499,7 +500,7 @@ Create CAPIF subscription Set Headers {"Content-Type":"*/*"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - Post ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription ${body} + Post ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -511,7 +512,7 @@ Replace existing CAPIF subscription Set Headers {"Content-Type":"*/*"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - Put ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} ${body} + Put ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions/${SUBSCRIPTION_ID} ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -523,7 +524,7 @@ Modify existing CAPIF subscription Set Headers {"Content-Type":"*/*"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - Patch ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} ${body} + Patch ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions/${SUBSCRIPTION_ID} ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -534,6 +535,6 @@ Delete existing CAPIF subscription Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} Set Headers {"Content-Type":"*/*"} - Delete ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} + Delete ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions/${SUBSCRIPTION_ID} ${output}= Output response Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscription.json b/MEC011/SRV/CAPIF/jsons/eventSubscription.json new file mode 100644 index 0000000..1e3e29c --- /dev/null +++ b/MEC011/SRV/CAPIF/jsons/eventSubscription.json @@ -0,0 +1,9 @@ +{ + "events": [ + "CAPIFEvent", + "CAPIFEvent", + "CAPIFEvent" + ], + "notificationDestination": "http://someurl.com/someuri", + "requestTestNotification": false, +} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json b/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json new file mode 100644 index 0000000..1e3e29c --- /dev/null +++ b/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json @@ -0,0 +1,9 @@ +{ + "events": [ + "CAPIFEvent", + "CAPIFEvent", + "CAPIFEvent" + ], + "notificationDestination": "http://someurl.com/someuri", + "requestTestNotification": false, +} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/serviceApiDescription.json b/MEC011/SRV/CAPIF/jsons/serviceApiDescription.json new file mode 100644 index 0000000..24134e0 --- /dev/null +++ b/MEC011/SRV/CAPIF/jsons/serviceApiDescription.json @@ -0,0 +1,11 @@ +{ + "apiName": "apiName", + "serviceAPICategory": "serviceAPICategory", + "apiId": "apiId", + "shareableInfo": {}, + "ccfId": "ccfId", + "apiSuppFeats": "apiSuppFeats", + "pubApiPath": "pubApiPath", + "apiStatus": "apiStatus", + "vendorSpecific-urn:etsi:mec:capifext:service-info": {} +} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/serviceApiDescriptionBR.json b/MEC011/SRV/CAPIF/jsons/serviceApiDescriptionBR.json new file mode 100644 index 0000000..a800f66 --- /dev/null +++ b/MEC011/SRV/CAPIF/jsons/serviceApiDescriptionBR.json @@ -0,0 +1,8 @@ +{ + "apiId": "apiId", + "apiName": "apiName", + "serviceAPICategory": "serviceAPICategory", + "aefProfiles": { + "aefProfile": "aefProfile" + } +} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/schemas/EventSubscription.json.schema b/MEC011/SRV/CAPIF/schemas/EventSubscription.json.schema new file mode 100644 index 0000000..9ac3153 --- /dev/null +++ b/MEC011/SRV/CAPIF/schemas/EventSubscription.json.schema @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "EventSubscription", + "type": "object", + "properties": { + "events": { + "type": "array", + "description": "The applicable subset of values from 'CAPIFEvent' mapped to MEC event types as defined in clause 9.1.6.1.", + "items": { + "type": "string" + } + }, + "eventReq": { + "type": "object", + "description": "See note. Optional attribute." + }, + "notificationDestination": { + "type": "string", + "description": "Shall be set to the value of the 'callbackReference' attribute in the 'SerAvailabilityNotificationSubscription' structure as defined in clause 8.1.3.2.", + "format": "uri" + }, + "requestTestNotification": { + "type": "boolean", + "description": "Aligned with ETSI GS MEC 009 [5], refers to a 3GPP-related mechanism." + }, + "websocketNotifConfig": { + "type": "object", + "description": "Aligned with ETSI GS MEC 009 [5], refers to a 3GPP-related mechanism." + } + }, + "required": ["events", "notificationDestination"] +} diff --git a/MEC011/SRV/CAPIF/schemas/ServiceApiDescription.json.schema b/MEC011/SRV/CAPIF/schemas/ServiceApiDescription.json.schema new file mode 100644 index 0000000..444a7f0 --- /dev/null +++ b/MEC011/SRV/CAPIF/schemas/ServiceApiDescription.json.schema @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "ServiceInfo", + "type": "object", + "properties": { + "apiName": { + "type": "string", + "description": "Shall be set to the value of the 'serName' attribute as defined in clause 8.1.2.2." + }, + "apiId": { + "type": "string", + "description": "If present, shall be set to the value of the 'serInstanceId' attribute as defined in clause 8.1.2.2." + }, + "shareableInfo": { + "type": "object", + "description": "See note." + }, + "serviceAPICategory": { + "type": "string", + "description": "Shall be set to the same value as the attribute 'id' in 'CategoryRef'." + }, + "ccfId": { + "type": "string", + "description": "See note." + }, + "apiSuppFeats": { + "type": "string", + "description": "See note." + }, + "pubApiPath": { + "type": "string", + "description": "See note." + }, + "apiStatus": { + "type": "string", + "description": "See note." + }, + "vendorSpecific-urn:etsi:mec:capifext:service-info": { + "type": "object", + "description": "MecServiceInfoCapifExt used to carry MEC-specific extensions. Requires CAPIF feature 'VendorExt' as defined in clause 8.2.6 of ETSI TS 129 222 [21]." + } + }, + "required": ["apiName", "serviceAPICategory"] +} diff --git a/MEC011/SRV/CAPIF/schemas/ServiceApiDescriptionList.json.schema b/MEC011/SRV/CAPIF/schemas/ServiceApiDescriptionList.json.schema new file mode 100644 index 0000000..85b2e2e --- /dev/null +++ b/MEC011/SRV/CAPIF/schemas/ServiceApiDescriptionList.json.schema @@ -0,0 +1,48 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "ServiceInfoList", + "type": "array", + "items": { + "type": "object", + "title": "ServiceInfo", + "properties": { + "apiName": { + "type": "string", + "description": "Shall be set to the value of the 'serName' attribute as defined in clause 8.1.2.2." + }, + "apiId": { + "type": "string", + "description": "If present, shall be set to the value of the 'serInstanceId' attribute as defined in clause 8.1.2.2." + }, + "shareableInfo": { + "type": "object", + "description": "See note. Optional attribute." + }, + "serviceAPICategory": { + "type": "string", + "description": "Shall be set to the same value as the attribute 'id' in 'CategoryRef'." + }, + "ccfId": { + "type": "string", + "description": "See note. Optional attribute." + }, + "apiSuppFeats": { + "type": "string", + "description": "See note. Optional attribute." + }, + "pubApiPath": { + "type": "string", + "description": "See note. Optional attribute." + }, + "apiStatus": { + "type": "string", + "description": "See note. Optional attribute." + }, + "vendorSpecific-urn:etsi:mec:capifext:service-info": { + "type": "object", + "description": "MecServiceInfoCapifExt used to carry MEC-specific extensions. Requires CAPIF feature 'VendorExt' as defined in clause 8.2.6 of ETSI TS 129 222 [21]." + } + }, + "required": ["apiName", "serviceAPICategory"] + } +} -- GitLab From 7b04a65764b0caa5a08c88d2019623b8eacca617 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 16:57:26 +0200 Subject: [PATCH 15/28] Added JSON payloads and JSON schemas. --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 16 +- .../jsons/QoSEventSubscription.json | 18 ++ .../jsons/QoSEventSubscriptionBR.json | 18 ++ .../jsons/QoSEventSubscriptionBR2.json | 17 ++ .../jsons/QoSEventSubscriptionBR3.json | 18 ++ .../jsons/QoSEventSubscriptionBR4.json | 14 ++ .../jsons/QoSEventSubscriptionBR5.json | 12 ++ .../jsons/QoSEventSubscriptionBR6.json | 14 ++ .../jsons/QoSEventSubscriptionBR7.json | 17 ++ .../QoSEventSubscriptionTestExpiryTimer.json | 20 +++ .../QoSEventSubscriptionTestNotification.json | 19 +++ .../jsons/QoSEventSubscriptionUpdate.json | 19 +++ .../QoSEventSubscriptionWithThreshold.json | 17 ++ .../schemas/QoSEventSubscription.json.schema | 157 ++++++++++++++++++ 14 files changed, 375 insertions(+), 1 deletion(-) create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR2.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR3.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR4.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR5.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR6.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR7.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestExpiryTimer.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestNotification.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionUpdate.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionWithThreshold.json create mode 100644 MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot index 2ff9682..be13742 100644 --- a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -1,5 +1,5 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot -... Test Suite to validate QoSEventSubNot Service API operations. +... Test Suite to validate QoSEventSubNot API operations. *** Settings *** Resource environment/variables.txt @@ -124,6 +124,20 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_07 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_07 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid condition on monitoringArea + ... by a MEC Application - Invalid flowFilter + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR7 + Check HTTP Response Status Code Is 400 + + + TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK ... Check that the IUT acknowledges the changes of QoS event subscription request diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json new file mode 100644 index 0000000..e4dd1fc --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json @@ -0,0 +1,18 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR.json new file mode 100644 index 0000000..576bbe0 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR.json @@ -0,0 +1,18 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR2.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR2.json new file mode 100644 index 0000000..01ad9cb --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR2.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "XXX" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR3.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR3.json new file mode 100644 index 0000000..ac4481f --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR3.json @@ -0,0 +1,18 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "websockNotifConfig": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR4.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR4.json new file mode 100644 index 0000000..24dab32 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR4.json @@ -0,0 +1,14 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR5.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR5.json new file mode 100644 index 0000000..609f444 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR5.json @@ -0,0 +1,12 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR6.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR6.json new file mode 100644 index 0000000..1525670 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR6.json @@ -0,0 +1,14 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowInfo":{ + }, + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR7.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR7.json new file mode 100644 index 0000000..d2bc857 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR7.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowInfo":{ + }, + "reportingCtrl": {}, + "measuringPeriod": 1000, + "monitoringArea":{ + "areaInfo":"" + }, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestExpiryTimer.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestExpiryTimer.json new file mode 100644 index 0000000..94e6ae2 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestExpiryTimer.json @@ -0,0 +1,20 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "requestTestNotification": true, + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + }, + "expiryDeadline": "2020-01-01T00:00" +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestNotification.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestNotification.json new file mode 100644 index 0000000..362c452 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestNotification.json @@ -0,0 +1,19 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "requestTestNotification": true, + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionUpdate.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionUpdate.json new file mode 100644 index 0000000..b0aad3b --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionUpdate.json @@ -0,0 +1,19 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT", + "upperThreshold":100000 + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionWithThreshold.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionWithThreshold.json new file mode 100644 index 0000000..9d80a98 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionWithThreshold.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": ["ACR_SOME_IP"], + "flowFilter": [ + {"sourceIP":"ACR_SOME_IP"} + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger":{ + "metricType":"THROUGHPUT", + "upperThreshold":100000, + "lowerThreshold":1000 + + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema b/MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema new file mode 100644 index 0000000..1187375 --- /dev/null +++ b/MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema @@ -0,0 +1,157 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "QoSEventSubscription", + "type": "object", + "properties": { + "subscriptionType": { + "type": "string", + "const": "QoSEventSubscription", + "description": "Shall be set to 'QoSEventSubscription'." + }, + "callbackReference": { + "type": "string", + "format": "uri", + "description": "URI exposed by the client to receive notifications via HTTP." + }, + "requestTestNotification": { + "type": "boolean", + "description": "If true, test notification shall be sent via HTTP as per ETSI GS MEC 009." + }, + "websocketNotifConfig": { + "$ref": "#/definitions/WebsocketNotifConfig" + }, + "_links": { + "type": "object", + "description": "Links to resources. Inline structure." + }, + "self": { + "type": "string", + "format": "uri", + "description": "URI of the subscription resource." + }, + "users": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "description": "List of user identifiers." + }, + "flowFilter": { + "type": "array", + "items": { + "type": "object", + "description": "Inline structure for traffic flow filtering criteria." + } + }, + "sourceIp": { + "type": "string", + "description": "IPv4/IPv6 address of the flow source." + }, + "sourcePort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "dstIp": { + "type": "string", + "description": "IPv4/IPv6 address of the flow destination." + }, + "dstPort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "protocol": { + "type": "integer" + }, + "dsField": { + "type": "integer" + }, + "trafficFilter": { + "type": "string" + }, + "eventTrigger": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "description": "Inline structure describing event trigger." + } + }, + "upperThreshold": { + "type": "integer" + }, + "lowerThreshold": { + "type": "integer" + }, + "reportingCtrl": { + "$ref": "#/definitions/ReportingCtrl" + }, + "measuringPeriod": { + "type": "integer" + }, + "monitoringArea": { + "type": "array", + "items": { + "$ref": "#/definitions/AreaInfo" + } + }, + "accessPointId": { + "type": "string" + }, + "zoneId": { + "type": "string" + }, + "timeSlot": { + "type": "array", + "items": { + "type": "object", + "description": "StartTime and EndTime range." + } + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "expiryDeadline": { + "type": "string", + "format": "date-time", + "description": "Expiration time of the subscription." + } + }, + "required": [ + "subscriptionType", + "eventTrigger", + "startTime", + "endTime" + ], + "anyOf": [ + { "required": ["callbackReference"] }, + { "required": ["websocketNotifConfig"] } + ], + "definitions": { + "WebsocketNotifConfig": { + "type": "object", + "description": "WebSocket config structure, aligns with ETSI GS MEC 009." + }, + "ReportingCtrl": { + "type": "object", + "description": "Reporting control structure as per ETSI." + }, + "AreaInfo": { + "type": "object", + "description": "Structure defining geographic or logical area for monitoring." + } + } +} -- GitLab From 3173a87c1901fb8356f8706eb387e7303042dfec Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 17:30:30 +0200 Subject: [PATCH 16/28] For MEC011 TCs made some fixes on TCs themselves and JSON payloads. --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 146 ++++++++++++------ MEC011/SRV/CAPIF/jsons/eventSubscription.json | 2 +- .../CAPIF/jsons/eventSubscriptionUpdate.json | 2 +- 3 files changed, 98 insertions(+), 52 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 950122f..f2d4b91 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -81,6 +81,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_04 Should Be Equal As Strings ${element}[apiName] ${API_NAME_QUERY_PARAM} END + + + TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_BR [Documentation] ... Check that the IUT responds with an error @@ -217,52 +220,69 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_02 Check HTTP Response Status Code Is 404 -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK [Documentation] - ... Check that the IUT responds with an error - ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 - ... ETSI GS MEC 011 clause 9.1.2.2 - ... ETSI GS MEC 011 clause 9.2.5.3.2 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update published APIs wrong HTTP method ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF + [Documentation] + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 404 -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_006_OK [Documentation] ... Check that the IUT changes the publishing of a new API ... when queried by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.2.3 - ... ETSI GS MEC 011 clause 9.2.5.3.3 + ... ETSI GS MEC 011 clause 9.2.5.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate + Replace published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ServiceApiDescription ${MEC_SRV_SER_NAME} Get value entry from JSON file ServiceApiDescription apiName Check Response Contains ${response['body']} apiId ${MEC_SRV_SER_INSTANCE_ID} -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_006_NF [Documentation] ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.2.3 - ... ETSI GS MEC 011 clause 9.2.5.3.3 + ... ETSI GS MEC 011 clause 9.2.5.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate + Replace published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate Check HTTP Response Status Code Is 404 + TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK [Documentation] ... Check that the IUT acknowledges the removing of a published API @@ -275,6 +295,8 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} Check HTTP Response Status Code Is 204 + + TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF [Documentation] @@ -290,7 +312,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF Check HTTP Response Status Code Is 404 -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_008_OK [Documentation] ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application @@ -305,7 +327,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK Check HTTP Response Body Json Schema Is EventSubscription -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_008_NF [Documentation] ... Check that the IUT responds with an error ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application @@ -319,94 +341,91 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF Check HTTP Response Status Code Is 404 -##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_OK [Documentation] - ... Check that the IUT acknowledges the update of a CAPIF subscription request - ... when requested by a MEC Application + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription -##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_NF [Documentation] - ... Check that the IUT acknowledges the update of a CAPIF subscription request - ... when requested by a MEC Application + ... Check that the IUT acknowledges the changes of a CAPIF subscription request + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 - -##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK [Documentation] - ... Check that the IUT acknowledges the changes of a CAPIF subscription request - ... when requested by a MEC Application + ... Check that the IUT acknowledges the changes of a CAPIF subscription request + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionPatch + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription -##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF [Documentation] - ... Check that the IUT acknowledges the changes of a CAPIF subscription request - ... when requested by a MEC Application + ... Check that the IUT responds with an error + ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionPatch + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 - Check HTTP Response Body Json Schema Is EventSubscription -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_OK +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK [Documentation] - ... Check that the IUT acknowledges the cancellation of a CAPIF subscription - ... when requested by a MEC Application + ... Check that the IUT acknowledges the cancellation of a CAPIF subscription + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES - Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} + Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_NF +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF [Documentation] - ... Check that the IUT responds with an error - ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... Check that the IUT responds with an error + ... when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES - Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} + Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 - - + *** Keywords *** Get all services APIs Set Headers {"Accept":"application/json"} @@ -427,6 +446,7 @@ Get services APIs with query params Set Suite Variable ${response} ${output} +##Published APIs management Keywords Get published services APIs [Arguments] ${MEC_SRV_SER_INSTANCE_ID} Set Headers {"Accept":"application/json"} @@ -460,7 +480,7 @@ Get published APIs Set Suite Variable ${response} ${output} -Update published APIs wrong HTTP method +Replace published APIs wrong HTTP method [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} @@ -470,6 +490,30 @@ Update published APIs wrong HTTP method Set Suite Variable ${response} ${output} +Replace published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Put ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Replace published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Put ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + Update published APIs [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} Set Headers {"Accept":"application/json"} @@ -482,7 +526,7 @@ Update published APIs ${output}= Output response Set Suite Variable ${response} ${output} - + Remove published APIs [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} Set Headers {"Accept":"application/json"} @@ -492,7 +536,9 @@ Remove published APIs Delete ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${output}= Output response Set Suite Variable ${response} ${output} - + + +##CAPIF Subscription management Keywords Create CAPIF subscription [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${content} Set Headers {"Accept":"application/json"} @@ -503,7 +549,7 @@ Create CAPIF subscription Post ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} - + Replace existing CAPIF subscription [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} ${content} diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscription.json b/MEC011/SRV/CAPIF/jsons/eventSubscription.json index 1e3e29c..dfb5bc8 100644 --- a/MEC011/SRV/CAPIF/jsons/eventSubscription.json +++ b/MEC011/SRV/CAPIF/jsons/eventSubscription.json @@ -5,5 +5,5 @@ "CAPIFEvent" ], "notificationDestination": "http://someurl.com/someuri", - "requestTestNotification": false, + "requestTestNotification": false } \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json b/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json index 1e3e29c..dfb5bc8 100644 --- a/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json +++ b/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json @@ -5,5 +5,5 @@ "CAPIFEvent" ], "notificationDestination": "http://someurl.com/someuri", - "requestTestNotification": false, + "requestTestNotification": false } \ No newline at end of file -- GitLab From 71c2960baa5a65c1038568fd2c2f519bcb672410 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 18:00:29 +0200 Subject: [PATCH 17/28] Fix errors on pipeline. --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index f2d4b91..8b1803d 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -490,18 +490,6 @@ Replace published APIs wrong HTTP method Set Suite Variable ${response} ${output} -Replace published APIs - [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} - Set Headers {"Accept":"application/json"} - Set Headers {"Authorization":"${TOKEN}"} - Set Headers {"Content-Type":"*/*"} - ${file}= Catenate SEPARATOR= jsons/ ${content} .json - ${body}= Get File ${file} - - Put ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${body} - ${output}= Output response - Set Suite Variable ${response} ${output} - Replace published APIs [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} Set Headers {"Accept":"application/json"} @@ -563,7 +551,7 @@ Replace existing CAPIF subscription Set Suite Variable ${response} ${output} -Modify existing CAPIF subscription +Update existing CAPIF subscription [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} ${content} Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} -- GitLab From 38a92a0275723244a7215f58eb134410efcdbd36 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 4 Jul 2025 09:18:17 +0200 Subject: [PATCH 18/28] Minor fixes for pipeline errors --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 8b1803d..aa84fa1 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -231,7 +231,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -246,7 +246,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 404 @@ -366,7 +366,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 @@ -380,7 +380,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -395,7 +395,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 -- GitLab From 6926a03209009f8ffe5467a1c7cc26d37233c040 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 4 Jul 2025 09:18:17 +0200 Subject: [PATCH 19/28] Minor fixes for pipeline errors --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 8b1803d..f906cc7 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -231,7 +231,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -246,7 +246,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 404 @@ -351,7 +351,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -366,7 +366,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 @@ -380,7 +380,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -395,7 +395,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 -- GitLab From 4296d1e50ce3399e6fabbf7597a806cb81a5e26a Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 4 Jul 2025 09:41:19 +0200 Subject: [PATCH 20/28] Added missing JSON payload examples and schema --- MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot | 4 +- .../jsons/QoSMeasureSubscription.json | 17 ++ .../jsons/QoSMeasureSubscriptionBR.json | 16 ++ .../jsons/QoSMeasureSubscriptionBR2.json | 15 ++ .../jsons/QoSMeasureSubscriptionBR3.json | 17 ++ .../jsons/QoSMeasureSubscriptionBR4.json | 13 ++ .../jsons/QoSMeasureSubscriptionBR5.json | 16 ++ .../jsons/QoSMeasureSubscriptionBR6.json | 17 ++ .../jsons/QoSMeasureSubscriptionBR7.json | 19 +++ .../jsons/QoSMeasureSubscriptionBR8.json | 20 +++ .../jsons/QoSMeasureSubscriptionUpdate.json | 17 ++ ...oSMeasureSubscriptionWithNumOfReports.json | 17 ++ ...QoSMeasureSubscriptionWithRepInterval.json | 16 ++ .../schemas/QoSEventSubscription.json.schema | 157 ++++++++++++++++++ 14 files changed, 359 insertions(+), 2 deletions(-) create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR2.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR3.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR4.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR5.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR6.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR7.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR8.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionUpdate.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithNumOfReports.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithRepInterval.json create mode 100644 MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot index 7ce5343..d126791 100644 --- a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot +++ b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot @@ -164,7 +164,7 @@ TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_OK ... ETSI GS MEC 045 Clause 6.3.2, ... ETSI GS MEC 045 Clause 7.4.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update QoS Event Subscription QoSEventSubscriptionUpdate ${SUBSCRIPTION_ID} + Update QoS Event Subscription QoSMeasureSubscriptionUpdate ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is QoSEventSubscription @@ -176,7 +176,7 @@ TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_NF ... ETSI GS MEC 045 Clause 6.3.2, ... ETSI GS MEC 045 Clause 7.4.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update QoS Event Subscription QoSEventSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} + Update QoS Event Subscription QoSMeasureSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is QoSEventSubscription diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json new file mode 100644 index 0000000..6d10f20 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[ "flowInfo1"], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR.json new file mode 100644 index 0000000..4a73528 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR.json @@ -0,0 +1,16 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR2.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR2.json new file mode 100644 index 0000000..b70e475 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR2.json @@ -0,0 +1,15 @@ +{ + "subscriptionType": "QoSSubscription", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR3.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR3.json new file mode 100644 index 0000000..bb7f8c2 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR3.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "websockNotifConfig":"websocketconfig", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR4.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR4.json new file mode 100644 index 0000000..14d5e5d --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR4.json @@ -0,0 +1,13 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR5.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR5.json new file mode 100644 index 0000000..a4d740e --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR5.json @@ -0,0 +1,16 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR6.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR6.json new file mode 100644 index 0000000..ee0664a --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR6.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR7.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR7.json new file mode 100644 index 0000000..56aeab2 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR7.json @@ -0,0 +1,19 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[ "flowInfo1"], + "measuringPeriod": 1000, + "reportingInterval":10, + "measuringPeriod":100, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR8.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR8.json new file mode 100644 index 0000000..af52efd --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR8.json @@ -0,0 +1,20 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[ "flowInfo1"], + "measuringPeriod": 1000, + "measuringArea":{ + "areaInfo":"" + }, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionUpdate.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionUpdate.json new file mode 100644 index 0000000..1daafec --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionUpdate.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[ "flowInfo1"], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY","ERRROR_RATE"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithNumOfReports.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithNumOfReports.json new file mode 100644 index 0000000..1f2043f --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithNumOfReports.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "numberOfReports": 100, + "reportingInterval": 10, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithRepInterval.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithRepInterval.json new file mode 100644 index 0000000..2133f55 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithRepInterval.json @@ -0,0 +1,16 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "reportingInterval": 10, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema b/MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema new file mode 100644 index 0000000..1187375 --- /dev/null +++ b/MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema @@ -0,0 +1,157 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "QoSEventSubscription", + "type": "object", + "properties": { + "subscriptionType": { + "type": "string", + "const": "QoSEventSubscription", + "description": "Shall be set to 'QoSEventSubscription'." + }, + "callbackReference": { + "type": "string", + "format": "uri", + "description": "URI exposed by the client to receive notifications via HTTP." + }, + "requestTestNotification": { + "type": "boolean", + "description": "If true, test notification shall be sent via HTTP as per ETSI GS MEC 009." + }, + "websocketNotifConfig": { + "$ref": "#/definitions/WebsocketNotifConfig" + }, + "_links": { + "type": "object", + "description": "Links to resources. Inline structure." + }, + "self": { + "type": "string", + "format": "uri", + "description": "URI of the subscription resource." + }, + "users": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "description": "List of user identifiers." + }, + "flowFilter": { + "type": "array", + "items": { + "type": "object", + "description": "Inline structure for traffic flow filtering criteria." + } + }, + "sourceIp": { + "type": "string", + "description": "IPv4/IPv6 address of the flow source." + }, + "sourcePort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "dstIp": { + "type": "string", + "description": "IPv4/IPv6 address of the flow destination." + }, + "dstPort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "protocol": { + "type": "integer" + }, + "dsField": { + "type": "integer" + }, + "trafficFilter": { + "type": "string" + }, + "eventTrigger": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "description": "Inline structure describing event trigger." + } + }, + "upperThreshold": { + "type": "integer" + }, + "lowerThreshold": { + "type": "integer" + }, + "reportingCtrl": { + "$ref": "#/definitions/ReportingCtrl" + }, + "measuringPeriod": { + "type": "integer" + }, + "monitoringArea": { + "type": "array", + "items": { + "$ref": "#/definitions/AreaInfo" + } + }, + "accessPointId": { + "type": "string" + }, + "zoneId": { + "type": "string" + }, + "timeSlot": { + "type": "array", + "items": { + "type": "object", + "description": "StartTime and EndTime range." + } + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "expiryDeadline": { + "type": "string", + "format": "date-time", + "description": "Expiration time of the subscription." + } + }, + "required": [ + "subscriptionType", + "eventTrigger", + "startTime", + "endTime" + ], + "anyOf": [ + { "required": ["callbackReference"] }, + { "required": ["websocketNotifConfig"] } + ], + "definitions": { + "WebsocketNotifConfig": { + "type": "object", + "description": "WebSocket config structure, aligns with ETSI GS MEC 009." + }, + "ReportingCtrl": { + "type": "object", + "description": "Reporting control structure as per ETSI." + }, + "AreaInfo": { + "type": "object", + "description": "Structure defining geographic or logical area for monitoring." + } + } +} -- GitLab From f6015564ec062c35e88675cf95a04833a9214f83 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 4 Jul 2025 09:49:18 +0200 Subject: [PATCH 21/28] Added missing JSON schema and minor fix. --- MEC045/SUBLOOKUP/QoSLookup.robot | 10 +- .../NotificationSubscriptionList.json.schema | 211 ++++++++++++++++++ 2 files changed, 216 insertions(+), 5 deletions(-) create mode 100644 MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema diff --git a/MEC045/SUBLOOKUP/QoSLookup.robot b/MEC045/SUBLOOKUP/QoSLookup.robot index d307e38..8dcc0a7 100644 --- a/MEC045/SUBLOOKUP/QoSLookup.robot +++ b/MEC045/SUBLOOKUP/QoSLookup.robot @@ -24,7 +24,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_001_OK [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve all subscriptions Check HTTP Response Status Code Is 201 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_001_BR @@ -58,7 +58,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_01 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${SUB_ID_QUERY_PARAM} Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_02 @@ -70,7 +70,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_02 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${SUB_TYPE_QUERY_PARAM} Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 @@ -81,7 +81,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${NF_SUB_TYPE_QUERY_PARAM} Check HTTP Response Status Code Is 404 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_02 @@ -93,7 +93,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_02 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${NF_SUB_TYPE_QUERY_PARAM} Check HTTP Response Status Code Is 404 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_003_OK diff --git a/MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema b/MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema new file mode 100644 index 0000000..a1ad9ef --- /dev/null +++ b/MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema @@ -0,0 +1,211 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "QoSEventSubscription", + "type": "object", + "properties": { + "subscriptionType": { + "type": "string", + "const": "QoSEventSubscription" + }, + "callbackReference": { + "type": "string", + "format": "uri" + }, + "requestTestNotification": { + "type": "boolean" + }, + "websocketNotifConfig": { + "$ref": "#/definitions/WebsocketNotifConfig" + }, + "_links": { + "type": "object", + "description": "HATEOAS-style resource links." + }, + "self": { + "type": "string", + "format": "uri" + }, + "users": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "flowFilter": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowFilter" + } + }, + "sourceIp": { + "type": "string" + }, + "sourcePort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "dstIp": { + "type": "string" + }, + "dstPort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "protocol": { + "type": "integer" + }, + "dsField": { + "type": "integer" + }, + "trafficFilter": { + "type": "string" + }, + "eventTrigger": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/EventTrigger" + } + }, + "upperThreshold": { + "type": "integer" + }, + "lowerThreshold": { + "type": "integer" + }, + "reportingCtrl": { + "$ref": "#/definitions/ReportingCtrl" + }, + "measuringPeriod": { + "type": "integer" + }, + "monitoringArea": { + "type": "array", + "items": { + "$ref": "#/definitions/AreaInfo" + } + }, + "accessPointId": { + "type": "string" + }, + "zoneId": { + "type": "string" + }, + "timeSlot": { + "type": "array", + "items": { + "$ref": "#/definitions/TimeSlot" + } + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "expiryDeadline": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "subscriptionType", + "eventTrigger", + "startTime", + "endTime" + ], + "anyOf": [ + { "required": ["callbackReference"] }, + { "required": ["websocketNotifConfig"] } + ], + "definitions": { + "WebsocketNotifConfig": { + "type": "object", + "properties": { + "websocketUri": { + "type": "string", + "format": "uri" + }, + "subprotocols": { + "type": "array", + "items": { "type": "string" } + } + }, + "required": ["websocketUri"] + }, + "FlowFilter": { + "type": "object", + "properties": { + "sourceIp": { "type": "string" }, + "destinationIp": { "type": "string" }, + "sourcePort": { + "type": "array", + "items": { "type": "integer", "minimum": 0, "maximum": 65535 } + }, + "destinationPort": { + "type": "array", + "items": { "type": "integer", "minimum": 0, "maximum": 65535 } + }, + "protocol": { "type": "integer" }, + "dsField": { "type": "integer" } + } + }, + "EventTrigger": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of event trigger, e.g., THRESHOLD_CROSSED" + }, + "params": { + "type": "object", + "description": "Additional trigger-specific parameters" + } + }, + "required": ["type"] + }, + "ReportingCtrl": { + "type": "object", + "properties": { + "reportingMode": { + "type": "string", + "enum": ["ONCE", "PERIODIC", "ON_EVENT"] + }, + "maxReports": { + "type": "integer", + "minimum": 1 + } + }, + "required": ["reportingMode"] + }, + "AreaInfo": { + "type": "object", + "properties": { + "zoneId": { "type": "string" }, + "locationList": { + "type": "array", + "items": { "type": "string" } + } + } + }, + "TimeSlot": { + "type": "object", + "properties": { + "start": { "type": "string", "format": "date-time" }, + "end": { "type": "string", "format": "date-time" } + }, + "required": ["start", "end"] + } + } +} -- GitLab From 4926ea62bcf7088d2e7d60202e5066e4e2b84b6c Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 22 Aug 2025 15:17:30 +0200 Subject: [PATCH 22/28] Fix typo --- MEC021/SRV/AMS/AMSService.robot | 46 ++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 8f9cc70..6b75058 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -18,7 +18,7 @@ Library Collections TC_MEC_MEC021_SRV_AMS_001_OK_01 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -51,7 +51,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_01 TC_MEC_MEC021_SRV_AMS_001_OK_02 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -76,7 +76,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_02 TC_MEC_MEC021_SRV_AMS_001_OK_03 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -98,7 +98,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_03 TC_MEC_MEC021_SRV_AMS_001_OK_04 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -118,7 +118,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 #TC_MEC_MEC021_SRV_AMS_001_OK_05 # [Documentation] Request Registered AMS information # ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service -# ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 +# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 # ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml # [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -127,7 +127,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 TC_MEC_MEC021_SRV_AMS_001_BR [Documentation] Request Registered AMS information using bad parameters ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Registered AMS information using bad parameters @@ -138,7 +138,7 @@ TC_MEC_MEC021_SRV_AMS_001_BR TC_MEC_MEC021_SRV_AMS_002_OK [Documentation] Register a new application mobility services ... Check that the AMS service creates a new application mobility services when requested - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} @@ -152,7 +152,7 @@ TC_MEC_MEC021_SRV_AMS_002_OK #TC_MEC_MEC021_SRV_AMS_002_BR # [Documentation] Request Registered AMS information using bad parameters # ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters -# ... ETSI GS MEC 021 3.3.1, clause 8.3.3.4 +# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 # ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml # [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -162,7 +162,7 @@ TC_MEC_MEC021_SRV_AMS_002_OK TC_MEC_MEC021_SRV_AMS_003_BR [Documentation] Register an UE Identity Tag using invalid parameter ... Check that the AMS service sends an error when it receives a malformed request to create a new application mobility service - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${MALFORMED_APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} @@ -176,7 +176,7 @@ TC_MEC_MEC021_SRV_AMS_004_OK ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.3.1, clause 8.6.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS @@ -188,7 +188,7 @@ TC_MEC_MEC021_SRV_AMS_004_OK TC_MEC_MEC021_SRV_AMS_004_BR [Documentation] Request Subscription List for registered AMS Services using wrong attribute parameters ... Check that the AMS service sends an error when it receives a malformed query about the available subscriptions - ... ETSI GS MEC 021 3.3.1, clause 8.6.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS with wrong attbirube parameter @@ -202,7 +202,7 @@ TC_MEC_MEC021_SRV_AMS_005_OK ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.3.1, clause 8.6.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscription @@ -216,7 +216,7 @@ TC_MEC_MEC021_SRV_AMS_005_BR ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.3.1, clause 8.6.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscriptionError @@ -230,7 +230,7 @@ TC_MEC_MEC021_SRV_AMS_006_OK ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${SUBSCRIPTION_ID} @@ -242,7 +242,7 @@ TC_MEC_MEC021_SRV_AMS_006_OK TC_MEC_MEC021_SRV_AMS_006_NF [Documentation] Request a specific subscription using wrong identifier ... Check that the AMS service returns an error when receives a query about a not existing subscription - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -256,7 +256,7 @@ TC_MEC_MEC021_SRV_AMS_007_OK ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscription @@ -271,7 +271,7 @@ TC_MEC_MEC021_SRV_AMS_007_BR ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionError @@ -281,7 +281,7 @@ TC_MEC_MEC021_SRV_AMS_007_BR TP_MEC_MEC021_SRV_AMS_007_NF [Documentation] Modify a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a modify request for a not existing subscription. - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} NotificationSubscription @@ -292,7 +292,7 @@ TP_MEC_MEC021_SRV_AMS_007_NF TC_MEC_MEC021_SRV_AMS_008_OK [Documentation] Remove a specific subscription ... Check that the AMS service deletes a given subscription when requested - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.5 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete individual subscription for AMS services ${SUBSCRIPTION_ID} @@ -302,7 +302,7 @@ TC_MEC_MEC021_SRV_AMS_008_OK TC_MEC_MEC021_SRV_AMS_008_NF [Documentation] Remove a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.5 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -314,7 +314,7 @@ TC_MEC_MEC021_SRV_AMS_009_OK [Documentation] Post Mobility Procedure Notification ... Check that the AMS service sends an AMS notification about a mobility procedure ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.3.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Log TBD @@ -335,7 +335,7 @@ TC_MEC_MEC021_SRV_AMS_010_OK [Documentation] Post Adjacent Application Info Notification ... Check that the AMS service sends an AMS notification about adjacent application instances ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.3.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Log TBD @@ -356,7 +356,7 @@ TC_MEC_MEC021_SRV_AMS_011_OK [Documentation] Post Expire Notification ... Check that the AMS service sends an AMS notification on subscription expiration ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.3.1, clause 7.4.4 + ... ETSI GS MEC 021 3.1.1, clause 7.4.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Log TBD -- GitLab From 61bfd880712a99335d5b9b465afa25855afcd3a0 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 22 Aug 2025 17:23:46 +0200 Subject: [PATCH 23/28] Updated TCs related MEC021v3.1.1 --- MEC021/SRV/AMS/AMSService.robot | 430 ++++++++++-------- .../AMS/json/AdjacentAppInfoNotification.json | 11 + MEC021/SRV/AMS/json/ExpiryNotification.json | 12 + .../json/MobilityProcedureNotification.json | 16 + .../AMS/json/NotificationSubscription.json | 4 +- .../AMS/json/NotificationSubscription2.json | 16 + ...ationSubscriptionWithTestNotification.json | 16 + MEC021/SRV/AMS/json/TestNotification.json | 8 + MEC021/SRV/AMS/libraries/Server.py | 148 ++++++ ...djacentAppInfoInstanceInfoList.json.schema | 74 +++ .../AdjacentAppInfoNotification.schema.json | 95 ++++ .../AdjacentAppInstanceInfo.json.schema | 65 +++ .../schemas/ExpiryNotification.schema.json | 80 ++++ .../MobilityProcedureNotification.schema.json | 99 ++++ .../AMS/schemas/TestNotification.schema.json | 43 ++ 15 files changed, 925 insertions(+), 192 deletions(-) create mode 100644 MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json create mode 100644 MEC021/SRV/AMS/json/ExpiryNotification.json create mode 100644 MEC021/SRV/AMS/json/MobilityProcedureNotification.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscription2.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json create mode 100644 MEC021/SRV/AMS/json/TestNotification.json create mode 100644 MEC021/SRV/AMS/libraries/Server.py create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema create mode 100644 MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json create mode 100644 MEC021/SRV/AMS/schemas/TestNotification.schema.json diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 6b75058..fb2498a 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -18,12 +18,11 @@ Library Collections TC_MEC_MEC021_SRV_AMS_001_OK_01 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} - Get Registered AMS information Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfos @@ -51,8 +50,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_01 TC_MEC_MEC021_SRV_AMS_001_OK_02 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -76,8 +75,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_02 TC_MEC_MEC021_SRV_AMS_001_OK_03 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -98,8 +97,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_03 TC_MEC_MEC021_SRV_AMS_001_OK_04 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -115,20 +114,22 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 [TearDown] Delete two specific AMS services ${APP_MOBILITY_SERVICE_ID} ${APP_MOBILITY_SERVICE_ID2} -#TC_MEC_MEC021_SRV_AMS_001_OK_05 -# [Documentation] Request Registered AMS information -# ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service -# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 -# ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml -# [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS +TC_MEC_MEC021_SRV_AMS_001_OK_05 + [Documentation] Request Registered AMS information + ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 + Get Registered AMS information + Check HTTP Response Status Code Is 200 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS TC_MEC_MEC021_SRV_AMS_001_BR [Documentation] Request Registered AMS information using bad parameters ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Registered AMS information using bad parameters Check HTTP Response Status Code Is 400 @@ -138,8 +139,9 @@ TC_MEC_MEC021_SRV_AMS_001_BR TC_MEC_MEC021_SRV_AMS_002_OK [Documentation] Register a new application mobility services ... Check that the AMS service creates a new application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 6.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} Check HTTP Response Status Code Is 201 @@ -148,90 +150,75 @@ TC_MEC_MEC021_SRV_AMS_002_OK Should Be Equal As Strings ${response['body']['serviceConsumerId']['appInstanceId']} ${APP_INS_ID} -# This test case is incomplete -#TC_MEC_MEC021_SRV_AMS_002_BR -# [Documentation] Request Registered AMS information using bad parameters -# ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters -# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 -# ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml -# [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - - - - -TC_MEC_MEC021_SRV_AMS_003_BR +TC_MEC_MEC021_SRV_AMS_002_BR [Documentation] Register an UE Identity Tag using invalid parameter ... Check that the AMS service sends an error when it receives a malformed request to create a new application mobility service + ... ETSI GS MEC 021 3.1.1, clause 6.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${MALFORMED_APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} Check HTTP Response Status Code Is 400 # Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions -TC_MEC_MEC021_SRV_AMS_004_OK +TC_MEC_MEC021_SRV_AMS_003_OK [Documentation] Request Subscriptions List for the registered AMS services ... Check that the AMS service returns information about the available subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.4 ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is SubscriptionLinkList - -TC_MEC_MEC021_SRV_AMS_004_BR +TC_MEC_MEC021_SRV_AMS_003_BR [Documentation] Request Subscription List for registered AMS Services using wrong attribute parameters ... Check that the AMS service sends an error when it receives a malformed query about the available subscriptions - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS with wrong attbirube parameter Check HTTP Response Status Code Is 400 # Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions -TC_MEC_MEC021_SRV_AMS_005_OK +TC_MEC_MEC021_SRV_AMS_004_OK [Documentation] Create a notification subscription ... Check that the AMS service creates a notification subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscription Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is NotificationSubscription -TC_MEC_MEC021_SRV_AMS_005_BR +TC_MEC_MEC021_SRV_AMS_004_BR [Documentation] Create a notification subscription with wrong attribute parameter ... Check that the AMS service creates a notification subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscriptionError Check HTTP Response Status Code Is 400 # Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} -TC_MEC_MEC021_SRV_AMS_006_OK +TC_MEC_MEC021_SRV_AMS_005_OK [Documentation] Request a specific subscription ... Check that the AMS service returns information about a given subscription when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 @@ -239,25 +226,51 @@ TC_MEC_MEC021_SRV_AMS_006_OK -TC_MEC_MEC021_SRV_AMS_006_NF +TC_MEC_MEC021_SRV_AMS_005_NF [Documentation] Request a specific subscription using wrong identifier ... Check that the AMS service returns an error when receives a query about a not existing subscription - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 +# Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} +TC_MEC_MEC021_SRV_AMS_006_OK + [Documentation] Remove a specific subscription + ... Check that the AMS service deletes a given subscription when requested + ... ETSI GS MEC 021 3.1.1, clause 6.7 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC021_SRV_AMS_006_NF + [Documentation] Remove a specific subscription using wrong identifier + ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription + ... ETSI GS MEC 021 3.1.1, clause 6.7 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 + + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + ... + ... # Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${identifier} TC_MEC_MEC021_SRV_AMS_007_OK [Documentation] Modify a specific subscription ... Check that the AMS service modifies a given subscription when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscription Check HTTP Response Status Code Is 200 @@ -268,11 +281,9 @@ TC_MEC_MEC021_SRV_AMS_007_OK TC_MEC_MEC021_SRV_AMS_007_BR [Documentation] Modify a specific subscription using malformed request ... Check that the AMS service sends an error when it receives a malformed modify request for a given subscription. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionError Check HTTP Response Status Code Is 400 @@ -281,103 +292,61 @@ TC_MEC_MEC021_SRV_AMS_007_BR TP_MEC_MEC021_SRV_AMS_007_NF [Documentation] Modify a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a modify request for a not existing subscription. + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} NotificationSubscription Check HTTP Response Status Code Is 404 -# Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} -TC_MEC_MEC021_SRV_AMS_008_OK - [Documentation] Remove a specific subscription - ... Check that the AMS service deletes a given subscription when requested - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Delete individual subscription for AMS services ${SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 204 - -TC_MEC_MEC021_SRV_AMS_008_NF - [Documentation] Remove a specific subscription using wrong identifier - ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml +TC_MEC_MEC021_SRV_AMS_008_OK + [Documentation] Post Mobility Procedure Notification + ... Check that the AMS service sends an AMS notification about a mobility procedure + ... if the AMS service has an associated subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 404 - + + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server MobilityProcedureNotification + Validate Json MobilityProcedureNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} TC_MEC_MEC021_SRV_AMS_009_OK - [Documentation] Post Mobility Procedure Notification - ... Check that the AMS service sends an AMS notification about a mobility procedure - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/MobilityProcedureNotification.schema.json -# Log Creating mock request and response to handle Mobility Procedure Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} + [Documentation] Adjacent App Info Notification + ... Check that the AMS service sends an AMS notification about adjacent application instances if the AMS service has an associated + ... subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server AdjacentAppInfoNotification + Validate Json AdjacentAppInfoNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} TC_MEC_MEC021_SRV_AMS_010_OK - [Documentation] Post Adjacent Application Info Notification - ... Check that the AMS service sends an AMS notification about adjacent application instances - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.3 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + [Documentation] Post Expire Notification + ... Check that the AMS service sends an AMS notification on subscription expiration if the AMS service has an associated subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.4 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/AdjacentAppInfoNotification.schema.json -# Log Creating mock request and response to handle Adjacent Application Info Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} - + + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server ExpiryNotification + Validate Json ExpiryNotification.schema.json ${payload_notification} +# Get ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${APP_MOBILITY_SERVICE_ID_1} TC_MEC_MEC021_SRV_AMS_011_OK - [Documentation] Post Expire Notification - ... Check that the AMS service sends an AMS notification on subscription expiration - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/ExpiryNotification.schema.json -# Log Creating mock request and response to handle Expire Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} - - -# Get ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_012_OK [Documentation] Request a specific AMS service ... Check that the AMS service returns information about this individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 200 @@ -385,118 +354,172 @@ TC_MEC_MEC021_SRV_AMS_012_OK -TC_MEC_MEC021_SRV_AMS_012_NF +TC_MEC_MEC021_SRV_AMS_011_NF [Documentation] Request a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when receives a query about a not existing individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 # Put ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_013_OK +TC_MEC_MEC021_SRV_AMS_012_OK [Documentation] Modify a specific AMS service ... Check that the AMS service modifies the individual application mobility service when requested - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfo Should Be Equal As Strings ${response['body']['appMobilityServiceId']} ${APP_MOBILITY_SERVICE_ID} Should Be Equal As Strings ${response['body']['serviceConsumerId']['appInstanceId']} ${APP_MOBILITY_SERVICE_ID} # from req - #Check Result Contains ${response['registeredAppMobilityService']['serviceConsumerId']} appInstanceId ${APP_INS_ID} - -#ensure that { -# when { -# the IUT entity receives a vPUT containing -# uri indicating value "/amsi/v1/app_mobility_services/{APP_MOBILITY_SERVICE_ID_1}", -# body containing -# RegistrationInfo containing -# serviceConsumerId containing -# appInstanceId indicating value NEW_APP_INS_ID_NEW_1;;;; -# from the AMS_CLIENT entity -# } -# then { -# the IUT entity sends a HTTP_RESPONSE containing -# status set to "200 OK", -# body containing -# RegistrationInfo containing -# appMobilityServiceId indicating value APP_MOBILITY_SERVICE_ID_1, -# serviceConsumerId containing -# appInstanceId indicating value NEW_APP_INS_ID_NEW_1;;;; -# to the AMS_CLIENT entity -# } -#} - -TC_MEC_MEC021_SRV_AMS_013_NF +TC_MEC_MEC021_SRV_AMS_012_NF [Documentation] Modify a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when receives a request to modify a not existing individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 404 -TC_MEC_MEC021_SRV_AMS_013_BR +TC_MEC_MEC021_SRV_AMS_012_BR [Documentation] Modify a specific AMS Service using bad parameters ... Check that the AMS service sends an error when receives a request to modify a individual application mobility service using bad parameters - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfoWithError Check HTTP Response Status Code Is 400 # Delete ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_014_OK +TC_MEC_MEC021_SRV_AMS_013_OK [Documentation] Remove a specific AMS service ... Check that the AMS service de-register the individual application mobility service and delete the resource ... that represents the individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.3 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.5 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC021_SRV_AMS_014_NF +TC_MEC_MEC021_SRV_AMS_013_NF [Documentation] Remove a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when is requested to delete the resource ... that represents the individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.3 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.5 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 # POST ${apiRoot}/${apiName}/${apiVersion}/appMobilityServices/${amsId}/deregisterTask -TC_MEC_MEC021_SRV_AMS_015_OK +TC_MEC_MEC021_SRV_AMS_014_OK [Documentation] Request to deregister a specific AMS service ... Check that the AMS service deregister an individual application mobility service on expiry of the timer associated with the service - ... ETSI GS MEC 021 2.0.10, clause 8.5.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... that represents the individual application mobility service + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.5.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Deregister specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC021_SRV_AMS_015_NF +TC_MEC_MEC021_SRV_AMS_014_NF [Documentation] Request to deregister a specific AMS service using non existent identifier ... Check that the AMS service send an error when is requested to deregister a not existent individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.5.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.5.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Deregister specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 + +TC_MEC_MEC021_SRV_AMS_015_OK_01 + [Documentation] + ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service + + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + +TC_MEC_MEC021_SRV_AMS_015_OK_02 + [Documentation] + ... Check that the AMS service returns information about the adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (eq,appInstanceId,{APP_INSTANCE_ID_1}) + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_OK_03 + [Documentation] + ... Check that the AMS service returns information about a specified adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (eq,appInstanceId,{APP_INSTANCE_ID_1})&filter(eq,appDId,{APP_ID_3}) + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_OK_04 + [Documentation] + ... Check that the AMS service returns information about a specified adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_BR + [Documentation] + ... Check that the AMS service sends an error about a specified adjacent application instances when request is inconsistent + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (appInstanceId,eq,{APP_INSTANCE_ID_1}) + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC021_SRV_UETESTNOT_001_OK + [Documentation] + ... Check that the IUT provides a test notification when requested by a MEC Application + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + [Setup] Post a new notification subscription NotificationSubscriptionWithTestNotification + Spawn Notification Server MobilityProcedureNotification + Validate Json MobilityProcedureNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + Spawn Notification Server TestNotification + Validate Json TestNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + + *** Keywords *** Get Registered AMS information Set Headers {"Accept":"application/json"} @@ -571,7 +594,8 @@ Deregister specific AMS service ${output}= Output response Set Suite Variable ${response} ${output} - + + Create a new application mobility service [Arguments] ${appMobilityServiceId} ${appInstanceId} Set Headers {"Accept":"application/json"} @@ -587,6 +611,8 @@ Create a new application mobility service ${output}= Output response Set Suite Variable ${response} ${output} + + Create two new application mobility service [Arguments] ${appMobilityServiceId} ${appInstanceId} ${appMobilityServiceId2} ${appInstanceId2} Set Headers {"Accept":"application/json"} @@ -675,4 +701,28 @@ Update individual subscription for AMS services Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${identifier} ${body} ${output}= Output response Set Suite Variable ${response} ${output} - \ No newline at end of file + + +Spawn Notification Server + [Arguments] ${payload_notification} + ${output} Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ${payload_notification} + ${length} = Get Length ${output} + Set Suite Variable ${payload_notification} ${output} + Run Keyword If ${length} == 0 Skip + + +Retrieve info about registered app mobility service + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/amsi/v1/queries/adjacent_app_instances + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve info about registered app mobility service with filter + [Arguments] ${filter} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/amsi/v1/queries/adjacent_app_instances?filter${filter} + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json new file mode 100644 index 0000000..601777c --- /dev/null +++ b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json @@ -0,0 +1,11 @@ +{ + "notificationType": "AdjacentAppInfoNotification", + "timeStamp": "sample string", + "adjacentAppInfo": [ + "sample string", + "sample string" + ], + "_links": { + "subscription": null + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/ExpiryNotification.json b/MEC021/SRV/AMS/json/ExpiryNotification.json new file mode 100644 index 0000000..602c492 --- /dev/null +++ b/MEC021/SRV/AMS/json/ExpiryNotification.json @@ -0,0 +1,12 @@ +{ + "_links": null, + "expiryDeadline": { + "nanoSeconds": 11, + "seconds": 11 + }, + "timeStamp": { + "nanoSeconds": 11, + "seconds": 11 + }, + "notificationType": "ExpiryNotification" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/MobilityProcedureNotification.json b/MEC021/SRV/AMS/json/MobilityProcedureNotification.json new file mode 100644 index 0000000..0b34631 --- /dev/null +++ b/MEC021/SRV/AMS/json/MobilityProcedureNotification.json @@ -0,0 +1,16 @@ +{ + "notificationType": "MobilityProcedureNotification", + "timeStamp": "s", + "associateId": [ + {}, + {} + ], + "mobilityStatus": 11, + "targetAppInfo": { + "appInstanceId": "sample string", + "commInterface": null + }, + "_links": { + "subscription": null + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription.json b/MEC021/SRV/AMS/json/NotificationSubscription.json index 9c2ed02..536bcc2 100644 --- a/MEC021/SRV/AMS/json/NotificationSubscription.json +++ b/MEC021/SRV/AMS/json/NotificationSubscription.json @@ -1,6 +1,6 @@ { "callbackReference": "http://example.com/callback", - "requestTestNotification": true, + "requestTestNotification": false, "websockNotifConfig": { "websocketUri": "ws://example.com/websocket", "requestWebsocketUri": true @@ -12,5 +12,5 @@ "filterCriteria": { "appInstanceId": "app-123" }, - "subscriptionType": "AdjacentAppInfoSubscription" + "subscriptionType": "MobilityProcedureSubscription" } \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription2.json b/MEC021/SRV/AMS/json/NotificationSubscription2.json new file mode 100644 index 0000000..fa161b7 --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscription2.json @@ -0,0 +1,16 @@ +{ + "callbackReference": "http://example.com/callback", + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 1644691200, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "app-123" + }, + "subscriptionType": "AdjacentAppInfoSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json new file mode 100644 index 0000000..536bcc2 --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json @@ -0,0 +1,16 @@ +{ + "callbackReference": "http://example.com/callback", + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 1644691200, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "app-123" + }, + "subscriptionType": "MobilityProcedureSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/TestNotification.json b/MEC021/SRV/AMS/json/TestNotification.json new file mode 100644 index 0000000..75ae598 --- /dev/null +++ b/MEC021/SRV/AMS/json/TestNotification.json @@ -0,0 +1,8 @@ +{ + "_links": { + "self": { + "href": "https://someurl.com/subscriptions/users/subscriptionId" + } + }, + "notificationType": "TestNotification" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/libraries/Server.py b/MEC021/SRV/AMS/libraries/Server.py new file mode 100644 index 0000000..fb64670 --- /dev/null +++ b/MEC021/SRV/AMS/libraries/Server.py @@ -0,0 +1,148 @@ +#!/usr/bin/python3 + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +def import_notification_json(subscription_type): + notification_type = subscription_type.split("Subscription")[0] + file_path = "./jsons/"+notification_type+".json" + logging.info(file_path) + logging.info(os.listdir()) + try: + with open(file_path, 'r') as json_file: + # Load the JSON data + data = json.load(json_file) + logging.info(data) + return data + except FileNotFoundError: + logging.error(f"Error: File not found at {file_path}") + + +class Server ( object ): + + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server (self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class GET_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_GET(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + class POST_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + #if self.path == self.endpoint: + # self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + #else: + # self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body=post_body + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + + class PUT_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_PUT(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + class DELETE_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_DELETE(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + if method == "GET": + self.handler = GET_Server(endpoint, resp_body) + elif method == "POST": + self.handler = POST_Server(endpoint, resp_body) + elif method == "PUT": + self.handler = PUT_Server(endpoint, resp_body) + elif method == "DELETE": + self.handler = DELETE_Server(endpoint, resp_body) + else: + logging.info("Error, unknown endpoint") + exit(1) + + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + + self.app.handle_request() + self.app.server_close() + logging.info(self.handler.get_resp_body()) + ## If a notification is received, then is returned. Otherwise an empty dictionary. + if(self.handler.get_req_body()!=None): + return json.loads(self.handler.get_req_body().decode("windows-1252")) + + ##OLD mechanism commented: if no response is received, then read the Notification JSON file and return it. + notification_json= import_notification_json(self.handler.get_resp_body()) + #return notification_json ##Decomment if you want to use the notification read from file + return {} + diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema b/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema new file mode 100644 index 0000000..1519407 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema @@ -0,0 +1,74 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInstanceInfoList", + "type": "array", + "description": "A list of AdjacentAppInstanceInfo objects.", + "items": { + "$ref": "#/$defs/AdjacentAppInstanceInfo" + }, + "minItems": 1, + "$defs": { + "AdjacentAppInstanceInfo": { + "title": "AdjacentAppInstanceInfo", + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the application instance." + }, + "appDId": { + "type": "string", + "description": "Identifier of the application descriptor." + }, + "appInstanceCommLink": { + "type": "array", + "minItems": 1, + "description": "It specifies the communication interface of application instance.", + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "mecHostInformation": { + "description": "It specifies the communication interface of application instance.", + "$ref": "#/$defs/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId" + ] + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "MECHostInformation": { + "type": "object", + "properties": { + "hostName": { + "type": "string" + }, + "hostId": { + "type": "string" + } + }, + "required": [ + "hostId" + ] + } + } +} diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json b/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json new file mode 100644 index 0000000..b0d3d1b --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json @@ -0,0 +1,95 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInfoNotification", + "type": "object", + "properties": { + "notificationType": { + "type": "string", + "const": "AdjacentAppInfoNotification", + "description": "Shall be set to 'MobilityProcedureNotification'." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the generation of the notification." + }, + "adjacentAppInfo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Identifier of the adjacent application instance" + }, + "_links": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/$defs/LinkType" + } + }, + "required": [ + "subscription" + ], + "additionalProperties": false, + "description": "Object containing hyperlinks related to the resource." + } + }, + "required": [ + "notificationType", + "_links" + ], + "$defs": { + "AdjacentAppInfo": { + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the adjacent application instance. " + }, + "communicationInterface": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + } + }, + "required": [ + "appInstanceId" + ] + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "LinkType": { + "type": "object", + "description": "Represents a type of link.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "URI referring to a resource." + } + }, + "required": [ + "href" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema b/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema new file mode 100644 index 0000000..5a5fd0a --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema @@ -0,0 +1,65 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInstanceInfo", + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the application instance. " + }, + "appDId": { + "type": "string", + "description": "Identifier of the application descriptor. " + }, + "appInstanceCommLink": { + "type": "array", + "minItem": 1, + "description": "It specifies the communication interface of application instance.", + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "mecHostInformation": { + "description": "It specifies the communication interface of application instance.", + "$ref": "#/$defs/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId" + ], + "$defs": { + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "MECHostInformation": { + "type": "object", + "properties": { + "hostName": { + "type": "string" + }, + "hostId": { + "type": "string" + } + }, + "required": [ + "hostId" + ] + } + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json b/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json new file mode 100644 index 0000000..cce3149 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json @@ -0,0 +1,80 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "ExpiryNotification", + "type": "object", + "properties": { + "_links": { + "title": "Links2", + "required": [ + "subscription" + ], + "properties": { + "subscription": { + "description": "URI identifying the subscription which has expired.", + "title": "LinkType", + "required": [ + "href" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "URI referring to a resource" + } + } + } + }, + "description": "List of hyperlinks related to the resource." + }, + "expiryDeadline": { + "title": "TimeStamp", + "required": [ + "nanoSeconds", + "seconds" + ], + "type": "object", + "properties": { + "nanoSeconds": { + "type": "integer", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + }, + "seconds": { + "type": "integer", + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + } + } + }, + "timeStamp": { + "description": "Time stamp of the notification.", + "title": "TimeStamp", + "required": [ + "nanoSeconds", + "seconds" + ], + "type": "object", + "properties": { + "nanoSeconds": { + "type": "integer", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + }, + "seconds": { + "type": "integer", + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + } + } + }, + "notificationType": { + "description": "Shall be set to \"ExpiryNotification\"", + "type": "string" + } + }, + "required": [ + "_links", + "expiryDeadline", + "notificationType" + ] +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json b/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json index e69de29..201b539 100644 --- a/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json +++ b/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json @@ -0,0 +1,99 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "MobilityProcedureNotification", + "type": "object", + "properties": { + "notificationType": { + "type": "string", + "const": "MobilityProcedureNotification", + "description": "Shall be set to 'MobilityProcedureNotification'." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the generation of the notification." + }, + "associateId": { + "type": "array", + "items": { + "type": "object" + }, + "minItems": 1, + "description": "1 to N identifiers to associate the information for specific UE(s) and flow(s)." + }, + "mobilityStatus": { + "type": "integer", + "enum": [1, 2, 3], + "description": "Status of the UE mobility. 1 = INTERHOST_MOVEOUT_TRIGGERED, 2 = INTERHOST_MOVEOUT_COMPLETED, 3 = INTERHOST_MOVEOUT_FAILED. Other values are reserved." + }, + "targetAppInfo": { + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the target application instance." + }, + "commInterface": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "required": ["appInstanceId"], + "additionalProperties": false, + "description": "Identifiers to associate the information of target application instance." + }, + "_links": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/$defs/LinkType" + } + }, + "required": ["subscription"], + "additionalProperties": false, + "description": "Object containing hyperlinks related to the resource." + } + }, + "required": ["notificationType", "associateId", "mobilityStatus", "_links"], + "additionalProperties": false, + "$defs": { + "AssociateId": { + "type": "object", + "description": "Identifier for UE(s) and flow(s).", + "properties": { + "id": { + "type": "string" + } + }, + "required": ["id"], + "additionalProperties": true + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": ["interfaceType", "endpoint"], + "additionalProperties": true + }, + "LinkType": { + "type": "object", + "description": "Represents a type of link.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "URI referring to a resource." + } + }, + "required": ["href"], + "additionalProperties": false + } + } +} diff --git a/MEC021/SRV/AMS/schemas/TestNotification.schema.json b/MEC021/SRV/AMS/schemas/TestNotification.schema.json new file mode 100644 index 0000000..af01800 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/TestNotification.schema.json @@ -0,0 +1,43 @@ +{ + "properties": { + "_links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "properties": { + "self": { + "properties": { + "href": { + "description": "URI referring to a resource.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uri" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.7.2" + } + }, + "required": [ + "self" + ], + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "notificationType": { + "description": "Shall be set to \"TestNotification\".", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "notificationType", + "_links" + ], + "type": "object", + "x-etsi-ref": "6.4.3" + } \ No newline at end of file -- GitLab From 03ce7b5a4218d8cd8af5271111ee877fa86857d3 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 22 Aug 2025 17:23:46 +0200 Subject: [PATCH 24/28] Updated TCs related MEC021v3.1.1 --- MEC021/SRV/AMS/AMSService.robot | 430 ++++++++++-------- .../AMS/json/AdjacentAppInfoNotification.json | 11 + MEC021/SRV/AMS/json/ExpiryNotification.json | 12 + .../json/MobilityProcedureNotification.json | 16 + .../AMS/json/NotificationSubscription.json | 4 +- .../AMS/json/NotificationSubscription2.json | 16 + ...ationSubscriptionWithTestNotification.json | 16 + MEC021/SRV/AMS/json/TestNotification.json | 8 + MEC021/SRV/AMS/libraries/Server.py | 148 ++++++ ...djacentAppInfoInstanceInfoList.json.schema | 74 +++ .../AdjacentAppInfoNotification.schema.json | 95 ++++ .../AdjacentAppInstanceInfo.json.schema | 65 +++ .../schemas/ExpiryNotification.schema.json | 80 ++++ .../MobilityProcedureNotification.schema.json | 99 ++++ .../AMS/schemas/TestNotification.schema.json | 43 ++ MEC029/SRV/FAIS/PlatFixedAcessInfo.robot | 32 +- 16 files changed, 927 insertions(+), 222 deletions(-) create mode 100644 MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json create mode 100644 MEC021/SRV/AMS/json/ExpiryNotification.json create mode 100644 MEC021/SRV/AMS/json/MobilityProcedureNotification.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscription2.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json create mode 100644 MEC021/SRV/AMS/json/TestNotification.json create mode 100644 MEC021/SRV/AMS/libraries/Server.py create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema create mode 100644 MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json create mode 100644 MEC021/SRV/AMS/schemas/TestNotification.schema.json diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 6b75058..dcd58e8 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -7,6 +7,7 @@ Resource ../../../pics.txt Resource ../../../GenericKeywords.robot Library REST ${AMS_SCHEMA}://${AMS_HOST}:${AMS_PORT} ssl_verify=false Library BuiltIn +Library libraries/Server.py Library OperatingSystem Library MockServerLibrary Library Collections @@ -18,12 +19,11 @@ Library Collections TC_MEC_MEC021_SRV_AMS_001_OK_01 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} - Get Registered AMS information Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfos @@ -51,8 +51,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_01 TC_MEC_MEC021_SRV_AMS_001_OK_02 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -76,8 +76,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_02 TC_MEC_MEC021_SRV_AMS_001_OK_03 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -98,8 +98,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_03 TC_MEC_MEC021_SRV_AMS_001_OK_04 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -115,20 +115,22 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 [TearDown] Delete two specific AMS services ${APP_MOBILITY_SERVICE_ID} ${APP_MOBILITY_SERVICE_ID2} -#TC_MEC_MEC021_SRV_AMS_001_OK_05 -# [Documentation] Request Registered AMS information -# ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service -# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 -# ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml -# [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS +TC_MEC_MEC021_SRV_AMS_001_OK_05 + [Documentation] Request Registered AMS information + ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 + Get Registered AMS information + Check HTTP Response Status Code Is 200 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS TC_MEC_MEC021_SRV_AMS_001_BR [Documentation] Request Registered AMS information using bad parameters ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Registered AMS information using bad parameters Check HTTP Response Status Code Is 400 @@ -138,8 +140,9 @@ TC_MEC_MEC021_SRV_AMS_001_BR TC_MEC_MEC021_SRV_AMS_002_OK [Documentation] Register a new application mobility services ... Check that the AMS service creates a new application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 6.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} Check HTTP Response Status Code Is 201 @@ -148,90 +151,75 @@ TC_MEC_MEC021_SRV_AMS_002_OK Should Be Equal As Strings ${response['body']['serviceConsumerId']['appInstanceId']} ${APP_INS_ID} -# This test case is incomplete -#TC_MEC_MEC021_SRV_AMS_002_BR -# [Documentation] Request Registered AMS information using bad parameters -# ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters -# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 -# ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml -# [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - - - - -TC_MEC_MEC021_SRV_AMS_003_BR +TC_MEC_MEC021_SRV_AMS_002_BR [Documentation] Register an UE Identity Tag using invalid parameter ... Check that the AMS service sends an error when it receives a malformed request to create a new application mobility service + ... ETSI GS MEC 021 3.1.1, clause 6.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${MALFORMED_APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} Check HTTP Response Status Code Is 400 # Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions -TC_MEC_MEC021_SRV_AMS_004_OK +TC_MEC_MEC021_SRV_AMS_003_OK [Documentation] Request Subscriptions List for the registered AMS services ... Check that the AMS service returns information about the available subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.4 ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is SubscriptionLinkList - -TC_MEC_MEC021_SRV_AMS_004_BR +TC_MEC_MEC021_SRV_AMS_003_BR [Documentation] Request Subscription List for registered AMS Services using wrong attribute parameters ... Check that the AMS service sends an error when it receives a malformed query about the available subscriptions - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS with wrong attbirube parameter Check HTTP Response Status Code Is 400 # Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions -TC_MEC_MEC021_SRV_AMS_005_OK +TC_MEC_MEC021_SRV_AMS_004_OK [Documentation] Create a notification subscription ... Check that the AMS service creates a notification subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscription Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is NotificationSubscription -TC_MEC_MEC021_SRV_AMS_005_BR +TC_MEC_MEC021_SRV_AMS_004_BR [Documentation] Create a notification subscription with wrong attribute parameter ... Check that the AMS service creates a notification subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscriptionError Check HTTP Response Status Code Is 400 # Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} -TC_MEC_MEC021_SRV_AMS_006_OK +TC_MEC_MEC021_SRV_AMS_005_OK [Documentation] Request a specific subscription ... Check that the AMS service returns information about a given subscription when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 @@ -239,25 +227,50 @@ TC_MEC_MEC021_SRV_AMS_006_OK -TC_MEC_MEC021_SRV_AMS_006_NF +TC_MEC_MEC021_SRV_AMS_005_NF [Documentation] Request a specific subscription using wrong identifier ... Check that the AMS service returns an error when receives a query about a not existing subscription - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 +# Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} +TC_MEC_MEC021_SRV_AMS_006_OK + [Documentation] Remove a specific subscription + ... Check that the AMS service deletes a given subscription when requested + ... ETSI GS MEC 021 3.1.1, clause 6.7 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC021_SRV_AMS_006_NF + [Documentation] Remove a specific subscription using wrong identifier + ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription + ... ETSI GS MEC 021 3.1.1, clause 6.7 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + # Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${identifier} TC_MEC_MEC021_SRV_AMS_007_OK [Documentation] Modify a specific subscription ... Check that the AMS service modifies a given subscription when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscription Check HTTP Response Status Code Is 200 @@ -268,11 +281,9 @@ TC_MEC_MEC021_SRV_AMS_007_OK TC_MEC_MEC021_SRV_AMS_007_BR [Documentation] Modify a specific subscription using malformed request ... Check that the AMS service sends an error when it receives a malformed modify request for a given subscription. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionError Check HTTP Response Status Code Is 400 @@ -281,103 +292,61 @@ TC_MEC_MEC021_SRV_AMS_007_BR TP_MEC_MEC021_SRV_AMS_007_NF [Documentation] Modify a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a modify request for a not existing subscription. + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} NotificationSubscription Check HTTP Response Status Code Is 404 -# Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} -TC_MEC_MEC021_SRV_AMS_008_OK - [Documentation] Remove a specific subscription - ... Check that the AMS service deletes a given subscription when requested - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Delete individual subscription for AMS services ${SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 204 - -TC_MEC_MEC021_SRV_AMS_008_NF - [Documentation] Remove a specific subscription using wrong identifier - ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml +TC_MEC_MEC021_SRV_AMS_008_OK + [Documentation] Post Mobility Procedure Notification + ... Check that the AMS service sends an AMS notification about a mobility procedure + ... if the AMS service has an associated subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 404 - + + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server MobilityProcedureNotification + Validate Json MobilityProcedureNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} TC_MEC_MEC021_SRV_AMS_009_OK - [Documentation] Post Mobility Procedure Notification - ... Check that the AMS service sends an AMS notification about a mobility procedure - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/MobilityProcedureNotification.schema.json -# Log Creating mock request and response to handle Mobility Procedure Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} + [Documentation] Adjacent App Info Notification + ... Check that the AMS service sends an AMS notification about adjacent application instances if the AMS service has an associated + ... subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server AdjacentAppInfoNotification + Validate Json AdjacentAppInfoNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} TC_MEC_MEC021_SRV_AMS_010_OK - [Documentation] Post Adjacent Application Info Notification - ... Check that the AMS service sends an AMS notification about adjacent application instances - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.3 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + [Documentation] Post Expire Notification + ... Check that the AMS service sends an AMS notification on subscription expiration if the AMS service has an associated subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.4 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/AdjacentAppInfoNotification.schema.json -# Log Creating mock request and response to handle Adjacent Application Info Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} - + + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server ExpiryNotification + Validate Json ExpiryNotification.schema.json ${payload_notification} +# Get ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${APP_MOBILITY_SERVICE_ID_1} TC_MEC_MEC021_SRV_AMS_011_OK - [Documentation] Post Expire Notification - ... Check that the AMS service sends an AMS notification on subscription expiration - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/ExpiryNotification.schema.json -# Log Creating mock request and response to handle Expire Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} - - -# Get ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_012_OK [Documentation] Request a specific AMS service ... Check that the AMS service returns information about this individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 200 @@ -385,118 +354,172 @@ TC_MEC_MEC021_SRV_AMS_012_OK -TC_MEC_MEC021_SRV_AMS_012_NF +TC_MEC_MEC021_SRV_AMS_011_NF [Documentation] Request a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when receives a query about a not existing individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 # Put ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_013_OK +TC_MEC_MEC021_SRV_AMS_012_OK [Documentation] Modify a specific AMS service ... Check that the AMS service modifies the individual application mobility service when requested - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfo Should Be Equal As Strings ${response['body']['appMobilityServiceId']} ${APP_MOBILITY_SERVICE_ID} Should Be Equal As Strings ${response['body']['serviceConsumerId']['appInstanceId']} ${APP_MOBILITY_SERVICE_ID} # from req - #Check Result Contains ${response['registeredAppMobilityService']['serviceConsumerId']} appInstanceId ${APP_INS_ID} - -#ensure that { -# when { -# the IUT entity receives a vPUT containing -# uri indicating value "/amsi/v1/app_mobility_services/{APP_MOBILITY_SERVICE_ID_1}", -# body containing -# RegistrationInfo containing -# serviceConsumerId containing -# appInstanceId indicating value NEW_APP_INS_ID_NEW_1;;;; -# from the AMS_CLIENT entity -# } -# then { -# the IUT entity sends a HTTP_RESPONSE containing -# status set to "200 OK", -# body containing -# RegistrationInfo containing -# appMobilityServiceId indicating value APP_MOBILITY_SERVICE_ID_1, -# serviceConsumerId containing -# appInstanceId indicating value NEW_APP_INS_ID_NEW_1;;;; -# to the AMS_CLIENT entity -# } -#} - -TC_MEC_MEC021_SRV_AMS_013_NF +TC_MEC_MEC021_SRV_AMS_012_NF [Documentation] Modify a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when receives a request to modify a not existing individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 404 -TC_MEC_MEC021_SRV_AMS_013_BR +TC_MEC_MEC021_SRV_AMS_012_BR [Documentation] Modify a specific AMS Service using bad parameters ... Check that the AMS service sends an error when receives a request to modify a individual application mobility service using bad parameters - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfoWithError Check HTTP Response Status Code Is 400 # Delete ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_014_OK +TC_MEC_MEC021_SRV_AMS_013_OK [Documentation] Remove a specific AMS service ... Check that the AMS service de-register the individual application mobility service and delete the resource ... that represents the individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.3 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.5 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC021_SRV_AMS_014_NF +TC_MEC_MEC021_SRV_AMS_013_NF [Documentation] Remove a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when is requested to delete the resource ... that represents the individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.3 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.5 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 # POST ${apiRoot}/${apiName}/${apiVersion}/appMobilityServices/${amsId}/deregisterTask -TC_MEC_MEC021_SRV_AMS_015_OK +TC_MEC_MEC021_SRV_AMS_014_OK [Documentation] Request to deregister a specific AMS service ... Check that the AMS service deregister an individual application mobility service on expiry of the timer associated with the service - ... ETSI GS MEC 021 2.0.10, clause 8.5.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... that represents the individual application mobility service + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.5.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Deregister specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC021_SRV_AMS_015_NF +TC_MEC_MEC021_SRV_AMS_014_NF [Documentation] Request to deregister a specific AMS service using non existent identifier ... Check that the AMS service send an error when is requested to deregister a not existent individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.5.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.5.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Deregister specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 + +TC_MEC_MEC021_SRV_AMS_015_OK_01 + [Documentation] + ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service + + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + +TC_MEC_MEC021_SRV_AMS_015_OK_02 + [Documentation] + ... Check that the AMS service returns information about the adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (eq,appInstanceId,{APP_INSTANCE_ID_1}) + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_OK_03 + [Documentation] + ... Check that the AMS service returns information about a specified adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (eq,appInstanceId,{APP_INSTANCE_ID_1})&filter(eq,appDId,{APP_ID_3}) + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_OK_04 + [Documentation] + ... Check that the AMS service returns information about a specified adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_BR + [Documentation] + ... Check that the AMS service sends an error about a specified adjacent application instances when request is inconsistent + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (appInstanceId,eq,{APP_INSTANCE_ID_1}) + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC021_SRV_UETESTNOT_001_OK + [Documentation] + ... Check that the IUT provides a test notification when requested by a MEC Application + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + [Setup] Post a new notification subscription NotificationSubscriptionWithTestNotification + Spawn Notification Server MobilityProcedureNotification + Validate Json MobilityProcedureNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + Spawn Notification Server TestNotification + Validate Json TestNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + + *** Keywords *** Get Registered AMS information Set Headers {"Accept":"application/json"} @@ -571,7 +594,8 @@ Deregister specific AMS service ${output}= Output response Set Suite Variable ${response} ${output} - + + Create a new application mobility service [Arguments] ${appMobilityServiceId} ${appInstanceId} Set Headers {"Accept":"application/json"} @@ -587,6 +611,8 @@ Create a new application mobility service ${output}= Output response Set Suite Variable ${response} ${output} + + Create two new application mobility service [Arguments] ${appMobilityServiceId} ${appInstanceId} ${appMobilityServiceId2} ${appInstanceId2} Set Headers {"Accept":"application/json"} @@ -675,4 +701,28 @@ Update individual subscription for AMS services Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${identifier} ${body} ${output}= Output response Set Suite Variable ${response} ${output} - \ No newline at end of file + + +Spawn Notification Server + [Arguments] ${payload_notification} + ${output} Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ${payload_notification} + ${length} = Get Length ${output} + Set Suite Variable ${payload_notification} ${output} + Run Keyword If ${length} == 0 Skip + + +Retrieve info about registered app mobility service + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/amsi/v1/queries/adjacent_app_instances + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve info about registered app mobility service with filter + [Arguments] ${filter} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/amsi/v1/queries/adjacent_app_instances?filter${filter} + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json new file mode 100644 index 0000000..601777c --- /dev/null +++ b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json @@ -0,0 +1,11 @@ +{ + "notificationType": "AdjacentAppInfoNotification", + "timeStamp": "sample string", + "adjacentAppInfo": [ + "sample string", + "sample string" + ], + "_links": { + "subscription": null + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/ExpiryNotification.json b/MEC021/SRV/AMS/json/ExpiryNotification.json new file mode 100644 index 0000000..602c492 --- /dev/null +++ b/MEC021/SRV/AMS/json/ExpiryNotification.json @@ -0,0 +1,12 @@ +{ + "_links": null, + "expiryDeadline": { + "nanoSeconds": 11, + "seconds": 11 + }, + "timeStamp": { + "nanoSeconds": 11, + "seconds": 11 + }, + "notificationType": "ExpiryNotification" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/MobilityProcedureNotification.json b/MEC021/SRV/AMS/json/MobilityProcedureNotification.json new file mode 100644 index 0000000..0b34631 --- /dev/null +++ b/MEC021/SRV/AMS/json/MobilityProcedureNotification.json @@ -0,0 +1,16 @@ +{ + "notificationType": "MobilityProcedureNotification", + "timeStamp": "s", + "associateId": [ + {}, + {} + ], + "mobilityStatus": 11, + "targetAppInfo": { + "appInstanceId": "sample string", + "commInterface": null + }, + "_links": { + "subscription": null + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription.json b/MEC021/SRV/AMS/json/NotificationSubscription.json index 9c2ed02..536bcc2 100644 --- a/MEC021/SRV/AMS/json/NotificationSubscription.json +++ b/MEC021/SRV/AMS/json/NotificationSubscription.json @@ -1,6 +1,6 @@ { "callbackReference": "http://example.com/callback", - "requestTestNotification": true, + "requestTestNotification": false, "websockNotifConfig": { "websocketUri": "ws://example.com/websocket", "requestWebsocketUri": true @@ -12,5 +12,5 @@ "filterCriteria": { "appInstanceId": "app-123" }, - "subscriptionType": "AdjacentAppInfoSubscription" + "subscriptionType": "MobilityProcedureSubscription" } \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription2.json b/MEC021/SRV/AMS/json/NotificationSubscription2.json new file mode 100644 index 0000000..fa161b7 --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscription2.json @@ -0,0 +1,16 @@ +{ + "callbackReference": "http://example.com/callback", + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 1644691200, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "app-123" + }, + "subscriptionType": "AdjacentAppInfoSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json new file mode 100644 index 0000000..536bcc2 --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json @@ -0,0 +1,16 @@ +{ + "callbackReference": "http://example.com/callback", + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 1644691200, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "app-123" + }, + "subscriptionType": "MobilityProcedureSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/TestNotification.json b/MEC021/SRV/AMS/json/TestNotification.json new file mode 100644 index 0000000..75ae598 --- /dev/null +++ b/MEC021/SRV/AMS/json/TestNotification.json @@ -0,0 +1,8 @@ +{ + "_links": { + "self": { + "href": "https://someurl.com/subscriptions/users/subscriptionId" + } + }, + "notificationType": "TestNotification" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/libraries/Server.py b/MEC021/SRV/AMS/libraries/Server.py new file mode 100644 index 0000000..fb64670 --- /dev/null +++ b/MEC021/SRV/AMS/libraries/Server.py @@ -0,0 +1,148 @@ +#!/usr/bin/python3 + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +def import_notification_json(subscription_type): + notification_type = subscription_type.split("Subscription")[0] + file_path = "./jsons/"+notification_type+".json" + logging.info(file_path) + logging.info(os.listdir()) + try: + with open(file_path, 'r') as json_file: + # Load the JSON data + data = json.load(json_file) + logging.info(data) + return data + except FileNotFoundError: + logging.error(f"Error: File not found at {file_path}") + + +class Server ( object ): + + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server (self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class GET_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_GET(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + class POST_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + #if self.path == self.endpoint: + # self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + #else: + # self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body=post_body + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + + class PUT_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_PUT(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + class DELETE_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_DELETE(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + if method == "GET": + self.handler = GET_Server(endpoint, resp_body) + elif method == "POST": + self.handler = POST_Server(endpoint, resp_body) + elif method == "PUT": + self.handler = PUT_Server(endpoint, resp_body) + elif method == "DELETE": + self.handler = DELETE_Server(endpoint, resp_body) + else: + logging.info("Error, unknown endpoint") + exit(1) + + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + + self.app.handle_request() + self.app.server_close() + logging.info(self.handler.get_resp_body()) + ## If a notification is received, then is returned. Otherwise an empty dictionary. + if(self.handler.get_req_body()!=None): + return json.loads(self.handler.get_req_body().decode("windows-1252")) + + ##OLD mechanism commented: if no response is received, then read the Notification JSON file and return it. + notification_json= import_notification_json(self.handler.get_resp_body()) + #return notification_json ##Decomment if you want to use the notification read from file + return {} + diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema b/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema new file mode 100644 index 0000000..1519407 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema @@ -0,0 +1,74 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInstanceInfoList", + "type": "array", + "description": "A list of AdjacentAppInstanceInfo objects.", + "items": { + "$ref": "#/$defs/AdjacentAppInstanceInfo" + }, + "minItems": 1, + "$defs": { + "AdjacentAppInstanceInfo": { + "title": "AdjacentAppInstanceInfo", + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the application instance." + }, + "appDId": { + "type": "string", + "description": "Identifier of the application descriptor." + }, + "appInstanceCommLink": { + "type": "array", + "minItems": 1, + "description": "It specifies the communication interface of application instance.", + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "mecHostInformation": { + "description": "It specifies the communication interface of application instance.", + "$ref": "#/$defs/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId" + ] + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "MECHostInformation": { + "type": "object", + "properties": { + "hostName": { + "type": "string" + }, + "hostId": { + "type": "string" + } + }, + "required": [ + "hostId" + ] + } + } +} diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json b/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json new file mode 100644 index 0000000..b0d3d1b --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json @@ -0,0 +1,95 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInfoNotification", + "type": "object", + "properties": { + "notificationType": { + "type": "string", + "const": "AdjacentAppInfoNotification", + "description": "Shall be set to 'MobilityProcedureNotification'." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the generation of the notification." + }, + "adjacentAppInfo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Identifier of the adjacent application instance" + }, + "_links": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/$defs/LinkType" + } + }, + "required": [ + "subscription" + ], + "additionalProperties": false, + "description": "Object containing hyperlinks related to the resource." + } + }, + "required": [ + "notificationType", + "_links" + ], + "$defs": { + "AdjacentAppInfo": { + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the adjacent application instance. " + }, + "communicationInterface": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + } + }, + "required": [ + "appInstanceId" + ] + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "LinkType": { + "type": "object", + "description": "Represents a type of link.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "URI referring to a resource." + } + }, + "required": [ + "href" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema b/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema new file mode 100644 index 0000000..5a5fd0a --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema @@ -0,0 +1,65 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInstanceInfo", + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the application instance. " + }, + "appDId": { + "type": "string", + "description": "Identifier of the application descriptor. " + }, + "appInstanceCommLink": { + "type": "array", + "minItem": 1, + "description": "It specifies the communication interface of application instance.", + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "mecHostInformation": { + "description": "It specifies the communication interface of application instance.", + "$ref": "#/$defs/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId" + ], + "$defs": { + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "MECHostInformation": { + "type": "object", + "properties": { + "hostName": { + "type": "string" + }, + "hostId": { + "type": "string" + } + }, + "required": [ + "hostId" + ] + } + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json b/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json new file mode 100644 index 0000000..cce3149 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json @@ -0,0 +1,80 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "ExpiryNotification", + "type": "object", + "properties": { + "_links": { + "title": "Links2", + "required": [ + "subscription" + ], + "properties": { + "subscription": { + "description": "URI identifying the subscription which has expired.", + "title": "LinkType", + "required": [ + "href" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "URI referring to a resource" + } + } + } + }, + "description": "List of hyperlinks related to the resource." + }, + "expiryDeadline": { + "title": "TimeStamp", + "required": [ + "nanoSeconds", + "seconds" + ], + "type": "object", + "properties": { + "nanoSeconds": { + "type": "integer", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + }, + "seconds": { + "type": "integer", + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + } + } + }, + "timeStamp": { + "description": "Time stamp of the notification.", + "title": "TimeStamp", + "required": [ + "nanoSeconds", + "seconds" + ], + "type": "object", + "properties": { + "nanoSeconds": { + "type": "integer", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + }, + "seconds": { + "type": "integer", + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + } + } + }, + "notificationType": { + "description": "Shall be set to \"ExpiryNotification\"", + "type": "string" + } + }, + "required": [ + "_links", + "expiryDeadline", + "notificationType" + ] +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json b/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json index e69de29..201b539 100644 --- a/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json +++ b/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json @@ -0,0 +1,99 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "MobilityProcedureNotification", + "type": "object", + "properties": { + "notificationType": { + "type": "string", + "const": "MobilityProcedureNotification", + "description": "Shall be set to 'MobilityProcedureNotification'." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the generation of the notification." + }, + "associateId": { + "type": "array", + "items": { + "type": "object" + }, + "minItems": 1, + "description": "1 to N identifiers to associate the information for specific UE(s) and flow(s)." + }, + "mobilityStatus": { + "type": "integer", + "enum": [1, 2, 3], + "description": "Status of the UE mobility. 1 = INTERHOST_MOVEOUT_TRIGGERED, 2 = INTERHOST_MOVEOUT_COMPLETED, 3 = INTERHOST_MOVEOUT_FAILED. Other values are reserved." + }, + "targetAppInfo": { + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the target application instance." + }, + "commInterface": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "required": ["appInstanceId"], + "additionalProperties": false, + "description": "Identifiers to associate the information of target application instance." + }, + "_links": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/$defs/LinkType" + } + }, + "required": ["subscription"], + "additionalProperties": false, + "description": "Object containing hyperlinks related to the resource." + } + }, + "required": ["notificationType", "associateId", "mobilityStatus", "_links"], + "additionalProperties": false, + "$defs": { + "AssociateId": { + "type": "object", + "description": "Identifier for UE(s) and flow(s).", + "properties": { + "id": { + "type": "string" + } + }, + "required": ["id"], + "additionalProperties": true + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": ["interfaceType", "endpoint"], + "additionalProperties": true + }, + "LinkType": { + "type": "object", + "description": "Represents a type of link.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "URI referring to a resource." + } + }, + "required": ["href"], + "additionalProperties": false + } + } +} diff --git a/MEC021/SRV/AMS/schemas/TestNotification.schema.json b/MEC021/SRV/AMS/schemas/TestNotification.schema.json new file mode 100644 index 0000000..af01800 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/TestNotification.schema.json @@ -0,0 +1,43 @@ +{ + "properties": { + "_links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "properties": { + "self": { + "properties": { + "href": { + "description": "URI referring to a resource.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uri" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.7.2" + } + }, + "required": [ + "self" + ], + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "notificationType": { + "description": "Shall be set to \"TestNotification\".", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "notificationType", + "_links" + ], + "type": "object", + "x-etsi-ref": "6.4.3" + } \ No newline at end of file diff --git a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot index 68ff057..b646515 100644 --- a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot +++ b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot @@ -20,9 +20,7 @@ TC_MEC_MEC029_SRV_FAIS_001_OK [Documentation] ... Check that the IUT responds with the current status of the fixed access information ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get fixed access information details Check HTTP Response Status Code Is 200 @@ -33,9 +31,7 @@ TC_MEC_MEC029_SRV_FAIS_001_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... - ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 - + ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get fixed access information details using query prameters interface ${INTERFACE_ID} Check HTTP Response Status Code Is 400 @@ -45,9 +41,7 @@ TC_MEC_MEC029_SRV_FAIS_001_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... - ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 - + ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get fixed access information details using query prameters interfaceType ${NON_EXISTENT_INTERFACE_ID} Check HTTP Response Status Code Is 404 @@ -57,9 +51,7 @@ TC_MEC_MEC029_SRV_FAIS_002_OK [Documentation] ... Check that the IUT responds with the current status of the device information ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.4.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of device information Check HTTP Response Status Code Is 200 @@ -70,9 +62,7 @@ TC_MEC_MEC029_SRV_FAIS_002_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.4.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of device information using query prameters device ${DEVICE_ID} Check HTTP Response Status Code Is 400 @@ -82,9 +72,7 @@ TC_MEC_MEC029_SRV_FAIS_002_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.4.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of device information using query prameters deviceId ${NON_EXISTENT_DEVICE_ID} Check HTTP Response Status Code Is 404 @@ -94,9 +82,7 @@ TC_MEC_MEC029_SRV_FAIS_003_OK [Documentation] ... Check that the IUT responds with the current status of the cable line information ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.5.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the cable line information Check HTTP Response Status Code Is 200 @@ -107,9 +93,7 @@ TC_MEC_MEC029_SRV_FAIS_003_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.5.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the cable line information using query parameters cm ${CABLE_MODEM_ID} Check HTTP Response Status Code Is 400 @@ -119,9 +103,7 @@ TC_MEC_MEC029_SRV_FAIS_003_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.5.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the cable line information using query parameters cmId ${NON_EXISTING_FAI_CM_ID} Check HTTP Response Status Code Is 404 @@ -131,9 +113,7 @@ TC_MEC_MEC029_SRV_FAIS_004_OK [Documentation] ... Check that the IUT responds with the current status of the optical network information ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.6.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the opentical network information Check HTTP Response Status Code Is 200 @@ -144,9 +124,7 @@ TC_MEC_MEC029_SRV_FAIS_004_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.6.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the opentical network information using query parameters onu ${ONU_ID} Check HTTP Response Status Code Is 400 @@ -156,9 +134,7 @@ TC_MEC_MEC029_SRV_FAIS_004_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.6.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the opentical network information using query parameters onuId ${NON_EXISTING_FAI_ONU_ID} Check HTTP Response Status Code Is 404 @@ -168,9 +144,7 @@ TC_MEC_MEC029_SRV_FAIS_005_OK [Documentation] ... Check that the IUT responds with the subscriptions for fixed access information notifications ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new subscription OnuAlarmSubscription @@ -187,9 +161,7 @@ TC_MEC_MEC029_SRV_FAIS_005_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of subscriptions using query parameters subscription ${SUBSCRIPTION_TYPE} Check HTTP Response Status Code Is 400 -- GitLab From 2cbd06e44e3cfc20493f714f8e0b679d294ae52d Mon Sep 17 00:00:00 2001 From: piscione Date: Tue, 26 Aug 2025 14:48:57 +0200 Subject: [PATCH 25/28] Updates on MEC029 TCs --- MEC029/SRV/FAIS/PlatFixedAcessInfo.robot | 42 +++++++---------------- MEC029/SRV/FAIS/environment/variables.txt | 1 + 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot index b646515..9f06821 100644 --- a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot +++ b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot @@ -9,8 +9,6 @@ Resource environment/variables.txt Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library MockServerLibrary - - Default Tags TC_MEC_SRV_FAIS @@ -171,11 +169,8 @@ TC_MEC_MEC029_SRV_FAIS_005_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES - Get list of subscriptions using query parameters subscriptionType ${NON_EXISTENT_SUBSCRIPTION_TYPE} Check HTTP Response Status Code Is 404 @@ -184,9 +179,7 @@ TC_MEC_MEC029_SRV_FAIS_006_OK [Documentation] ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on Optical Network Unit alarm events - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.4 - [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new subscription OnuAlarmSubscription Check HTTP Response Status Code Is 201 @@ -198,9 +191,7 @@ TC_MEC_MEC029_SRV_FAIS_006_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.4 - [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new subscription OnuAlarmSubscriptionError Check HTTP Response Status Code Is 400 @@ -210,9 +201,7 @@ TC_MEC_MEC029_SRV_FAIS_007_OK [Documentation] ... Check that the IUT responds with the information on a given subscription ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new subscription OnuAlarmSubscription @@ -230,9 +219,7 @@ TC_MEC_MEC029_SRV_FAIS_007_NF [Documentation] ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get an individual subscription ${NON_ESISTENT_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 @@ -242,9 +229,7 @@ TC_MEC_MEC029_SRV_FAIS_008_OK [Documentation] ... Check that the IUT updates an existing subscription ... when commanded by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.2 - [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new subscription OnuAlarmSubscription @@ -262,9 +247,7 @@ TC_MEC_MEC029_SRV_FAIS_008_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.2 - [Tags] PIC_MEC_PLAT PIC_SERVICES Update subscription ${ONU_ALARM_SUBSCRIPTION_ID} OnuAlarmSubscriptionUpdateError Check HTTP Response Status Code Is 400 @@ -274,13 +257,9 @@ TC_MEC_MEC029_SRV_FAIS_008_NF [Documentation] ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.2 - [Tags] PIC_MEC_PLAT PIC_SERVICES - [Setup] Remove subscription ${NON_ESISTENT_SUBSCRIPTION_ID} - Update subscription ${NON_ESISTENT_SUBSCRIPTION_ID} OnuAlarmSubscriptionUpdate Check HTTP Response Status Code Is 404 @@ -289,9 +268,7 @@ TC_MEC_MEC029_SRV_FAIS_008_PF [Documentation] ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.2 - [Tags] PIC_MEC_PLAT PIC_SERVICES Update subscription using invalid etag ${ONU_ALARM_SUBSCRIPTION_ID} OnuAlarmSubscriptionUpdate Check HTTP Response Status Code Is 412 @@ -301,25 +278,31 @@ TC_MEC_MEC029_SRV_FAIS_009_OK [Documentation] ... Check that the IUT cancels an existing subscription ... when commanded by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.5 - [Tags] PIC_MEC_PLAT PIC_SERVICES - [Setup] Create a new subscription OnuAlarmSubscription Set Suite Variable ${subscriptionUrl} ${response['body']['_links']['self']['href']} - Remove subscription ${ONU_ALARM_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 +TC_MEC_MEC029_SRV_FAIS_009_NF + [Documentation] + ... Check that the IUT cancels an existing subscription + ... when commanded by a MEC Application + ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + [Setup] Create a new subscription OnuAlarmSubscription + Set Suite Variable ${subscriptionUrl} ${response['body']['_links']['self']['href']} + Remove subscription ${NOT_EXISTING_ONU_ALARM_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + TC_MEC_MEC029_SRV_FAIS_010_OK [Documentation] ... Check that the IUT sends notification on expiry of Fixed Access Information event subscription ... to a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.4 - [Tags] PIC_MEC_PLAT PIC_SERVICES ${json}= Get File schemas/DevInfoSubscription.schema.json Log Creating mock request and response to handle Device Information Notifications @@ -337,7 +320,6 @@ TC_MEC_MEC029_SRV_FAIS_011_OK [Documentation] ... Check that the IUT sends notifications on Fixed Access Information events ... to a subscribed MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 5.2.7 [Tags] PIC_MEC_PLAT PIC_SERVICES diff --git a/MEC029/SRV/FAIS/environment/variables.txt b/MEC029/SRV/FAIS/environment/variables.txt index e84f497..592e228 100644 --- a/MEC029/SRV/FAIS/environment/variables.txt +++ b/MEC029/SRV/FAIS/environment/variables.txt @@ -21,6 +21,7 @@ ${NON_EXISTING_FAI_ONU_ID} NON_EXISTING_FAI_ONU_ID ${SUBSCRIPTION_TYPE} DEVICE_ABNORMAL_ALERT ${NON_EXISTENT_SUBSCRIPTION_TYPE} NON_EXISTENT_SUBSCRIPTION_TYPE ${ONU_ALARM_SUBSCRIPTION_ID} 6cd12d29-30c7-4c8c-bf51-846daa51bab0 +${NOT_EXISTING_ONU_ALARM_SUBSCRIPTION_ID} NOT_EXISTING_ONU_ALARM_SUBSCRIPTION_ID ${NON_ESISTENT_SUBSCRIPTION_ID} NON_ESISTENT_SUBSCRIPTION_ID ${INVALID_ETAG} INVALID_ETAG -- GitLab From 8185e575dbc18921c1cc77cd06a8fc36ae931226 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Mon, 15 Sep 2025 13:47:21 +0000 Subject: [PATCH 26/28] updated tests --- .gitignore | 4 + MEC012/SRV/RNIS/environment/variables.txt | 4 +- .../__pycache__/Server.cpython-310.pyc | Bin 0 -> 5070 bytes .../__pycache__/Server.cpython-36.pyc | Bin 0 -> 5798 bytes MEC013/SRV/RLOCLOOK/environment/variables.txt | 4 +- .../SRV/UEAREALOOK/environment/variables.txt | 4 +- .../SRV/UEAREASUB/environment/variables.txt | 4 +- .../SRV/UEDISTLOOK/environment/variables.txt | 6 +- .../SRV/UEDISTSUB/environment/variables.txt | 4 +- .../SRV/UEINFOLOOK/environment/variables.txt | 4 +- .../SRV/UEINFOSUB/environment/variables.txt | 4 +- .../SRV/UELOCLOOK/environment/variables.txt | 4 +- MEC013/SRV/UELOCSUB/environment/variables.txt | 4 +- .../SRV/UETESTNOT/environment/variables.txt | 4 +- .../SRV/UEZONELOOK/environment/variables.txt | 4 +- .../SRV/UEZONESUB/environment/variables.txt | 4 +- MEC028/WAI/AP_INFO/environment/variables.txt | 4 +- MEC028/WAI/EXT_SUB/environment/variables.txt | 5 +- MEC028/WAI/MEAS/environment/variables.txt | 5 +- MEC028/WAI/STA_INFO/environment/variables.txt | 5 +- MEC028/WAI/SUB/environment/variables.txt | 5 +- MEC030/SRV/V2X/V2XInformationService.robot | 94 +++++++------- MEC030/SRV/V2X/environment/variables.txt | 4 +- MEC040/SRV/MEF/FederationEnablement.robot | 116 +++++++++--------- MEC040/SRV/MEF/environment/variables.txt | 4 +- 25 files changed, 153 insertions(+), 147 deletions(-) create mode 100644 .gitignore create mode 100644 MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-310.pyc create mode 100644 MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-36.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47ba44a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +log.html +output.xml +report.html +k3s_build_and_import.sh \ No newline at end of file diff --git a/MEC012/SRV/RNIS/environment/variables.txt b/MEC012/SRV/RNIS/environment/variables.txt index e494041..1dbe6c1 100644 --- a/MEC012/SRV/RNIS/environment/variables.txt +++ b/MEC012/SRV/RNIS/environment/variables.txt @@ -1,7 +1,7 @@ *** Variables *** ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} 127.0.0.1 -${MEC-APP_PORT} 8085 +${MEC-APP_HOST} %{MEC_APP_HOST=127.0.0.1} +${MEC-APP_PORT} %{MEC_APP_PORT=8085} ${apiRoot} ${apiName} rni ${apiVersion} v2 diff --git a/MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-310.pyc b/MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aabe5718fde3113af54f20866db0a7822446cef9 GIT binary patch literal 5070 zcmd1j<>g{vU|^7Xxi4dq2m`}o5C<8vFfcGUFfcF_doVCCq%fo~<}lQOqd}DNH#mQ7mAZHHtNbIf^ZXC55$xA&T9dA%!i4y@er#J(Z)GIf^rdDVRZ% z<0Z%rO{QC7PKm{-9w8wCL8*nMsl_E8iFqkGsYSQAKw`nEMP;c)e!o}^^bGV2lNmvJ zpqQ0`fq{d8fx#K%v_%XI3^fc37*ZG)GNv#|GSo7rFxN1OGo-MHGt@GbFfL%KVOq$@ z$N*xMFfU+P$N=J1sg|(TFr~0IGxdwsGMBI|V6S0b$XLq)QdPqOQc=Sa&cMWw!ob47 z!qCjj$PmsD%wWh+Y+laD$N++o3?Q)-hF}I3h7yj-0FW5i7S0s58m8F{bHTPoGJsT+ zGib8=MezieCKV?aWfqiV=I0fGJXFP@r=L}vpI5A3#i|El++r-Ml5{O9$}h4~aLdd| zRmjUPQAo=#%}Y^8EK$(py2V;tkds+*i#;blJv}oo{T54RURwSwru^bt>^YgmB`KLj zw^;HEQuA)HfQ@6x$xlqVB?vOgFTcbMWDwZ&Tdb)dOEg)d1dEXz6<<%(b9&&z!>2!jQrO z=5x3+q_C#2wJ@Zxf%%;73@Pj>94!nf9AG|I4ND4VHdB#y4SNl14O=r)4MRL*o>mP@ z3RgB$ky#A~lBj$QOA2>3Q;}m0Cz7a04ND47HdB#L4HuFqX9?2+<`iB~axP&>;cEtE z1J)YG61EzqX2vw88ip)JuwCpWY&Fcyj5Q2d?C~5RaslT;21W)jiwnd8nFCV2fE$v1 zz-*p{3@HrR%tc)#ybJhXA`AFa_!lxRWDI5~5de#EFJx$DtmUrZ4rb64@WUE$ppgBn z!@$4*i@0`%G)8cMazrtwfCDm$1rmT!tnCae3{h;s44Uj!+K{N!D=tVZ&xBYC$vdcmAO2%89@$tzyiN(e7@!(8SBm_!d9P#m>q!k~p2(q4ufq_AcsmcW6Orrdv z2QwfU-GAtNmssN}|1SKPe8b(lJ0+m8589{F6EJ`gdh)>E-sl3IJnwL_L zpP5&(lDP=vmLgCb6lpUsK(aK#$wi=mQU#d{3NZ|^cE6V=Kt&dhbADb)YF>$MNM%9lFM-5@f*fe6rw=NOZn2h@q{Ulk zGJ*msIX@*cFTIMdyeK~}T>&0&+_!j(Q}a^dL4lf|SDbo_8_dl}O-xBGy2TBWg0PEk zv4DzCa1ckamV?Vr*7BmvlGGwlX>yA-r8Kvo7##Sw*i!S7^HWk+GD2bnRJcHuo3z7Rk`aXlIYz_t zmLgYNr8p=l7uyh77(hzVD7F;N6fRJE16(+8fXewQ9fBbND&`554n@)+@5q1%SrDNB zBEVh*dluwRaLAZ|#MK!X7^+N3v6pa8E(R4(H7Gf`h9RB_l*)@hNkEesoMyo3>J~>) zY9Tml7wLlB19l>q0J{?u2^OFx6B`2q0~;ea88O;*1mLy#YgK!hTO-w0rXJBB^gp_nq+{uuvAD@$&7sXkS zUt9tSH*jcy2~d#TVo%AB2PG3bP_Q8~n*ckgbwWfL2+|8pVtP=cFv>tsIS2~7&!A|j zVaQ?#W`M*jBiO}7AiE*iAK@;Z^wg4gSY-QvN&-;H&&F6~NmA-VHU+1g;0WYKiUCkkDh5R&q!8j@9!rLP0(PmnDQ7 z1qf>i7bQg+AcH{>S)>JG;VL5{L6Uk53=G61aJaYiV2vS+gaoVPi}XPT8-NHi5P>Zj zfhxCv(2!V=JgDbMM1_VF1fVPy8luULJKY3<491ySxDaN6a%7PkNHvIsv)KwuAbJFo zxr?ihYlthfFhB_-SOE$upNUN)p!QM`IE|Q-W;6AYNe(D*z{!MkCt#^YK*b;_DTOm7 zKOPdM1t5oj6N?3jVF5P+Uy=y{8ILo`@Iu@Gjn_1gT5zfXW#U`R?yez465zTiAT%V3 z4WhP69NY)jQ7FyJ&dV>)gSRGMg2JGRr#v$+CBM8_*U-q+NK>!~RI=Y<&wz}L6oI;- zMWB|{Etb@Z%#tEd;wb_R&qOgN78KlKFUibJ%`Yv9;)7@aRT7|~l_(xa*C;+YC%-tg z2wZ4_i%(E_c#9P@Oi+A_EhQDy?gaO+HF>~|&s!`R`Nbu-SU}zNqG*s$*m6@#GV)Wv z4Gu_k0BXvCi_s!bRw)Ac9Bm8%)S5;rp1~!v0D7+t)V?YPr6&O<0bv0}0bvedK1L2k z1miukxi4dq2m`}o1|-13z`)?Zz`#)K!N9Rk0fA8R!`%GlKLmFfgz( zFfi~lFfcfSoYlp^z)-`G#gM|-%$UL?$xzFf!d$~B&XB?)&QQx#!kEQW!_>^k$N*xM zFlVteGk|!NdL^tiOew6*O#M=|%q47D>^02IjI}HvRW&Ri6*Vlu41o+m3=s_B40$Rn z3?&@dTtzL63?Nv-n8lgGR>L%#VJ_J0NQOM72!<4fU29} zkfWsS0`dB?@WzrFkg|i6sh}T(?+@ z3vx0`Zn5X&r>AG;rQc%7%uCC^#gt!si#;c^xFjXB=oU+UL2BMD7O-(FIr)hxw*)~( z`Q?|mfeZqhev35~WQitglwdKEqvA^{3sR#5^YTkF(=wA2LGFYIai(SFq{bH{mSjY6 zf((ua@o%xDB$gzuWGE6~U|{&ArC*X-TvDv>>*{P^Xrvz;6s8~K=NYV@lbKYMSd^Js ztPhDby@JYH5}COL`9&r1C>DXtZ3VSevCig8ii1pAk^NZ8a$XpMc zd|pnFXJB{19O+Zk9GqS!#Ws7f0W zje5leiRF3m<*7;W#o)p~&n727IWec$PS4#nBp#v&UNC?x1Yvnl@&cuy5{71mEXEqf z8m2x*Murr|Uy?A%PfhH*JQrMQkN=M%mt-$21YhUQr!v(BY41r3OSHbV7I0r zmB@^sWX71nl)~K11ZFdV5?l>K7IO_l7E3l$kw*v9*W^sWkj$TGk za?X=N$fmHN%7H_G-S6cI1_p*I9_ReLlGMBs-H^(H)GC3*f`S}qxdtwGZ?Tq^q{Ulk zGJ=9AIX@*cFTIMdyeK~}T>&0s+_!j(Q}a^dLBW}ySDbo_8_dl}O-xBGy2TBWg0PEk zv49FlaNyozEeDs7tmQ?SC8Qkq*(3=Z~NY^iz4`6;QIjF9+1jfGomDf#j4 zt|6MBhyWEj42)ciJd7NSJdAQoRYs&F9;iX=pmdm*n420Oe~T+VJ~uz5GzY}yiH|QV zP0WGF6oGOFI0Y2xg51jsP0z`xIXSR24RWX^W04#v>44KW7b3TTv=@WQV-6-B77mso zBlNNwlyE@_xY&lsY!4|dqu5e7Q@B7a25>RJ0V>U_bO?q5s3@mmIZz}C@-rxZz%r2x zNI;f>fdLjEpuhp=dT>aZfMO4nPZ^l1Oi6JqfgBI29Z_?94MRK=IMp-yX)=S;7bFdG z6r~n|3jmml@n(Aqkb6PV2g>$rj3m1mE$4$G8-&3*--Te#F9GNKEY=hjP$g2!Si_J7 zYI`v@GuASJeaiv%A*)}J5)t{jiVv3WeNyw%OENS$i$JAXks2t<)Io`xIWw>17CS8C zGN-4OM6niuvn)$dYGO)}F(_UkrDYU%GNcfR&q>XT;w;E7E&+!sq}YT<`Yra9{CH5J zvjYVrQnqCmVB{gD90loxCRjbFQ7Gjos4NACCMc3XE!$uQO-4UWMu=Onmn1ytsU`8S zWZ(mG7&t{TR#}piB9ToY&P|}o1xM+|3o#8^Ir$?w%8Cp}L5Z%D!z(A?NM-X#>TJcn>TwHxzLtLT7GrR}{Rd65-Dr<^K>sOGR8#6!=0xrFos?14qFP$=E4#f1r~t97$aL+keD9e#^KAHpmq$t%*hLJ5j0PL z3QgqJzdg8>!~l;&@-XF$gPia@nmC%-tg2;2|=Hwi!m<1JRuFj?^}wv<#*uM9lOq{##Bn%!c_ z$S*Fr#R3|xDslz+ge^Cps;U=&~!W8`D362}qwnruZP zpaNeMM1Xn?;Fu_qU|?YI(_}>}ly8X!`8)ZC#QS(U1vv&q#)r8E1$+AY6?ua+gB^_^ zK+Z1`W?*0db%}~W8J>fQg$XR8$rZ(&QBqQ%2MKL(+(DuU6wXB)Ak#oGc#AtezAUw< yI5R&lJ{}z2x7hNNvQm>vz{Vhj71&ykjkh>#ApKT5P?UpPW}qP8U}j Date: Tue, 30 Sep 2025 10:27:30 +0200 Subject: [PATCH 27/28] Included env var file for CAPIF MEC011 TCs and minor on JSON payload. --- ...ppTerminationNotificationSubscription.json | 4 +-- .../CAPIF/environment/variables_sandbox.txt | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 MEC011/SRV/CAPIF/environment/variables_sandbox.txt diff --git a/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json b/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json index 2975227..b8d9ad2 100644 --- a/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json +++ b/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json @@ -1,10 +1,10 @@ { - "subscriptionType": "AppTerminationNotificationSubscription", + "subscriptionType": "SerAvailabilityNotificationSubscription", "callbackReference": "https://somewhere.com/mecAppSuptApi/example", "_links": { "self": { "href": "https://somewhere.com/mecAppSuptApi/example" } }, - "appInstanceId": "f1e4d448-e277-496b-bf63-98391cfd20fb" + "appInstanceId": "298b2c0c-7efa-45d3-8b47-8ab3c009b845" } \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/environment/variables_sandbox.txt b/MEC011/SRV/CAPIF/environment/variables_sandbox.txt new file mode 100644 index 0000000..b90d130 --- /dev/null +++ b/MEC011/SRV/CAPIF/environment/variables_sandbox.txt @@ -0,0 +1,30 @@ +*** Variables *** + + +####Env variable for the ETSI MEC Sandbox +${SCHEMA} https +${HOST} try-mec.etsi.org +${PORT} 443 +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} /sbxnr8fp0o/mep1 +${apiName} service-apis +${apiVersion} v1 + + + +# Generic variables +${response} {} +${capifSubApiName} capif-events +${apiVersion} v1 + +# Specific variables +${API_NAME_QUERY_PARAM} mec015-1 +${API_ID_QUERY_PARAM} mec015-1 +${UNKNOWN_MEC_SRV_SER_NAME} UNKNOWN_MEC_SRV_SER_NAME +${MEC_SRV_INSTANCE_ID} MEC_SRV_SER_INSTANCE_ID +${NOT_EXISTING_MEC_SRV_INSTANCE_ID} NOT_EXISTING_MEC_SRV_INSTANCE_ID +${SERVICE_API_ID} SERVICE_API_ID +${UNKNOWN_SERVICE_API_ID} UNKNOWN_SERVICE_API_ID +${UNKNOWN_MEC_SRV_INSTANCE_ID} UNKNOWN_MEC_SRV_INSTANCE_ID +${SUBSCRIPTION_ID} SUBSCRIPTION_ID +${UNKNOWN_SUBSCRIPTION_ID} UNKNOWN_SUBSCRIPTION_ID -- GitLab From f1416a4e379e99a136b3c0d9278c918f0f7f2a89 Mon Sep 17 00:00:00 2001 From: piscione Date: Tue, 30 Sep 2025 10:32:47 +0200 Subject: [PATCH 28/28] Minor: fixes on typo, minor updates on payload and included variable sanbox env var for validation tests --- MEC021/SRV/AMS/AMSService.robot | 15 ++++--- .../SRV/AMS/environment/variables_sandbox.txt | 44 +++++++++++++++++++ .../AMS/json/AppMobilityServiceUpdate.json | 24 ++++++++++ .../AMS/json/NotificationSubscription.json | 4 +- .../json/NotificationSubscriptionUpdate.json | 21 +++++++++ MEC021/SRV/AMS/json/RegistrationInfo.json | 3 +- 6 files changed, 101 insertions(+), 10 deletions(-) create mode 100644 MEC021/SRV/AMS/environment/variables_sandbox.txt create mode 100644 MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 28210e9..3f39f86 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -2,14 +2,15 @@ ... Test Suite to validate UE Identity Tag (UETAG) operations. *** Settings *** -Resource environment/variables.txt +#Resource environment/variables.txt +Resource environment/variables_sandbox.txt Resource ../../../pics.txt Resource ../../../GenericKeywords.robot Library REST ${AMS_SCHEMA}://${AMS_HOST}:${AMS_PORT} ssl_verify=false Library BuiltIn Library libraries/Server.py Library OperatingSystem -Library MockServerLibrary +#Library MockServerLibrary Library Collections @@ -106,7 +107,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 Get Registered AMS information using attribute-selector filter ${APP_MOBILITY_SERVICE_FILTER_EXCLUDE_FIELDS} Check HTTP Response Status Code Is 200 - #Check HTTP Response Body Json Schema Is AppMobilityServiceInfos + Check HTTP Response Body Json Schema Is AppMobilityServiceInfos FOR ${app} IN @{response['body']} Should Be Equal As Strings ${app['appMobilityServiceId']} ${APP_MOBILITY_SERVICE_ID} @@ -274,7 +275,7 @@ TC_MEC_MEC021_SRV_AMS_007_OK ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscription + Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is NotificationSubscription @@ -291,7 +292,7 @@ TC_MEC_MEC021_SRV_AMS_007_BR Check HTTP Response Status Code Is 400 -TP_MEC_MEC021_SRV_AMS_007_NF +TC_MEC_MEC021_SRV_AMS_007_NF [Documentation] Modify a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a modify request for a not existing subscription. ... ETSI GS MEC 021 3.1.1, clause 7.3.2 @@ -374,7 +375,7 @@ TC_MEC_MEC021_SRV_AMS_012_OK ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfo + Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfo Should Be Equal As Strings ${response['body']['appMobilityServiceId']} ${APP_MOBILITY_SERVICE_ID} @@ -519,6 +520,8 @@ TC_MEC_MEC021_SRV_UETESTNOT_001_OK Spawn Notification Server TestNotification Validate Json TestNotification.schema.json ${payload_notification} [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + + *** Keywords *** Get Registered AMS information Set Headers {"Accept":"application/json"} diff --git a/MEC021/SRV/AMS/environment/variables_sandbox.txt b/MEC021/SRV/AMS/environment/variables_sandbox.txt new file mode 100644 index 0000000..e0837e3 --- /dev/null +++ b/MEC021/SRV/AMS/environment/variables_sandbox.txt @@ -0,0 +1,44 @@ +*** Variables *** +# Generic variables +#${AMS_SCHEMA} http +#${AMS_HOST} mockoon +#${AMS_PORT} 3006 +#${response} {} +#${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +#${apiRoot} +#${apiName} amsi +#${apiVersion} v1 + + +####Env variable for the ETSI MEC Sandbox +${AMS_SCHEMA} https +${AMS_HOST} try-mec.etsi.org +${AMS_PORT} 443 +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${response} {} +${apiRoot} //mep1 +${apiName} amsi +${apiVersion} v1 + +# Specific variables +${APP_MOBILITY_SERVICE_ID} -4P-3piNHphgT_GF +${APP_MOBILITY_SERVICE_ID2} APP_MOBILITY_SERVICE_ID2 +${MALFORMED_APP_MOBILITY_SERVICE_ID} MALFORMED_APP_MOBILITY_SERVICE_ID +${APP_MOBILITY_SERVICE_FILTER_APP_MOBILITY_SERVICE_ID} (eq,appMobilityServiceId,ca29c5a5-f471-4098-abcb-d55d83410087) +${APP_MOBILITY_SERVICE_FILTER_SERVICE_CONSUMER_ID} (eq,serviceConsumerId[appInstanceId],5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f) +${APP_MOBILITY_SERVICE_FILTER_EXCLUDE_FIELDS} (eq,appMobilityServiceId,APP_MOBILITY_SERVICE_ID)&exclude_fields=[serviceConsumerId] +${APP_INS_ID} ca29c5a5-f471-4098-abcb-d55d83410087 +${SUBSCRIPTION_TYPE} MobilityProcedureSubscription +${SUBSCRIPTION_ID} sub-DjA60j9KKidfITKs +${NON_EXISTENT_SUBSCRIPTION_ID} NON_EXISTENT_SUBSCRIPTION_ID +${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} NON_EXISTENT_APP_MOBILITY_SERVICE_ID + +# Notifications variables +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar + +${callback_port} 9091 +${callback_uri} http://172.22.1.7:${callback_port} +${callback_endpoint} /amsi/subscriptions +${callback_endpoint_error} /subs_404 +${total_polling_time} 2 min +${polling_interval} 10 sec diff --git a/MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json b/MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json new file mode 100644 index 0000000..2fe7b06 --- /dev/null +++ b/MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json @@ -0,0 +1,24 @@ +{ + "deviceInformation": [ + { + "associateId": { + "type": "UE_IPv4_ADDRESS", + "value": "192.168.1.100" + }, + "appMobilityServiceLevel": "APP_MOBILITY_NOT_ALLOWED", + "contextTransferState": "NOT_TRANSFERRED" + }, + { + "associateId": { + "type": "UE_IPV6_ADDRESS", + "value": "2001:0db8:85a3:0000:0000:8a2e:0370:7334" + }, + "appMobilityServiceLevel": "APP_MOBILITY_WITH_CONFIRMATION", + "contextTransferState": "USER_CONTEXT_TRANSFER_COMPLETED" + } + ], + "expiryTime": 3600, + "serviceConsumerId": { + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription.json b/MEC021/SRV/AMS/json/NotificationSubscription.json index 536bcc2..bbc76b3 100644 --- a/MEC021/SRV/AMS/json/NotificationSubscription.json +++ b/MEC021/SRV/AMS/json/NotificationSubscription.json @@ -6,11 +6,11 @@ "requestWebsocketUri": true }, "expiryDeadline": { - "seconds": 1644691200, + "seconds": 2077353600, "nanoSeconds": 0 }, "filterCriteria": { - "appInstanceId": "app-123" + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" }, "subscriptionType": "MobilityProcedureSubscription" } \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json b/MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json new file mode 100644 index 0000000..f33e02b --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json @@ -0,0 +1,21 @@ +{ + "callbackReference": "http://example.com/callback", + "_links": { + "self": { + "href": "https://try-mec.etsi.org/sbxnr8fp0o/mep1/amsi/v1/subscriptions/sub-DjA60j9KKidfITKs" + } + }, + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 2077353600, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" + }, + "subscriptionType": "MobilityProcedureSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/RegistrationInfo.json b/MEC021/SRV/AMS/json/RegistrationInfo.json index ac38cbf..2583998 100644 --- a/MEC021/SRV/AMS/json/RegistrationInfo.json +++ b/MEC021/SRV/AMS/json/RegistrationInfo.json @@ -1,7 +1,6 @@ { "serviceConsumerId": { - "appInstanceId": "exampleAppInstanceId", - "mepId": "exampleMepId" + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" }, "appMobilityServiceId": "exampleAppMobilityServiceId", "deviceInformation": [ -- GitLab