Skip to content
Snippets Groups Projects
Commit 253a1893 authored by AHMADABB's avatar AHMADABB
Browse files

Fault Management Sol003 robot test + high level

parent f3a4bb41
No related branches found
Tags 2.4.1
No related merge requests found
*** Settings ***
# Suite setup Expect spec SOL003-VNFLifecycleManagement-API.yaml
Resource environment/variables.txt
Resource environment/variables.txt
Resource FaultManagement-APIKeyword.robot
Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Library OperatingSystem
*** Test Cases ***
POST Alarms - Method not implemented
log Trying to perform a PUT. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Post ${apiRoot}/${apiName}/${apiVersion}/alarms
Log Validate Status code
Integer response status 405
[Documentation] Test ID: 7.3.5.1.1
... Test title: POST Alarms - Method not implemented
... Test objective: The objective is to test that Post method is not allowed to create Fault management alarms on VNF
... Pre-conditions: none
... Reference: section 7.4.2.3.1 - SOL003 v2.4.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Send POST request for fault management Alarms
Check HTTP Response Status Code Is 405
Get information about multiple alarms
[Documentation] Test ID: 7.4.2.1
[Documentation] Test ID: 7.3.5.1.2
... Test title: Get information about multiple alarms
... Test objective: The objective is to retrieve information about the alarm list
... Pre-conditions:
... Reference: section 7.4.2 - SOL003 v2.4.1
... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema and content validation of the returned alarms data structure
... Pre-conditions: none
... Reference: section 7.4.2.3.2 - SOL003 v2.4.1
... Config ID: Config_prod_VNFM
... Applicability:
... Post-Conditions:
Log Query VNF The GET method queries information about multiple alarms.
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Log Execute Query and validate response
Get ${apiRoot}/${apiName}/${apiVersion}/alarms
Log Validate Status code
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE}
${result}= Output response body
Validate Json Alarms.schema.json ${result}
Log Validation OK
... Applicability: none
... Post-Conditions: none
GET Fault Management Alarms
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is Alarms
Get information about multiple alarms with filters
[Documentation] Test ID: 7.4.2.2
... Test title: Get information about multiple alarms - with filters
... Test objective: The objective is to retrieve information about the alarm list
... Pre-conditions:
[Documentation] Test ID: 7.3.5.1.2
... Test title: Get information about multiple alarms with filters
... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema and content validation of the returned alarms data structure, and verify that the retrieved information matches the issued attribute-based filters
... Pre-conditions: none
... Reference: section 7.4.2 - SOL003 v2.4.1
... Config ID: Config_prod_VNFM
... Applicability:
... Post-Conditions:
Log Query VNF The GET method queries information about multiple alarms with filters.
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Log Execute Query and validate response
Get ${apiRoot}/${apiName}/${apiVersion}/alarms?${alarm_filter}=${managedObjectId}
Log Validate Status code
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE}
${result}= Output response body
Validate Json Alarms.schema.json ${result}
Log Validation OK
... Applicability: none
... Post-Conditions: none
GET Fault Management Alarms With Filters
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is Alarms
Get information about multiple alarms Bad Request Invalid attribute-based filtering parameters
[Documentation] Test ID: 7.4.2.2-1
... Test title: Get information about multiple alarms - with Invalid attribute-based filtering parameters
[Documentation] Test ID: 7.3.5.1.2
... Test title: The objective is to try to retrieve information about the alarm list and perform a JSON schema and content validation of the returned problem details data structure, and verify that the retrieved information matches the issued attribute-based filters
... Test objective: The objective is to retrieve information about the alarm list
... Pre-conditions:
... Reference: section 7.4.2 - SOL003 v2.4.1
... Config ID: Config_prod_VNFM
... Applicability:
... Post-Conditions:
Log Query VNF The GET method queries information about multiple alarm instances.
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/alarms?${invalid_alarm_filter}=${managedObjectId}
Log Validate Status code
Integer response status 400
${problemDetails}= Output response body
Validate Json ProblemDetails.schema.json ${problemDetails}
Log Validation OK
GET Fault Management Alarms With Invalid Filters
Check HTTP Response Status Code Is 400
Check HTTP Response Body Json Schema Is ProblemDetails
PUT Alarms - Method not implemented
log Trying to perform a PUT. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Put ${apiRoot}/${apiName}/${apiVersion}/alarms
Log Validate Status code
Integer response status 405
[Documentation] Test ID: 7.3.5.1.3
... Test title: PUT Alarms - Method not implemented
... Test objective: The objective is to test that PUT method is not allowed to for Fault management alarms on VNF
... Pre-conditions: none
... Reference: section 7.4.2.3.3 - SOL003 v2.4.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
PUT Fault management Alarms
Check HTTP Response Status Code Is 405
PATCH Alarms - Method not implemented
log Trying to perform a PATCH. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Patch ${apiRoot}/${apiName}/${apiVersion}/alarms
Log Validate Status code
Integer response status 405
[Documentation] Test ID: 7.3.5.1.4
... Test title: PATCH Alarms - Method not implemented
... Test objective: The objective is to test that PATCH method is not allowed to for Fault management alarms on VNF
... Pre-conditions: none
... Reference: section 7.4.2.3.4 - SOL003 v2.4.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
PATCH Fault management Alarms
Check HTTP Response Status Code Is 405
DELETE Alarms - Method not implemented
log Trying to perform a DELETE. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Delete ${apiRoot}/${apiName}/${apiVersion}/alarms
Log Validate Status code
Integer response status 405
[Documentation] Test ID: 7.3.5.1.5
... Test title: POST Alarms - Method not implemented
... Test objective: The objective is to test that DELETE method is not allowed for Fault management alarms on VNF
... Pre-conditions: none
... Reference: section 7.4.2.3.5 - SOL003 v2.4.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
DELETE Fault management Alarms
Check HTTP Response Status Code Is 405
Check Postcondition VNF fault management alarms Exists
\ No newline at end of file
*** Settings ***
Resource environment/variables.txt
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Library OperatingSystem
#Suite Teardown Terminate All Processes kill=true
Library Process
*** Keywords ***
Check Postcondition VNF fault management alarms Exists
Log Checking that subscriptions exists
GET Fault Management Alarms
Check Individual Subscription existance
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Integer response status 200
Check HTTP Response Status Code Is
[Arguments] ${expected_status}
Log Validate Status code
Should Be Equal ${response[0]['status']} ${expected_status}
Log Status code validated
Check HTTP Response Header Contains
[Arguments] ${HEADER_TOCHECK}
Should Contain ${response[0]['headers']} ${HEADER_TOCHECK}
Log Header is present
Check HTTP Response Body Json Schema Is
[Arguments] ${input}
${schema} = Catenate ${input} .schema.json
Validate Json ${schema} ${response[0]['body']}
Log Json Schema Validation OK
Check HTTP Response Header ContentType is
[Arguments] ${expected_contentType}
Log Validate content type
Should Be Equal ${response[0]['headers']['Content-Type']} ${expected_contentType}
Log Content Type validated
Send POST request for fault management Alarms
log Trying to perform a POST. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Post ${apiRoot}/${apiName}/${apiVersion}/alarms
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
PATCH Fault management Alarms
log Trying to perform a PATCH. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Patch ${apiRoot}/${apiName}/${apiVersion}/alarms
${outputResponse} = Output response
Set Global Variable @{response} ${outputResponse}
PUT Fault management Alarms
log Trying to perform a PUT. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Put ${apiRoot}/${apiName}/${apiVersion}/alarms
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
DELETE Fault management Alarms
log Trying to perform a DELETE. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Delete ${apiRoot}/${apiName}/${apiVersion}/alarms
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
GET Fault Management Alarms
Log Query NFVO The GET method queries information about multiple alarms.
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Log Execute Query
Get ${apiRoot}/${apiName}/${apiVersion}/alarms
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
GET Fault Management Alarms With Filters
Log Query NFVO The GET method queries information about multiple alarms with filters.
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Log Execute Query
Get ${apiRoot}/${apiName}/${apiVersion}/alarms?${alarm_filter}=${nsInstanceId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
GET Fault Management Alarms With Invalid Filters
Log Query NFVO The GET method queries information about multiple alarms with filters.
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Log Execute Query
Get ${apiRoot}/${apiName}/${apiVersion}/alarms?${invalid_alarm_filter}=${nsInstanceId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do POST Individual Alarm
log Trying to perform a PUT. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Post ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do DELETE Individual Alarm
log Trying to perform a DELETE. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Delete ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do PUT Individual Alarm
log Trying to perform a PUT. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Put ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do GET Individual Alarm
Log Query NFVO The GET method queries information about an alarm.
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Log Execute Query
Get ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do GET Invalid Individual Alarm
Log Query NFVO The GET method queries information about an invalid alarm. Should return does not exist
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Log Execute Query
Get ${apiRoot}/${apiName}/${apiVersion}/alarms/${invalidAlarmId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do PATCH Individual Alarm
log Trying to perform a PATCH. This method modifies an individual alarm resource
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/alarmModifications.json
Patch ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId} ${body}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do PATCH Individual Alarm Conflict
log Trying to perform a PATCH. This method modifies an individual alarm resource
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"}
Set Headers {"If-Match": "${Etag}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/alarmModifications.json
Patch ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId} ${body}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do POST Subscription
Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/fmSubscriptionRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do GET Subscriptions
Log Get the list of active subscriptions
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do GET Subscriptions with filter
Log Get the list of active subscriptions using a filter
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do GET Subscriptions with Invalid filter
Log Get the list of active subscriptions using an invalid filter
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter_invalid}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do PUT Subscriptions
log Trying to perform a PUT Subscriptions. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do PATCH Subscriptions
log Trying to perform a PATCH Subscriptions. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Patch ${apiRoot}/${apiName}/${apiVersion}/subscriptions
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do DELETE Subscriptions
log Trying to perform a DELETE Subscriptions. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do POST Individual Subscription
log Trying to perform a POST. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do GET Individual Subscription
log Trying to get information about an individual subscription
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do PUT Individual Subscription
log Trying to perform a PUT. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do PATCH Individual Subscription
log Trying to perform a PATCH. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Patch ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
Do DELETE Individual Subscription
log Trying to perform a DELETE.
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
${outputResponse}= Output response
Set Global Variable @{response} ${outputResponse}
\ No newline at end of file
*** Variables ***
${VNFM_HOST} localhost # Hostname of the VNFM
${VNFM_PORT} 8080 # Listening port of the VNFM
${VNFM_SCHEMA} https
${AUTHORIZATION} Bearer QWxhZGRpbjpvcGVuIHNlc2FtZQ==
${CONTENT_TYPE} application/json
${ACCEPT} application/json
${AUTH_USAGE} 1
${alarm_filter} managedObjectId
${managedObjectId} 007c111c-38a1-42c0-a666-7475ecb1567c
${invalid_alarm_filter} badFilter
${alarmId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d
${CONTENT_TYPE_PATCH} application/merge-patch+json
${Etag}= an etag
${Etag_modified}= a modified etag
${VNFM_DUPLICATION} 1
${sub_filter} filter
${sub_filter_invalid} filter_invalid
${apiRoot} /
${apiName} vnffm
${apiVersion} v1
${AlarmNotification} {}
${AlarmClearedNotification} {}
${AlarmListRebuiltNotification} {}
${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f
*** Variables ***
${VNFM_HOST} localhost # Hostname of the VNFM
${VNFM_PORT} 8080 # Listening port of the VNFM
${VNFM_SCHEMA} https
${AUTHORIZATION} Bearer QWxhZGRpbjpvcGVuIHNlc2FtZQ==
${CONTENT_TYPE} application/json
${ACCEPT} application/json
${AUTH_USAGE} 1
${alarm_filter} managedObjectId
${managedObjectId} 007c111c-38a1-42c0-a666-7475ecb1567c
${invalid_alarm_filter} badFilter
${alarmId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d
${CONTENT_TYPE_PATCH} application/merge-patch+json
${Etag}= an etag
${Etag_modified}= a modified etag
${VNFM_DUPLICATION} 1
${sub_filter} filter
${sub_filter_invalid} filter_invalid
${apiRoot} /
${apiName} vnffm
${apiVersion} v1
${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f
${AlarmNotification} {}
${AlarmClearedNotification} {}
${AlarmListRebuiltNotification} {}
${response} {}
${req_mock} {}
${resp_mock} {}
${alarm_filter} nsInstanceId
${nsInstanceId} 007c111c-38a1-42c0-a666-7475ecb1567c
${invalid_alarm_filter} badFilter
${invalidAlarmId} invalidIdAlarm
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment