Commit 6b969b6b authored by piscione's avatar piscione
Browse files

Updated TCs of MEC011 from v2.1.1 to v2.2.1

parent 56281d27
Pipeline #7762 passed with stage
in 0 seconds
......@@ -3,7 +3,7 @@
Documentation
... A test suite for validating Application Service Availability Query (APPSAQ) operations.
Resource ../../GenericKeywords.robot
Resource ../../../GenericKeywords.robot
Resource environment/variables.txt
Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false
......@@ -13,13 +13,13 @@ Default Tags TC_MEC_SRV_APPSAQ
*** Test Cases ***
TC_MEC_SRV_APPSAQ_001_OK
TP_MEC_MEC011_SRV_APPSAQ_001_OK
[Documentation]
... 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 V2.1.1, clause 8.2.6.3.1
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.6.3.1
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -28,12 +28,12 @@ TC_MEC_SRV_APPSAQ_001_OK
Check HTTP Response Body Json Schema Is ServiceInfoList
TC_MEC_SRV_APPSAQ_001_BR
TP_MEC_MEC011_SRV_APPSAQ_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 011 V2.1.1, clause 8.2.6.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.6.3.1
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -42,12 +42,12 @@ TC_MEC_SRV_APPSAQ_001_BR
Check HTTP Response Status Code Is 400
TC_MEC_SRV_APPSAQ_002_OK
TP_MEC_MEC011_SRV_APPSAQ_002_OK
[Documentation]
... 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 V2.1.1, clause 8.2.6.3.4
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.6.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -58,12 +58,12 @@ TC_MEC_SRV_APPSAQ_002_OK
Check Response Contains ${response['body']} serName ${NEW_SERVICE_NAME}
TC_MEC_SRV_APPSAQ_002_BR
TP_MEC_MEC011_SRV_APPSAQ_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 011 V2.1.1, clause 8.2.6.3.4
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.6.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -71,12 +71,12 @@ TC_MEC_SRV_APPSAQ_002_BR
Check HTTP Response Status Code Is 400
TC_MEC_SRV_APPSAQ_002_NF
TP_MEC_MEC011_SRV_APPSAQ_002_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 011 V2.1.1, clause 8.2.6.3.4
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.6.3.4
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -84,12 +84,12 @@ TC_MEC_SRV_APPSAQ_002_NF
Check HTTP Response Status Code Is 404
TC_MEC_SRV_APPSAQ_003_OK
TP_MEC_MEC011_SRV_APPSAQ_003_OK
[Documentation]
... 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 V2.1.1, clause 8.2.7.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.7.3.1
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -99,24 +99,24 @@ TC_MEC_SRV_APPSAQ_003_OK
Check Response Contains ${response['body']} serInstanceId ${SERVICE_ID}
TC_MEC_SRV_APPSAQ_003_NF
TP_MEC_MEC011_SRV_APPSAQ_003_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 011 V2.1.1, clause 8.2.7.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.7.3.1
[Tags] PIC_MEC_PLAT PIC_SERVICES
Get individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID}
Check HTTP Response Status Code Is 404
TC_MEC_SRV_APPSAQ_004_OK
TP_MEC_MEC011_SRV_APPSAQ_004_OK
[Documentation]
... Check that the IUT updates a service information for a given
... application instance when commanded by a MEC Application
...
... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.2
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.7.3.2
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -126,12 +126,12 @@ TC_MEC_SRV_APPSAQ_004_OK
Check Response Contains ${response['body']} version ${SVC_NEW_VERSION}
TC_MEC_SRV_APPSAQ_004_BR
TP_MEC_MEC011_SRV_APPSAQ_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 011 V2.1.1, clause 8.2.7.3.2
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.7.3.2
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -139,12 +139,12 @@ TC_MEC_SRV_APPSAQ_004_BR
Check HTTP Response Status Code Is 400
TC_MEC_SRV_APPSAQ_004_NF
TP_MEC_MEC011_SRV_APPSAQ_004_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 011 V2.1.1, clause 8.2.7.3.2
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.7.3.2
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
......@@ -152,39 +152,25 @@ TC_MEC_SRV_APPSAQ_004_NF
Check HTTP Response Status Code Is 404
TC_MEC_SRV_APPSAQ_004_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 011 V2.1.1, clause 8.2.7.3.2
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
Update service with invalid etag ${APP_INSTANCE_ID} ${SERVICE_ID} ServiceInfoUpdated
Check HTTP Response Status Code Is 412
TC_MEC_SRV_APPSAQ_005_OK
TP_MEC_MEC011_SRV_APPSAQ_005_OK
[Documentation]
... 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 V2.1.1, clause 8.2.7.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.7.3.5
... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo
[Tags] PIC_MEC_PLAT PIC_SERVICES
Remove individual service ${APP_INSTANCE_ID} ${SERVICE_ID}
[Tags] PIC_MEC_PLAT PIC_SERVICES
Remove individual service ${APP_INSTANCE_ID} ${SERVICE_ID}
Check HTTP Response Status Code Is 204
TC_MEC_SRV_APPSAQ_005_NF
TP_MEC_MEC011_SRV_APPSAQ_005_NF
[Documentation]
... 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 V2.1.1, clause 8.2.7.3.1
... Reference ETSI GS MEC 011 V2.2.1, clause 8.2.7.3.5
[Tags] PIC_MEC_PLAT PIC_SERVICES
Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID}
Check HTTP Response Status Code Is 404
......@@ -196,6 +182,7 @@ Get a list of mecService of an application instance with parameters
[Arguments] ${appInstanceId} ${key}=None ${value}=None
Set Headers {"Accept":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
Set Headers {"Content-Type":"*/*"}
Get ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services?${key}=${value}
${output}= Output response
Set Suite Variable ${response} ${output}
......@@ -203,6 +190,7 @@ Get a list of mecService of an application instance with parameters
Get a list of mecService of an application instance
[Arguments] ${appInstanceId}
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services
${output}= Output response
......@@ -213,9 +201,11 @@ Create new service
[Arguments] ${content} ${appInstanceId}
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
#Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
${file}= Catenate SEPARATOR= jsons/ ${content} .json
${body}= Get File ${file}
Log ${appInstanceId}
Post ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services ${body}
${output}= Output response
Set Suite Variable ${response} ${output}
......@@ -225,6 +215,7 @@ Get individual service
[Arguments] ${appInstanceId} ${serviceName}
Set Headers {"Accept":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
Set Headers {"Content-Type":"*/*"}
Get ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services/${serviceName}
${output}= Output response
Set Suite Variable ${response} ${output}
......@@ -234,6 +225,7 @@ Update service
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
#Set Headers {"Content-Type":"*/*"}
${file}= Catenate SEPARATOR= jsons/ ${content} .json
${body}= Get File ${file}
PUT ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services/${serviceId} ${body}
......@@ -241,17 +233,11 @@ Update service
Set Suite Variable ${response} ${output}
Update service with invalid etag
[Arguments] ${appInstanceId} ${serviceId} ${content}
Set Headers {"If-Match": ${INVALID_ETAG}}
Update service ${appInstanceId} ${serviceId} ${content}
Remove individual service
[Arguments] ${appInstanceId} ${serviceName}
Set Headers {"Accept":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
Set Headers {"Content-Type":"*/*"}
Delete ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services/${serviceName}
${output}= Output response
Set Suite Variable ${response} ${output}
......
*** Variables ***
# Generic variables
${SCHEMA} http
${HOST} 10.192.2.172
${HOST} 127.0.0.1
${PORT} 8081
${response} {}
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
......@@ -10,7 +10,7 @@ ${apiName} mec_service_mgmt
${apiVersion} v1
# Specific variables
${APP_INSTANCE_ID} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f
${APP_INSTANCE_ID} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f
${INSTANCE_ID} instance_id
${FAKE_INSTANCE_ID_VALUE} 5
${NON_EXISTENT_APP_INSTANCE_ID} NON_ESISTENT_APP_INSTANCE_ID
......
{
"Name": "WRONG_PARAMETER_NAME",
"serName": "WRONG_PARAMETER_NAME",
"version": "reprehenderit Ut non commodo",
"state": "INACTIVE",
"transportInfo": {
......
{
"ServiceInfo": {
"description": "This type represents the general information of a MEC service.",
"type": "object",
"required": [
"serName",
"version",
"state",
"transportInfo",
"serializer"
],
"properties": {
"serInstanceId": {
"description": "Identifier of the service instance assigned by the MEC platform.",
"type": "string",
"readOnly": true,
"example": "ServiceInstance123"
},
"serName": {
"description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.",
"type": "string",
"example": "ExampleService"
},
"serCategory": {
"description": "This type represents the category reference",
"type": "object",
"required": [
"href",
"id",
"name",
"version"
],
"properties": {
"href": {
"description": "Reference of the catalogue",
"type": "string",
"format": "uri",
"example": "/example/catalogue1"
},
"id": {
"description": "Unique identifier of the category",
"type": "string",
"example": "id12345"
},
"name": {
"description": "Name of the category, example values include RNI, Location & Bandwidth Management",
"type": "string",
"example": "RNI"
},
"version": {
"description": "Category version",
"type": "string",
"example": "version1"
}
}
},
"version": {
"description": "Service version",
"type": "string",
"example": "ServiceVersion1"
},
"state": {
"description": "This enumeration defines the possible states of a service.",
"type": "string",
"enum": [
"ACTIVE",
"INACTIVE",
"SUSPENDED"
],
"example": "ACTIVE"
},
"transportInfo": {
"description": "This type represents the general information of a MEC service.",
"type": "object",
"required": [
"id",
"name",
"type",
"protocol",
"version",
"endpoint",
"security"
],
"properties": {
"id": {
"description": "The identifier of this transport",
"type": "string",
"example": "TransId12345"
},
"name": {
"description": "The name of this transport",
"type": "string",
"example": "REST"
},
"description": {
"description": "Human-readable description of this transport",
"type": "string",
"example": "REST API"
},
"type": {
"description": "The enumeration TransportType represents types of transports",
"type": "string",
"enum": [
"REST_HTTP",
"MB_TOPIC_BASED",
"MB_ROUTING",
"MB_PUBSUB",
"RPC",
"RPC_STREAMING",
"WEBSOCKET"
],
"example": "REST_HTTP"
},
"protocol": {
"description": "The name of the protocol used. Shall be set to HTTP for a REST API.",
"type": "string",
"example": "HTTP"
},
"version": {
"description": "The version of the protocol used",
"type": "string",
"example": "2.0"
},
"endpoint": {
"description": "This type represents information about a transport endpoint",
"type": "object",
"oneOf": [{
"description": "Entry point information of the service as string, formatted according to URI syntax",
"type": "object",
"required": [
"uris"
],
"properties": {
"uris": {
"type": "array",
"minItems": 0,
"items": {
"description": "Entry point information of the service",
"type": "string",
"format": "uri",
"example": "/mecSerMgmtApi/service/EntryPoint"
}
}
}
},
{
"description": "Entry point information of the service as one or more pairs of IP address and port",
"type": "object",
"required": [
"addresses"
],
"properties": {
"addresses": {
"type": "array",
"minItems": 0,
"items": {
"description": "A IP address and port pair",
"type": "object",
"required": [
"host",
"port"
],
"properties": {
"host": {
"description": "Host portion of the address",
"type": "string",
"example": "192.0.2.0"
},
"port": {
"description": "Port portion of the address",
"type": "integer",
"format": "uint32",
"example": 8080
}
}
}
}
}
},
{
"description": "Entry point information of the service in a format defined by an implementation, or in an external specification.",
"type": "object",
"required": [
"alternative"
],
"properties": {
"alternative": {
"type": "object"
}
}
}
]
},
"security": {
"description": "This type represents security information related to a transport",
"type": "object",
"properties": {
"oAuth2Info": {
"description": "Parameters related to use of OAuth 2.0",
"required": [
"grantTypes",
"tokenEndpoint"
],
"properties": {
"grantTypes": {
"description": "List of supported OAuth 2.0 grant types.",
"type": "array",
"minItems": 1,
"maxItems": 4,
"items": {
"description": "OAuth 2.0 grant type",
"type": "string",
"enum": [
"OAUTH2_AUTHORIZATION_CODE",
"OAUTH2_IMPLICIT_GRANT",
"OAUTH2_RESOURCE_OWNER",
"OAUTH2_CLIENT_CREDENTIALS"
],
"example": "OAUTH2_CLIENT_CREDENTIALS"
}
},
"tokenEndpoint": {
"description": "The token endpoint",
"type": "string",
"format": "uri",
"example": "/mecSerMgmtApi/security/TokenEndPoint"
}
},
"type": "object"
}
}
},
"implSpecificInfo": {
"description": "Additional implementation specific details of the transport",
"type": "object"
}
}
},
"serializer": {
"description": "The enumeration represents types of serializers",
"type": "string",
"enum": [
"JSON",
"XML",
"PROTOBUF3"
],
"example": "JSON"
},
"scopeOfLocality": {
"description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST",
"type": "string",
"enum": [
"MEC_SYSTEM",
"MEC_HOST",
"NFVI_POP",
"ZONE",
"ZONE_GROUP",
"NFVI_NODE"
],
"example": "MEC_SYSTEM"
},
"consumedLocalOnly": {
"description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance.",
"type": "boolean",
"example": false
},
"isLocal": {
"description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.",
"type": "boolean",
"example": true
},
"livenessInterval": {
"type": "integer"
},
"_links": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"description": "This type represents a type of link and may be referenced from data structures",
"type": "object",
"properties": {
"href": {
"description": "URI referring to a resource",
"type": "string",
"format": "uri",
"example": "/mecSerMgmtApi/example"
}
}
},
"liveness": {
"description": "This type represents a type of link and may be referenced from data structures",
"type": "object",
"properties": {
"href": {
"description": "URI referring to a resource",
"type": "string",
"format": "uri",
"example": "/mecSerMgmtApi/example"
}
}
}
}