import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase import static com.kms.katalon.core.testdata.TestDataFactory.findTestData import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile import com.kms.katalon.core.model.FailureHandling as FailureHandling import com.kms.katalon.core.testcase.TestCase as TestCase import com.kms.katalon.core.testdata.TestData as TestData import com.kms.katalon.core.testng.keyword.TestNGBuiltinKeywords as TestNGKW import com.kms.katalon.core.testobject.TestObject as TestObject import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows import internal.GlobalVariable as GlobalVariable import org.openqa.selenium.Keys as Keys import com.kms.katalon.core.testobject.ConditionType as ConditionType '输入网址' WebUI.openBrowser(GlobalVariable.url) WebUI.maximizeWindow() '输入账号\r\n' WebUI.setText(findTestObject('Page_IO-Controller WAN/tbox__LoginName'), GlobalVariable.username) '输入密码' WebUI.setEncryptedText(findTestObject('Page_IO-Controller WAN/tbox_LoginPassword'), GlobalVariable.password) '点击登录' WebUI.click(findTestObject('Page_IO-Controller WAN/tbtn_Login')) '点击部署' WebUI.click(findTestObject('Page_IO Controller WAN/tbtn_Deploy')) '点击部署overlay按钮' WebUI.click(findTestObject('Page_IO Controller WAN/tbtn_DeployOverlay')) '循环' for (def index = 1; index <= findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getAllData().size(); index++) { '点击目标overlay_vpn' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Vpn_Choose', [('overlay_vpn') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(1, index)])) WebUI.delay(1) '点击overlay_vpn里站点' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Site_Choose', [('overlaylan_site') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(2, index)])) WebUI.delay(1) '点击overlay_vpn里设备选择框' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/dbtn_OverlayLan_Device')) WebUI.delay(1) '点击overlay_vpn里设备选择框' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Device_Choose', [('overlaylan_mangeip') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(3, index)])) WebUI.delay(1) 'overlaylan搜索输入框搜索' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Search'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(4, index)) WebUI.delay(1) if (WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Name', [('overlaylan_name') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(4, index)]), 1, FailureHandling.OPTIONAL) == false) { '点击新建按钮' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/btn_OverlayLan_Add')) '点击类型选择' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/dbtn_OverlayLan_InterfaceType')) '选择类型' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_InterfaceType_Choose', [('overlaylan_type') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index)])) '点击接口角色框\r\n' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/dbtn_OverlayLan_InterfaceRole')) '选择接口角色\r\n' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_InterfaceRole_Choose', [('overlaylan_interfacerole') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 12, index)])) '判断类型是VLAN' if ('VLAN' == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index)) { '输入vlanid' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_VlanId'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(10, index)) } '输入IP' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Ip'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(14, index)) '如果类型是内联' if (findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(12, index) == '内联') { '填写内联ip' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_NeilianIp'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(13, index)) } '输入描述' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Describe'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(7, index)) '判断VRRP状态与期望是否一致' if (WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/status_OverlayLan_Vrrp'), 1, FailureHandling.OPTIONAL) != Boolean.valueOf(findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 15, index))) { WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/btn_OverlayLan_Vrrp')) } 'VRRP处于开启状态' if (WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/status_OverlayLan_Vrrp'), 1, FailureHandling.OPTIONAL) == true) { '点击选组' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_GroupNum_Choose', [('overlaylan_vrrpnum') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 16, index)])) if ('以太' == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index)) { '输入组号' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Vrrp1Num'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(18, index)) } '输入IP' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Vrrp1Ip'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(17, index)) WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Vrrp1MorB_choose', [('overlaylan_vrrp1role') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 19, index)])) '如果双组' if ('双组' == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(16, index)) { if ('以太' == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index)) { '输入组号' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Vrrp2Num'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(21, index)) } '输入IP' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Vrrp2Ip'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(20, index)) WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Vrrp2MorB_choose', [('overlaylan_vrrp2role') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 22, index)])) } } '判断类型是以太' if (findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index) == '以太') { 'Overlay_接口前缀选择' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/dbtn_OverlayLan_IntPrefix')) '选择GI\r\n' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_IntPrefix_Choose', [('overlaylan_intprefix') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 11, index)])) '输入接口编号\r\n' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_IntfIdentifier'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(8, index)) '判断子接口状态是否是需要的状态' if (WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/status_OverlayLan_Subinterface'), 4, FailureHandling.OPTIONAL) != Boolean.valueOf(findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 9, index))) { '不是的话,点击子接口按钮' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/btn_OverlayLan_SubInterface')) } '如果子接口开启,就需要输入vlan' if (WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/status_OverlayLan_Subinterface'), 1, FailureHandling.OPTIONAL) == true) { '输入vlanid' WebUI.setText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_VlanId'), findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(10, index)) } } WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbtn_OverlayLan_Confirm')) WebUI.waitForElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Name', [('overlaylan_name') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(4, index)]), 6) '结束新增' WebUI.comment('结束新增') WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/btn_OverlayLan_Popup_Close')) WebUI.delay(3) assert WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Name', [('overlaylan_name') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(4, index)]), 2, FailureHandling.OPTIONAL) == true '查看是否成功,如果成功,接着点击编辑' if (WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Name', [('overlaylan_name') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(4, index)]), 2, FailureHandling.OPTIONAL) == true) { '点击编辑' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Name_Edit', [('overlaylan_name') : findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(4, index)])) '获取类型' new_overlaylan_interface_type = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/dbtn_OverlayLan_InterfaceType'), 'value') '判断类型是以太' if (findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index) == '以太') { new_overlaylan_subinterface = WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/status_OverlayLan_Subinterface'), 1, FailureHandling.OPTIONAL) '如果子接口开启,获取vlan' if (WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/status_OverlayLan_Subinterface'), 1, FailureHandling.OPTIONAL) == true) { '获取vlan' new_overlaylan_vlanid = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_VlanId'), 'value') } else { String new_overlaylan_vlanid = '' } '获取类型接口编号\r\n' new_overlaylan_intfIdentifier = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_IntfIdentifier'), 'value') '获取类型Overlay_接口前缀' WebUI.getText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/dbtn_OverlayLan_IntPrefix')) new_overlaylan_intprefix = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/dbtn_OverlayLan_IntPrefix'), 'value') } '判断类型是VLAN' if ('VLAN' == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index)) { '输入vlanid' new_overlaylan_vlanid = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_VlanId'), 'value') } else { String new_overlaylan_vlanid = '' } '获取类型接口角色\r\n' new_overlaylan_interfacerole = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/dbtn_OverlayLan_InterfaceRole'), 'value') '如果类型是内联' if (findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(12, index) == '内联') { '获取类型内连ip' new_overlaylan_neilianip = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_NeilianIp'), 'value') } else { String new_overlaylan_neilianip = '' } '获取ip\r\n' new_overlaylan_ip = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Ip'), 'value') '获取描述' new_overlaylan_describe = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Describe'), 'value') new_overlaylan_vrrp = WebUI.verifyElementPresent(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/status_OverlayLan_Vrrp'), 1, FailureHandling.OPTIONAL) '如果vrrp开启' if (findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(15, index) == 'true') { new_overlaylan_groupnum = WebUI.getText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_GroupNum')) '如果是以太,获取组号' if ('以太' == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index)) { '获取 vrrp1 组号' new_overlaylan_vrrp1num = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Vrrp1Num'), 'value') } '获取 vrrp1 IP' new_overlaylan_vrrp1ip = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Vrrp1Ip'), 'value') '获取VRRP1 master OR backup' new_overlaylan_vrrp1morb = WebUI.getText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Vrrp1MorB')) '如果双组' if ('双组' == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(16, index)) { '获取VRRP2 master OR backup' new_overlaylan_vrrp2morb = WebUI.getText(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/text_OverlayLan_Vrrp2MorB')) '获取VRRP2 IP\r\n' new_overlaylan_vrrp1ip = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Vrrp2Ip'), 'value') '如果是以太,获取组号' if ('以太' == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue(5, index)) { '获取组号' new_overlaylan_vrrp1num = WebUI.getAttribute(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbox_OverlayLan_Vrrp2Num'), 'value') } } } '点击取消按钮' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/lan_interface/tbtn_OverlayLan_Cancel')) '判断是否相同' if (((((((((((((((((new_overlaylan_interface_type == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 5, index)) && (new_overlaylan_interfacerole == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 12, index))) && (new_overlaylan_ip == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 14, index))) && (new_overlaylan_describe == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 7, index))) && (new_overlaylan_vrrp == Boolean.valueOf(findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 15, index)))) && (new_overlaylan_vrrp1num == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 18, index))) && (new_overlaylan_vrrp1ip == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 17, index))) && (new_overlaylan_vrrp1morb == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 19, index))) && (new_overlaylan_vrrp2morb == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 22, index))) && (new_overlaylan_vrrp2ip == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 20, index))) && (new_overlaylan_vrrp2num == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 21, index))) && (new_overlaylan_groupnum == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 16, index))) && (new_overlaylan_neilianip == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 13, index))) && (new_overlaylan_vlanid == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 10, index))) && (new_overlaylan_subinterface == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 9, index))) && (new_overlaylan_intfIdentifier == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 8, index))) && (new_overlaylan_intprefix == findTestData('Deploy/OverlayNetwork/Lan_Interface/Add_OverlayLan').getValue( 11, index))) { '如果成功匹配打印成功' println('success') } '等待退出overlay按钮出现' WebUI.waitForElementClickable(findTestObject('Page_IO Controller WAN/deploy/overlay_network/public/btn_Overlay_Quit'), 5) } } '退出overlay' WebUI.click(findTestObject('Page_IO Controller WAN/deploy/overlay_network/public/btn_Overlay_Quit')) } WebUI.closeBrowser()