Newer
Older
*** Settings ***
Library JSONSchemaLibrary schemas/
Resource environment/variables.txt # Generic Parameters
Resource environment/reports.txt
Library JSONLibrary
Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} ssl_verify=false
Giacomo Bernini
committed
Get Individual Performance Report
[Documentation] Test ID: 6.3.3.3.1
... Test title: Get Individual Performance Report
... Test objective: The objective is to test the retrieval of an individual VNF performance report associated to a monitoring job and perform a JSON schema validation of the collected report data structure
... Pre-conditions: A VNF instance is instantiated. One or more VNF performance reports are set for a monitoring job in the VNFM.
... Reference: Clause 6.4.4.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1
Giacomo Bernini
committed
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get Individual Performance Report
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is PerformanceReport
Get Individual Performance Report with invalid resource endpoint
[Documentation] Test ID: 6.3.3.3.2
... Test title: Get Individual Performance Report with invalid resource endpoint
... Test objective: The objective is to test that the retrieval of an individual VNF performance report associated to a monitoring job fails when using an invalid resource endpoint
Giacomo Bernini
committed
... Pre-conditions: A VNF instance is instantiated. One or more VNF performance reports are set for a monitoring job in the VNFM.
... Reference: Clause 6.4.4.3.2 - ETSI GS NFV-SOL 002 [2] v2.7.1
Giacomo Bernini
committed
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get Individual Performance Report with invalid resource endpoint
Check HTTP Response Status Code Is 404
POST Individual Performance Report - Method not implemented
[Documentation] Test ID: 6.3.3.3.3
... Test title: POST Individual Performance Report - Method not implemented
... Test objective: The objective is to test that POST method is not allowed to create a new VNF performance report within a monitoring job
... Pre-conditions: A VNF instance is instantiated.
... Reference: Clause 6.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v2.7.1
Giacomo Bernini
committed
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: The VNF performance report is not created on the VNFM
Send Post request for Individual Performance Report
Check HTTP Response Status Code Is 405
Check Postcondition VNF Individual Performance Report is not Created
PUT Individual Performance Report - Method not implemented
[Documentation] Test ID: 6.3.3.3.4
... Test title: PUT Individual Performance Report - Method not implemented
... Test objective: The objective is to test that PUT method is not allowed to update an existing VNF performance report within a monitoring job
... Pre-conditions: A VNF instance is instantiated. One or more VNF performance reports are set for a monitoring job in the VNFM.
... Reference: Clause 6.4.4.3.3 - ETSI GS NFV-SOL 002 [2] v2.7.1
Giacomo Bernini
committed
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: The VNF performance report is not modified by the operation
Send Put request for Individual Performance Report
Check HTTP Response Status Code Is 405
Check Postcondition VNF Individual Performance Report is Unmodified (Implicit)
PATCH Individual Performance Report - Method not implemented
[Documentation] Test ID: 6.3.3.3.5
... Test title: PATCH Individual Performance Report - Method not implemented
... Test objective: The objective is to test that PATCH method is not allowed to modify an existing VNF performance report within a monitoring job
... Pre-conditions: A VNF instance is instantiated. One or more VNF performance reports are set for a monitoring job in the VNFM.
... Reference: Clause 6.4.4.3.4 - ETSI GS NFV-SOL 002 [2] v2.7.1
Giacomo Bernini
committed
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: The VNF performance report is not modified by the operation
Send Patch request for Individual Performance Report
Check HTTP Response Status Code Is 405
Check Postcondition VNF Individual Performance Report is Unmodified (Implicit)
DELETE Individual Performance Report - Method not implemented
[Documentation] Test ID: 6.3.3.3.6
... Test title: DELETE Individual Performance Report - Method not implemented
... Test objective: The objective is to test that DELETE method is not allowed to delete an existing VNF performance report within a monitoring job
... Pre-conditions: A VNF instance is instantiated. One or more VNF performance reports are set for a monitoring job in the VNFM.
... Reference: Clause 6.4.4.3.5 - ETSI GS NFV-SOL 002 [2] v2.7.1
Giacomo Bernini
committed
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: The VNF performance report is not deleted by the operation
Send Delete request for Individual Performance Report
Check HTTP Response Status Code Is 405
Check Postcondition VNF Individual Performance Report Exists
*** Keywords ***
Get Individual Performance Report
Log Trying to get a performance report present in the VNFM
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId}
Giacomo Bernini
committed
${output}= Output response
Giacomo Bernini
committed
Get Individual Performance Report with invalid resource endpoint
Log Trying to get a performance report with invalid resource endpoint
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${erroneousReportId}
Giacomo Bernini
committed
${output}= Output response
Giacomo Bernini
committed
Send Post request for Individual Performance Report
Log Trying to create new performance report
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"}
Giacomo Bernini
committed
POST ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${newReportId}
${output}= Output response
Giacomo Bernini
committed
Send Put request for Individual Performance Report
Log Trying to update performance report
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"}
Giacomo Bernini
committed
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}
${origOutput}= Output response
Set Suite Variable ${origResponse} ${origOutput}
PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId}
Giacomo Bernini
committed
${output}= Output response
Giacomo Bernini
committed
Send Patch request for Individual Performance Report
Log Trying to update performance report
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"}
Giacomo Bernini
committed
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}
${origOutput}= Output response
Set Suite Variable ${origResponse} ${origOutput}
PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId}
Giacomo Bernini
committed
${output}= Output response
Giacomo Bernini
committed
Send Delete request for Individual Performance Report
Log Trying to delete performance report
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"}
DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${reportId}
Giacomo Bernini
committed
${output}= Output response
Giacomo Bernini
committed
Check Postcondition VNF Individual Performance Report Exists
Log Checking that report still exists
Get Individual Performance Report
Check Postcondition VNF Individual Performance Report is not Created
Log Trying to get a new report
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs/${pmJobId}/reports/${newReportId}
${output}= Output response
Giacomo Bernini
committed
Check HTTP Response Status Code Is 404
Check Postcondition VNF Individual Performance Report is Unmodified (Implicit)
Log Check Postcondition VNF PM job is not modified
Get Individual Performance Report
Log Check Response matches original VNF report
${report}= evaluate json.loads('''${response['body']}''') json
Should Be Equal ${origResponse['body']['entries'][0]['objectInstanceId']} ${report['entries'][0]['objectInstanceId']}
Giacomo Bernini
committed
Check HTTP Response Status Code Is
[Arguments] ${expected_status}
${status}= Convert To Integer ${expected_status}
Should Be Equal ${response['status']} ${status}
Giacomo Bernini
committed
Log Status code validated
Check HTTP Response Header Contains
[Arguments] ${CONTENT_TYPE}
Should Contain ${response['headers']} ${CONTENT_TYPE}
Giacomo Bernini
committed
Log Header is present
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']}
Giacomo Bernini
committed
Log Json Schema Validation OK