Loading SOL009/NFVMANOPerformanceManagement-API/NFVMANOPMKeywords.robot 0 → 100644 +214 −0 Original line number Original line Diff line number Diff line *** Settings *** Library String Library JSONSchemaLibrary schemas/ Resource environment/variables.txt Resource environment/pmJobs.txt Library JSONLibrary Library OperatingSystem Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library MockServerLibrary *** Keywords *** GET all NFV-MANO Performance Monitoring Jobs Log Trying to get all PM Jobs present in the NFV-MANO Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs with malformed authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Authorization": "${BAD_AUTHORIZATION}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs without authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries omitting token Set Headers {"Accept": "${ACCEPT_JSON}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs with expired or revoked authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${POS_FILTER} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with all_fields attribute selector Log Trying to get all PM Jobs present in the NFV-MANO, using 'all_fields' filter Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?all_fields ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with fields and exclude_default attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default&fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using an erroneous filter param Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${NEG_FILTER} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector Log Query VNF The GET method queries information about multiple VNF instances. Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances?fields=wrong_field ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} Send Post Request Create new NFV-MANO Performance Monitoring Job Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CreatePmJobRequest.json ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} Check GET response from Notification Endpoint POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} Send Post Request Create new NFV-MANO Performance Monitoring Job for unreachable endpoint Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CreatePmJobRequest.json ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} Check GET response from Unreachable Notification Endpoint POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} Send PUT Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PUT ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Send PATCH Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Send DELETE Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Check Postcondition PmJob Exists Log Checking that Pm Job exists Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${response['body']['id']} ${output}= Output response Set Suite Variable ${response} ${output} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PmJob Check GET response from Notification Endpoint Log Creating mock request and response to handle GET operation on notification endpoint &{notification_request}= Create Mock Request Matcher GET ${callback_uri} &{notification_response}= Create Mock Response status_code=204 Log Issue the subscription request Create Mock Expectation ${notification_request} ${notification_response} Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${callback_uri} Check GET response from Unreachable Notification Endpoint Log Creating mock request and response to handle GET operation on unreachable notification endpoint &{notification_request}= Create Mock Request Matcher GET ${unreachable_callback_uri} &{notification_response}= Create Mock Response status_code=404 Log Issue the subscription request Create Mock Expectation ${notification_request} ${notification_response} Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${unreachable_callback_uri} 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 Header Contains [Arguments] ${CONTENT_TYPE} Should Contain ${response['headers']} ${CONTENT_TYPE} Log Header is present Check HTTP Response Body Json Schema Is [Arguments] ${input} Run Keyword If '${input}' == 'ProblemDetails' Should Contain ${response['headers']['Content-Type']} application/problem+json ... ELSE Should Contain ${response['headers']['Content-Type']} application/json ${schema} = Catenate SEPARATOR= ${input} .schema.json Validate Json ${schema} ${response['body']} Log Json Schema Validation OK Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot +1 −205 Original line number Original line Diff line number Diff line Loading @@ -3,6 +3,7 @@ Library String Library JSONSchemaLibrary schemas/ Library JSONSchemaLibrary schemas/ Resource environment/variables.txt Resource environment/variables.txt Resource environment/pmJobs.txt Resource environment/pmJobs.txt Resource NFVMANOPMKeywords.robot Library JSONLibrary Library JSONLibrary Library OperatingSystem Library OperatingSystem Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Loading Loading @@ -250,208 +251,3 @@ POST Create new NFV-MANO Performance Monitoring Job - Unreachable Notification E Send Post Request Create new NFV-MANO Performance Monitoring Job for unreachable endpoint Send Post Request Create new NFV-MANO Performance Monitoring Job for unreachable endpoint Check HTTP Response Status Code Is 422 Check HTTP Response Status Code Is 422 Check HTTP Response Body Json Schema Is ProblemDetails Check HTTP Response Body Json Schema Is ProblemDetails *** Keywords *** GET all NFV-MANO Performance Monitoring Jobs Log Trying to get all PM Jobs present in the NFV-MANO Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs with malformed authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Authorization": "${BAD_AUTHORIZATION}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs without authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries omitting token Set Headers {"Accept": "${ACCEPT_JSON}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs with expired or revoked authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${POS_FILTER} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with all_fields attribute selector Log Trying to get all PM Jobs present in the NFV-MANO, using 'all_fields' filter Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?all_fields ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with fields and exclude_default attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default&fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using an erroneous filter param Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${NEG_FILTER} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector Log Query VNF The GET method queries information about multiple VNF instances. Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances?fields=wrong_field ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} Send Post Request Create new NFV-MANO Performance Monitoring Job Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CreatePmJobRequest.json ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} Check GET response from Notification Endpoint POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} Send Post Request Create new NFV-MANO Performance Monitoring Job for unreachable endpoint Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CreatePmJobRequest.json ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} Check GET response from Unreachable Notification Endpoint POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} Send PUT Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PUT ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Send PATCH Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Send DELETE Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Check Postcondition PmJob Exists Log Checking that Pm Job exists Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${response['body']['id']} ${output}= Output response Set Suite Variable ${response} ${output} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PmJob Check GET response from Notification Endpoint Log Creating mock request and response to handle GET operation on notification endpoint &{notification_request}= Create Mock Request Matcher GET ${callback_uri} &{notification_response}= Create Mock Response status_code=204 Log Issue the subscription request Create Mock Expectation ${notification_request} ${notification_response} Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${callback_uri} Check GET response from Unreachable Notification Endpoint Log Creating mock request and response to handle GET operation on unreachable notification endpoint &{notification_request}= Create Mock Request Matcher GET ${unreachable_callback_uri} &{notification_response}= Create Mock Response status_code=404 Log Issue the subscription request Create Mock Expectation ${notification_request} ${notification_response} Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${unreachable_callback_uri} 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 Header Contains [Arguments] ${CONTENT_TYPE} Should Contain ${response['headers']} ${CONTENT_TYPE} Log Header is present Check HTTP Response Body Json Schema Is [Arguments] ${input} Run Keyword If '${input}' == 'ProblemDetails' Should Contain ${response['headers']['Content-Type']} application/problem+json ... ELSE Should Contain ${response['headers']['Content-Type']} application/json ${schema} = Catenate SEPARATOR= ${input} .schema.json Validate Json ${schema} ${response['body']} Log Json Schema Validation OK Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} No newline at end of file Loading
SOL009/NFVMANOPerformanceManagement-API/NFVMANOPMKeywords.robot 0 → 100644 +214 −0 Original line number Original line Diff line number Diff line *** Settings *** Library String Library JSONSchemaLibrary schemas/ Resource environment/variables.txt Resource environment/pmJobs.txt Library JSONLibrary Library OperatingSystem Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library MockServerLibrary *** Keywords *** GET all NFV-MANO Performance Monitoring Jobs Log Trying to get all PM Jobs present in the NFV-MANO Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs with malformed authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Authorization": "${BAD_AUTHORIZATION}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs without authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries omitting token Set Headers {"Accept": "${ACCEPT_JSON}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs with expired or revoked authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${POS_FILTER} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with all_fields attribute selector Log Trying to get all PM Jobs present in the NFV-MANO, using 'all_fields' filter Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?all_fields ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with fields and exclude_default attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default&fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using an erroneous filter param Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${NEG_FILTER} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector Log Query VNF The GET method queries information about multiple VNF instances. Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances?fields=wrong_field ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} Send Post Request Create new NFV-MANO Performance Monitoring Job Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CreatePmJobRequest.json ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} Check GET response from Notification Endpoint POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} Send Post Request Create new NFV-MANO Performance Monitoring Job for unreachable endpoint Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CreatePmJobRequest.json ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} Check GET response from Unreachable Notification Endpoint POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} Send PUT Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PUT ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Send PATCH Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Send DELETE Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Check Postcondition PmJob Exists Log Checking that Pm Job exists Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${response['body']['id']} ${output}= Output response Set Suite Variable ${response} ${output} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PmJob Check GET response from Notification Endpoint Log Creating mock request and response to handle GET operation on notification endpoint &{notification_request}= Create Mock Request Matcher GET ${callback_uri} &{notification_response}= Create Mock Response status_code=204 Log Issue the subscription request Create Mock Expectation ${notification_request} ${notification_response} Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${callback_uri} Check GET response from Unreachable Notification Endpoint Log Creating mock request and response to handle GET operation on unreachable notification endpoint &{notification_request}= Create Mock Request Matcher GET ${unreachable_callback_uri} &{notification_response}= Create Mock Response status_code=404 Log Issue the subscription request Create Mock Expectation ${notification_request} ${notification_response} Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${unreachable_callback_uri} 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 Header Contains [Arguments] ${CONTENT_TYPE} Should Contain ${response['headers']} ${CONTENT_TYPE} Log Header is present Check HTTP Response Body Json Schema Is [Arguments] ${input} Run Keyword If '${input}' == 'ProblemDetails' Should Contain ${response['headers']['Content-Type']} application/problem+json ... ELSE Should Contain ${response['headers']['Content-Type']} application/json ${schema} = Catenate SEPARATOR= ${input} .schema.json Validate Json ${schema} ${response['body']} Log Json Schema Validation OK Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL}
SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot +1 −205 Original line number Original line Diff line number Diff line Loading @@ -3,6 +3,7 @@ Library String Library JSONSchemaLibrary schemas/ Library JSONSchemaLibrary schemas/ Resource environment/variables.txt Resource environment/variables.txt Resource environment/pmJobs.txt Resource environment/pmJobs.txt Resource NFVMANOPMKeywords.robot Library JSONLibrary Library JSONLibrary Library OperatingSystem Library OperatingSystem Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Loading Loading @@ -250,208 +251,3 @@ POST Create new NFV-MANO Performance Monitoring Job - Unreachable Notification E Send Post Request Create new NFV-MANO Performance Monitoring Job for unreachable endpoint Send Post Request Create new NFV-MANO Performance Monitoring Job for unreachable endpoint Check HTTP Response Status Code Is 422 Check HTTP Response Status Code Is 422 Check HTTP Response Body Json Schema Is ProblemDetails Check HTTP Response Body Json Schema Is ProblemDetails *** Keywords *** GET all NFV-MANO Performance Monitoring Jobs Log Trying to get all PM Jobs present in the NFV-MANO Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs with malformed authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Authorization": "${BAD_AUTHORIZATION}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs without authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries omitting token Set Headers {"Accept": "${ACCEPT_JSON}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET Performance Monitoring Jobs with expired or revoked authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} Log Execute Query and validate response Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${POS_FILTER} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with all_fields attribute selector Log Trying to get all PM Jobs present in the NFV-MANO, using 'all_fields' filter Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?all_fields ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with fields and exclude_default attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default&fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using an erroneous filter param Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${NEG_FILTER} ${output}= Output response Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector Log Query VNF The GET method queries information about multiple VNF instances. Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances?fields=wrong_field ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} Send Post Request Create new NFV-MANO Performance Monitoring Job Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CreatePmJobRequest.json ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} Check GET response from Notification Endpoint POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} Send Post Request Create new NFV-MANO Performance Monitoring Job for unreachable endpoint Log Creating a new PM Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CreatePmJobRequest.json ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} Check GET response from Unreachable Notification Endpoint POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} Send PUT Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PUT ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Send PATCH Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Send DELETE Request for all NFV-MANO Performance Monitoring Jobs Log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} Check Postcondition PmJob Exists Log Checking that Pm Job exists Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${response['body']['id']} ${output}= Output response Set Suite Variable ${response} ${output} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PmJob Check GET response from Notification Endpoint Log Creating mock request and response to handle GET operation on notification endpoint &{notification_request}= Create Mock Request Matcher GET ${callback_uri} &{notification_response}= Create Mock Response status_code=204 Log Issue the subscription request Create Mock Expectation ${notification_request} ${notification_response} Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${callback_uri} Check GET response from Unreachable Notification Endpoint Log Creating mock request and response to handle GET operation on unreachable notification endpoint &{notification_request}= Create Mock Request Matcher GET ${unreachable_callback_uri} &{notification_response}= Create Mock Response status_code=404 Log Issue the subscription request Create Mock Expectation ${notification_request} ${notification_response} Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${unreachable_callback_uri} 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 Header Contains [Arguments] ${CONTENT_TYPE} Should Contain ${response['headers']} ${CONTENT_TYPE} Log Header is present Check HTTP Response Body Json Schema Is [Arguments] ${input} Run Keyword If '${input}' == 'ProblemDetails' Should Contain ${response['headers']['Content-Type']} application/problem+json ... ELSE Should Contain ${response['headers']['Content-Type']} application/json ${schema} = Catenate SEPARATOR= ${input} .schema.json Validate Json ${schema} ${response['body']} Log Json Schema Validation OK Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} No newline at end of file