Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
MEC - Multi-access Edge Computing
MEC Robot Test Suite
Commits
719d4daf
Commit
719d4daf
authored
Aug 07, 2019
by
Elian Kraja
Browse files
Refactoring generic elements. Added MEC-021 Robotframework code
parents
c38aaf8c
049d3a21
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1123 additions
and
41 deletions
+1123
-41
GenericKeywords.robot
GenericKeywords.robot
+2
-3
SRV/RNIS/RnisSpecificSubscription_BV.robot
SRV/RNIS/RnisSpecificSubscription_BV.robot
+35
-0
SRV/RNIS/environment/pics.txt
SRV/RNIS/environment/pics.txt
+3
-0
SRV/RNIS/environment/variables.txt
SRV/RNIS/environment/variables.txt
+11
-0
SRV/RNIS/resources/GenericKeywords.robot
SRV/RNIS/resources/GenericKeywords.robot
+38
-0
SRV/RNIS/resources/LocationAPI.robot
SRV/RNIS/resources/LocationAPI.robot
+12
-0
SRV/RNIS/resources/RadioNetworkInformationAPI.robot
SRV/RNIS/resources/RadioNetworkInformationAPI.robot
+9
-0
SRV/RNIS/schemas/RadioNetworkInformationAPI.schema.json
SRV/RNIS/schemas/RadioNetworkInformationAPI.schema.json
+968
-0
SRV/UETAG/PlatUeIdentity.robot
SRV/UETAG/PlatUeIdentity.robot
+31
-30
SRV/UETAG/environment/variables.txt
SRV/UETAG/environment/variables.txt
+1
-1
SRV/UETAG/resources/UEidentityAPI.robot
SRV/UETAG/resources/UEidentityAPI.robot
+2
-2
SRV/UETAG/schemas/UeIdentityTagInfo.schema.json
SRV/UETAG/schemas/UeIdentityTagInfo.schema.json
+0
-0
TODO.md
TODO.md
+11
-5
No files found.
GenericKeywords.robot
View file @
719d4daf
...
...
@@ -28,7 +28,6 @@ Should Be Present In Json List
Log
Item found
${item}
[
return
]
${item}
Check Result Contains
Check Result Contains
[
Arguments
]
${source}
${parameter}
${value}
Should Be Present In Json List
${source}
${parameter}
${value}
\ No newline at end of file
Should Be Present In Json List
${source}
${parameter}
${value}
SRV/RNIS/RnisSpecificSubscription_BV.robot
0 → 100644
View file @
719d4daf
''[Documentation] robot --outputdir ../../outputs ./RnisSpecificSubscription_BV.robot
...
Test
Suite
to
validate
RNIS/Subscription
(RNIS)
operations.
*** Settings ***
Resource
environment/variables.txt
Resource
environment/pics.txt
Resource
resources/GenericKeywords.robot
Resource
resources/RadioNetworkInformationAPI.robot
Library
REST
${MEC-APP_SCHEMA}
://
${MEC-APP_HOST}
:
${MEC-APP_PORT}
ssl_verify=false
*** Test Cases ***
Request RNIS subscription list
[
Documentation
]
TC_MEC_SRV_RNIS_011_OK
...
Check that the RNIS service sends the list of links to the relevant RNIS subscriptions when requested
...
ETSI GS MEC 012 2.0.4, clause 7.6.3.1
...
Reference https://forge.etsi.org/gitlab/mec/gs012-rnis-api/blob/master/RniAPI.yaml#/definitions/SubscriptionLinkList
Get RNIS subscription list
Check HTTP Response Status Code Is
200
Check HTTP Response Body Json Schema Is
RadioNetworkInformationAPI
log
${response['body']['SubscriptionLinkList']['_links']}
Should Be Equal
${response['body']['SubscriptionLinkList']['_links']['self']}
${LINKS_SELF}
*** Keywords ***
Get RNIS subscription list
Should Be True
${PIC_RNIS_SPECIFIC_SUBSCRIPTION}
=
= 1
Set Headers
{"Accept":"application/json"}
Set Headers
{"Content-Type":"application/json"}
Set Headers
{"Authorization":"
${TOKEN}
"}
Set Headers
{"Content-Length":"0"}
Get
/exampleAPI/rni/v2/subscriptions
${output}
=
Output
response
Set Suite Variable
${response}
${output}
SRV/RNIS/environment/pics.txt
0 → 100644
View file @
719d4daf
*** Variables ***
${PIC_RNIS_SPECIFIC_SUBSCRIPTION} 1
SRV/RNIS/environment/variables.txt
0 → 100644
View file @
719d4daf
*** Variables ***
${MEC-APP_SCHEMA} http
#${MEC-APP_HOST} 172.28.4.87
#${MEC-APP_HOST} 127.0.0.1
${MEC-APP_HOST} 192.168.56.1
${MEC-APP_PORT} 8081
${SUBSCRIPTION_ID} 7777
${NON_EXISTENT_SUBSCRIPTION_ID} 6666
${LINKS_SELF} http://example.com/exampleAPI/rni/v2/subscriptions
${response} {}
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
SRV/RNIS/resources/GenericKeywords.robot
0 → 100644
View file @
719d4daf
*** Settings ***
Resource
../environment/variables.txt
Resource
GenericKeywords.robot
Library
REST
${MEC-APP_SCHEMA}
://
${MEC-APP_HOST}
:
${MEC-APP_PORT}
ssl_verify=false
Library
JSONSchemaLibrary
schemas/
*** Keywords ***
Get User Equipment for location with filters
[
Arguments
]
${value}
Set Headers
{"Accept":"application/json"}
Get
/location/v2/users/
${value}
${output}
=
Output
response
Set Suite Variable
${response}
${output}
Check HTTP Response Status Code Is
[
Arguments
]
${expected_status}
${status}
=
Convert To Integer
${expected_status}
Should Be Equal
${response['status']}
${status}
Log
Status code validated
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Should Be Present In Json List
[
Arguments
]
${expr}
${json_field}
${json_value}
Log
Check if
${json_field}
is present in
${expr}
with the value
${jsonvalue}
:FOR
${item}
IN
@{expr}
\
Exit For Loop If
"
${item['${json_field}']}
" == "
${json_value}
"
Log
Item found
${item}
[
return
]
${item}
Check Result Contains
[
Arguments
]
${source}
${parameter}
${value}
Should Be Present In Json List
${source}
${parameter}
${value}
SRV/RNIS/resources/LocationAPI.robot
0 → 100644
View file @
719d4daf
*** Settings ***
Resource
../environment/variables.txt
Resource
LocationAPI.robot
#Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false
Library
JSONSchemaLibrary
schemas/
*** Keywords ***
Check Location
[
Arguments
]
${value}
Log
Check Location for userInfo element
Should be Equal
${response['body']['userInfo']['zoneId']}
${value}
Log
Location OK
SRV/RNIS/resources/RadioNetworkInformationAPI.robot
0 → 100644
View file @
719d4daf
*** Settings ***
Resource
../environment/variables.txt
Resource
../environment/pics.txt
Resource
GenericKeywords.robot
Library
REST
${MEC-APP_SCHEMA}
://
${MEC-APP_HOST}
:
${MEC-APP_PORT}
ssl_verify=false
Library
JSONSchemaLibrary
schemas/
*** Keywords ***
SRV/RNIS/schemas/RadioNetworkInformationAPI.schema.json
0 → 100644
View file @
719d4daf
{
"ProblemDetails"
:
{
"type"
:
"object"
,
"properties"
:
{
"type"
:
{
"$ref"
:
"#/definitions/Problem.type"
},
"title"
:
{
"$ref"
:
"#/definitions/Problem.title"
},
"status"
:
{
"$ref"
:
"#/definitions/Problem.status"
},
"detail"
:
{
"$ref"
:
"#/definitions/Problem.detail"
},
"instance"
:
{
"$ref"
:
"#/definitions/Problem.instance"
}
}
},
"Problem.type"
:
{
"type"
:
"string"
,
"format"
:
"uri"
,
"description"
:
"A URI reference according to IETF RFC 3986 that identifies the problem type"
},
"Problem.title"
:
{
"type"
:
"string"
,
"description"
:
"A short, human-readable summary of the problem type"
},
"Problem.status"
:
{
"type"
:
"integer"
,
"format"
:
"uint32"
,
"description"
:
"The HTTP status code for this occurrence of the problem"
},
"Problem.detail"
:
{
"type"
:
"string"
,
"description"
:
"A human-readable explanation specific to this occurrence of the problem"
},
"Problem.instance"
:
{
"type"
:
"string"
,
"format"
:
"uri"
,
"description"
:
"A URI reference that identifies the specific occurrence of the problem"
},
"PlmnInfo"
:
{
"type"
:
"object"
,
"required"
:
[
"appInsId"
,
"ecgi"
],
"properties"
:
{
"timeStamp"
:
{
"$ref"
:
"#/definitions/TimeStamp"
},
"appInsId"
:
{
"$ref"
:
"#/definitions/AppInsId"
},
"ecgi"
:
{
"$ref"
:
"#/definitions/Ecgi"
}
}
},
"RabInfo"
:
{
"type"
:
"object"
,
"required"
:
[
"appInsId"
,
"requestId"
],
"properties"
:
{
"timeStamp"
:
{
"$ref"
:
"#/definitions/TimeStamp"
},
"appInsId"
:
{
"$ref"
:
"#/definitions/AppInsId"
},
"requestId"
:
{
"$ref"
:
"#/definitions/RequestId"
},
"cellUserInfo"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/CellUserInfo"
}
}
}
},
"S1BearerInfo"
:
{
"type"
:
"object"
,
"required"
:
[
"s1UeInfo"
],
"properties"
:
{
"timeStamp"
:
{
"$ref"
:
"#/definitions/TimeStamp"
},
"s1UeInfo"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/S1UeInfo"
}
}
}
},
"S1UeInfo"
:
{
"type"
:
"object"
,
"required"
:
[
"tempUeId"
,
"ecgi"
,
"s1BearerInfoDetailed"
],
"properties"
:
{
"tempUeId"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/TempUeId"
}
},
"associateId"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/AssociateId"
}
},
"ecgi"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/Ecgi"
}
},
"s1BearerInfoDetailed"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/S1BearerInfoDetailed"
}
}
},
"description"
:
"The information on users per cell."
},
"S1BearerInfoDetailed"
:
{
"type"
:
"object"
,
"required"
:
[
"erabId"
,
"s1EnbInfo"
],
"properties"
:
{
"erabId"
:
{
"$ref"
:
"#/definitions/ErabId"
},
"s1EnbInfo"
:
{
"$ref"
:
"#/definitions/S1EnbInfo"
},
"sGwInfo"
:
{
"$ref"
:
"#/definitions/SGwInfo"
}
},
"description"
:
"Information on UEs in the specific cell."
},
"ErabId"
:
{
"type"
:
"integer"
,
"format"
:
"int32"
,
"description"
:
"The element that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413"
,
"example"
:
10
},
"TempUeId"
:
{
"type"
:
"object"
,
"required"
:
[
"mmec"
,
"mtmsi"
],
"properties"
:
{
"mmec"
:
{
"$ref"
:
"#/definitions/Mmec"
},
"mtmsi"
:
{
"$ref"
:
"#/definitions/Mtmsi"
}
}
},
"Mmec"
:
{
"type"
:
"string"
,
"description"
:
"MMEC as defined in ETSI TS 136 413"
,
"example"
:
"0"
},
"Mtmsi"
:
{
"type"
:
"string"
,
"description"
:
"M-TMSI as defined in ETSI TS 136 413"
,
"example"
:
"1234"
},
"S1EnbInfo"
:
{
"type"
:
"object"
,
"required"
:
[
"ipAddress"
,
"tunnelId"
],
"properties"
:
{
"ipAddress"
:
{
"type"
:
"string"
,
"description"
:
"eNB transport layer address of this S1 bearer."
,
"example"
:
"192.0.2.0"
},
"tunnelId"
:
{
"type"
:
"string"
,
"description"
:
"eNB GTP-U TEID of this S1 bearer."
,
"example"
:
"1111"
}
}
},
"SGwInfo"
:
{
"type"
:
"object"
,
"required"
:
[
"ipAddress"
,
"tunnelId"
],
"properties"
:
{
"ipAddress"
:
{
"type"
:
"string"
,
"description"
:
"SGW transport layer address of this S1 bearer."
,
"example"
:
"192.0.2.1"
},
"tunnelId"
:
{
"type"
:
"string"
,
"description"
:
"SGW GTP-U TEID of this S1 bearer."
,
"example"
:
"2222"
}
}
},
"TimeStamp"
:
{
"type"
:
"object"
,
"required"
:
[
"nanoSeconds"
,
"seconds"
],
"properties"
:
{
"seconds"
:
{
"type"
:
"integer"
,
"format"
:
"uint32"
,
"description"
:
"The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC"
,
"example"
:
1577836800
},
"nanoSeconds"
:
{
"type"
:
"integer"
,
"format"
:
"uint32"
,
"description"
:
"The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC"
,
"example"
:
0
}
}
},
"AppInsId"
:
{
"type"
:
"string"
,
"format"
:
"string"
,
"description"
:
"Unique identifier for the mobile edge application instance"
,
"example"
:
"01"
},
"RequestId"
:
{
"type"
:
"string"
,
"format"
:
"string"
,
"description"
:
"Unique identifier allocated by the Mobile Edge application for the Information request."
,
"example"
:
"01"
},
"CellUserInfo"
:
{
"type"
:
"object"
,
"required"
:
[
"ecgi"
,
"ueInfo"
],
"properties"
:
{
"ecgi"
:
{
"$ref"
:
"#/definitions/Ecgi"
},
"ueInfo"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/UeInfo"
}
}
},
"description"
:
"The information on users per cell."
},
"Ecgi"
:
{
"type"
:
"object"
,
"required"
:
[
"cellId"
,
"plmn"
],
"properties"
:
{
"plmn"
:
{
"$ref"
:
"#/definitions/Plmn"
},
"cellId"
:
{
"$ref"
:
"#/definitions/CellId"
}
},
"description"
:
"E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413"
},
"Plmn"
:
{
"type"
:
"object"
,
"required"
:
[
"mcc"
,
"mnc"
],
"properties"
:
{
"mcc"
:
{
"type"
:
"string"
,
"format"
:
"string"
,
"description"
:
"The Mobile Country Code part of PLMN Identity as defined in 3GPP TS 36.413"
,
"example"
:
"001"
},
"mnc"
:
{
"type"
:
"string"
,
"format"
:
"string"
,
"description"
:
"The Mobile Network Code part of PLMN Identity as defined in 3GPP TS 36.413"
,
"example"
:
"01"
}
}
},
"CellId"
:
{
"type"
:
"array"
,
"items"
:
{
"type"
:
"string"
,
"format"
:
"binary"
},
"description"
:
"The E-UTRAN Cell Identity as a bit string (size (28)), as defined in 3GPP TS 36.413"
,
"example"
:
"0x800000A"
},
"UeInfo"
:
{
"type"
:
"object"
,
"required"
:
[
"erabInfo"
],
"properties"
:
{
"associateId"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/AssociateId"
}
},
"erabInfo"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/ErabQosParameters"
}
}
},
"description"
:
"Information on UEs in the specific cell."
},
"AssociateId"
:
{
"type"
:
"object"
,
"required"
:
[
"type"
,
"value"
],
"properties"
:
{
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"RESERVED"
,
"UE_IPV4_ADDRESS"
,
"UE_IPV6_ADDRESS"
,
"NATED_IP_ADDRESS"
,
"GTP_TEID"
],
"description"
:
"Numeric value (0-255) corresponding to specified type of identifier"
,
"example"
:
"UE_IPV4_ADDRESS"
},
"value"
:
{
"type"
:
"integer"
,
"format"
:
"int32"
,
"description"
:
"Value for the identifier"
,
"example"
:
1
}
}
},
"ErabQosParameters"
:
{
"type"
:
"object"
,
"properties"
:
{
"qci"
:
{
"$ref"
:
"#/definitions/Qci"
},
"qci_information"
:
{
"$ref"
:
"#/definitions/QosInformation"
}
}
},
"Qci"
:
{
"type"
:
"integer"
,
"format"
:
"int32"
,
"description"
:
"QoS Class Identifier as defined in TS 23.401"
,
"example"
:
7
},
"QosInformation"
:
{
"type"
:
"object"
,
"required"
:
[
"erabGbrDl"
,
"erabGbrUl"
,
"erabMbrDl"
,
"erabMbrUl"
],
"properties"
:
{
"erabMbrDl"
:
{
"type"
:
"integer"
,
"format"
:
"int32"
,
"description"
:
"This IE indicates the maximum downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer."
,
"example"
:
10
},
"erabMbrUl"
:
{
"type"
:
"integer"
,
"format"
:
"int32"
,
"description"
:
"This IE indicates the maximum uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer."
,
"example"
:
10
},
"erabGbrDl"
:
{
"type"
:
"integer"
,
"format"
:
"int32"
,
"description"
:
"This IE indicates the guaranteed downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer."
,
"example"
:
10
},
"erabGbrUl"
:
{
"type"
:
"integer"
,
"format"
:
"int32"
,
"description"
:
"This IE indicates the guaranteed uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer."
,
"example"
:
10
}
}
},
"SubscriptionLinkList"
:
{
"type"
:
"object"
,
"required"
:
[
"_links"
],
"properties"
:
{
"_links"
:
{
"$ref"
:
"#/definitions/Link"
},
"subscription"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/definitions/Subscription"
}
}
}
},
"MeasRepUeSubscriptionPost"
:
{
"type"
:
"object"
,
"required"
:
[
"callbackReference"
,
"filterCriteria"
],
"properties"
:
{
"callbackReference"
:
{
"$ref"
:
"#/definitions/CallbackReference"
},
"filterCriteria"
:
{
"$ref"
:
"#/definitions/FilterCriteriaAssocTri"
},
"expiryDeadline"
:
{
"$ref"
:
"#/definitions/TimeStamp"
}
}
},
"MeasRepUeSubscription"
:
{
"type"
:
"object"
,
"required"
:
[
"callbackReference"
,
"_links"
,
"filterCriteria"