diff options
Diffstat (limited to 'test/csit/tests')
46 files changed, 1856 insertions, 36 deletions
diff --git a/test/csit/tests/aai/resources/suite1/__init__.robot b/test/csit/tests/aai/resources/suite1/__init__.robot new file mode 100644 index 000000000..538def841 --- /dev/null +++ b/test/csit/tests/aai/resources/suite1/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Documentation Resources - Pserver Suite diff --git a/test/csit/tests/aai/resources/suite1/aai.crt b/test/csit/tests/aai/resources/suite1/aai.crt new file mode 100644 index 000000000..6a28bbb8c --- /dev/null +++ b/test/csit/tests/aai/resources/suite1/aai.crt @@ -0,0 +1,70 @@ +Bag Attributes + friendlyName: aaiopenecomp + localKeyID: 54 69 6D 65 20 31 35 30 34 38 33 32 34 34 33 32 39 32 +subject=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=SimpleDemo/CN=aai.api.simpledemo.openecomp.org/emailAddress=aai-host@api.simpledemo.openecomp.org +issuer=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Server CA X1/emailAddress=simpledemo@openecomp.org +-----BEGIN CERTIFICATE----- +MIIEiTCCA3GgAwIBAgIJAIPKfDLcn3MpMA0GCSqGSIb3DQEBCwUAMIGtMQswCQYD +VQQGEwJVUzELMAkGA1UECAwCTkoxEzARBgNVBAcMCkJlZG1pbnN0ZXIxEjAQBgNV +BAoMCU9wZW5FQ09NUDETMBEGA1UECwwKc2ltcGxlZGVtbzEqMCgGA1UEAwwhT3Bl +bkVDT01QIHNpbXBsZWRlbW8gU2VydmVyIENBIFgxMScwJQYJKoZIhvcNAQkBFhhz +aW1wbGVkZW1vQG9wZW5lY29tcC5vcmcwHhcNMTYxMTMwMTUzODM5WhcNMTcxMTMw +MTUzODM5WjCBuTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk5KMRMwEQYDVQQHDApC +ZWRtaW5zdGVyMRIwEAYDVQQKDAlPcGVuRUNPTVAxEzARBgNVBAsMClNpbXBsZURl +bW8xKTAnBgNVBAMMIGFhaS5hcGkuc2ltcGxlZGVtby5vcGVuZWNvbXAub3JnMTQw +MgYJKoZIhvcNAQkBFiVhYWktaG9zdEBhcGkuc2ltcGxlZGVtby5vcGVuZWNvbXAu +b3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwQrQl8A0rT0Jjlos +Mr/7LEhT5UOif4GGPOk+3NCIxT3lOqAbUf+d9ZXyT2jWFRiKWua03vQ+Dxc8c2h2 +RRuH8LwEiOiWqPjWRxNqsARzZMI3ryHFCFBZh0FcpjH9kEeKVlLDYuV68k+ZucKd +NiqUNn61lD7kbmEGwvzKwf91FrJ09+CBMx1OnWKm3gCNKDqAEFMZCOdn2MgesJYB +/03lzPBS1jDfBXImXRcTBzpgA+wdCLn0cIQ1eLWUwS5tUqUJNh36nHdVyJ0P2Yjd +JLuxhFcmBKOz1ShyyO+BBtKBO8EGbU6qKflOiwOw0Fsn8LjKcrHQ58NPui5y04BU +Rypf3QIDAQABo4GdMIGaMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgO4MB0G +A1UdDgQWBBQyMUOsE2J+CKzK0qd8KFBD2gaWyjBbBgNVHSAEVDBSMFAGBFUdIAAw +SDBGBggrBgEFBQcCAjA6GjhLZWVwIGF3YXkgZnJvbSBjaGlsZHJlbi4gIFRoaXMg +Y2VydGlmaWNhdGUgaXMgbm90IGEgdG95LjANBgkqhkiG9w0BAQsFAAOCAQEAnkoy +2tWJOyyyIQwtVojUxv1GWQPnw3WCUcKpuX4CJhHXLxNErW1fBg7bmo08BNmBPPpq +WrJsy5lbBgUo9kgpViux5Stfy1rRIRsRLfl/icgCvJmUAxkmRCZL7yUvwG4K7s+8 +DwT+nW/XuWNP6Hd/qHccexB6COJ8KwvTdVoxAkCdX8qw4MCb/f7Kb1yle/vwBM5Q +UUONCJ4bEns1vnb9DGlNDUJNwCfwORAaVJpVS38Mv4UnSTmb2KMePtCWcx/dNsYR +2XrSGqLDnTvHwOpyhbfFTmackysGoSuDytORXy8YbwEiF13BwEK8i3rgNN0Z2ojf +cpmE2xxmaa+A2uuN6g== +-----END CERTIFICATE----- +Bag Attributes + friendlyName: root + 2.16.840.1.113894.746875.1.1: <Unsupported tag 6> +subject=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Server CA X1/emailAddress=simpledemo@openecomp.org +issuer=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Root Certification Authority/emailAddress=simpledemo@openecomp.org +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIJAJqx8dKnCZZoMA0GCSqGSIb3DQEBCwUAMIG9MQswCQYD +VQQGEwJVUzELMAkGA1UECAwCTkoxEzARBgNVBAcMCkJlZG1pbnN0ZXIxEjAQBgNV +BAoMCU9wZW5FQ09NUDETMBEGA1UECwwKc2ltcGxlZGVtbzE6MDgGA1UEAwwxT3Bl +bkVDT01QIHNpbXBsZWRlbW8gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEn +MCUGCSqGSIb3DQEJARYYc2ltcGxlZGVtb0BvcGVuZWNvbXAub3JnMB4XDTE2MTEy +ODIxMTQyNloXDTIxMTEyNzIxMTQyNlowga0xCzAJBgNVBAYTAlVTMQswCQYDVQQI +DAJOSjETMBEGA1UEBwwKQmVkbWluc3RlcjESMBAGA1UECgwJT3BlbkVDT01QMRMw +EQYDVQQLDApzaW1wbGVkZW1vMSowKAYDVQQDDCFPcGVuRUNPTVAgc2ltcGxlZGVt +byBTZXJ2ZXIgQ0EgWDExJzAlBgkqhkiG9w0BCQEWGHNpbXBsZWRlbW9Ab3BlbmVj +b21wLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALr4rivKQuRk +YNf5Ig40e1nqj6s6LB1vgMOYbKfRziOFpPcUpsHPOhusHowiUsrU1vdFSzPz6Ej7 +PjlmNSg2Qka8YCn9kd6QgM7U0KcPJvIucBp+qjifH3EvP0jgDPhDeVRYxzV454dv +5kQ9uCpswJP7YAnX51dkWeH8nwPUoagt31bOl9LXENSrgxEThxdLYMJnQJWk2CmV +otXM4tT1dxyJxFUrZ6uJCEAYw5VtlplqihHf8lHy+sWQavtsLz/4dc+sGeXSTfoI +voKvoh3uZ5gEhGV8yfJxk1veX5y5/AxP80vQ+smWYjTnQL5QQ57y4bciez4XVBmQ +SWimWtOi4e8CAwEAAaOBtTCBsjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBhjAdBgNVHQ4EFgQUTqdsYgGNGubdJHq9tsaJhM9HE5wwcAYDVR0gBGkwZzBl +BgRVHSAAMF0wWwYIKwYBBQUHAgIwTxpNSWYgeW91IHRydXN0IHRoaXMgY2VydCB0 +aGVuIHdlIGhhdmUgYSBicmlkZ2UgdGhhdCB5b3UgbWlnaHQgYmUgaW50ZXJlc3Rl +ZCBpbi4wDQYJKoZIhvcNAQELBQADggIBAKNNlRqFuE/JgV1BHyYK0xoSXH4aZP/7 +IoHtDVcSaZAOOuFOUrwVMUbzRBebbb6RpFwt/X+NLFUGysd+XNLF7W7lzxKtmFNX +n4OpNkBe0y5O7yurus8rERHzu3jiOSgVo+WzDlGpYSRnG3hI2qPWqD+Puzx/WwI8 +XUTuzEQQ3gUSyVFfXHpay3VpYmLZiLJ9WKY5SDw7Ie6Sxrju4Qm1HwnFY8wHZGcs +2KMQzorJ1ZNQf523yUTghbT0rKaSFaD8zugPtI2ONfFG/QgrkQXo78opzPsHnHwa +SxGSiAgeLbwAUCvPNl27zr6k6+7TcNjV0VUivAs0OG3VEAdgi7UWYB+30KfWwHwE +zGmvd4IAGqIqlqLcSVArN5z8JK1B5nfjQn5UrclU1vK+dnuiKE2X4rKuBTRYRFR/ +km+mj4koYFPKFHndmJl1uv2OCJK9l5CSIuKWeI1qv8BASKqgNdoT/SKBXqxgYlCb +o+j4IDjxrxChRO+e5vl9lA7INfRrbljCkUjfLRa+v2q9tWQ3+EQUwwnSrSfihh2T +j0Tksr6b8dDsvMlCdOKG1B+JPcEXORSFKNXVTEfjqpJG8s16kFAocWt3S6xO0k1t +qbQp+3tWQgW2TGnX0rMZzB6NGRNfWhlYmq2zHgXkiCIZ26Ztgt/LNbwEvN3+VlLo +z/Rd+SKtlrfb +-----END CERTIFICATE----- diff --git a/test/csit/tests/aai/resources/suite1/aai.key b/test/csit/tests/aai/resources/suite1/aai.key new file mode 100644 index 000000000..02724df46 --- /dev/null +++ b/test/csit/tests/aai/resources/suite1/aai.key @@ -0,0 +1,32 @@ +Bag Attributes + friendlyName: aaiopenecomp + localKeyID: 54 69 6D 65 20 31 35 30 34 38 33 32 34 34 33 32 39 32 +Key Attributes: <No Attributes> +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDBCtCXwDStPQmO +Wiwyv/ssSFPlQ6J/gYY86T7c0IjFPeU6oBtR/531lfJPaNYVGIpa5rTe9D4PFzxz +aHZFG4fwvASI6Jao+NZHE2qwBHNkwjevIcUIUFmHQVymMf2QR4pWUsNi5XryT5m5 +wp02KpQ2frWUPuRuYQbC/MrB/3UWsnT34IEzHU6dYqbeAI0oOoAQUxkI52fYyB6w +lgH/TeXM8FLWMN8FciZdFxMHOmAD7B0IufRwhDV4tZTBLm1SpQk2Hfqcd1XInQ/Z +iN0ku7GEVyYEo7PVKHLI74EG0oE7wQZtTqop+U6LA7DQWyfwuMpysdDnw0+6LnLT +gFRHKl/dAgMBAAECggEBAJko2HkeIW01mUhdWOXnFgR7WjzzXZEmlffr41lVBr7f +rejGsQZs9cms73R7rCdOsi8PDoA6bqaQfADg571K659fvYVWbHqh+3im+iWvUlKm +GYIVG/vNrEq43CZsUU7Qw/xba/QiOFraNxCATTV1sORPwgddouXEi5XW9ZPX9/FJ +wORx4L/K0DfHX1rr+rtOoHCJdZYhn3Ij87kmR8Mwg0fNeWhHqtxUEyM/itRjCvOe +mgt2V8DORhmq12L4+5QJctBrkBVRp9Rh6YSZZBGnKbTSgf4q648BdkJDLSK4cguT +D6BAw3gxj5V4wt5W0wn2JpjadFwnixrTzvMP/yAqfK0CgYEA93nBAoUPw8nzQkwk +8iWBjfJ999Rw92hnnvk3xbcQcGfgUYuB4dxwe6FQTmFIVylt81er1YUvMb3ao7fo +5ZcGnI5p1idjsd27kbZJLxb5Oh919hKu5IfkfYsVgnC0UdKCTgH5CaH0U4ATuXwt +RL6qm0XcLALs5y2OO6z3s+mYhisCgYEAx7EQ8MA45bkXnRQiHBhGcIIcr2sRDfVJ +OhHmGxx3EcYgtsIYKTqtQOyIt/nQxo6iyNL9bzfzBTybFJLuj63ZG1Ef4LosJedl +eAU2NsKv5MlKYDSdNbLAJ0Op9I2Xu/pXQecPwY/3MkIQArdQCLevMLEGywCsuJTn +BjkJNDkb9hcCgYAhoFiaiAwJVYKJSqFmibQd3opBR4uGApi54DE021gPff3b9rHS +R8q88cFgtRVISqfW/d2qaKtt/dcckdvCfo/2a99zqux/+ZoIBZXSITQCMs4rfoRn +JxPj/ycQD1JhH9J22QvGxEvXoLqNZJMeGS5DZO2yyT75dpYyA6Gwv5fq+wKBgQC5 +AhV917lfLELyZurLOLpaFlHZO8rLMcusH1UfHRo7v2IjsGOOHyzRD9QDD1IcA55R +jRj8Z8uhuGq9fvvC5gBVTK3KGPI6E85wifOWfH1V7CAaTeSxEXDxb8EQL/a6U89v +4VE5tdYCHC6VNZzS1staw0hV38QmJt57Z3Bdj+OV9QKBgE/b9fxpo+SVQ37BzNNY +SEKTTijaddz8fdomApg6a2eFJL93Ej/op7N7gnHtPWMivPnRRza9ZjfnG+aZ7n2J +sWyBiZK9xliS2TsF3l3q9Z0Vaq3i1nOlV7Bd20ZS8KjQjDtKnIRfLkQDkvmXbU5L +emwkdsQZbpPFJch3mCGtI7JW +-----END PRIVATE KEY----- diff --git a/test/csit/tests/aai/resources/suite1/pserver.robot b/test/csit/tests/aai/resources/suite1/pserver.robot new file mode 100644 index 000000000..55e57bccb --- /dev/null +++ b/test/csit/tests/aai/resources/suite1/pserver.robot @@ -0,0 +1,65 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary +Library requests +Library Collections + +*** Variables *** +${TARGETURL} https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/pservers/pserver/pserver-test1 +${PSERVERDATA} {"hostname": "pserver-test1"} + +*** Test Cases *** + +Run AAI Put Pserver + [Documentation] Create an pserver object + ${resp}= PutWithCert ${TARGETURL} ${PSERVERDATA} + log ${TARGETURL} + log ${resp.text} + Should Be Equal As Strings ${resp.status_code} 201 + +Run AAI Get Pserver + [Documentation] Get the pserver object just created + ${resp} GetWithCert ${TARGETURL} + log ${resp} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + ${resource_version}= Evaluate $resp.json().get('resource-version') + Set Global Variable ${resource_version} + +Run AAI Delete Pserver + [Documentation] Delete the pserver just created + ${resp}= DeleteWithCert ${TARGETURL}?resource-version=${resource_version} + log ${resp.text} + Should Be Equal As Strings ${resp.status_code} 204 + +*** Keywords *** +PutWithCert + [Arguments] ${url} ${data} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.put('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False) requests + [return] ${resp} + +PostWithCert + [Arguments] ${url} ${data} + ${auth}= Create List AAI AAI + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.post('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False) requests + [return] ${resp} + +GetWithCert + [Arguments] ${url} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.get('${url}', headers=${headers}, cert=${certinfo}, verify=False) requests + [return] ${resp} + +DeleteWithCert + [Arguments] ${url} + ${auth}= Create List AAI AAI + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.delete('${url}', headers=${headers}, cert=${certinfo}, verify=False) requests + [return] ${resp} + diff --git a/test/csit/tests/appc/healthcheck/test1.robot b/test/csit/tests/appc/healthcheck/test1.robot index 05eee5b84..8bd49860b 100644 --- a/test/csit/tests/appc/healthcheck/test1.robot +++ b/test/csit/tests/appc/healthcheck/test1.robot @@ -6,6 +6,7 @@ Library Process ${bundle_query} ${SCRIPTS}/bundle_query.sh ${health_check} ${SCRIPTS}/health_check.sh +${db_query} ${SCRIPTS}/db_query.sh *** Test Cases *** @@ -19,4 +20,8 @@ Query bundle test case for APPC ${result_bq}= Run Process bash ${bundle_query} > log_bq.txt shell=yes Should Be Equal As Integers ${result_bq.rc} 0 +Query database test case for APPC + [Documentation] Query database + ${result_db}= Run Process bash ${db_query} > log_db.txt shell=yes + Should Be Equal As Integers ${result_db.rc} 0 diff --git a/test/csit/tests/appc/testsuite/APPC_Netstat.robot b/test/csit/tests/appc/testsuite/APPC_Netstat.robot new file mode 100644 index 000000000..5544fb565 --- /dev/null +++ b/test/csit/tests/appc/testsuite/APPC_Netstat.robot @@ -0,0 +1,19 @@ +*** Settings *** +Library SSHLibrary +Library OperatingSystem +*** Variables *** +${HOST} 104.130.138.49 +${USERNAME} test +${private_key} H:\\TestSuite\\testsuite\\robot\\testsuites +*** Test Cases *** +APPC Netstat + Open Connection ${HOST} + ${password}= Get File ${private_key} + Login ${USERNAME} ${password} + log to console \nConnected Successfully + ${cmd} = set variable netstat -a | grep -E '8443 | grep LISTEN + execute command ${cmd} + +Tear Down + [Documentation] Close all connections + Close All connections
\ No newline at end of file diff --git a/test/csit/tests/appc/testsuite/LCM_HEALTHCHECK.robot b/test/csit/tests/appc/testsuite/LCM_HEALTHCHECK.robot new file mode 100644 index 000000000..c3594ef2e --- /dev/null +++ b/test/csit/tests/appc/testsuite/LCM_HEALTHCHECK.robot @@ -0,0 +1,33 @@ +*** Settings *** +Library Selenium2Library +Library OperatingSystem + +*** Variable *** +${ResponseCode} +${var} +${RequestJSON} C:\\RobotSampleForLearning\\LearningSamples\\Resources\\Healthchk.json + + +*** Test Cases *** + +APPC LCM Health check + [Documentation] APPC HealthCheck + Open Browser http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@104.130.138.49:8282/apidoc/explorer/index.html chrome + Click Element xpath=.//p[contains(text(),'If you have reason to expect the website is safe, select the I Accept the Risk button to continue.')]//following::img + + Wait Until Page Contains Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a + Click Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a + + wait until page contains element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:health-check')] + Click Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:health-check')] + + ${HealthChk}= Get File ${RequestJSON} + wait until page contains element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:health-check')]//following::table + Input Text xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:health-check')]//following::table//tbody/tr/td[2]/textarea ${HealthChk} + + wait until page contains element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:health-check')]//following::form/div[2]/input[1] + Click Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:health-check')]//following::form/div[2]/input[1] + +Tear Down + [Documentation] Close all browsers + Close All Browsers
\ No newline at end of file diff --git a/test/csit/tests/appc/testsuite/LCM_VM_RESTART.robot b/test/csit/tests/appc/testsuite/LCM_VM_RESTART.robot new file mode 100644 index 000000000..997ba17a0 --- /dev/null +++ b/test/csit/tests/appc/testsuite/LCM_VM_RESTART.robot @@ -0,0 +1,31 @@ +*** Settings *** +Library Selenium2Library +Library OperatingSystem + +*** Variable *** +${ResponseCode} +${var} +${RequestJSON} /LearningSamples/Resources/VMRestart.json + + +*** Test Cases *** + +APPC API VM RESTART + [Documentation] APPC VM LCM Restart + Open Browser http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@104.130.138.49:8282/apidoc/explorer/index.html chrome + Click Element xpath=.//p[contains(text(),'If you have reason to expect the website is safe, select the I Accept the Risk button to continue.')]//following::img + Click Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a + Click Element xpath=//*[@id="appc-provider-lcm(2016-01-08)_restart_post_23"]/div[1]/h3/span[2]/a + ${VM_LCM_RESTART} Get File ${RequestJSON} + Input Text xpath=//*[@id="appc-provider-lcm(2016-01-08)_restart_post_23_content"]/form/table/tbody/tr/td[2]/textarea ${VM_LCM_RESTART} + Click Element xpath=//*[@id="appc-provider-lcm(2016-01-08)_restart_post_23_content"]/form/div[2]/input + # Get Text locator + ${ResponseCode} Get Text xpath=//*[@id="appc-provider-lcm(2016-01-08)_restart_post_23_content"]/div[2]/h4[contains(text(),'Response Code')]//following::div//pre + ${var} Get Value xpath=//*[@id="appc-provider-lcm(2016-01-08)_restart_post_23_content"]/div[2]/h4[contains(text(),'Response Code')]//following::div//pre + Log Value--> ${ResponseCode} + Log var--> ${var} + Element Text Should Be xpath=//*[@id="appc-provider-lcm(2016-01-08)_restart_post_23_content"]/div[2]/h4[contains(text(),'Response Code')]//following::div//pre 400 expected + +Tear Down + [Documentation] Close all browsers + Close All Browsers
\ No newline at end of file diff --git a/test/csit/tests/appc/testsuite/LCM_VNF_RESTART.robot b/test/csit/tests/appc/testsuite/LCM_VNF_RESTART.robot new file mode 100644 index 000000000..1bb2c13eb --- /dev/null +++ b/test/csit/tests/appc/testsuite/LCM_VNF_RESTART.robot @@ -0,0 +1,45 @@ +*** Settings *** +Library Selenium2Library +Library OperatingSystem + +*** Variable *** +${ResponseCode} +${var} +${RequestJSON} C:\\RobotSampleForLearning\\LearningSamples\\Resources\\VNFRestart.json + + +*** Test Cases *** + +APPC API VM RESTART + [Documentation] APPC VM LCM Restart + Open Browser http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@104.130.138.49:8282/apidoc/explorer/index.html chrome + Click Element xpath=.//p[contains(text(),'If you have reason to expect the website is safe, select the I Accept the Risk button to continue.')]//following::img + + Wait Until Page Contains Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a + Click Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a + + + Wait Until Page Contains Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')] + Click Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')] + + + ${VNF_LCM_RESTART}= Get File ${RequestJSON} + Wait Until Page Contains Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')]//following::table + + Input Text xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')]//following::table//tbody/tr/td[2]/textarea ${VNF_LCM_RESTART} + + # Wait Until Page Contains Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')]/form/div[2]/input + Click Element xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')]//following::form/div[2]/input[1] + + # Get Text locator + ${ResponseCode} Get Text xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')]//following::h4[contains(text(),'Response Code')][1]//following-sibling::div//pre + + # //*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')]//following::h4[contains(text(),'Response Code')]//following-sibling::div//pre + ${var} Get Value xpath=//*[@id="resource_appc-provider-lcm(2016-01-08)"]/div/h2/a//following::a[contains(text(),'/operations/appc-provider-lcm:restart')]//following::h4[contains(text(),'Response Code')][1]//following-sibling::div//pre + Log Value--> ${ResponseCode} + Log var--> ${var} + Element Text Should Be xpath=//*[contains(text(),'/operations/appc-provider-lcm:restart')]//following::h4[text()='Response Code'][1]//following-sibling::div//pre[1] 200 expected + +Tear Down + [Documentation] Close all browsers + Close All Browsers
\ No newline at end of file diff --git a/test/csit/tests/clamp/TCA/test1.robot b/test/csit/tests/clamp/TCA/01__TCA.robot index b1fb0f440..45f20f248 100644 --- a/test/csit/tests/clamp/TCA/test1.robot +++ b/test/csit/tests/clamp/TCA/01__TCA.robot @@ -3,7 +3,6 @@ Library Collections Library RequestsLibrary Library OperatingSystem Library json -Library HttpLibrary.HTTP *** Test Cases *** diff --git a/test/csit/tests/clamp/UIs/test1_create_template.robot b/test/csit/tests/clamp/UIs/01__Create_template.robot index 008b13d2a..d740ac987 100644 --- a/test/csit/tests/clamp/UIs/test1_create_template.robot +++ b/test/csit/tests/clamp/UIs/01__Create_template.robot @@ -3,7 +3,6 @@ Library Collections Library RequestsLibrary Library OperatingSystem Library json -Library HttpLibrary.HTTP Library Selenium2Library Library XvfbRobot @@ -42,15 +41,15 @@ Create Template from Menu Click Element xpath=//*[@id="navbar"]/ul/li[1]/a Wait Until Element Is Visible locator=Create Template timeout=60 Click Element locator=Create Template - Input Text locator=modelName text=template1 + Input Text locator=modelName text=template Click Button locator=OK Drag and Drop Boxes for template - Wait Until Element Is Visible xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[2] timeout=60 - Drag And Drop By Offset xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[2] 280 280 - Drag And Drop By Offset xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[4] 550 280 - Drag And Drop By Offset xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[5] 800 280 - Drag And Drop By Offset xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[6] 1000 280 + Wait Until Element Is Visible xpath=//*[@class="entry icon-collector-node"] timeout=60 + Drag And Drop By Offset xpath=//*[@class="entry icon-collector-node"] 280 280 + Drag And Drop By Offset xpath=//*[@class="entry icon-tca-node"] 550 280 + Drag And Drop By Offset xpath=//*[@class="entry icon-policy-node"] 800 280 + Drag And Drop By Offset xpath=//*[@class="entry icon-end-event-none"] 1000 280 Drag and Drop Connectors for template Click Element xpath=//*[starts-with(@data-element-id, "StartEvent_")] diff --git a/test/csit/tests/clamp/UIs/test2_create_Model.robot b/test/csit/tests/clamp/UIs/02__Create_model.robot index e8de881bb..979a9802e 100644 --- a/test/csit/tests/clamp/UIs/test2_create_Model.robot +++ b/test/csit/tests/clamp/UIs/02__Create_model.robot @@ -3,7 +3,6 @@ Library Collections Library RequestsLibrary Library OperatingSystem Library json -Library HttpLibrary.HTTP Library Selenium2Library Library XvfbRobot diff --git a/test/csit/tests/cli/startup/__init__.robot b/test/csit/tests/cli/startup/__init__.robot new file mode 100644 index 000000000..9eca6917a --- /dev/null +++ b/test/csit/tests/cli/startup/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Documentation cli - Startup diff --git a/test/csit/tests/cli/startup/startup_check.robot b/test/csit/tests/cli/startup/startup_check.robot new file mode 100644 index 000000000..053a6d115 --- /dev/null +++ b/test/csit/tests/cli/startup/startup_check.robot @@ -0,0 +1,70 @@ +*** Settings *** +Library RequestsLibrary +Library Process + +*** Variables *** + +${cli_exec} docker exec cli onap +${cli_exec_onap_11} docker exec -e CLI_PRODUCT_VERSION=onap-1.1 onap +${cli_exec_onap_10} docker exec -e CLI_PRODUCT_VERSION=onap-1.0 onap +${cli_exec_cli_10} docker exec -e CLI_PRODUCT_VERSION=cli-1.0 onap + +*** Test Cases *** +Liveness Test + [Documentation] Check cli liveness check + Create Session cli http://${CLI_IP}:8080 + CheckUrl cli / + +Check Cli help + [Documentation] check cli help command + ${cli_cmd_output}= Run Process ${cli_exec} --help shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 0 + Should Contain ${cli_cmd_output.stdout} CLI version + +Check Cli Version Default + [Documentation] check cli default version + ${cli_cmd_output}= Run Process ${cli_exec} --version shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 0 + Should Contain ${cli_cmd_output.stdout} : cli-1.0 + +Check Cli Scheam Refresh + [Documentation] check cli schema-refresh command + ${cli_cmd_output}= Run Process ${cli_exec} schema-refresh shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 0 + Should Contain ${cli_cmd_output.stdout} sl-no + Should Contain ${cli_cmd_output.stdout} command + Should Contain ${cli_cmd_output.stdout} product-version + Should Contain ${cli_cmd_output.stdout} schema + Should Contain ${cli_cmd_output.stdout} version + +Check Cli Schema Validate With Valid Path + [Documentation] check cli schema-validate command with valid path + ${cli_cmd_output}= Run Process ${cli_exec} schema-validate -i -l schema-refresh.yaml shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 0 + Should Contain ${cli_cmd_output.stdout} sl-no + Should Contain ${cli_cmd_output.stdout} error + +Check Cli Scheam Validate With Invalid Path + [Documentation] check cli version + ${cli_cmd_output}= Run Process ${cli_exec} schema-validate -i -l invalid-yaml-path.yaml shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 1 + Should Contain ${cli_cmd_output.stdout} 0x0007 + +Check Cli Scheam Validate Empty Argument + [Documentation] check cli schema validate with empty argument + ${cli_cmd_output}= Run Process ${cli_exec} schema-validate shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 1 + Should Contain ${cli_cmd_output.stdout} 0x0015 + + +*** Keywords *** +CheckUrl + [Arguments] ${session} ${path} + ${resp}= Get Request ${session} ${path} + Should Be Equal As Integers ${resp.status_code} 200 diff --git a/test/csit/tests/common.robot b/test/csit/tests/common.robot new file mode 100644 index 000000000..944be6b9f --- /dev/null +++ b/test/csit/tests/common.robot @@ -0,0 +1,22 @@ +#Robot functions that will be shared also with other tests + +*** Keywords *** +json_from_file +#Robot function to extract the json object from a file + [Arguments] ${file_path} + ${json_file}= Get file ${file_path} + ${json_object}= Evaluate json.loads('''${json_file}''') json + [return] ${json_object} + +string_from_json +#Robot function to transform the json object to a string + [Arguments] ${json_value} + ${json_string}= Stringify Json ${json_value} + [return] ${json_string} + +random_ip +#Robot function to generate a random IP + [Arguments] + ${numbers}= Evaluate random.sample([x for x in range(1, 256)], 4) random + ${generated_ip}= Catenate ${numbers[0]}.${numbers[1]}.${numbers[2]}.${numbers[3]} + [return] ${generated_ip}
\ No newline at end of file diff --git a/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot b/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot index 24c809c97..71354d33d 100644 --- a/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot +++ b/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot @@ -1,3 +1,3 @@ *** Variables *** ${engineHost} http://${MSB_IP} -${engineUrl} /onapapi/holmes-engine-mgmt/v1/rule +${engineUrl} /api/holmes-engine-mgmt/v1/rule diff --git a/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot index b2039174d..03f840904 100644 --- a/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot +++ b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot @@ -23,9 +23,8 @@ queryConditionRule [Arguments] ${queryParam} ${codeFlag}=1 [Documentation] ${queryParam} : The data type is Json . create session microservices ${ruleMgtHost} - ${param} set variable queryrequest\=${queryParam} - ${headers} set variable - ${getResponse} get request microservices ${ruleMgtUrl} ${headers} ${param} + Comment ${param} set variable queryrequest\=${queryParam} + ${getResponse} get request microservices ${ruleMgtUrl}?queryrequest\=${queryParam} log ${getResponse.content} run keyword if ${codeFlag}==1 Should be equal as strings ${getResponse.status_code} 200 run keyword if ${codeFlag}!=1 Should be equal as strings ${getResponse.status_code} 499 diff --git a/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot b/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot index ec565e9ab..be7384206 100644 --- a/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot +++ b/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot @@ -1,3 +1,3 @@ *** Variables *** ${ruleMgtHost} http://${MSB_IP} -${ruleMgtUrl} /onapapi/holmes-rule-mgmt/v1/rule +${ruleMgtUrl} /api/holmes-rule-mgmt/v1/rule diff --git a/test/csit/tests/integration/vCPE/__init__.robot b/test/csit/tests/integration/vCPE/__init__.robot new file mode 100644 index 000000000..b2057b0d1 --- /dev/null +++ b/test/csit/tests/integration/vCPE/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Documentation Integration - vCPE diff --git a/test/csit/tests/integration/vCPE/test1.robot b/test/csit/tests/integration/vCPE/test1.robot new file mode 100644 index 000000000..3bcd1dde9 --- /dev/null +++ b/test/csit/tests/integration/vCPE/test1.robot @@ -0,0 +1,60 @@ +*** Settings *** +Suite Setup Suite Setup +Suite Teardown Suite Teardown +Library OperatingSystem +Library RequestsLibrary +Library Process +Library ../../../../testsuite/python-testing-utils/eteutils/UUID.py + +*** Variables *** +${GLOBAL_APPLICATION_ID} csit-vCPE +${GLOBAL_MSO_USERNAME} InfraPortalClient +${GLOBAL_MSO_PASSWORD} password1$ + +*** Test Cases *** +SO ServiceInstance health check + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + ${session}= Create Session so http://${SO_IP}:8080 + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=text/html Content-Type=text/html X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + ${resp}= Get Request so /ecomp/mso/infra/globalhealthcheck headers=${headers} + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${resp}= Get Request so /ecomp/mso/infra/orchestrationRequests/v2 headers=${headers} + Should Not Contain ${resp.content} null + +*** Keywords *** +Run Docker + [Arguments] ${image} ${name} ${parameters}=${EMPTY} + ${result}= Run Process docker run --name ${name} ${parameters} -d ${image} shell=True + Should Be Equal As Integers ${result.rc} 0 + Log ${result.stdout} + ${result}= Run Process docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${name} shell=True + Should Be Equal As Integers ${result.rc} 0 + Log ${result.stdout} + [Return] ${result.stdout} + +Kill Docker + [Arguments] ${name} + ${result}= Run Process docker logs ${name} shell=True + Should Be Equal As Integers ${result.rc} 0 + Log ${result.stdout} + ${result}= Run Process docker kill ${name} shell=True + Should Be Equal As Integers ${result.rc} 0 + Log ${result.stdout} + ${result}= Run Process docker rm ${name} shell=True + Should Be Equal As Integers ${result.rc} 0 + Log ${result.stdout} + +CheckUrl + [Arguments] ${url} + Create Session session ${url} disable_warnings=True + ${resp}= Get Request session / + Should Be Equal As Integers ${resp.status_code} 200 + +Suite Setup + ${SO_IP}= Run Docker nexus3.onap.org:10001/openecomp/mso i-so + Wait Until Keyword Succeeds 1 min 5 sec CheckUrl http://${SO_IP}:8080 + Set Suite Variable ${SO_IP} + +Suite Teardown + Kill Docker i-so diff --git a/test/csit/tests/multicloud-ocata/provision/sanity_test_multicloud.robot b/test/csit/tests/multicloud-ocata/provision/sanity_test_multicloud.robot new file mode 100644 index 000000000..f9f19820c --- /dev/null +++ b/test/csit/tests/multicloud-ocata/provision/sanity_test_multicloud.robot @@ -0,0 +1,22 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_ocata_url} /api/multicloud-ocata/v0/swagger.json + + +*** Test Cases *** +OcataSwaggerTest + [Documentation] query swagger info rest test + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${SERVICE_IP}:${SERVICE_PORT} headers=${headers} + ${resp}= Get Request web_session ${queryswagger_ocata_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 diff --git a/test/csit/tests/multicloud/provision/sanity_test_multivim.robot b/test/csit/tests/multicloud/provision/sanity_test_multivim.robot index 6dc57cc42..2c1ec3f9f 100644 --- a/test/csit/tests/multicloud/provision/sanity_test_multivim.robot +++ b/test/csit/tests/multicloud/provision/sanity_test_multivim.robot @@ -6,14 +6,14 @@ Library json *** Variables *** @{return_ok_list}= 200 201 202 -${queryswagger_broker_url} /openoapi/multivim/v1/swagger.json +${queryswagger_broker_url} /api/multicloud/v0/swagger.json *** Test Cases *** BrokerSwaggerTest [Documentation] query swagger info rest test ${headers} Create Dictionary Content-Type=application/json Accept=application/json - Create Session web_session http://${MSB_IP} headers=${headers} + Create Session web_session http://${BROKER_IP}:9001 headers=${headers} ${resp}= Get Request web_session ${queryswagger_broker_url} ${responese_code}= Convert To String ${resp.status_code} List Should Contain Value ${return_ok_list} ${responese_code} diff --git a/test/csit/tests/portal/testsuites/__init__.robot b/test/csit/tests/portal/testsuites/__init__.robot new file mode 100644 index 000000000..3b8528dff --- /dev/null +++ b/test/csit/tests/portal/testsuites/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Documentation APPC - healthcheck diff --git a/test/csit/tests/portal/testsuites/browser_setup.robot b/test/csit/tests/portal/testsuites/browser_setup.robot new file mode 100644 index 000000000..6ef4f7268 --- /dev/null +++ b/test/csit/tests/portal/testsuites/browser_setup.robot @@ -0,0 +1,43 @@ +*** Settings *** +Documentation The main interface for interacting with VID. It handles low level stuff like managing the selenium request library and VID required steps +Library Collections +Library OSUtils +Library OperatingSystem +Library ExtendedSelenium2Library +Resource global_properties.robot + +*** Variables *** + +*** Keywords *** +Setup Browser + [Documentation] Sets up browser based upon the value of ${GLOBAL_SELENIUM_BROWSER} + Run Keyword If '${GLOBAL_SELENIUM_BROWSER}' == 'firefox' Setup Browser Firefox + Run Keyword If '${GLOBAL_SELENIUM_BROWSER}' == 'chrome' Setup Browser Chrome + Log Running with ${GLOBAL_SELENIUM_BROWSER} + +Setup Browser Firefox + ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.FIREFOX sys, selenium.webdriver + Set To Dictionary ${dc} elementScrollBehavior 1 + Create Webdriver Firefox desired_capabilities=${dc} + Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc} + + Setup Browser Chrome + ${os}= Get Normalized Os + Log Normalized OS=${os} + ${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys + Call Method ${chrome options} add_argument no-sandbox + ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME sys, selenium.webdriver + Set To Dictionary ${dc} elementScrollBehavior 1 + Create Webdriver Chrome chrome_options=${chrome_options} desired_capabilities=${dc} + Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc} + +Handle Proxy Warning + [Documentation] Handle Intermediate Warnings from Proxies + ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_TITLE} + Return From Keyword if '${status}' != 'PASS' + ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_CONTINUE_XPATH} + Return From Keyword if '${status}' != 'PASS' + Return From Keyword if "${GLOBAL_PROXY_WARNING_TITLE}" == '' + Return From Keyword if "${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}" == '' + ${test} ${value}= Run keyword and ignore error Title Should Be ${GLOBAL_PROXY_WARNING_TITLE} + Run keyword If '${test}' == 'PASS' Click Element xpath=${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}
\ No newline at end of file diff --git a/test/csit/tests/portal/testsuites/integration_robot_properties.py b/test/csit/tests/portal/testsuites/integration_robot_properties.py new file mode 100644 index 000000000..cc0558fc7 --- /dev/null +++ b/test/csit/tests/portal/testsuites/integration_robot_properties.py @@ -0,0 +1,83 @@ +# aaf info - everything is from the private oam network (also called ecomp private network) +GLOBAL_AAF_SERVER = "http://10.0.12.1:8101" +GLOBAL_AAF_USERNAME = "dgl@openecomp.org" +GLOBAL_AAF_PASSWORD = "ecomp_admin" +# aai info - everything is from the private oam network (also called ecomp private network) +GLOBAL_AAI_SERVER_URL = "https://104.239.249.183:8443" +GLOBAL_AAI_USERNAME = "AAI" +GLOBAL_AAI_PASSWORD = "AAI" +# appc info - everything is from the private oam network (also called ecomp private network) +GLOBAL_APPC_SERVER = "http://172.99.68.171:8282" +GLOBAL_APPC_USERNAME = "admin" +GLOBAL_APPC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" +# sdc info - everything is from the private oam network (also called ecomp private network) +GLOBAL_ASDC_SERVER = "http://104.239.249.58" +GLOBAL_ASDC_FE_PORT = "8181" +GLOBAL_ASDC_BE_PORT = "8080" +GLOBAL_ASDC_BE_USERNAME = "beep" +GLOBAL_ASDC_BE_PASSWORD = "boop" +# dcae info - everything is from the private oam network (also called ecomp private network) +GLOBAL_DCAE_SERVER = "http://146.20.110.86:9998" +GLOBAL_DCAE_USERNAME = "console" +GLOBAL_DCAE_PASSWORD = "ZjJkYjllMjljMTI2M2Iz" +# message router info - everything is from the private oam network (also called ecomp private network) +GLOBAL_MR_SERVER = "http://162.209.124.141:3904" +# mso info - everything is from the private oam network (also called ecomp private network) +GLOBAL_MSO_SERVER = "http://172.99.67.208:8080" +GLOBAL_MSO_USERNAME = "InfraPortalClient" +GLOBAL_MSO_PASSWORD = "password1$" +# openstack info - info to select right info in environment +GLOBAL_OPENSTACK_KEYSTONE_SERVER = "https://identity.api.rackspacecloud.com" +# packet generate vnf info - everything is from the private oam network (also called ecomp private network) +GLOBAL_PACKET_GENERATOR_PORT = "8183" +GLOBAL_PACKET_GENERATOR_USERNAME = "admin" +GLOBAL_PACKET_GENERATOR_PASSWORD = "admin" +GLOBAL_PGN_PORT = "2831" +# policy info - everything is from the private oam network (also called ecomp private network) +GLOBAL_POLICY_SERVER_URL = "http://104.239.249.76:8480" +GLOBAL_POLICY_AUTH = "dGVzdHJlc3Q6M2MwbXBVI2gwMUBOMWMz" +GLOBAL_POLICY_CLIENTAUTH = "cHl0aG9uOnRlc3Q=" +GLOBAL_POLICY_HEALTHCHECK_URL = "http://104.239.249.76:6969" +GLOBAL_POLICY_USERNAME = "healthcheck" +GLOBAL_POLICY_PASSWORD = "zb!XztG34" +# portal info - everything is from the private oam network (also called ecomp private network) +GLOBAL_PORTAL_SERVER = "http://104.130.31.32:8989" +GLOBAL_PORTAL_USERNAME = "demo" +GLOBAL_PORTAL_PASSWORD = "demo123456!" +# portal information +#GLOBAL_PORTAL_URL = "http://vm-ep-dev2.client.research.att.com:8989" +GLOBAL_PORTAL_URL = "http://vm-ep-dev3.client.research.att.com:8989" +#GLOBAL_PORTAL_URL = "http://portal.api.simpledemo.openecomp.org:8989" +GLOBAL_PORTAL_ADMIN_USER = "demo" +GLOBAL_PORTAL_ADMIN_PWD = "demo123456!" +GLOBAL_APP_ADMIN_USER = "appdemo" +GLOBAL_APP_ADMIN_PWD = "appdemo123456!" +GLOBAL_STA_USER_USER = "stademo" +GLOBAL_STA_USER_PWD = "stademo123456!" +#First_Name = "Test20" +#Last_Name = "Demo20" +#Email_Address = "Test20@att.com" +#LoginID = "TestUser20" +#Loginpwd = "Demo1234!" +#LoginPwdCheck = "Demo1234!" +#Existing_User = "Portal" +# sdngc info - everything is from the private oam network (also called ecomp private network) +GLOBAL_SDNGC_SERVER = "http://172.99.69.190" +GLOBAL_SDNGC_REST_PORT = "8282" +GLOBAL_SDNGC_ADMIN_PORT = "8843" +GLOBAL_SDNGC_USERNAME = "admin" +GLOBAL_SDNGC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" +# vid info - everything is from the private oam network (also called ecomp private network) +GLOBAL_VID_USERNAME = "demo" +GLOBAL_VID_PASSWORD = "Kp8bJ4SXszM0WX" +GLOBAL_VID_HEALTH_USERNAME = "Default" +GLOBAL_VID_HEALTH_PASSWORD = "AppPassword!1" +GLOBAL_VID_SERVER = "http://104.130.12.222:8080" +#global selenium info +GLOBAL_PROXY_WARNING_TITLE="Notice - Uncategorized Site" +GLOBAL_PROXY_WARNING_CONTINUE_XPATH="//a[contains(@href, 'accepted-Notify-Uncategorized')]" +# settings for vm to attach vvg too +GLOBAL_VVGSERVER_IMAGE = "Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)" +GLOBAL_VVGSERVER_FLAVOR = "4 GB General Purpose v1" +# dns info +GLOBAL_DNS_TRAFFIC_DURATION = "600"
\ No newline at end of file diff --git a/test/csit/tests/portal/testsuites/portal_VID.robot b/test/csit/tests/portal/testsuites/portal_VID.robot new file mode 100644 index 000000000..473a0464f --- /dev/null +++ b/test/csit/tests/portal/testsuites/portal_VID.robot @@ -0,0 +1,741 @@ +*** Settings *** +Documentation The main interface for interacting with Portal. It handles low level stuff like managing the selenium request library and Portal required steps +Library ExtendedSelenium2Library +Library RequestsClientCert +Library RequestsLibrary +Library UUID +Library DateTime +Resource ../global_properties.robot +Resource ../browser_setup.robot + +*** Variables *** +${PORTAL_ENV} /ECOMPPORTAL +${PORTAL_LOGIN_URL} ${GLOBAL_PORTAL_URL}${PORTAL_ENV}/login.htm +${PORTAL_HOME_PAGE} ${GLOBAL_PORTAL_URL}${PORTAL_ENV}/applicationsHome +${PORTAL_MICRO_ENDPOINT} ${GLOBAL_PORTAL_URL}${PORTAL_ENV}/commonWidgets +${PORTAL_HOME_URL} ${GLOBAL_PORTAL_URL}${PORTAL_ENV}/applicationsHome +${App_First_Name} appdemo +${App_Last_Name} demo +${App_Email_Address} appdemo@onap.com +${App_LoginID} appdemo +${App_Loginpwd} demo123456! +${App_LoginPwdCheck} demo123456! +${Sta_First_Name} stademo +${Sta_Last_Name} demo +${Sta_Email_Address} stademo@onap.com +${Sta_LoginID} stademo +${Sta_Loginpwd} demo123456! +${Sta_LoginPwdCheck} demo123456! +${Existing_User} portal +${PORTAL_HEALTH_CHECK_PATH} /ECOMPPORTAL/portalApi/healthCheck +#${Application} 'Virtual Infrastructure Deployment' +#${Application_tab} 'select-app-Virtual-Infrastructure-Deployment' +#${Application_dropdown} 'div-app-name-dropdown-Virtual-Infrastructure-Deployment' +#${Application_dropdown_select} 'div-app-name-Virtual-Infrastructure-Deployment' +${APPC_LOGIN_URL} http://104.130.74.99:8282/apidoc/explorer/index.html +${PORTAL_ASSETS_DIRECTORY} C:\\Users\\kk707x\\Downloads + + + + + +*** Keywords *** + +Run Portal Health Check + [Documentation] Runs Portal Health check + ${resp}= Run Portal Get Request ${PORTAL_HEALTH_CHECK_PATH} + Should Be Equal As Strings ${resp.status_code} 200 + Should Be Equal As Strings ${resp.json()['statusCode']} 200 +Run Portal Get Request + [Documentation] Runs Portal Get request + [Arguments] ${data_path} + ${session}= Create Session portal ${GLOBAL_PORTAL_URL} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + ${resp}= Get Request portal ${data_path} headers=${headers} + Log Received response from portal ${resp.text} + [Return] ${resp} + + +Portal admin Login To Portal GUI + [Documentation] Logs into Portal GUI + # Setup Browser Now being managed by test case + ##Setup Browser + Go To ${PORTAL_LOGIN_URL} + Maximize Browser Window + Set Selenium Speed ${GLOBAL_SELENIUM_DELAY} + Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} + Log Logging in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV} + # Handle Proxy Warning + Title Should Be Login + Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_PORTAL_ADMIN_USER} + Input Password xpath=//input[@ng-model='password'] ${GLOBAL_PORTAL_ADMIN_PWD} + Click Link xpath=//a[@id='loginBtn'] + Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Log Logged in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV} + +Portal admin Go To Portal HOME + [Documentation] Naviage to Portal Home + Go To ${PORTAL_HOME_URL} + Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + +Portal admin User Notifications + [Documentation] Naviage to User notification tab + Click Link xpath=//a[@id='parent-item-User-Notifications'] + Wait Until Element Is Visible xpath=//h1[@class='heading-page'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Click Button xpath=//button[@id='button-openAddNewApp'] + Click Button xpath=(//button[@id='undefined'])[1] + #Click Button xpath=//input[@id='datepicker-start'] + +Portal admin Add Application Admin New User + [Documentation] Naviage to Admins tab + Click Link xpath=//a[@title='Admins'] + Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Page Should Contain Admins + Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()'] + Click Button xpath=//button[@id='Create-New-User-button'] + Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${First_Name} + Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${Last_Name} + Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${Email_Address} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${LoginID} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${Loginpwd} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${LoginPwdCheck} + Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()'] + Click Button xpath=//button[@id='search-users-button-next'] + Click Button xpath=//input[@value='Select application'] + Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment')])[1] + #Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment')])[1] + Click Element xpath=(//li[contains(.,'Virtual Infrastructure Deployment')])[2] + Click Button xpath=//button[@id='div-updateAdminAppsRoles'] + Click Element xpath=//button[@id='admin-div-ok-button'] + Click Element xpath=//button[@id='div-confirm-ok-button'] + Click Link xpath=//a[@aria-label='Admins'] + Click Button xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Input Text xpath=//input[@id='input-table-search'] ${First_Name} + Element Text Should Be xpath=(//span[contains(.,'Test')] )[1] ${First_Name} + + + + +Portal admin Add Application Admin Exiting User + [Documentation] Naviage to Admins tab + Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Click Link xpath=//a[@title='Admins'] + Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Page Should Contain Admins + Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()'] + Input Text xpath=//input[@id='input-user-search'] ${Existing_User} + Click Button xpath=//button[@id='button-search-users'] + Click Element xpath=//span[@id='result-uuid-0'] + Click Button xpath=//button[@id='search-users-button-next'] + Click Button xpath=//input[@value='Select application'] + Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment' )])[1] + + Click Element xpath=(//li[contains(.,'Virtual Infrastructure Deployment' )])[2] + #Select From List xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment')])[1] Virtual Infrastructure Deployment + Click Button xpath=//button[@id='div-updateAdminAppsRoles'] + Click Element xpath=//button[@id='admin-div-ok-button'] + Click Element xpath=//button[@id='div-confirm-ok-button'] + Get Selenium Implicit Wait + Click Link xpath=//a[@aria-label='Admins'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment' )] + Input Text xpath=//input[@id='input-table-search'] ${Existing_User} + Element Text Should Be xpath=(//span[contains(.,'portal')])[1] ${Existing_User} + + +Portal admin Delete Application Admin Existing User + [Documentation] Naviage to Admins tab + Click Element xpath=(//span[contains(.,'portal')] )[1] + Click Element xpath=//*[@id='select-app-Virtual-Infrastructure-Deployment']/following::i[@id='i-delete-application'] + Click Element xpath=//button[@id='div-confirm-ok-button'] + Click Button xpath=//button[@id='div-updateAdminAppsRoles'] + Click Element xpath=//button[@id='admin-div-ok-button'] + #Is Element Visible xpath=(//span[contains(.,'Portal')] )[2] + #Is Element Visible xpath=(//*[contains(.,'Portal')] )[2] + Element Should Not Contain xpath=//*[@table-data='admins.adminsTableData'] portal + + +Portal admin Add Application admin User New user + [Documentation] Naviage to Users tab + Click Link xpath=//a[@title='Users'] + Page Should Contain Users + Click Button xpath=//button[@ng-click='users.openAddNewUserModal()'] + Click Button xpath=//button[@id='Create-New-User-button'] + Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${App_First_Name} + Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${App_Last_Name} + Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${App_Email_Address} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${App_LoginID} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${App_Loginpwd} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${App_LoginPwdCheck} + Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()'] + Click Button xpath=//button[@id='next-button'] + #Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment'] + Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment'] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox'] + Set Selenium Implicit Wait 3000 + Click Button xpath=//button[@id='new-user-save-button'] + Set Selenium Implicit Wait 3000 + Go To ${PORTAL_HOME_PAGE} + Click Link xpath=//a[@title='Users'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Input Text xpath=//input[@id='input-table-search'] ${App_First_Name} + Element Text Should Be xpath=(//span[contains(.,'appdemo')] )[1] ${App_First_Name} + + +Portal admin Add Standard User New user + [Documentation] Naviage to Users tab + Click Link xpath=//a[@title='Users'] + Page Should Contain Users + Click Button xpath=//button[@ng-click='users.openAddNewUserModal()'] + Click Button xpath=//button[@id='Create-New-User-button'] + Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${Sta_First_Name} + Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${Sta_Last_Name} + Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${Sta_Email_Address} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${Sta_LoginID} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${Sta_Loginpwd} + Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${Sta_LoginPwdCheck} + Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()'] + Click Button xpath=//button[@id='next-button'] + #Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment'] + Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment'] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox'] + Set Selenium Implicit Wait 3000 + Click Button xpath=//button[@id='new-user-save-button'] + Set Selenium Implicit Wait 3000 + Go To ${PORTAL_HOME_PAGE} + Click Link xpath=//a[@title='Users'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Input Text xpath=//input[@id='input-table-search'] ${Sta_First_Name} + Element Text Should Be xpath=(//span[contains(.,'appdemo')] )[1] ${Sta_First_Name} + + + +Portal admin Add Application Admin Exiting User -APPDEMO + [Documentation] Naviage to Admins tab + Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Click Link xpath=//a[@title='Admins'] + Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Page Should Contain Admins + Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()'] + Input Text xpath=//input[@id='input-user-search'] ${App_First_Name} + Click Button xpath=//button[@id='button-search-users'] + Click Element xpath=//span[@id='result-uuid-0'] + Click Button xpath=//button[@id='search-users-button-next'] + Click Button xpath=//input[@value='Select application'] + Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment' )])[1] + + Click Element xpath=(//li[contains(.,'Virtual Infrastructure Deployment' )])[2] + #Select From List xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment')])[1] Virtual Infrastructure Deployment + Click Button xpath=//button[@id='div-updateAdminAppsRoles'] + Click Element xpath=//button[@id='admin-div-ok-button'] + Click Element xpath=//button[@id='div-confirm-ok-button'] + Get Selenium Implicit Wait + Click Link xpath=//a[@aria-label='Admins'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment' )] + Input Text xpath=//input[@id='input-table-search'] ${App_First_Name} + Element Text Should Be xpath=(//span[contains(.,'appdemo')])[1] ${App_First_Name} + + + +Portal admin Add Standard User Existing user + [Documentation] Naviage to Users tab + Click Link xpath=//a[@title='Users'] + Page Should Contain Users + Click Button xpath=//button[@ng-click='users.openAddNewUserModal()'] + Input Text xpath=//input[@id='input-user-search'] ${Existing_User} + Click Button xpath=//button[@id='button-search-users'] + Click Element xpath=//span[@id='result-uuid-0'] + Click Button xpath=//button[@id='next-button'] + Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment'] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox'] + #Click Element xpath=//div[@id='div-app-name-dropdown-xDemo-App'] + #Click Element xpath=//div[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox'] + + Set Selenium Implicit Wait 3000 + Click Button xpath=//button[@id='new-user-save-button'] + Set Selenium Implicit Wait 3000 + #Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} + #Select From List xpath=//input[@value='Select application'] Virtual Infrastructure Deployment + #Click Link xpath=//a[@title='Users'] + #Page Should Contain Users + #Focus xpath=//input[@name='dropdown1'] + + Go To ${PORTAL_HOME_PAGE} + Click Link xpath=//a[@title='Users'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + #Click Element xpath=//li[contains(.,'XDemo App')] + Input Text xpath=//input[@id='input-table-search'] ${Existing_User} + Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User + + +Portal admin Edit Standard User Existing user + [Documentation] Naviage to Users tab + Click Element xpath=(.//*[@id='rowheader_t1_0'])[2] + Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment'] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox'] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='System-Administrator-checkbox'] + Set Selenium Implicit Wait 3000 + Click Button xpath=//button[@id='new-user-save-button'] + Set Selenium Implicit Wait 3000 + Page Should Contain Users + #Click Button xpath=//input[@id='dropdown1'] + #Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Input Text xpath=//input[@id='input-table-search'] ${Existing_User} + Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] System Administrator + + + Portal admin Delete Standard User Existing user + [Documentation] Naviage to Users tab + Click Element xpath=(.//*[@id='rowheader_t1_0'])[2] + Scroll Element Into View xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::*[@id='app-item-delete'][1] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::*[@id='app-item-delete'][1] + Click Element xpath=//button[@id='div-confirm-ok-button'] + Click Button xpath=//button[@id='new-user-save-button'] + #Input Text xpath=//input[@id='input-table-search'] ${Existing_User} + #Is Element Visible xpath=(//*[contains(.,'Portal')] )[2] + Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] portal + + + + +Functional Top Menu Get Access + [Documentation] Naviage to Support tab + Click Link xpath=//a[contains(.,'Support')] + Mouse Over xpath=//*[contains(text(),'Get Access')] + Click Link xpath=//a[contains(.,'Get Access')] + Element Text Should Be xpath=//h1[contains(.,'Get Access')] Get Access + + +Functional Top Menu Contact Us + [Documentation] Naviage to Support tab + Click Link xpath=//a[contains(.,'Support')] + Mouse Over xpath=//*[contains(text(),'Contact Us')] + Click Link xpath=//a[contains(.,'Contact Us')] + Element Text Should Be xpath=//h1[contains(.,'Contact Us')] Contact Us + Click Image xpath=//img[@alt='Onap Logo'] + + +Portal admin Edit Functional menu + [Documentation] Naviage to Edit Functional menu tab + Click Link xpath=//a[@title='Edit Functional Menu'] + Click Link xpath=.//*[@id='Manage']/div/a + Click Link xpath=.//*[@id='Design']/div/a + Click Link xpath=.//*[@id='Product_Design']/div/a + Open Context Menu xpath=//*[@id='Product_Design']/div/span + Click Link xpath=//a[@href='#add'] + Input Text xpath=//input[@id='input-title'] ONAP Test + #Input Text xpath=//input[@id='input-url'] http://google.com + Click Element xpath=//input[@id='select-app'] + Scroll Element Into View xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Input Text xpath=//input[@id='input-url'] http://google.com + Click Button xpath=//button[@id='button-save-continue'] + #Click Button xpath=//div[@title='Select Roles'] + Click Element xpath=//*[@id='app-select-Select Roles'] + Click Element xpath=//input[@id='Standard-User-checkbox'] + Click Element xpath=//button[@id='button-save-add'] + Click Image xpath=//img[@alt='Onap Logo'] + Set Selenium Implicit Wait 3000 + Click Link xpath=//a[contains(.,'Manage')] + Mouse Over xpath=//*[contains(text(),'Design')] + Set Selenium Implicit Wait 3000 + Element Text Should Be xpath=//a[contains(.,'ONAP Test')] ONAP Test + Set Selenium Implicit Wait 3000 + Click Link xpath=//a[@title='Edit Functional Menu'] + Click Link xpath=.//*[@id='Manage']/div/a + Click Link xpath=.//*[@id='Design']/div/a + Click Link xpath=.//*[@id='Product_Design']/div/a + Open Context Menu xpath=//*[@id='ONAP_Test'] + Click Link xpath=//a[@href='#delete'] + Set Selenium Implicit Wait 3000 + Click Element xpath=//button[@id='div-confirm-ok-button'] + Click Image xpath=//img[@alt='Onap Logo'] + Set Selenium Implicit Wait 3000 + Click Link xpath=//a[contains(.,'Manage')] + Mouse Over xpath=//*[contains(text(),'Design')] + Set Selenium Implicit Wait 3000 + Element Should Not Contain xpath=(.//*[contains(.,'Design')]/following::ul[1])[1] ONAP Test + + + + + + + + +Portal admin Microservice Onboarding + [Documentation] Naviage to Edit Functional menu tab + Click Link xpath=//a[@title='Microservice Onboarding'] + Click Button xpath=//button[@id='microservice-onboarding-button-add'] + Input Text xpath=//input[@name='name'] Test Microservice + Input Text xpath=//*[@name='desc'] Test + Click Element xpath=//input[@id='microservice-details-input-app'] + Scroll Element Into View xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Click Element xpath=//*[@name='desc'] + Input Text xpath=//input[@name='url'] ${PORTAL_MICRO_ENDPOINT} + Click Element xpath=//input[@id='microservice-details-input-security-type'] + Scroll Element Into View xpath=//li[contains(.,'Basic Authentication')] + Click Element xpath=//li[contains(.,'Basic Authentication')] + Input Text xpath=//input[@name='username'] ${GLOBAL_PORTAL_ADMIN_USER} + Input Text xpath=//input[@name='password'] ${GLOBAL_PORTAL_ADMIN_PWD} + Click Button xpath=//button[@id='microservice-details-save-button'] + #Table Column Should Contain xpath=//*[@table-data='serviceList'] 0 Test Microservice + Element Text Should Be xpath=//*[@table-data='serviceList'] Test Microservice + + + +Portal Admin Create Widget for All users + [Documentation] Naviage to Create Widget menu tab + ${WidgetAttachment}= Catenate ${PORTAL_ASSETS_DIRECTORY}\\widget_news.zip + Click Link xpath=//a[@title='Widget Onboarding'] + Click Button xpath=//button[@id='widget-onboarding-button-add'] + Input Text xpath=//*[@name='name'] ONAP-VID + Input Text xpath=//*[@name='desc'] ONAP VID + Click Element xpath=//*[@id='widgets-details-input-endpoint-url'] + Scroll Element Into View xpath=//li[contains(.,'Test Microservice')] + Click Element xpath=//li[contains(.,'Test Microservice')] + Click Element xpath=//*[contains(text(),'Allow all user access')]/preceding::input[@ng-model='widgetOnboardingDetails.widget.allUser'][1] + Choose File xpath=//input[@id='widget-onboarding-details-upload-file'] ${WidgetAttachment} + Click Button xpath=//button[@id='widgets-details-save-button'] + Wait Until Page Contains ONAP-VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Page Should Contain ONAP-VID + Set Selenium Implicit Wait 3000 + GO TO ${PORTAL_HOME_PAGE} + + +Portal Admin Delete Widget for All users + [Documentation] Naviage to delete Widget menu tab + #Wait Until Page Contains ONAP-VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + #Page Should Contain ONAP-VID + #Click Image xpath=//img[@alt='Onap Logo'] + Click Link xpath=//a[@title='Widget Onboarding'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-VID')]/followi + #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-VID')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Click Element xpath=(.//*[contains(text(),'ONAP-VID')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] + Click Element xpath=//button[@id='div-confirm-ok-button'] + Set Selenium Implicit Wait 3000 + Element Should Not Contain xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] ONAP-VID + #Is Element Visible xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] + #Table Column Should Contain .//*[@table-data='portalAdmin.portalAdminsTableData'] 0 ONAP-VID + #Set Selenium Implicit Wait 3000 + + +Portal Admin Create Widget for Application Roles + [Documentation] Naviage to Create Widget menu tab + ${WidgetAttachment}= Catenate ${PORTAL_ASSETS_DIRECTORY}\\widget_news.zip + Click Link xpath=//a[@title='Widget Onboarding'] + Click Button xpath=//button[@id='widget-onboarding-button-add'] + Input Text xpath=//*[@name='name'] ONAP-VID + Input Text xpath=//*[@name='desc'] ONAP VID + Click Element xpath=//*[@id='widgets-details-input-endpoint-url'] + Scroll Element Into View xpath=//li[contains(.,'Test Microservice')] + Click Element xpath=//li[contains(.,'Test Microservice')] + Click element xpath=//*[@id="app-select-Select Applications"] + click element xpath=//*[@id="Virtual-Infrastructure-Deployment-checkbox"] + Click element xpath=//*[@name='desc'] + click element xpath=//*[@id="app-select-Select Roles"] + click element xpath=//*[@id="Standard-User-checkbox"] + Click element xpath=//*[@name='desc'] + Scroll Element Into View xpath=//input[@id='widget-onboarding-details-upload-file'] + Choose File xpath=//input[@id='widget-onboarding-details-upload-file'] ${WidgetAttachment} + Click Button xpath=//button[@id='widgets-details-save-button'] + Click Image xpath=//img[@alt='Onap Logo'] + Set Selenium Implicit Wait 3000 + #Wait Until Page Contains ONAP-VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Click Link xpath=//a[@title='Widget Onboarding'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Page Should Contain ONAP-VID + Set Selenium Implicit Wait 3000 + GO TO ${PORTAL_HOME_PAGE} + + + + + Portal Admin Delete Widget for Application Roles + [Documentation] Naviage to delete Widget menu tab + #Wait Until Page Contains ONAP-VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + #Page Should Contain ONAP-VID + #Click Image xpath=//img[@alt='Onap Logo'] + Click Link xpath=//a[@title='Widget Onboarding'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-VID')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Click Element xpath=(.//*[contains(text(),'ONAP-VID')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] + Click Element xpath=//button[@id='div-confirm-ok-button'] + Set Selenium Implicit Wait 3000 + Element Should Not Contain xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] ONAP-VID + #Is Element Visible xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] + #Table Column Should Contain .//*[@table-data='portalAdmin.portalAdminsTableData'] 0 ONAP-VID + #Set Selenium Implicit Wait 3000 + + + +Portal Admin Edit Widget + [Documentation] Naviage to Home tab + #Mouse Over xpath=(//h3[contains(text(),'News')]/following::span[1])[1] + Click Element xpath=(//h3[contains(text(),'News')]/following::span[1])[1] + Set Browser Implicit Wait 8000 + #Wait Until Element Is Visible xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1] 60 + Mouse Over xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1] + Click Link xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1] + Input Text xpath=//input[@name='title'] ONAP_VID + Input Text xpath=//input[@name='url'] http://about.att.com/news/international.html + Input Text xpath=//input[@id='widget-input-add-order'] 5 + Click Link xpath=//a[contains(.,'Add New')] + Click Element xpath=//div[@id='close-button'] + Element Should Contain xpath=//*[@table-data='ignoredTableData'] ONAP_VID + Click Element xpath=.//div[contains(text(),'ONAP_VID')]/following::*[contains(text(),'5')][1]/following::div[@ng-click='remove($index);'][1] + Click Element xpath=//div[@id='confirmation-button-next'] + Element Should Not Contain xpath=//*[@table-data='ignoredTableData'] ONAP_VID + Click Link xpath=//a[@id='close-button'] + + + + +Portal Admin Broadcast Notifications + [Documentation] Portal Test Admin Broadcast Notifications + ${CurrentDay}= Get Current Date result_format=%m/%d/%Y + ${NextDay}= Get Current Date increment=24:00:00 result_format=%m/%d/%Y + ${CurrentDate}= Get Current Date result_format=%m%d%y%H%M + ${AdminBroadCastMsg}= catenate ONAP VID Broadcast Automation${CurrentDate} + Click Image xpath=//img[@alt='Onap Logo'] + Set Selenium Implicit Wait 3000 + Click Link xpath=//*[@id="parent-item-User-Notifications"] + Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10 + Click button xpath=//*[@id="button-openAddNewApp"] + Input Text xpath=//input[@id='datepicker-start'] ${CurrentDay} + Input Text xpath=//input[@id='datepicker-end'] ${NextDay} + Input Text xpath=//*[@id="add-notification-input-title"] ONAP VID Broadcast Automation + Input Text xpath=//*[@id="user-notif-input-message"] ${AdminBroadCastMsg} + click element xpath=//*[@id="button-notification-save"] + Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10 + click element xpath=//*[@id="megamenu-notification-button"] + click element xpath=//*[@id="notification-history-link"] + Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10 + Table Column Should Contain xpath=//*[@id="notification-history-table"] 2 ${AdminBroadCastMsg} + log ${AdminBroadCastMsg} + [Return] ${AdminBroadCastMsg} + +Portal Admin Category Notifications + [Documentation] Portal Admin Broadcast Notifications + ${CurrentDay}= Get Current Date result_format=%m/%d/%Y + ${NextDay}= Get Current Date increment=24:00:00 result_format=%m/%d/%Y + ${CurrentDate}= Get Current Date result_format=%m%d%y%H%M + ${AdminCategoryMsg}= catenate ONAP VID Category Automation${CurrentDate} + Click Link xpath=//a[@id='parent-item-Home'] + Click Link xpath=//*[@id="parent-item-User-Notifications"] + Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10 + Click button xpath=//*[@id="button-openAddNewApp"] + #Select Radio Button NO radio-button-no + Click Element //*[contains(text(),'Broadcast to All Categories')]/following::*[contains(text(),'No')][1] + #Select Radio Button //label[@class='radio'] radio-button-approles + Click Element xpath=//*[contains(text(),'Categories')]/following::*[contains(text(),'Application Roles')][1] + Click Element xpath=//*[contains(text(),'Virtual Infrastructure Deployment')]/preceding::input[@ng-model='member.isSelected'][1] + Input Text xpath=//input[@id='datepicker-start'] ${CurrentDay} + Input Text xpath=//input[@id='datepicker-end'] ${NextDay} + Input Text xpath=//*[@id="add-notification-input-title"] ONAP VID Category Automation + Input Text xpath=//*[@id='user-notif-input-message'] ${AdminCategoryMsg} + click element xpath=//*[@id="button-notification-save"] + Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10 + click element xpath=//*[@id="megamenu-notification-button"] + click element xpath=//*[@id="notification-history-link"] + Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10 + Table Column Should Contain xpath=//*[@id="notification-history-table"] 2 ${AdminCategoryMsg} + log ${AdminCategoryMsg} + [Return] ${AdminCategoryMsg} + + + Portal admin Logout from Portal GUI + [Documentation] Logout from Portal GUI + Click Element xpath=//div[@id='header-user-icon'] + Click Button xpath=//button[contains(.,'Log out')] + Title Should Be Login + + + +Application admin Login To Portal GUI + [Documentation] Logs into Portal GUI + # Setup Browser Now being managed by test case + ##Setup Browser + Go To ${PORTAL_LOGIN_URL} + Maximize Browser Window + Set Selenium Speed ${GLOBAL_SELENIUM_DELAY} + Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} + Log Logging in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV} + # Handle Proxy Warning + Title Should Be Login + Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_APP_ADMIN_USER} + Input Password xpath=//input[@ng-model='password'] ${GLOBAL_APP_ADMIN_PWD} + Click Link xpath=//a[@id='loginBtn'] + Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Log Logged in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV} + +Application Admin Navigation Application Link Tab + [Documentation] Logs into Portal GUI as application admin + Click Link xpath=//a[@id='parent-item-Home'] + Click Element xpath=.//h3[contains(text(),'Virtual Infras...')]/following::div[1] + Page Should Contain Welcome to VID + Click Element xpath=//i[@class='ion-close-round'] + Click Element xpath=(.//span[@id='tab-Home'])[1] + + +Application Admin Navigation Functional Menu + [Documentation] Logs into Portal GUI as application admin + Click Link xpath=//a[contains(.,'Manage')] + Mouse Over xpath=//*[contains(text(),'Technology Insertion')] + Click Link xpath= //*[contains(text(),'Infrastructure VNF Provisioning')] + Page Should Contain Welcome to VID + Click Element xpath=//i[@class='ion-close-round'] + Click Element xpath=(.//span[@id='tab-Home'])[1] + + +Application admin Add Standard User Existing user + [Documentation] Naviage to Users tab + Click Link xpath=//a[@title='Users'] + Page Should Contain Users + Click Button xpath=//button[@ng-click='users.openAddNewUserModal()'] + Input Text xpath=//input[@id='input-user-search'] ${Existing_User} + Click Button xpath=//button[@id='button-search-users'] + Click Element xpath=//span[@id='result-uuid-0'] + Click Button xpath=//button[@id='next-button'] + Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment'] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox'] + Set Selenium Implicit Wait 3000 + Click Button xpath=//button[@id='new-user-save-button'] + Set Selenium Implicit Wait 3000 + #Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} + #Select From List xpath=//input[@value='Select application'] Virtual Infrastructure Deployment + #Click Link xpath=//a[@title='Users'] + #Page Should Contain Users + Go To ${PORTAL_HOME_PAGE} + Set Selenium Implicit Wait 3000 + Click Link xpath=//a[@title='Users'] + Click Element xpath=//input[@id='dropdown1'] + Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Input Text xpath=//input[@id='input-table-search'] ${Existing_User} + Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User + + +Application admin Edit Standard User Existing user + [Documentation] Naviage to Users tab + Click Element xpath=(.//*[@id='rowheader_t1_0'])[2] + Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment'] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox'] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='System-Administrator-checkbox'] + Set Selenium Implicit Wait 3000 + Click Button xpath=//button[@id='new-user-save-button'] + Set Selenium Implicit Wait 3000 + Page Should Contain Users + #Click Button xpath=//input[@id='dropdown1'] + #Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')] + Input Text xpath=//input[@id='input-table-search'] ${Existing_User} + Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] System Administrator + + +Application admin Delete Standard User Existing user + [Documentation] Naviage to Users tab + Click Element xpath=(.//*[@id='rowheader_t1_0'])[2] + Scroll Element Into View xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::*[@id='app-item-delete'][1] + Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::*[@id='app-item-delete'][1] + Click Element xpath=//button[@id='div-confirm-ok-button'] + Click Button xpath=//button[@id='new-user-save-button'] + #Input Text xpath=//input[@id='input-table-search'] ${Existing_User} + #Is Element Visible xpath=(//*[contains(.,'Portal')] )[2] + Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] Portal + + + +Application admin Logout from Portal GUI + [Documentation] Logout from Portal GUI + Click Element xpath=//div[@id='header-user-icon'] + Click Button xpath=//button[contains(.,'Log out')] + #Confirm Action + Title Should Be Login + + +Standared user Login To Portal GUI + [Documentation] Logs into Portal GUI + # Setup Browser Now being managed by test case + ##Setup Browser + Go To ${PORTAL_LOGIN_URL} + Maximize Browser Window + Set Selenium Speed ${GLOBAL_SELENIUM_DELAY} + Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} + Log Logging in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV} + # Handle Proxy Warning + Title Should Be Login + Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_STA_USER_USER} + Input Password xpath=//input[@ng-model='password'] ${GLOBAL_STA_USER_PWD} + Click Link xpath=//a[@id='loginBtn'] + Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Log Logged in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV} + + +Standared user Navigation Application Link Tab + [Documentation] Logs into Portal GUI as application admin + #Portal admin Go To Portal HOME + Click Element xpath=.//h3[contains(text(),'Virtual Infras...')]/following::div[1] + Page Should Contain Welcome to VID + Click Element xpath=(.//span[@id='tab-Home'])[1] + + +Standared user Navigation Functional Menu + [Documentation] Logs into Portal GUI as application admin + Click Link xpath=//a[contains(.,'Manage')] + Mouse Over xpath=//*[contains(text(),'Technology Insertion')] + Click Link xpath= //*[contains(text(),'Infrastructure VNF Provisioning')] + Page Should Contain Welcome to VID + Click Element xpath=(.//span[@id='tab-Home'])[1] + + + +Standared user Broadcast Notifications + [Documentation] Logs into Portal GUI as application admin + [Arguments] ${AdminBroadCastMsg} + Click element xpath=//*[@id='megamenu-notification-button'] + Click element xpath=//*[@id='notification-history-link'] + Wait until Element is visible xpath=//*[@id='app-title'] timeout=10 + Table Column Should Contain xpath=//*[@id='notification-history-table'] 2 ${AdminBroadCastMsg} + log ${AdminBroadCastMsg} + + +Standared user Category Notifications + [Documentation] Logs into Portal GUI as application admin + [Arguments] ${AdminCategoryMsg} + #click element xpath=//*[@id='megamenu-notification-button'] + #click element xpath=//*[@id="notification-history-link"] + Wait until Element is visible xpath=//*[@id='app-title'] timeout=10 + Table Column Should Contain xpath=//*[@id='notification-history-table'] 2 ${AdminCategoryMsg} + log ${AdminCategoryMsg} + + +Standared user Logout from Portal GUI + [Documentation] Logout from Portal GUI + Click Element xpath=//div[@id='header-user-icon'] + Click Button xpath=//button[contains(.,'Log out')] + #Confirm Action + Title Should Be Login + + + + +Tear Down + [Documentation] Close all browsers + Close All Browsers + + + + + + + diff --git a/test/csit/tests/portal/testsuites/test1.robot b/test/csit/tests/portal/testsuites/test1.robot new file mode 100644 index 000000000..c19655892 --- /dev/null +++ b/test/csit/tests/portal/testsuites/test1.robot @@ -0,0 +1,75 @@ +*** Settings *** +Documentation This is RobotFrame work script +Library ExtendedSelenium2Library +Library OperatingSystem +Resource ../resources/browser_setup.robot +#Resource ../resources/Portal/portal_int_par.robot +Resource ../resources/Portal/portal_VID.robot +#Resource ../resources/Portal/portal_SDC.robot + + +*** Variables *** + + +*** Test Cases *** + +Portal Health Check + Run Portal Health Check + + +Portal Admin functionality + [Documentation] ONAP Portal Admin functionality test + Setup Browser + Portal admin Login To Portal GUI + Portal admin Microservice Onboarding + Portal Admin Create Widget for All users + Portal Admin Delete Widget for All users + Portal Admin Create Widget for Application Roles + Portal Admin Delete Widget for Application Roles + Portal admin Add Application admin User New user + Portal admin Add Standard User New user + Portal admin Add Application Admin Exiting User -APPDEMO + Portal admin Add Application Admin Exiting User + Portal admin Delete Application Admin Existing User + Portal Admin Delete Widget for All users + Portal admin Add Standard User Existing user + Portal admin Edit Standard User Existing user + Portal admin Delete Standard User Existing user + Functional Top Menu Get Access + Functional Top Menu Contact Us + Portal admin Edit Functional menu + ${AdminBroadCastMsg}= Portal Admin Broadcast Notifications + set global variable ${AdminBroadCastMsg} + ${AdminCategoryMsg}= Portal Admin Category Notifications + set global variable ${AdminCategoryMsg} + Portal admin Logout from Portal GUI + + +Application Admin functionality + [Documentation] ONAP Application Admin functionality test + Application admin Login To Portal GUI +# Application Admin Navigation Application Link Tab +# Application Admin Navigation Functional Menu + Application admin Add Standard User Existing user + Application admin Edit Standard User Existing user + Application admin Delete Standard User Existing user + Application admin Logout from Portal GUI + +Standared User functionality + [Documentation] ONAP Standared User functionality test + Standared user Login To Portal GUI +# Standared user Navigation Application Link Tab +# Standared user Navigation Functional Menu + Standared user Broadcast Notifications ${AdminBroadCastMsg} + Standared user Category Notifications ${AdminCategoryMsg} + +Teardown + [Documentation] Close All Open browsers + Close All Browsers + + + + + + +*** Keywords *** diff --git a/test/csit/tests/so/sanity-check/data/createService.json b/test/csit/tests/so/sanity-check/data/createService.json new file mode 100644 index 000000000..3ff629ab5 --- /dev/null +++ b/test/csit/tests/so/sanity-check/data/createService.json @@ -0,0 +1,29 @@ +{ +"requestDetails": { +"modelInfo": { +"modelType": "", +"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff", +"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe", +"modelName": "Test", +"modelVersion": "1.0" +}, +"subscriberInfo": { +"globalSubscriberId": "{some subscriber id}", +"subscriberName": "{some subscriber name}" +}, +"requestInfo": { +"instanceName": "MSO_TEST", +"source": "VID", +"suppressRollback": true +}, +"requestParameters": { +"subscriptionServiceType": "MOG", +"userParams": [ +{ +"name": "someUserParam", +"value": "someValue" +} +] +} +} +}
\ No newline at end of file diff --git a/test/csit/tests/so/sanity-check/data/createService_null_input.json b/test/csit/tests/so/sanity-check/data/createService_null_input.json new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/test/csit/tests/so/sanity-check/data/createService_null_input.json diff --git a/test/csit/tests/so/sanity-check/data/createVnf.json b/test/csit/tests/so/sanity-check/data/createVnf.json new file mode 100644 index 000000000..7ea3d2475 --- /dev/null +++ b/test/csit/tests/so/sanity-check/data/createVnf.json @@ -0,0 +1,35 @@ +{ + "requestDetails": { + "modelInfo": { + "modelType": "", + "modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff", + "modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe", + "modelName": "vSAMP12", + "modelVersion": "1.0", + "modelCustomizationName": "vSAMP12 1" + }, + "cloudConfiguration": { + "lcpCloudRegionId": "mdt1", + "tenantId": "88a6ca3ee0394ade9403f075db23167e" + }, + "requestInfo": { + "instanceName": "MSOTEST103a", + "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "source": "VID", + "suppressRollback": false + }, + "relatedInstanceList": [{ + "relatedInstance": { + "instanceId": " {serviceInstanceId} ", + "modelInfo": { + "modelType": "service", + "modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff", + "modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe", + "modelName": " {parent service model name} ", + "modelVersion": "1.0" + } + } + }], + "requestParameters": {} + } +} diff --git a/test/csit/tests/so/sanity-check/data/deleteService.json b/test/csit/tests/so/sanity-check/data/deleteService.json new file mode 100644 index 000000000..593fdd30f --- /dev/null +++ b/test/csit/tests/so/sanity-check/data/deleteService.json @@ -0,0 +1,13 @@ +{ +"requestDetails": { +"modelInfo": { +"modelType": "", +"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff", +"modelName": " Test ", +"modelVersion": "1.0" +}, +"requestInfo": { +"source": "VID" +} +} +} diff --git a/test/csit/tests/so/sanity-check/data/deleteVnf.json b/test/csit/tests/so/sanity-check/data/deleteVnf.json new file mode 100644 index 000000000..f326a12db --- /dev/null +++ b/test/csit/tests/so/sanity-check/data/deleteVnf.json @@ -0,0 +1,20 @@ +{ +"requestDetails": { +"modelInfo": { +"modelType": "", +"modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff", +"modelName": "vSAMP12", +"modelVersion": "1" +}, +"cloudConfiguration": { +"lcpCloudRegionId": "mdt1", +"tenantId": "88a6ca3ee0394ade9403f075db23167e" +}, +"requestInfo": { +"source": "VID" +}, +"requestParameters": { +"userParams": [] +} +} +} diff --git a/test/csit/tests/so/sanity-check/sanity_test_so.robot b/test/csit/tests/so/sanity-check/sanity_test_so.robot index e53b46c4c..2e05c50f1 100644 --- a/test/csit/tests/so/sanity-check/sanity_test_so.robot +++ b/test/csit/tests/so/sanity-check/sanity_test_so.robot @@ -1,25 +1,71 @@ -*** settings *** -Resource ../../common.robot +*** Settings *** Library Collections Library RequestsLibrary Library OperatingSystem Library json -Library HttpLibrary.HTTP *** Variables *** -@{return_ok_list}= 200 201 202 -${queryservice_url} /api/so/v1/services/5212b49f-fe70-414f-9519-88bec35b3190 -${service_id} -${operation_id} +${MESSAGE} Hello, world! + *** Test Cases *** -soQueryServiceFuncTest - [Documentation] query single service rest test - ${headers} Create Dictionary Content-Type=application/json Accept=application/json - Create Session web_session http://${MSB_IP} headers=${headers} - ${resp}= Get Request web_session ${queryservice_url} - ${responese_code}= Convert To String ${resp.status_code} - List Should Contain Value ${return_ok_list} ${responese_code} - ${response_json} json.loads ${resp.content} - ${serviceName}= Convert To String ${response_json['serviceName']} - Should Be Equal ${serviceName} test_so +Create ServiceInstance for invalid input + Create Session refrepo http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}createService.json + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${resp}= Post Request refrepo /ecomp/mso/infra/serviceInstances/v2 data=${data} headers=${headers} + Run Keyword If '${resp.status_code}' == '400' or '${resp.status_code}' == '404' or '${resp.status_code}' == '405' log to console \nexecuted with expected result + +Create ServiceInstance for invalid user + Create Session refrepo http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}createService.json + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQxOnBhc3N3b3JkMTI= Content-Type=application/json Accept=application/json + ${resp}= Post Request refrepo /ecomp/mso/infra/serviceInstances/v2 data=${data} headers=${headers} + Run Keyword If '${resp.status_code}' == '400' or '${resp.status_code}' == '404' or '${resp.status_code}' == '405' log to console \nexecuted with expected result + +Delete ServiceInstance for invalid input + Create Session refrepo http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}deleteService.json + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${resp}= Delete Request refrepo /ecomp/mso/infra/serviceInstances/v2/ff305d54-75b4-431b-adb2-eb6b9e5ff000 data=${data} headers=${headers} + Run Keyword If '${resp.status_code}' == '400' or '${resp.status_code}' == '404' or '${resp.status_code}' == '405' log to console \nexecuted with expected result + +Delete ServiceInstance for invalid user + Create Session refrepo http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}deleteService.json + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQxOnBhc3N3b3JkMTI== Content-Type=application/json Accept=application/json + ${resp}= Delete Request refrepo /ecomp/mso/infra/serviceInstances/v2/ff305d54-75b4-431b-adb2-eb6b9e5ff000 data=${data} headers=${headers} + Run Keyword If '${resp.status_code}' == '400' or '${resp.status_code}' == '404' or '${resp.status_code}' == '405' log to console \nexecuted with expected result + +SO ServiceInstance health check + Create Session refrepo http://${REPO_IP}:8080 + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${resp}= Get Request refrepo /ecomp/mso/infra/orchestrationRequests/v2/rq1234d1-5a33-55df-13ab-12abad84e333 headers=${headers} + Should Not Contain ${resp.content} null + +Create VnfInstance for invalid input + Create Session refrepo http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}createVnf.json + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${resp}= Post Request refrepo /ecomp/mso/infra/serviceInstances/v2/ff305d54-75b4-431b-adb2-eb6b9e5ff000/vnfs data=${data} headers=${headers} + Run Keyword If '${resp.status_code}' == '400' or '${resp.status_code}' == '404' or '${resp.status_code}' == '405' log to console \nexecuted with expected result + +Create VnfInstance for invalid credential + Create Session refrepo http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}createVnf.json + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQxOnBhc3N3b3JkMTI= Content-Type=application/json Accept=application/json + ${resp}= Post Request refrepo /ecomp/mso/infra/serviceInstances/v2/ff305d54-75b4-431b-adb2-eb6b9e5ff000/vnfs data=${data} headers=${headers} + Run Keyword If '${resp.status_code}' == '400' or '${resp.status_code}' == '404' or '${resp.status_code}' == '405' log to console \nexecuted with expected result + +Delete VnfInstance for invalid input + Create Session refrepo http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}deleteVnf.json + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${resp}= Delete Request refrepo /ecomp/mso/infra/serviceInstances/v2/ff305d54-75b4-431b-adb2-eb6b9e5ff000/vnfs/aca51b0a-710d-4155-bc7c-7cef19d9a94e data=${data} headers=${headers} + Run Keyword If '${resp.status_code}' == '400' or '${resp.status_code}' == '404' or '${resp.status_code}' == '405' log to console \nexecuted with expected result + +Get Orchestration Requests + Create Session refrepo http://${REPO_IP}:8080 + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json + ${resp}= Get Request refrepo /ecomp/mso/infra/orchestrationRequests/v2 headers=${headers} + Should Not Contain ${resp.content} null
\ No newline at end of file diff --git a/test/csit/tests/vfc/gvnfm-vnflcm/test.robot b/test/csit/tests/vfc/gvnfm-vnflcm/test.robot new file mode 100644 index 000000000..47ff25f53 --- /dev/null +++ b/test/csit/tests/vfc/gvnfm-vnflcm/test.robot @@ -0,0 +1,21 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/vnflcm/v1/swagger.json + +*** Test Cases *** +VnflcmSwaggerTest + [Documentation] query swagger info vnflcm + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFLCM_IP}:8801 headers=${headers} + ${resp}= Get Request web_session ${queryswagger_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 diff --git a/test/csit/tests/vfc/gvnfm-vnfmgr/test.robot b/test/csit/tests/vfc/gvnfm-vnfmgr/test.robot new file mode 100644 index 000000000..90392c982 --- /dev/null +++ b/test/csit/tests/vfc/gvnfm-vnfmgr/test.robot @@ -0,0 +1,14 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/vnfmgr/v1/swagger.json + +*** Test Cases *** +NslcmSwaggerTest + [Documentation] query vnfmgr swagger info rest test + Should Be Equal 2.0 2.0 diff --git a/test/csit/tests/vfc/gvnfm-vnfres/test.robot b/test/csit/tests/vfc/gvnfm-vnfres/test.robot new file mode 100644 index 000000000..fb87435be --- /dev/null +++ b/test/csit/tests/vfc/gvnfm-vnfres/test.robot @@ -0,0 +1,21 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/vnfres/v1/swagger.json + +*** Test Cases *** +VnfresSwaggerTest + [Documentation] query vnfres swagger info rest test + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFRES_IP}:8802 headers=${headers} + ${resp}= Get Request web_session ${queryswagger_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 diff --git a/test/csit/tests/vfc/nfvo-catalog/test.robot b/test/csit/tests/vfc/nfvo-catalog/test.robot new file mode 100644 index 000000000..99dff9bd2 --- /dev/null +++ b/test/csit/tests/vfc/nfvo-catalog/test.robot @@ -0,0 +1,19 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/catalog/v1/swagger.json +${queryVNFPackage_url} /api/catalog/v1/vnfpackages +${queryNSPackages_url} /api/catalog/v1/nspackages + +*** Test Cases *** +GetVNFPackages + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${CATALOG_IP}:8806 headers=${headers} + ${resp}= Get Request web_session ${queryVNFPackage_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} diff --git a/test/csit/tests/vfc/nfvo-driver-ems/test.robot b/test/csit/tests/vfc/nfvo-driver-ems/test.robot new file mode 100644 index 000000000..a35a54288 --- /dev/null +++ b/test/csit/tests/vfc/nfvo-driver-ems/test.robot @@ -0,0 +1,15 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/emsdriver/v1/swagger + +*** Test Cases *** +EMSDriverSwaggerTest + [Documentation] query swagger info of emsdriver + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Should Be Equal 2.0 2.0 diff --git a/test/csit/tests/vfc/nfvo-driver-gvnfm/gvnfmdriver.robot b/test/csit/tests/vfc/nfvo-driver-gvnfm/gvnfmdriver.robot new file mode 100644 index 000000000..e7dd612a7 --- /dev/null +++ b/test/csit/tests/vfc/nfvo-driver-gvnfm/gvnfmdriver.robot @@ -0,0 +1,21 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/gvnfmdriver/v1/swagger.json + +*** Test Cases *** +VnfresSwaggerTest + [Documentation] query gvnfmdriver swagger info rest test + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${GVNFMDRIVER_IP}:8484 headers=${headers} + ${resp}= Get Request web_session ${queryswagger_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 diff --git a/test/csit/tests/vfc/nfvo-driver-gvnfm/jujudriver.robot b/test/csit/tests/vfc/nfvo-driver-gvnfm/jujudriver.robot new file mode 100644 index 000000000..d571ee91f --- /dev/null +++ b/test/csit/tests/vfc/nfvo-driver-gvnfm/jujudriver.robot @@ -0,0 +1,16 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library simplejson +Library OperatingSystem +Library json +Library HttpLibrary.HTTP + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /openoapi/jujuvnfm/v1/swagger.json + +*** Test Cases *** +SwaggerFuncTest + [Documentation] query swagger info rest test + Should Be Equal 2.0 2.0 diff --git a/test/csit/tests/vfc/nfvo-driver-sfc/test.robot b/test/csit/tests/vfc/nfvo-driver-sfc/test.robot new file mode 100644 index 000000000..131159432 --- /dev/null +++ b/test/csit/tests/vfc/nfvo-driver-sfc/test.robot @@ -0,0 +1,21 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/ztesdncdriver/v1/swagger + +*** Test Cases *** +ZteSdncDriverSwaggerTest + [Documentation] query swagger info of ztesdncdriver + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${SFC_DRV_IP}:8411 headers=${headers} + ${resp}= Get Request web_session ${queryswagger_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 diff --git a/test/csit/tests/vfc/nfvo-driver-svnfm/huawei.robot b/test/csit/tests/vfc/nfvo-driver-svnfm/huawei.robot new file mode 100644 index 000000000..3277e7782 --- /dev/null +++ b/test/csit/tests/vfc/nfvo-driver-svnfm/huawei.robot @@ -0,0 +1,16 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library simplejson +Library OperatingSystem +Library json +Library HttpLibrary.HTTP + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/hwvnfm/v1/swagger.json + +*** Test Cases *** +SwaggerFuncTest + [Documentation] query swagger info rest test + Should Be Equal 2.0 2.0 diff --git a/test/csit/tests/vfc/nfvo-driver-svnfm/ztevmanager.robot b/test/csit/tests/vfc/nfvo-driver-svnfm/ztevmanager.robot new file mode 100644 index 000000000..7d7d305b1 --- /dev/null +++ b/test/csit/tests/vfc/nfvo-driver-svnfm/ztevmanager.robot @@ -0,0 +1,21 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/ztevmanagerdriver/v1/swagger.json + +*** Test Cases *** +VnfresSwaggerTest + [Documentation] query ztevmanagerdriver swagger info rest test + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${ZTEVMANAGERDRIVER_IP}:8410 headers=${headers} + ${resp}= Get Request web_session ${queryswagger_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 diff --git a/test/csit/tests/vfc/nfvo-lcm/jsoninput/create_ns.json b/test/csit/tests/vfc/nfvo-lcm/jsoninput/create_ns.json new file mode 100644 index 000000000..bb39364bb --- /dev/null +++ b/test/csit/tests/vfc/nfvo-lcm/jsoninput/create_ns.json @@ -0,0 +1,6 @@ +{ + "nsName": "ns1", + "csarId": "123", + "description": "ns1 desc", + "test": "test" +}
\ No newline at end of file diff --git a/test/csit/tests/vfc/nfvo-lcm/test.robot b/test/csit/tests/vfc/nfvo-lcm/test.robot index 907558f0c..44d23292e 100644 --- a/test/csit/tests/vfc/nfvo-lcm/test.robot +++ b/test/csit/tests/vfc/nfvo-lcm/test.robot @@ -1,14 +1,64 @@ *** settings *** +Resource ../../common.robot Library Collections Library RequestsLibrary Library OperatingSystem Library json +Library HttpLibrary.HTTP *** Variables *** -@{return_ok_list}= 200 201 202 +@{return_ok_list}= 200 201 202 204 ${queryswagger_url} /api/nslcm/v1/swagger.json +${create_ns_url} /api/nslcm/v1/ns +${delete_ns_url} /api/nslcm/v1/ns + +#json files +${create_ns_json} ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/create_ns.json + +#global variables +${nsInstId} *** Test Cases *** NslcmSwaggerTest - [Documentation] query nslcm swagger info rest test - Should Be Equal 2.0 2.0 + [Documentation] query swagger info of nslcm + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${NSLCM_IP}:8403 headers=${headers} + ${resp}= Get Request web_session ${queryswagger_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 + +NslcmSwaggerByMSBTest + [Documentation] query swagger info of nslcm by MSB + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${MSB_IAG_IP}:80 headers=${headers} + ${resp}= Get Request web_session ${queryswagger_url} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${swagger_version}= Convert To String ${response_json['swagger']} + Should Be Equal ${swagger_version} 2.0 + +CreateNSTest + [Documentation] Create NS function test + ${json_value}= json_from_file ${create_ns_json} + ${json_string}= string_from_json ${json_value} + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${MSB_IAG_IP}:80 headers=${headers} + Set Request Body ${json_string} + ${resp}= Post Request web_session ${create_ns_url} ${json_string} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${nsInstId}= Convert To String ${response_json['nsInstanceId']} + Set Global Variable ${nsInstId} + +DeleteNS Test + [Documentation] Delete NS function test + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${MSB_IAG_IP}:80 headers=${headers} + ${resp}= Delete Request web_session ${delete_ns_url}/${nsInstId} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} diff --git a/test/csit/tests/vfc/nfvo-resmanagement/test.robot b/test/csit/tests/vfc/nfvo-resmanagement/test.robot new file mode 100644 index 000000000..996cf5845 --- /dev/null +++ b/test/csit/tests/vfc/nfvo-resmanagement/test.robot @@ -0,0 +1,16 @@ +*** settings *** +Library Collections +Library RequestsLibrary +Library simplejson +Library OperatingSystem +Library json +Library HttpLibrary.HTTP + +*** Variables *** +@{return_ok_list}= 200 201 202 +${queryswagger_url} /api/resmgr/v1/swagger.json + +*** Test Cases *** +SwaggerFuncTest + [Documentation] query swagger info rest test + Should Be Equal 2.0 2.0 |