From 889b36a944b76340e61e974552372afb7be77c8a Mon Sep 17 00:00:00 2001 From: sigsbee Date: Fri, 29 Jun 2018 15:01:26 +0800 Subject: [PATCH] Add data verify robot case after upgrade (#5207) Add data verify e2e case after upgrade --- tests/resources/Harbor-Pages/Verify.robot | 150 ++++++++++++++++++ tests/resources/Util.robot | 2 + .../Group13-Upgrade/Verifydata.robot | 30 ++++ 3 files changed, 182 insertions(+) create mode 100644 tests/resources/Harbor-Pages/Verify.robot create mode 100644 tests/robot-cases/Group13-Upgrade/Verifydata.robot diff --git a/tests/resources/Harbor-Pages/Verify.robot b/tests/resources/Harbor-Pages/Verify.robot new file mode 100644 index 000000000..83a1f4ccc --- /dev/null +++ b/tests/resources/Harbor-Pages/Verify.robot @@ -0,0 +1,150 @@ +*** settings *** +Library JSONLibrary +Resource ../../resources/Util.robot + +*** Keywords *** +#for jsonpath refer to http://goessner.net/articles/JsonPath/ or https://nottyo.github.io/robotframework-jsonlibrary/JSONLibrary.html + +${json}= Load Json From File testdata.json + +Verify User + @{user}= Get Value From Json ${json} $.users..name + #verify user exist + Sign In Harbor ${HARBOR_URL} %{HARBOR_ADMIN} %{HARBOR_PASSWORD} + Switch To User Tag + :For ${user} In @{user} + \ Page Should Contain ${user} + Logout Harbor + #verify user can login + :For ${user} In @{user} + \ Sign In Harbor ${HARBOR_URL} ${user} %{HARBOR_PASSWORD} + \ Logout Harbor + +Verify Project + @{project}= Get Value From Json ${json} $.projects.[*].name + Sign In Harbor ${HARBOR_URL} %{HARBOR_ADMIN} %{HARBOR_PASSWORD} + :For ${project} In @{project} + \ Page Should Contain ${project} + +Verify Image Tag + @{project}= Get Value From Json ${json} $.projects.[*].name + Sign In Harbor ${HARBOR_URL} %{HARBOR_ADMIN} %{HARBOR_PASSWORD} + :For ${project} In @{projects} + \ Go Into Project ${project} + \ @{repo}= Get Value From Json ${json} $.projects[?(@name=${project})]..repo..name + \ @{tag}= Get Value From Json ${json} $.projects[?(@name=${project})]..repo..tag + \ :For ${repo} In @{repo} + \ \ Go Into Repo ${repo} + \ \ :For ${tag} In @{tag} + \ \ \ Page Should Contain ${tag} + \ \ \ Back To Projects + +Verify Member Exist + @{project}= Get Value From Json ${json} $.projects.[*].name + Sign In Harbor ${HARBOR_URL} %{HARBOR_ADMIN} %{HAROBR_PASSWORD} + :For ${project} In @{project} + \ Go Into Project ${projet} + \ Switch To Member + \ @{members}= Get Value From Json ${json} $.projects[?(@name=${project})].member..name + \ :For ${member} In @{members} + \ \ Page Should Contain ${member} + \ Back To Projects + +Verify User System Admin Role + @{user}= Get Value From Json ${json} $.admin..name + :For ${user} in @{user} + \ Sign In Harbor ${HARBOR_URL} ${user} %{HARBOR_PASSWORD} + \ Page Should Contain Administration + \ Logout Harbor + +Verify System Label + @{label}= Get Value From Json ${json} $..syslabel..name + Sign In Harbor ${HAROBR_URL} %{HAROBR_ADMIN} %{HAROBR_PASSWORD} + Switch To Configure + Switch To System Labels + :For ${label} In @{label} + \ Page Should Contain ${label} + +Verify Project Label + @{project}= Get Value From Json ${json} $.peoject.[*].name + Sign In Harbor ${HAROBR_URL} %{HAROBR_ADMIN} %{HAROBR_PASSWORD} + :For ${project} In @{project} + \ Go Into Project ${project} + \ Switch To Project Label + \ @{projectlabel}= Get Value From Json ${json} $.projects[?(@.name=${project})]..labels..name + \ :For ${label} In @{projectlabel} + \ \ Page Should Contain ${projectlabel} + \ Back To Projects + +Verify Endpoint + @{endpoint}= Get Value From Json ${json} $.endpoint..name + Sign In Harbor ${HAROBR_URL} %{HAROBR_ADMIN} %{HAROBR_PASSWORD} + Switch To Registries + :For ${endpoint} In @{endpoint} + \ Page Should Contain ${endpoint} + +Verify Replicationrule + @{replicationrule}= Get Value From Json ${json} $.replicationrule..name + Sign In Harbor ${HAROBR_URL} %{HAROBR_ADMIN} %{HAROBR_PASSWORD} + Switch To System Replication + :For ${replicationrule} In @{replicationrule} + \ Page Should Contain ${replicationrule} + +Verify Project Setting + @{projects}= Get Value From Json ${json} $.projects.[*].name + :For ${project} In @{projects} + \ ${public}= Get Value From Json ${json} $.projects[?(@.name=${projectname})].accesslevel + \ ${contenttrust}= Get Value From Json ${json} $.projects[?(@.name=${projectname})]..enable_content_trust + \ ${preventrunning}= Get Value From Json ${json} $.projects[?(@.name=${projectname})]..prevent_vulnerable_images_from_running + \ ${scanonpush}= Get Value From Json ${json} $.projects[?(@.name=${projectname})]..automatically_scan_images_on_push + \ Sign In Harbor ${HAROBR_URL} %{HAROBR_ADMIN} %{HAROBR_PASSWORD} + \ Go Into Project ${project} + \ Goto Project Config + \ Run Keyword If ${public} == "public" + \ Checkbox Should Be Checked //clr-checkbox[@name='public']//label + \ Else + \ Checkbox Should Not Be Checked //clr-checkbox[@name='public']//label + \ Run Keyword If ${contenttrust} == "true" + \ Checkbox Should Be Checked //clr-checkbox[@name='content-trust']//label + \ Else + \ Checkbox Should Not Be Checked //clr-checkbox[@name='content-trust']//label + \ Run Keyword If ${preventrunning} == "true" + \ Checkbox Should Be Checked //clr-checkbox[@name='prevent-vulenrability-image']//label + \ #verify level?page should not contain disabled element + \ Else + \ Checkbox Should Not Be Checked //clr-checkbox[@name='prevent-vulenrability-image']//label + \ #Page Should Contain a disabled element + \ Run Keyword If ${scanonpush} == "true" + \ Checkbox Should Be Checked //clr-checkbox[@name='scan-image-on-push']//label + \ Else + \ Checkbox Should Not Be Checked //clr-checkbox[@name='scan-image-on-push']//label + \ Back To Projects + +Verify System Setting + ${authtype}= Get Value From Json ${json} $.configuration.authmode + ${creation}= Get Value From Json ${json} $.configuration..projectcreation + ${selfreg}= Get Value From Json ${json} $.configuration..selfreg + ${emailserver}= Get Value From Json ${json} $.configuration..emailserver + ${emailport}= Get Value From Json ${json} $.configuration..emailport + ${emailuser}= Get Value From Json ${json} $.configuration..emailuser + ${emailfrom}= Get Value From Json ${json} $.configuration..emailfrom + ${token}= Get Value From Json ${json} $.configuration..token + ${scanschedule}= Get Value From Json ${json} $.configuration..scanall + Sign In Harbor ${HARBOR_URL} %{HARBOR_ADMIN} %{HARBOR_PASSWORD} + Switch To Configure + Page Should Contain ${authtype} + Run Keyword If ${selfreg} == "True" + Checkbox Should Be Checked //clr-checkbox[@id='selfReg']//label + Else + Checkbox Should Not Be Checked //clr-checkbox[@id='selfReg']//label + Page Should Contain ${creation} + Switch To Email + Page Should Contain ${emailserver} + Page Should Contain ${emailport} + Page Should Contain ${emailuser} + Page Should Contain ${emailfrom} + Switch To System Settings + Page Should Contain ${token} + Go To Vulnerability Config + Page Should Contain ${scanschedule} + diff --git a/tests/resources/Util.robot b/tests/resources/Util.robot index be90dea25..989f838be 100644 --- a/tests/resources/Util.robot +++ b/tests/resources/Util.robot @@ -21,6 +21,7 @@ Library Process Library SSHLibrary 1 minute Library DateTime Library Selenium2Library 10 10 +Library JSONLibrary Resource Nimbus-Util.robot Resource Vsphere-Util.robot Resource VCH-Util.robot @@ -52,3 +53,4 @@ Resource Cert-Util.robot Resource SeleniumUtil.robot Resource Harbor-Pages/Project-Config.robot Resource Nightly-Util.robot +Resource Harbor-Pages/Verify.robot diff --git a/tests/robot-cases/Group13-Upgrade/Verifydata.robot b/tests/robot-cases/Group13-Upgrade/Verifydata.robot new file mode 100644 index 000000000..74f3075c4 --- /dev/null +++ b/tests/robot-cases/Group13-Upgrade/Verifydata.robot @@ -0,0 +1,30 @@ +*** Settings *** +Documentation Harbor BATs +Resource ../../resources/Util.robot +Suite Setup Nightly Test Setup ${ip} ${SSH_PWD} ${HARBOR_PASSWORD} ${ip1} +Suite Teardown Collect Nightly Logs ${ip} ${SSH_PWD} ${ip1} +Default Tags Nightly + +*** Variables *** +${HARBOR_URL} https://${ip} +${SSH_USER} root +${HARBOR_ADMIN} admin + +*** test case *** + +Verify Data + #get version from extenal argument + Convert To Float ${version} + Run Keyword If ${version}==1.1 + Run Keywords Verify User Verify Project Verify Member Exist Verify Image Tag Verify Endpoint Verify Replicationrule + Else If ${version}==1.2 + Run Keywords Verify User Verify Project Verify Member Exist Verify Image Tag Verify Endpoint Verify Replicationrule + Else If ${version}==1.3 + Run Keywords Verify User Verify Project Verify Member Exist Verify Image Tag Verify Endpoint Verify Replicationrule Verify System Setting Verify Project Setting + Else If ${version}==1.4 + Run Keywords Verify User Verify Project Verify Member Exist Verify Image Tag Verify Endpoint Verify Replicationrule Verify System Setting Verify Project Setting + Else If ${version}==1.5 + Run Keywords Verify User Verify Project Verify Member Exist Verify Image Tag Verify Endpoint Verify Replicationrule Verify System Setting Verify Project Setting Verify Project Label Verify Syslabel + Else + Log To Consle "Version Not Supported" +