From cb85f49c70aa89e92c9f14fdfc47ec7bd58b7b5e Mon Sep 17 00:00:00 2001 From: garciay Date: Fri, 13 Sep 2019 10:06:17 +0200 Subject: [PATCH] Finalyze BWA --- SRV/BWA/PlatBandwidthManager.robot | 189 ++++++++++++++++++-- SRV/BWA/environment/variables.txt | 12 +- SRV/BWA/resources/BandwidthManagerAPI.robot | 35 ++++ TODO.md | 12 ++ 4 files changed, 226 insertions(+), 22 deletions(-) diff --git a/SRV/BWA/PlatBandwidthManager.robot b/SRV/BWA/PlatBandwidthManager.robot index 3b6ad1a..5ee2d8c 100644 --- a/SRV/BWA/PlatBandwidthManager.robot +++ b/SRV/BWA/PlatBandwidthManager.robot @@ -16,7 +16,7 @@ Request the list of configured bandwidth allocations ... Check that the IUT responds with the list of configured bandwidth allocations when queried by a MEC Application ... Reference ETSI GS MEC 015 V1.1.1, clause 8.4.3.1 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json - Get the list of configured bandwidth allocations ${APP_INSTANCE_ID} + Retrieve the list of configured bandwidth allocations ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is bwInfo Check AppInstanceId ${APP_INSTANCE_ID} @@ -27,28 +27,28 @@ Request the list of configured bandwidth allocations with wrong app instance id ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application ... Reference ETSI GS MEC 015 V1.1.1, clause 8.4.3.1 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json - Get the list of configured bandwidth allocations ${NON_EXISTENT_APP_INSTANCE_ID} + Retrieve the list of configured bandwidth allocations ${NON_EXISTENT_APP_INSTANCE_ID} Check HTTP Response Status Code Is 400 Check ProblemDetails 400 -Request for the requested bandwidth requirements +Request to register Bandwidth Management Services [Documentation] TC_MEC_SRV_BWA_002_OK ... Check that the IUT responds with a registration and initialisation approval for the requested bandwidth requirements sent by a MEC Application ... Reference ETSI GS MEC 015 V1.1.1, clause 8.4.3.4 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json - Registration for bandwidth requirements ${APP_INSTANCE_ID} ${REQUEST_FOR_BW_REQUIREMENTS} + Registration for bandwidth services ${APP_INSTANCE_ID} ${REQUEST_FOR_BW_REQUIREMENTS} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is bwInfo Check AppInstanceId ${APP_INSTANCE_ID} -Request for the requested bandwidth requirements using wrong parameters +Request to register Bandwidth Management Services using wrong parameters [Documentation] TC_MEC_SRV_BWA_002_BR ... Check that the IUT responds with a registration and initialisation approval for the requested bandwidth requirements sent by a MEC Application ... Reference ETSI GS MEC 015 V1.1.1, clause 8.4.3.4 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json - Registration for bandwidth requirements ${APP_INSTANCE_ID} ${REQUEST_FOR_BW_REQUIREMENTS_BR} + Registration for bandwidth services ${APP_INSTANCE_ID} ${REQUEST_FOR_BW_REQUIREMENTS_BR} Check HTTP Response Status Code Is 400 Check ProblemDetails 400 @@ -79,21 +79,31 @@ Updates the requested bandwidth requirements ... Check that the IUT updates the requested bandwidth requirements when commanded by a MEC Application ... Reference ETSI GS MEC 015 V1.1.1, clause 8.3.3.2 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json - Update a bandwidth allocation ${ALLOCATION_ID} ${REQUEST_FOR_BW_REQUIREMENTS} + # Preamble + ${allocation_id} ${etag_value}= Register Bandwidth Management Service + # Test body + Update a bandwidth allocation ${allocation_id} ${REQUEST_FOR_BW_REQUIREMENTS} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is bwInfo Check AppInstanceId ${APP_INSTANCE_ID} - Check Allocation ${ALLOCATION_ID} + Check Allocation ${allocation_id} + # Postamble + Unregister Bandwidth Management Service ${allocation_id} +Updates the requested bandwidth requirements using wrong allocationDirection [Documentation] TC_MEC_SRV_BWA_004_BR - Updates the requested bandwidth requirements using wrong allocationDirection ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application ... Reference ETSI GS MEC 015 V1.1.1, clause 8.3.3.2 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json - Update a bandwidth allocation ${ALLOCATION_ID} ${REQUEST_FOR_BW_REQUIREMENTS_ID} + # Preamble + ${allocation_id} ${etag_value}= Register Bandwidth Management Service + # Test body + Update a bandwidth allocation ${allocation_id} ${REQUEST_FOR_BW_REQUIREMENTS_BR} Check HTTP Response Status Code Is 400 Check ProblemDetails 400 + # Postamble + Unregister Bandwidth Management Service ${allocation_id} Updates the requested bandwidth requirements using wrong allocationId @@ -112,13 +122,115 @@ Updates the requested bandwidth requirements using wrong parameters ... Reference ETSI GS MEC 015 V1.1.1, clause 8.3.3.2 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json # TODO Application doesn't comply with a required condition??? - Update a bandwidth allocation ${ALLOCATION_ID} ${REQUEST_FOR_BW_REQUIREMENTS} + # Preamble + ${allocation_id} ${etag_value}= Register Bandwidth Management Service + # Test body + Update a bandwidth allocation with invalid ETAG ${allocation_id} ${REQUEST_FOR_BW_REQUIREMENTS} Check HTTP Response Status Code Is 412 Check ProblemDetails 412 + # Postamble + Unregister Bandwidth Management Service ${allocation_id} + + +Request for deltas changes + [Documentation] TC_MEC_SRV_BWA_005_OK + ... Check that the IUT when provided with just the changes (deltas) updates the requested bandwidth requirements when commanded by a MEC Application + ... Reference ETSI GS MEC 015 V1.1.1, clause 8.3.3.3 + ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json + # Preamble + ${allocation_id} ${etag_value}= Register Bandwidth Management Service + # Test body + Request a deltas changes ${allocation_id} ${REQUEST_FOR_DELTAS_CHANGES} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is bwInfo + Check AppInstanceId ${APP_INSTANCE_ID} + Check Allocation ${allocation_id} + # Postamble + Unregister Bandwidth Management Service ${allocation_id} + + +Request for deltas changes using invalid requestType + [Documentation] TC_MEC_SRV_BWA_005_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 015 V1.1.1, clause 8.3.3.3 + ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json + # Preamble + ${allocation_id} ${etag_value}= Register Bandwidth Management Service + # Test body + Request a deltas changes ${allocation_id} ${REQUEST_FOR_DELTAS_CHANGES_BR} + Check HTTP Response Status Code Is 400 + Check ProblemDetails 400 + # Postamble + Unregister Bandwidth Management Service ${allocation_id} + + +Request for deltas changes using an unknown URI + [Documentation] TC_MEC_SRV_BWA_005_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 015 V1.1.1, clause 8.3.3.3 + ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json + Request a deltas changes ${NOT_EXISTENT_ALLOCATION_ID} ${REQUEST_FOR_DELTAS_CHANGES} + Check HTTP Response Status Code Is 404 + Check ProblemDetails 404 + + +Request for deltas changes using wrong parameters + [Documentation] TC_MEC_SRV_BWA_005_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 015 V1.1.1, clause 8.3.3.3 + ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json + # Preamble + ${allocation_id} ${etag_value}= Register Bandwidth Management Service + # Test body + Request a deltas changes with invalid ETAG ${allocation_id} ${REQUEST_FOR_DELTAS_CHANGES} + Check HTTP Response Status Code Is 412 + Check ProblemDetails 412 + # Postamble + Unregister Bandwidth Management Service ${allocation_id} + + +Request to unregister bandwidth Management Service + [Documentation] TC_MEC_SRV_BWA_006_OK + ... Check that the IUT unregisters from the Bandwidth Management Service when commanded by a MEC Application + ... Reference ETSI GS MEC 015 V1.1.1, clause 8.3.3.5 + ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json + # Preamble + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + ${allocation_id} ${etag_value}= Register Bandwidth Management Service + # Test body + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Length":"0"} + Delete /exampleAPI/bwm/v1/bw_allocations/${allocation_id} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 204 + + +Request to unregister bandwidth Management Service with wrong parameters + [Documentation] TC_MEC_SRV_BWA_006_OK + ... Check that the IUT unregisters from the Bandwidth Management Service when commanded by a MEC Application + ... Reference ETSI GS MEC 015 V1.1.1, clause 8.3.3.5 + ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json + # Preamble + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + # Test body + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Length":"0"} + Delete /exampleAPI/bwm/v1/bw_allocations/${NON_EXISTENT_ALLOCATION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 404 + Check ProblemDetails 404 *** Keywords *** - Get the list of configured bandwidth allocations + Retrieve the list of configured bandwidth allocations [Arguments] ${app_instance_id} Should Be True ${PIC_MEC_PLAT} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -126,12 +238,12 @@ Updates the requested bandwidth requirements using wrong parameters Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} Set Headers {"Content-Length":"0"} - Get /exampleAPI/bwm/v1/bw_allocations?app_instance_id=${app_instance_id} + Get /exampleAPI/bwm/v1/bw_allocations/${app_instance_id} ${output}= Output response Set Suite Variable ${response} ${output} - Registration for bandwidth requirements + Registration for bandwidth services [Arguments] ${app_instance_id} ${content} Should Be True ${PIC_MEC_PLAT} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -140,7 +252,7 @@ Updates the requested bandwidth requirements using wrong parameters Set Headers {"Authorization":"${TOKEN}"} Set Headers {"Content-Length":"0"} log ${content} - Put /exampleAPI/bwm/v1/bw_allocations?app_instance_id=${APP_INSTANCE_ID} ${content} + Post /exampleAPI/bwm/v1/bw_allocations/${APP_INSTANCE_ID} ${content} ${output}= Output response Set Suite Variable ${response} ${output} @@ -153,7 +265,7 @@ Updates the requested bandwidth requirements using wrong parameters Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} Set Headers {"Content-Length":"0"} - Get /exampleAPI/bwm/v1/bw_allocations?allocation_id=${allocation_id} + Get /exampleAPI/bwm/v1/bw_allocations/${allocation_id} ${output}= Output response Set Suite Variable ${response} ${output} @@ -165,7 +277,50 @@ Updates the requested bandwidth requirements using wrong parameters Set Headers {"Accept":"application/json"} Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"${ETAG_LABEL}":"${ETAG}"} + Set Headers {"Content-Length":"0"} + Put /exampleAPI/bwm/v1/bw_allocations/${allocation_id} ${content} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + Update a bandwidth allocation with invalid ETAG + [Arguments] ${allocation_id} ${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}"} + Set Headers {"${ETAG_LABEL}":"${INVALID_ETAG}"} + Set Headers {"Content-Length":"0"} + Put /exampleAPI/bwm/v1/bw_allocations/${allocation_id} ${content} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Request a deltas changes + [Arguments] ${allocation_id} ${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}"} + Set Headers {"${ETAG_LABEL}":"${ETAG}"} + Set Headers {"Content-Length":"0"} + Patch /exampleAPI/bwm/v1/bw_allocations/${allocation_id} ${content} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Request a deltas changes with invalid ETAG + [Arguments] ${allocation_id} ${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}"} + Set Headers {"${ETAG_LABEL}":"${INVALID_ETAG}"} Set Headers {"Content-Length":"0"} - Put /exampleAPI/bwm/v1/bw_allocations?allocation_id=${allocation_id} ${content} + Patch /exampleAPI/bwm/v1/bw_allocations/${allocation_id} ${content} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/SRV/BWA/environment/variables.txt b/SRV/BWA/environment/variables.txt index 9351233..8598e06 100644 --- a/SRV/BWA/environment/variables.txt +++ b/SRV/BWA/environment/variables.txt @@ -4,14 +4,16 @@ ${MEC-APP_SCHEMA} http #${MEC-APP_HOST} 127.0.0.1 ${MEC-APP_HOST} 192.168.56.1 ${MEC-APP_PORT} 8081 -${ZONE_ID} zone01 +${ETAG_LABEL} Location +${INVALID_ETAG} invalid_etag ${APP_INSTANCE_ID} appInst01 ${NON_EXISTENT_APP_INSTANCE_ID} appInst99 ${ALLOCATION_ID} allInst01 ${NON_EXISTENT_ALLOCATION_ID} allInst99 -${FIXED_ALLOCATION} string -${REQUEST_FOR_BW_REQUIREMENTS} "{ "appInsId": "${APP_INSTANCE_ID}", "requestType": "APPLICATION_SPECIFIC_BW_ALLOCATION", "fixedBWPriority": "not defined in the present document", "fixedAllocation": "${FIXED_ALLOCATION}", "allocationDirection": "00 = Downlink (towards the UE)"}" -${REQUEST_FOR_BW_REQUIREMENTS_BR} "{ "appInsId": "${APP_INSTANCE_ID}", "requestType": "UNKMOWN", "fixedBWPriority": "not defined in the present document", "fixedAllocation": "${FIXED_ALLOCATION}", "allocationDirection": "00 = Downlink (towards the UE)"}" -${REQUEST_FOR_BW_REQUIREMENTS_ID} "{ "appInsId": "${APP_INSTANCE_ID}", "requestType": "APPLICATION_SPECIFIC_BW_ALLOCATION", "fixedBWPriority": "not defined in the present document", "fixedAllocation": "${FIXED_ALLOCATION}", "allocationDirection": "99 = DownAndDownlink (towards the UE)"}" +${FIXED_ALLOCATION} fixed_allocation +${REQUEST_FOR_BW_REQUIREMENTS} { "appInsId": "${APP_INSTANCE_ID}", "requestType": "APPLICATION_SPECIFIC_BW_ALLOCATION", "fixedBWPriority": "not defined in the present document", "fixedAllocation": "${FIXED_ALLOCATION}", "allocationDirection": "00 = Downlink (towards the UE)"} +${REQUEST_FOR_BW_REQUIREMENTS_BR} { "appInsId": "${APP_INSTANCE_ID}", "requestType": "UNKMOWN", "fixedBWPriority": "not defined in the present document", "fixedAllocation": "${FIXED_ALLOCATION}", "allocationDirection": "00 = Downlink (towards the UE)"} +${REQUEST_FOR_DELTAS_CHANGES} { "appInsId": "${APP_INSTANCE_ID}", "requestType": "APPLICATION_SPECIFIC_BW_ALLOCATION", "fixedBWPriority": "not defined in the present document", "fixedAllocation": "string", "allocationDirection": "00 = Downlink (towards the UE)"} +${REQUEST_FOR_DELTAS_CHANGES_BR} { "appInsId": "${APP_INSTANCE_ID}", "requestType": "UNKNOWN", "fixedBWPriority": "not defined in the present document", "fixedAllocation": "string", "allocationDirection": "00 = Downlink (towards the UE)"} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/SRV/BWA/resources/BandwidthManagerAPI.robot b/SRV/BWA/resources/BandwidthManagerAPI.robot index 4e55077..59b0099 100644 --- a/SRV/BWA/resources/BandwidthManagerAPI.robot +++ b/SRV/BWA/resources/BandwidthManagerAPI.robot @@ -7,6 +7,41 @@ Library JSONSchemaLibrary schemas/ *** Keywords *** + Register Bandwidth Management Service + ... Register a Bandwidth Management Service + 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}"} + Set Headers {"Content-Length":"0"} + Post /exampleAPI/bwm/v1/bw_allocations ${REQUEST_FOR_BW_REQUIREMENTS} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is bwInfo + # Extract ETAG_VALUE + ${etag_value}= ${response['status']['${etag_label}']} + # TODO Extract allocationId + ${allocation_id}= 'todo' + [return] ${allocation_id} ${etag_value} + + + Unregister Bandwidth Management Service + ... Unregister a Bandwidth Management Service + [Arguments] ${value} + 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}"} + Set Headers {"Content-Length":"0"} + Delete /exampleAPI/bwm/v1/bw_allocations/${value} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 204 + + Check AppInstanceId [Arguments] ${value} Log Check AppInstanceId for bwInfo element diff --git a/TODO.md b/TODO.md index 1c6abb5..80c115e 100644 --- a/TODO.md +++ b/TODO.md @@ -42,6 +42,18 @@ https://forge.etsi.org/rep/mec/gs032p2-test-purposes/blob/master/Test%20Purposes - TC_MEC_SRV_BWA_004_PF To be tested +- TC_MEC_SRV_BWA_005_OK To be tested + +- TC_MEC_SRV_BWA_005_BR To be tested + +- TC_MEC_SRV_BWA_005_NF To be tested + +- TC_MEC_SRV_BWA_005_PF To be tested + +- TC_MEC_SRV_BWA_006_OK To be tested + +- TC_MEC_SRV_BWA_006_NF To be tested + ## SRV -- GitLab