*** Settings *** Test Teardown DeletePolicyAndGroupObject ${policyIds} ${objectids} Force Tags tsg_bf_api Trusted_Certificate_Authorities Library String Library OperatingSystem Library Selenium2Library Library Collections Resource ../../../02-Keyword/tsg_bfapi/Common.robot Resource ../../../02-Keyword/tsg_bfapi/policy_file_interface/FunctionalKeywords.robot Resource ../../../03-Variable/BifangApiVariable.txt Library OperatingSystem Resource ../../../02-Keyword/tsg_adc/SystemCommand.robot Resource ../../../02-Keyword/tsg_bfapi/PolicyObject.robot Resource ../../../02-Keyword/tsg_bfapi/LogVariable.robot Resource ../../../02-Keyword/tsg_bfapi/ApiRequest.robot Resource ../../../03-Variable/AllFlowCaseVariable.txt Resource ../../../03-Variable/Policy_Objects_Module.txt Resource ../../../02-Keyword/tsg_bfapi/PolicyObject.robot Resource ../../../02-Keyword/tsg_bfapi/policy_object/Policy.robot Resource ../../../02-Keyword/tsg_bfapi/policy_object/Object.robot Resource ../../../02-Keyword/tsg_bfapi/policy_object/Log.robot Resource ../../../02-Keyword/tsg_bfapi/Common.robot Library json Library DateTime Library demjson Resource ../../../02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot Library ../../../04-CustomLibrary/Library/VerifyPolicy.py *** Variables *** ${url} /v1/policy/profile/trustedcacertobj ${certId} ${EMPTY} ${policyIds} ${EMPTY} ${objectids} ${EMPTY} *** Test Cases *** VerifySecurity-ipANDfqdn [Tags] Security ip fqdn category # 新增 对象 # 创建源 ip ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"autoPolicyVerifySource","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"192.168.50.3-192.168.50.3","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"192.168.50.3","clientIp2":"192.168.50.3","clientPort1":"0","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1602573149}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#E46D6D"}} #{"opAction":"add","objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwqweqw","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"192.168.50.25","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"192.168.50.25","clientIp2":"192.168.50.25","clientPort1":"0","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1596177068}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","objectSubType":"endpoint"}} #${objectids} set Variable ${object_Source_Id} # 创建目的ip ${rescodeip} ${object_Destination_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"autoPolicyVerifyDestination","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"254.253.252.251","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"192.168.50.3","clientIp2":"192.168.50.3","clientPort1":"0","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1602573149}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#E46D6D"}} #{"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"1231231231231","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"254.253.252.251","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"254.253.252.251","clientIp2":"254.253.252.251","clientPort1":"0","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1596176949}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","objectSubType":"endpoint"}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Destination_Id} #创建subid ${rescodeip} ${object_SubId_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"subscriberid","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"subid","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$test3"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_SubId_Id} #创建 SNI ${rescodeip} ${object_SNI_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"sni","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$verifytest"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_SNI_Id} # 创建SAN ${rescodeip} ${object_SAN_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"SAN","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["*verify.com"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_SAN_Id} # 创建 CN ${rescodeip} ${object_CN_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"cn","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$verifytest.com"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_CN_Id} ${objlevel1} Catenate SEPARATOR=, ${object_Source_Id} ${object_Destination_Id} ${object_SubId_Id} ${object_SNI_Id} ${object_SAN_Id} ${object_CN_Id} ${objectids} Create List [${objlevel1}] # 获取对象id集合 log ${objectids} ${objtype} Evaluate type($objectids) log ${objtype} # #新增策略 ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-00001","policyType":"tsg_security","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL"},"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"},{"objectId":${object_SubId_Id},"protocolField":null}],"destination":[{"objectId":${object_Destination_Id},"protocolField":"TSG_SECURITY_DESTINATION_ADDR"}],"filterList":[{"filter":[{"objectId":${object_SNI_Id},"protocolField":"TSG_FIELD_SSL_SNI"}]},{"filter":[{"objectId":${object_SAN_Id},"protocolField":"TSG_FIELD_SSL_SAN"}]},{"filter":[{"objectId":${object_CN_Id},"protocolField":"TSG_FIELD_SSL_CN"}]}],"appIdObjects":[44],"appSelectorObjects":[],"isValid":1,"scheduleId":[]}} ${testType} Evaluate type($policyId) #删除策略 ${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyId}]} ${testType} Evaluate type($policyIds) log 1232132131231313 # 获取策略id log ${policyIds} sleep 10 #新增策略验证 #创建attributes中的字典 ${sni} Create Dictionary attributeType=string attributeName=sni appId=126 appName=ssl protocol=ssl attributeValue={"string": "verifytest"} ${san} Create Dictionary attributeType=string attributeName=san appId=126 appName=ssl protocol=ssl attributeValue={"string": "verify.com"} ${cn} Create Dictionary attributeType=string attributeName=cn appId=126 appName=ssl protocol=ssl attributeValue={"string": "verifytest.com"} ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string": "126"} ${subscriberid} Create Dictionary attributeType=string attributeName=subscriberid attributeValue={"string": "test3"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip":"192.168.50.3","port":"1","addrType":4,"protocol":"6","tableName":"TSG_SECURITY_SOURCE_ADDR"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip":"254.253.252.251","port":"1","addrType":4,"protocol":"6","tableName":"TSG_SECURITY_DESTINATION_ADDR"} # 合成attributes字典集 ${attributes} Create List ${sni} ${san} ${cn} ${app_id} ${subscriberid} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} log ${verifyList} ${rescode} ${resData} VerifyPolicies ${verifyList} # 打印检查结果 # 将 策略id 加入对象 id ${objectid_verify} Catenate SEPARATOR=, ${object_Source_Id} ${object_Destination_Id} ${object_SubId_Id} ${object_SNI_Id} ${object_SAN_Id} ${object_CN_Id} ${objectid_verify} Catenate SEPARATOR=, ${objectid_verify} ${policyId} # ${objectids} Create List ${object_Source_Id} ${object_Destination_Id} ${object_SubId_Id} ${object_SNI_Id} ${object_SAN_Id} ${object_CN_Id} ${policyId} # # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 log 1111111111111111${objectid_verify} ${testType} Evaluate type($objectid_verify) ${testType} Evaluate type($resData) log 222222222222222${resData} sleep 5 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true # VerifyProxy-Security-00002 #002涉及新建category,无法执行 # 新增 对象 # 创建源 ip # ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"zmmtest","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"fc00::2:25","ipIf":false,"portIf":false,"port":"80","itemId":"","clientIp1":"fc00::2:25","clientIp2":"fc00::2:25","clientPort1":"80","clientPort2":"80","clientIpFormat":"range","clientPortFormat":"range","addrType":6,"direction":0,"temporaryItemId":1595474423}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","objectSubType":"endpoint"}} # ${objectids} set Variable ${object_Source_Id} #创建 ip二层嵌套 # 创建源 ip #${rescodeip} ${object_Source_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"source","objectDesc":"","subObjectIds":[${object_Source_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Source_Id_2} # 创建url #${rescodeip} ${object_URL_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"1231212","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["verifytest"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_URL_Id} # 创建url二层嵌套 #${rescodeip} ${object_URL_Id_2} lAddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqewq","objectDesc":"","subObjectIds":[${object_URL_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_URL_Id_2} #创建Host # ${rescodeip} ${object_Host_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn_category","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"asdfafa","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["*verify.com"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Host_Id} # # 创建url二层嵌套 # ${rescodeip} ${object_Host_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn_category","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"asdfafa","objectDesc":"","subObjectIds":[${object_Host_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Host_Id_2} # #创建 Request Content # ${rescodeip} ${object_Request_Content_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123112","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["verifytest*"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Request_Content_Id} # #创建 Request Content二层嵌套 # ${rescodeip} ${object_Request_Content_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123112","objectDesc":"","subObjectIds":[${object_Request_Content_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Request_Content_Id_2} # # 创建Response Content # ${rescodeip} ${object_Response_Content_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"wwqwqwqwq","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["verifytest"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Response_Content_Id} # # 创建Response Content 二层嵌套 # ${rescodeip} ${object_Response_Content_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"wwqwqwqwq","objectDesc":"","subObjectIds":[${object_Response_Content_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Response_Content_Id_2} # # 创建Request Header # ${rescodeip} ${object_Request_Header_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"http_signature","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123131","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$verifytest"],"isHexbin":0,"district":"User-Agent"},{"keywordArray":["verify"],"isHexbin":0,"district":"Cookie"}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Request_Header_Id} # # 创建Request Header 二层嵌套 # ${rescodeip} ${object_Request_Header_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"http_signature","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123131","objectDesc":"","subObjectIds":[${object_Request_Header_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Request_Header_Id_2} # # 创建Response_Header # ${rescodeip} ${object_Response_Header_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"http_signature","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123123123","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$verifytest"],"isHexbin":0,"district":"Set-Cookie"},{"keywordArray":["test"],"isHexbin":0,"district":"Content-Type"}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Response_Header_Id} # # 创建Response_Header 二层嵌套 # ${rescodeip} ${object_Response_Header_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"http_signature","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123123123","objectDesc":"","subObjectIds":[${object_Response_Header_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} # ${objectids} Catenate SEPARATOR=, ${objectids} ${object_Response_Header_Id_2} # # 获取对象id集合 # log ${objectids} # # 新增策略 # ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-00002","policyType":"tsg_security","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"HTTP"},"source":[{"objectId":${object_Source_Id_2},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[{"filter":[{"objectId":${object_URL_Id_2},"protocolField":"TSG_FIELD_HTTP_URL"}]},{"filter":[{"objectId":${object_Host_Id_2},"protocolField":"TSG_FIELD_HTTP_HOST"}]},{"filter":[{"objectId":${object_Request_Content_Id_2},"protocolField":"TSG_FIELD_HTTP_REQ_CONTENT"}]},{"filter":[{"objectId":${object_Response_Content_Id_2},"protocolField":"TSG_FIELD_HTTP_RES_CONTENT"}]},{"filter":[{"objectId":${object_Request_Header_Id_2},"protocolField":"TSG_FIELD_HTTP_REQ_HDR"}]},{"filter":[{"objectId":${object_Response_Header_Id_2},"protocolField":"TSG_FIELD_HTTP_RES_HDR"}]}],"appIdObjects":[2],"isValid":1,"scheduleId":[]}} # log ${policyId} # #删除策略 # ${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyId}]} # # # 获取策略id # log ${policyIds} # sleep 60 # # # 新增策略验证 # # 创建attributes中的字典 # ${url} Create Dictionary attributeType=string attributeName=url protocol=http attributeValue={"string": "verifytest"} # ${host} Create Dictionary attributeType=string attributeName=host protocol=http attributeValue={"string": "verify.com"} # ${req_body} Create Dictionary attributeType=string attributeName=req_body protocol=http attributeValue={"string": "verifytest"} # ${res_body} Create Dictionary attributeType=string attributeName=res_body protocol=http attributeValue={"string": "verifytest"} # ${req_hdr_ua} Create Dictionary attributeType=signature attributeName=req_hdr protocol=http attributeValue={"string": "verifytest","district": "User-Agent"} # ${req_hdr_ck} Create Dictionary attributeType=signature attributeName=req_hdr protocol=http attributeValue={"string": "verify","district": "Cookie"} # ${res_hdr_sc} Create Dictionary attributeType=signature attributeName=res_hdr protocol=http attributeValue={"string": "verifytest","district": "Set-Cookie"} # ${res_hdr_ct} Create Dictionary attributeType=signature attributeName=res_hdr protocol=http attributeValue={"string": "test","district": "Content-Type"} # ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string": "http."} # ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "fc00::2:25","port": "80","tableName":"TSG_SECURITY_SOURCE_ADDR","addrType": 6,"protocol": "6"} # ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "fc00::2:25","port": "80","tableName":"TSG_SECURITY_DESTINATION_ADDR","addrType": 6,"protocol": "6"} # # 合成attributes字典集 # ${attributes} Create List ${url} ${host} ${req_body} ${res_body} ${req_hdr_ua} ${req_hdr_ck} ${res_hdr_sc} ${res_hdr_ct} ${app_id} ${ipsource} ${ipdestination} # ${verifySession} Create Dictionary attributes=${attributes} # ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} # log 111111111111111111111111111111 # log ${verifyList} # log 11111111111111111111111111111 # ${rescode} ${resData} VerifyPolicies ${verifyList} # # 打印检查结果 # # 将 策略id 加入对象 id # ${objectid_verify} set variable ${objectids} # ${objectid_verify} Catenate SEPARATOR=, ${objectid_verify} ${policyId} # # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 # ${ok} VerifyProxy ${resData} ${objectid_verify} # # # ${ok} VerifyProxy ${objectids} ${resData} # Should Be Equal As Strings ${ok} ture VerifySecurity-ipANDfqdn_nest [Tags] Security ip fqdn 3nest # 新增 对象 # 创建源 ip ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"source","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"192.168.50.3","ipIf":false,"portIf":false,"port":"80","itemId":"","clientIp1":"192.168.50.3","clientIp2":"192.168.50.3","clientPort1":"80","clientPort2":"80","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595312834}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} #${objectids} Create List ${object_Source_Id} ${objlevel1} set variable ${object_Source_Id} ${objectids} Create List [${objlevel1}] #创建 ip二层嵌套 ${rescodeip} ${object_Source_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"source","objectDesc":"","subObjectIds":[${object_Source_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} #Insert Into List ${objectids} 0 ${object_Source_Id_2} ${objlevel2} set variable ${object_Source_Id_2} ${objectids} Create List [${objlevel2}] [${objlevel1}] #创建 ip三层嵌套 ${rescodeip} ${object_Source_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"source","objectDesc":"","subObjectIds":[${object_Source_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} #Insert Into List ${objectids} 0 ${object_Source_Id_3} ${objlevel3} set variable ${object_Source_Id_3} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建目的ip ${rescodeip} ${object_Destination_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"252.252.252.252","ipIf":false,"portIf":false,"port":"443","itemId":"","clientIp1":"252.252.252.252","clientIp2":"252.252.252.252","clientPort1":"443","clientPort2":"443","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595313199}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} # #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Destination_Id} #Insert Into List ${objectids} 0 ${object_Destination_Id} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_Destination_Id} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建 目的ip二层嵌套 ${rescodeip} ${object_Destination_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[${object_Destination_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Destination_Id_2} #Insert Into List ${objectids} 0 ${object_Destination_Id_2} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_Destination_Id_2} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建 目的ip三层嵌套 ${rescodeip} ${object_Destination_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[${object_Destination_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Destination_Id_3} #Insert Into List ${objectids} 0 ${object_Destination_Id_3} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_Destination_Id_3} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 QNAME:FQDN ${rescodeip} ${object_QNAME_FQDN_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"QNAME_FQDN","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$verify"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #Insert Into List ${objectids} 0 ${object_QNAME_FQDN_Id} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_QNAME_FQDN_Id} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 QNAME:FQDN 二层嵌套 ${rescodeip} ${object_QNAME_FQDN_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"QNAME_FQDN","objectDesc":"","subObjectIds":[${object_QNAME_FQDN_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_QNAME_FQDN_Id_2} #Insert Into List ${objectids} 0 ${object_QNAME_FQDN_Id_2} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_QNAME_FQDN_Id_2} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 QNAME:FQDN 三层嵌套 ${rescodeip} ${object_QNAME_FQDN_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"QNAME_FQDN","objectDesc":"","subObjectIds":[${object_QNAME_FQDN_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_QNAME_FQDN_Id_3} #Insert Into List ${objectids} 0 ${object_QNAME_FQDN_Id_3} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_QNAME_FQDN_Id_3} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] #获取对象id集合 #${objectids} Create List [${object_QNAME_FQDN_Id_3}] [${object_QNAME_FQDN_Id_2}] [${object_QNAME_FQDN_Id}] [${object_Destination_Id_3}] [${object_Destination_Id_2}] [${object_Destination_Id}] [${object_Source_Id_3}] [${object_Source_Id_2}] [${object_Source_Id}] #${objectids} Catenate SEPARATOR=, ${object_QNAME_FQDN_Id_3} ${object_QNAME_FQDN_Id_2} ${object_QNAME_FQDN_Id} ${object_Destination_Id_3} ${object_Destination_Id_2} ${object_Destination_Id} ${object_Source_Id_3} ${object_Source_Id_2} ${object_Source_Id} log ${objectids} #sleep 5 #新增策略 ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"asfafsadfa","policyType":"tsg_security","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"DNS"},"source":[{"objectId":${object_Source_Id_3},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[{"objectId":${object_Destination_Id_3},"protocolField":"TSG_SECURITY_DESTINATION_ADDR"}],"filterList":[{"filter":[{"objectId":${object_QNAME_FQDN_Id_3},"protocolField":"TSG_FIELD_DNS_QNAME"}]}],"appIdObjects":[21],"isValid":1,"scheduleId":[]}} ${testType} Evaluate type($policyId) log ${policyId} #删除策略 ${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyId}]} # # 获取策略id log ${policyIds} sleep 10 # 新增策略验证 # 创建attributes中的字典 ${qname_fqdn_id} Create Dictionary attributeType=string attributeName=qname appId=103 appName=dns protocol=dns attributeValue={"string": "verify"} ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string":"103" } ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "192.168.50.3","port": "80","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 4,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "252.252.252.252","port": "443","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 4,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${qname_fqdn_id} ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} # 打印检查结果 # 将 策略id 加入对象 id #${objectid_verify} set variable ${objectids} ${objectid_verify} Catenate SEPARATOR=, ${object_Source_Id_3} ${object_Source_Id} ${object_Destination_Id_3} ${object_Destination_Id} ${object_QNAME_FQDN_Id} ${object_QNAME_FQDN_Id_3} ${policyId} ${testType} Evaluate type($objectid_verify) sleep 5 # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 ${ok} VerifyProxy ${resData} ${objectid_verify} #${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true VerifyProxy-Security-Mail_nestObject [Tags] Security Mail The largest combination 4nest # 创建目的ip ${rescodeip} ${object_Destination_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"11.11.11.11","ipIf":false,"portIf":false,"port":"11","itemId":"","clientIp1":"11.11.11.11","clientIp2":"11.11.11.11","clientPort1":"11","clientPort2":"11","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595313199}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel1} Set Variable ${object_Destination_Id} ${objectids} Create List [${objlevel1}] # 创建 目的ip 二层嵌套 ${rescodeip} ${object_Destination_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[${object_Destination_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel2} Set Variable ${object_Destination_Id_2} ${objectids} Create List [${objlevel2}] [${objlevel1}] # 创建 目的ip 三层嵌套 ${rescodeip} ${object_Destination_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[${object_Destination_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel3} Set Variable ${object_Destination_Id_3} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 目的ip 四层嵌套 ${rescodeip} ${object_Destination_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[${object_Destination_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel4} Set Variable ${object_Destination_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Subject ${rescodeip} ${object_Subject_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_Subject_Id} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Subject 二层嵌套 ${rescodeip} ${object_Subject_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Subject_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_Subject_Id_2} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Subject 三层嵌套 ${rescodeip} ${object_Subject_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Subject_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_Subject_Id_3} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Subject 四层嵌套 ${rescodeip} ${object_Subject_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Subject_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_Subject_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Content ${rescodeip} ${object_Content_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"1221321","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_Content_Id} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Content 二层嵌套 ${rescodeip} ${object_Content_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Content_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_Content_Id_2} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Content 三层嵌套 ${rescodeip} ${object_Content_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Content_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_Content_Id_3} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Content 四层嵌套 ${rescodeip} ${object_Content_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Content_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_Content_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Attachment Name ${rescodeip} ${object_Attachment_Name_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_Attachment_Name_Id} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建Attachment Name 二层嵌套 ${rescodeip} ${object_Attachment_Name_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Attachment_Name_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_Attachment_Name_Id_2} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Attachment Name 三层嵌套 ${rescodeip} ${object_Attachment_Name_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Attachment_Name_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_Attachment_Name_Id_3} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Attachment Name 四层嵌套 ${rescodeip} ${object_Attachment_Name_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Attachment_Name_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_Attachment_Name_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Attachment Content ${rescodeip} ${object_Attachment_Content_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_Attachment_Content_Id} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Attachment Content 二层嵌套 ${rescodeip} ${object_Attachment_Content_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Attachment_Content_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_Attachment_Content_Id_2} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Attachment Content 三层嵌套 ${rescodeip} ${object_Attachment_Content_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Attachment_Content_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_Attachment_Content_Id_3} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建Attachment Content 四层嵌套 ${rescodeip} ${object_Attachment_Content_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_Attachment_Content_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_Attachment_Content_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 From ${rescodeip} ${object_From_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqeq","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_From_Id} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建From 二层嵌套 ${rescodeip} ${object_From_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_From_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_From_Id_2} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建From 三层嵌套 ${rescodeip} ${object_From_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_From_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_From_Id_3} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建From 四层嵌套 ${rescodeip} ${object_From_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_From_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_From_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建To ${rescodeip} ${object_To_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqeq","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_To_Id} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建To 二层嵌套 ${rescodeip} ${object_To_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_To_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_To_Id_2} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 To 三层嵌套 ${rescodeip} ${object_To_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_To_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_To_Id_3} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建To 四层嵌套 ${rescodeip} ${object_To_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwe","objectDesc":"","subObjectIds":[${object_To_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_To_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #${objectids} Create List [${object_To_Id_4}] [${object_To_Id_3}] [${object_To_Id_2}] [${object_To_Id}] [${object_From_Id_4}] [${object_From_Id_3}] [${object_From_Id_2}] [${object_From_Id}] [${object_Attachment_Content_Id_4}] [${object_Attachment_Content_Id_3}] [${object_Attachment_Content_Id_2}] [${object_Attachment_Content_Id}] [${object_Attachment_Name_Id_4}] [${object_Attachment_Name_Id_3}] ${object_Attachment_Name_Id_2}] ... # [${object_Attachment_Name_Id}] [${object_Content_Id_4}] [${object_Content_Id_3}] [${object_Content_Id_2}] [${object_Content_Id}] [${object_Subject_Id_4}] [${object_Subject_Id_3}] [${object_Subject_Id_2}] [${object_Subject_Id}] [${object_Destination_Id_4}] [${object_Destination_Id_3}] [${object_Destination_Id_2}] [${object_Destination_Id}] # 获取对象id集合 log ${objectids} # 新增策略 ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"zxcvzxcvxz","policyType":"tsg_security","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"MAIL"},"source":[],"destination":[{"objectId":${object_Destination_Id_4},"protocolField":"TSG_SECURITY_DESTINATION_ADDR"}],"filterList":[{"filter":[{"objectId":${object_Subject_Id_4},"protocolField":"TSG_FIELD_MAIL_SUBJECT"}]},{"filter":[{"objectId":${object_Content_Id_4},"protocolField":"TSG_FIELD_MAIL_CONTENT"}]},{"filter":[{"objectId":${object_Attachment_Name_Id_4},"protocolField":"TSG_FIELD_MAIL_ATT_NAME"}]},{"filter":[{"objectId":${object_Attachment_Content_Id_4},"protocolField":"TSG_FIELD_MAIL_ATT_CONTENT"}]},{"filter":[{"objectId":${object_From_Id_4},"protocolField":"TSG_FIELD_MAIL_FROM"}]},{"filter":[{"objectId":${object_To_Id_4},"protocolField":"TSG_FIELD_MAIL_TO"}]}],"appIdObjects":[28],"isValid":1,"scheduleId":[]}} log ${policyId} #删除策略 ${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyId}]} # # 获取策略id log ${policyIds} sleep 10 # # 新增策略验证 # 创建attributes中的字典 ${subject_id} Create Dictionary attributeType=string attributeName=subject appId=110 appName=mail protocol=mail attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${content_id} Create Dictionary attributeType=string attributeName=content appId=110 appName=mail protocol=mail attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${att_name_id} Create Dictionary attributeType=string attributeName=att_name appId=110 appName=mail protocol=mail attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${att_content_id} Create Dictionary attributeType=string attributeName=att_content appId=110 appName=mail protocol=mail attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${from_id} Create Dictionary attributeType=string attributeName=from appId=110 appName=mail protocol=mail attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${to_id} Create Dictionary attributeType=string attributeName=to appId=110 appName=mail protocol=mail attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${app_id} Create Dictionary attributeType=string attributeName=app_id protocol=mail attributeValue={"string": "110"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "11.11.11.11","port": "11","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 4,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "11.11.11.11","port": "11","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 4,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${subject_id} ${content_id} ${att_name_id} ${att_content_id} ${from_id} ${to_id} ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} sleep 10 # 打印检查结果 # 将 策略id 加入对象 id ${objectid_verify} set variable ${objectids} ${objectid_verify} Catenate SEPARATOR=, ${object_To_Id_4} ${object_To_Id} ${object_From_Id_4} ${object_From_Id} ${object_Attachment_Content_Id_4} ${object_Attachment_Content_Id} ${object_Attachment_Name_Id_4} ${object_Attachment_Name_Id} ${object_Content_Id_4} ${object_Content_Id} ${object_Destination_Id_4} ${object_Destination_Id} ${policyId} #sleep 5 # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true Verify-Security-monitorMail_nestObject [Tags] Security Mail ip account 4nest # 创建 目的ip ${rescodeip} ${object_Destination_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"11.11.11.11","ipIf":false,"portIf":false,"port":"11","itemId":"","clientIp1":"11.11.11.11","clientIp2":"11.11.11.11","clientPort1":"11","clientPort2":"11","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595313199}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel1} set Variable ${object_Destination_Id} ${objectids} Create List [${objlevel1}] # 创建 目的ip 二层嵌套 ${rescodeip} ${object_Destination_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[${object_Destination_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel2} set Variable ${object_Destination_Id_2} ${objectids} Create List [${objlevel2}] [${objlevel1}] # 创建 目的ip 三层嵌套 ${rescodeip} ${object_Destination_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[${object_Destination_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel3} set Variable ${object_Destination_Id_3} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 目的ip 四层嵌套 ${rescodeip} ${object_Destination_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[${object_Destination_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel4} set Variable ${object_Destination_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Account ${rescodeip} ${object_Account_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqeq","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["abc***?????"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_Account_Id} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Account 二层嵌套 ${rescodeip} ${object_Account_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqeq","objectDesc":"","subObjectIds":[${object_Account_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_Account_Id_2} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Account 三层嵌套 ${rescodeip} ${object_Account_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqeq","objectDesc":"","subObjectIds":[${object_Account_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_Account_Id_3} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建 Account 四层嵌套 ${rescodeip} ${object_Account_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqeq","objectDesc":"","subObjectIds":[${object_Account_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_Account_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 获取对象id集合 ${objectids} Create List [${object_Account_Id_4}] [${object_Account_Id_3}] [${object_Account_Id_2}] [${object_Account_Id}] [${object_Destination_Id_4}] [${object_Destination_Id_3}] [${object_Destination_Id_2}] [${object_Destination_Id}] log ${objectids} # 新增策略 ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"qweqwewq","policyType":"tsg_security","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"MAIL"},"source":[],"destination":[{"objectId":${object_Destination_Id_4},"protocolField":"TSG_SECURITY_DESTINATION_ADDR"}],"filterList":[{"filter":[{"objectId":${object_Account_Id_4},"protocolField":"TSG_FIELD_MAIL_ACCOUNT"}]}],"appIdObjects":[28],"isValid":1,"scheduleId":[]}} log ${policyId} #删除策略 ${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyId}]} # # 获取策略id log ${policyIds} #sleep 20 # # 新增策略验证 # 创建attributes中的字典 ${account_id} Create Dictionary attributeType=string attributeName=account appId=110 appName=mail protocol=mail attributeValue={"string": "abc***?????"} ${app_id} Create Dictionary attributeType=string attributeName=app_id protocol=mail attributeValue={"string": "110"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "11.11.11.11","port": "11","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 4,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "11.11.11.11","port": "11","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 4,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${account_id} ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} sleep 6 ${rescode} ${resData} VerifyPolicies ${verifyList} # 打印检查结果 # 将 策略id 加入对象 id #${objectid_verify} set variable ${objectids} ${objectid_verify} Catenate SEPARATOR=, ${object_Account_Id_4} ${object_Account_Id} ${object_Destination_Id_4} ${object_Destination_Id} ${policyId} # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 sleep 9 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true VerifySecurity-nestObject [Tags] Security Mail 5nest ip url content Account # 新增 对象 # 创建源 ip ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"zmmtest","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"192.168.50.25","ipIf":false,"portIf":false,"port":"80","itemId":"","clientIp1":"192.168.50.25","clientIp2":"192.168.50.25","clientPort1":"80","clientPort2":"80","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595474423}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","objectSubType":"endpoint"}} ${objlevel1} set Variable ${object_Source_Id} ${objectids} Create List [${objlevel1}] #创建 ip 二层嵌套 ${rescodeip} ${object_Source_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"source","objectDesc":"","subObjectIds":[${object_Source_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel2} set Variable ${object_Source_Id_2} ${objectids} Create List [[${objlevel1}]] [${objlevel1}] #创建 ip 三层嵌套 ${rescodeip} ${object_Source_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"source","objectDesc":"","subObjectIds":[${object_Source_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel3} set Variable ${object_Source_Id_3} ${objectids} Create List [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建 ip 四层嵌套 ${rescodeip} ${object_Source_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"source","objectDesc":"","subObjectIds":[${object_Source_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel4} set Variable ${object_Source_Id_4} ${objectids} Create List [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建 ip 五层嵌套 ${rescodeip} ${object_Source_Id_5} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"source","objectDesc":"","subObjectIds":[${object_Source_Id_4}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${objlevel5} set Variable ${object_Source_Id_5} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建url ${rescodeip} ${object_URL_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123131","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_URL_Id} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建url 二层嵌套 ${rescodeip} ${object_URL_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqewq","objectDesc":"","subObjectIds":[${object_URL_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_URL_Id_2} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建url 三层嵌套 ${rescodeip} ${object_URL_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqewq","objectDesc":"","subObjectIds":[${object_URL_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_URL_Id_3} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建url 四层嵌套 ${rescodeip} ${object_URL_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqewq","objectDesc":"","subObjectIds":[${object_URL_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_URL_Id_4} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建url 五层嵌套 ${rescodeip} ${object_URL_Id_5} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"qwewqewq","objectDesc":"","subObjectIds":[${object_URL_Id_4}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel5} Catenate SEPARATOR=, ${objlevel5} ${object_URL_Id_5} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建Content ${rescodeip} ${object_Content_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"23423423","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_Content_Id} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建Content 二层嵌套 ${rescodeip} ${object_Content_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"asdfafa","objectDesc":"","subObjectIds":[${object_Content_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_Content_Id_2} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建Content 三层嵌套 ${rescodeip} ${object_Content_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"asdfafa","objectDesc":"","subObjectIds":[${object_Content_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_Content_Id_3} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建Content 四层嵌套 ${rescodeip} ${object_Content_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"asdfafa","objectDesc":"","subObjectIds":[${object_Content_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_Content_Id_4} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] # 创建Content 五层嵌套 ${rescodeip} ${object_Content_Id_5} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"asdfafa","objectDesc":"","subObjectIds":[${object_Content_Id_4}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel5} Catenate SEPARATOR=, ${objlevel5} ${object_Content_Id_5} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建 Account ${rescodeip} ${object_Account_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"23131123","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel1} Catenate SEPARATOR=, ${objlevel1} ${object_Account_Id} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建Account 二层嵌套 ${rescodeip} ${object_Account_Id_2} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123112","objectDesc":"","subObjectIds":[${object_Account_Id}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel2} Catenate SEPARATOR=, ${objlevel2} ${object_Account_Id_2} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建Account 三层嵌套 ${rescodeip} ${object_Account_Id_3} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123112","objectDesc":"","subObjectIds":[${object_Account_Id_2}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel3} Catenate SEPARATOR=, ${objlevel3} ${object_Account_Id_3} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建Account 四层嵌套 ${rescodeip} ${object_Account_Id_4} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123112","objectDesc":"","subObjectIds":[${object_Account_Id_3}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel4} Catenate SEPARATOR=, ${objlevel4} ${object_Account_Id_4} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #创建Account 五层嵌套 ${rescodeip} ${object_Account_Id_5} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"account","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123112","objectDesc":"","subObjectIds":[${object_Account_Id_4}],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${objlevel5} Catenate SEPARATOR=, ${objlevel5} ${object_Account_Id_5} ${objectids} Create List [${objlevel5}] [${objlevel4}] [${objlevel3}] [${objlevel2}] [${objlevel1}] #${objectids} Create List [${object_Account_Id_5}] [${object_Account_Id_4}] [${object_Account_Id_3}] [${object_Account_Id_2}] [${object_Account_Id}] [${object_Content_Id_5}] [${object_Content_Id_4}] [${object_Content_Id_3}] [${object_Content_Id_2}] [${object_Content_Id}] [${object_URL_Id_5}] [${object_URL_Id_4}] [${object_URL_Id_3}] [${object_URL_Id_2}] [${object_URL_Id}] # [${object_Source_Id_5}] [${object_Source_Id_4}] [${object_Source_Id_3}] [${object_Source_Id_2}] [${object_Source_Id}] # 获取对象id集合 log ${objectids} # 新增策略 ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-00007","policyType":"tsg_security","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"FTP"},"source":[{"objectId":${object_Source_Id_5},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[{"filter":[{"objectId":${object_URL_Id_5},"protocolField":"TSG_FIELD_FTP_URI"}]},{"filter":[{"objectId":${object_Content_Id_5},"protocolField":"TSG_FIELD_FTP_CONTENT"}]},{"filter":[{"objectId":${object_Account_Id_5},"protocolField":"TSG_FIELD_FTP_ACCOUNT"}]}],"appIdObjects":[22],"isValid":1,"scheduleId":[]}} log ${policyId} #删除策略 ${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyId}]} # # 获取策略id log ${policyIds} sleep 20 # # 新增策略验证 # 创建attributes中的字典 ${url} Create Dictionary attributeType=string attributeName=url appId=104 appName=ftp protocol=ftp attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${Content} Create Dictionary attributeType=string attributeName=content appId=104 appName=ftp protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${Account} Create Dictionary attributeType=string attributeName=account appId=104 appName=ftp protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string": "104"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "192.168.50.25","port": "80","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 4,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "192.168.50.25","port": "80","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 4,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${url} ${Content} ${Account} ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} # 打印检查结果 # 将 策略id 加入对象 id ${objectid_verify} set variable ${objectids} ${objectid_verify} Catenate SEPARATOR=, ${object_Account_Id_5} ${object_Account_Id} ${object_Content_Id_5} ${object_Content_Id} ${object_URL_Id_5} ${object_Source_Id} ${object_URL_Id} ${object_Source_Id_5} ${policyId} # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true VerifySecurity-manyPolicies [Tags] Security Many policies # 新增 对象 # 创建源 ip ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"zmmtest","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"192.168.50.3","ipIf":false,"portIf":false,"port":"80","itemId":"","clientIp1":"192.168.50.25","clientIp2":"192.168.50.25","clientPort1":"80","clientPort2":"80","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595474423}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","objectSubType":"endpoint"}} ${objectids} Create List [${object_Source_Id}] # 获取对象id集合 log ${objectids} # 新增策略 1 ${rescode} ${policyId1} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-000081","policyType":"tsg_security","action":"allow","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL"},"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[],"appIdObjects":[44],"isValid":1,"scheduleId":[]}} log ${policyId1} sleep 10 # 新增策略 2 ${rescode} ${policyId2} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-000082","policyType":"tsg_security","action":"deny","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL","method":"drop"},"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[],"appIdObjects":[44],"isValid":1,"scheduleId":[]}} log ${policyId2} sleep 10 # 新增策略 3 ${rescode} ${policyId3} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-000083","policyType":"tsg_security","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL"},"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[],"appIdObjects":[44],"isValid":1,"scheduleId":[]}} log ${policyId3} sleep 10 # 新增策略 4 ${rescode} ${policyId4} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-000084","policyType":"tsg_security","action":"intercept","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}},"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[],"appIdObjects":[44],"isValid":1,"scheduleId":[]}} log ${policyId4} sleep 10 #删除策略 ${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyId1},${policyId2},${policyId3},${policyId4}]} # # 获取策略id log ${policyIds} #sleep 20 # # 新增策略验证 # 创建attributes中的字典 ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string": "126"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "192.168.50.3","port": "80","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 4,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "192.168.50.3","port": "80","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 4,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} sleep 5 # 打印检查结果 # 将 策略id 加入对象 id ${objectid_verify} set variable ${object_Source_Id} ${objectid_verify} Catenate SEPARATOR=, ${objectid_verify} ${policyId1} ${policyId2} ${policyId3} ${policyId4} #${objectid_verify} Catenate SEPARATOR=, ${objectid_verify} ${policyId2} #${objectid_verify} Catenate SEPARATOR=, ${objectid_verify} ${policyId3} #${objectid_verify} Catenate SEPARATOR=, ${objectid_verify} ${policyId4} # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 sleep 2 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true VerifyProxy-mail_ReqAndRes [Tags] Security Mail Req Res subid url fqdn # 新增 对象 # 创建源 ip ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"zmmtest","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"192.168.50.3","ipIf":false,"portIf":false,"port":"80","itemId":"","clientIp1":"192.168.50.3","clientIp2":"192.168.50.3","clientPort1":"80","clientPort2":"80","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595474423}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","objectSubType":"endpoint"}} #${objectids} set Variable ${object_Source_Id} #创建subid ${rescodeip} ${object_SubId_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"subscriberid","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"subid","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$test3"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_SubId_Id} # 创建目的ip #${rescodeip} ${object_Destination_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"252.252.252.252 ","ipIf":false,"portIf":false,"port":"443","itemId":"","clientIp1":"252.252.252.252 ","clientIp2":"252.252.252.252 ","clientPort1":"43","clientPort2":"43","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595313199}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} ${rescodeip} ${object_Destination_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"destination","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"11.11.11.11","ipIf":false,"portIf":false,"port":"11","itemId":"","clientIp1":"11.11.11.11","clientIp2":"11.11.11.11","clientPort1":"11","clientPort2":"11","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595313199}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} #${objectids} set Variable ${object_Destination_Id} # 创建url #${rescodeip} ${object_URL_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123131","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} ${rescodeip} ${object_URL_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"url","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"1231212","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_URL_Id} #创建fqdn ${rescodeip} ${object_QNAME_FQDN_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"asdfafa","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$verify.test"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Host_Id} # 创建Request Header ${rescodeip} ${object_Request_Header_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"http_signature","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123131","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"district":"Cookie"}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Request_Header_Id} # 创建Response_Header ${rescodeip} ${object_Response_Header_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"http_signature","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123123123","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"district":"Set-Cookie"}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Response_Header_Id} # 获取对象id集合 ${objectids} Create List [${object_Response_Header_Id}] [${object_Request_Header_Id}] [${object_QNAME_FQDN_Id}] [${object_URL_Id}] [${object_Destination_Id}] [${object_SubId_Id}] [${object_Source_Id}] log ${objectids} # 新增策略 ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"sakdfhsjkdahfaskdfjsah","policyType":"pxy_manipulation","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"method":"monitor","protocol":"HTTP"},"isValid":1,"objectIds":[],"objectList":[],"scheduleId":[],"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"},{"objectId":${object_SubId_Id},"protocolField":null}],"destination":[{"objectId":${object_Destination_Id},"protocolField":"TSG_SECURITY_DESTINATION_ADDR"}],"filterList":[{"filter":[{"objectId":${object_URL_Id},"protocolField":"TSG_FIELD_HTTP_URL"}]},{"filter":[{"objectId":${object_QNAME_FQDN_Id},"protocolField":"TSG_FIELD_HTTP_HOST"}]},{"filter":[{"objectId":${object_Request_Header_Id},"protocolField":"TSG_FIELD_HTTP_REQ_HDR"}]},{"filter":[{"objectId":${object_Response_Header_Id},"protocolField":"TSG_FIELD_HTTP_RES_HDR"}]}],"appIdObjects":[24]}} log ${policyId} #删除策略 ${policyIds} Create List {"policyType":"pxy_manipulation","policyIds":[${policyId}]} # # 获取策略id log ${policyIds} sleep 10 # # 新增策略验证 # 创建attributes中的字典 ${url} Create Dictionary attributeType=string attributeName=url appId=106 appName=http protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${qname_fqdn_id} Create Dictionary attributeType=string attributeName=host appId=106 appName=http protocol=http attributeValue={"string": "verify.test"} ${req_hdr_ck} Create Dictionary attributeType=signature attributeName=req_hdr appId=106 appName=http protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂","district": "Cookie"} ${res_hdr_sc} Create Dictionary attributeType=signature attributeName=res_hdr appId=106 appName=http protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂","district": "Set-Cookie"} ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string": "106"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "192.168.50.3","port": "80","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 4,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "11.11.11.11","port": "11","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 4,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${url} ${qname_fqdn_id} ${req_hdr_ck} ${res_hdr_sc} ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=pxy_manipulation verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} sleep 10 # 打印检查结果 # 将 策略id 加入对象 id #${objectid_verify} set variable ${objectids} ${objectid_verify} Catenate SEPARATOR=, ${object_Response_Header_Id} ${object_QNAME_FQDN_Id} ${object_URL_Id} ${object_Destination_Id} ${object_Source_Id} ${policyId} # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true VerifyProxy-mail_ReqAndRes2 [Tags] Security Mail Req Res ip # 创建目的ip ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"zccxcxczxcc","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"fc00::2:25","ipIf":false,"portIf":false,"port":"80","itemId":"","clientIp1":"fc00::2:25","clientIp2":"fc00::2:25","clientPort1":"80","clientPort2":"80","clientIpFormat":"range","clientPortFormat":"range","addrType":6,"direction":0,"temporaryItemId":1595846725}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":"","objectSubType":"endpoint"}} #${objectids} set Variable ${object_Source_Id} # 创建Request Header ${rescodeip} ${object_Request_Header_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"http_signature","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123131","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"district":"User-Agent"}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Request_Header_Id} # 创建Response_Header ${rescodeip} ${object_Response_Header_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"http_signature","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123123123","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"district":"Content-Type"}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Response_Header_Id} #创建 Request Content ${rescodeip} ${object_Request_Content_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"123123112","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Request_Content_Id} # 创建Response Content ${rescodeip} ${object_Response_Content_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"keywords","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"wwqwqwqwq","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"],"isHexbin":0,"itemId":""}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Response_Content_Id} # 获取对象id集合 ${objectids} Create List [${object_Response_Content_Id}] [${object_Request_Content_Id}] [${object_Response_Header_Id}] [${object_Request_Header_Id}] [${object_Source_Id}] log ${objectids} # 新增策略 ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Proxy-00010","policyType":"pxy_manipulation","action":"monitor","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"method":"monitor","protocol":"HTTP"},"isValid":1,"objectIds":[],"objectList":[],"scheduleId":[],"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[{"filter":[{"objectId":${object_Request_Header_Id},"protocolField":"TSG_FIELD_HTTP_REQ_HDR"}]},{"filter":[{"objectId":${object_Response_Header_Id},"protocolField":"TSG_FIELD_HTTP_RES_HDR"}]},{"filter":[{"objectId":${object_Request_Content_Id},"protocolField":"TSG_FIELD_HTTP_REQ_CONTENT"}]},{"filter":[{"objectId":${object_Response_Content_Id},"protocolField":"TSG_FIELD_HTTP_RES_CONTENT"}]}],"appIdObjects":[24]}} log ${policyId} #删除策略 ${policyIds} Create List {"policyType":"pxy_manipulation","policyIds":[${policyId}]} # # 获取策略id log ${policyIds} sleep 10 # # 新增策略验证 # 创建attributes中的字典 ${req_body} Create Dictionary attributeType=string attributeName=req_body appId=106 appName=http protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${res_body} Create Dictionary attributeType=string attributeName=res_body appId=106 appName=http protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂"} ${req_hdr_ua} Create Dictionary attributeType=signature attributeName=req_hdr appId=106 appName=http protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂","district": "User-Agent"} ${res_hdr_ct} Create Dictionary attributeType=signature attributeName=res_hdr appId=106 appName=http protocol=http attributeValue={"string": "①②③🍀⚡🔥♠♣♧øØπ¯―﹨ˆ˜﹍﹎º¹²³⇚⇛♐✐✎✍ㄥㄦㄧㄨㄩыьэюяμτυφχψωāáǎàōó㊇㊈㊉☀ ☁ ☂","district": "Content-Type"} ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string": "106"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "fc00::2:25","port": "80","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 6,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "fc00::2:25","port": "80","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 6,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${req_body} ${res_body} ${req_hdr_ua} ${res_hdr_ct} ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=pxy_manipulation verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} # 打印检查结果 # 将 策略id 加入对象 id ${objectid_verify} set variable ${objectids} ${objectid_verify} Catenate SEPARATOR=, ${object_Response_Content_Id} ${object_Request_Content_Id} ${object_Request_Header_Id} ${object_Response_Header_Id} ${object_Source_Id} ${policyId} # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true VerifyProxy-minCombine [Tags] Proxy Minimum combination # 创建源 ip ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"zmmtest","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"192.168.50.25","ipIf":false,"portIf":false,"port":"80","itemId":"","clientIp1":"192.168.50.25","clientIp2":"192.168.50.25","clientPort1":"80","clientPort2":"80","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595474423}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","objectSubType":"endpoint"}} #${objectids} set Variable ${object_Source_Id} #创建Host ${rescodeip} ${object_Host_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"asdfafa","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$verify.dns.com"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_Host_Id} # 创建 QNAME:FQDN ${rescodeip} ${object_QNAME_FQDN_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"QNAME_FQDN","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$verifytest"],"itemId":"","isHexbin":0}],"updateItemList":[],"deleteItemIds":[],"objectId":"","iconColor":""}} #${objectids} Catenate SEPARATOR=, ${objectids} ${object_QNAME_FQDN_Id} # 获取对象id集合 ${objectids} Create List [${object_QNAME_FQDN_Id}] [${object_Host_Id}] [${object_Source_Id}] log ${objectids} # 新增策略 ${rescode} ${policyId} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Proxy-00011","policyType":"pxy_manipulation","action":"manipulation","userTags":"","doBlacklist":0,"doLog":2,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"method":"redirect","protocol":"DoH","resolution":[{"qtype":"A","answer":[{"atype":"A","value":"109.244.23.140","ttl":{"min":1,"max":1}}]}]},"isValid":1,"objectIds":[],"objectList":[],"scheduleId":[],"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[{"filter":[{"objectId":${object_Host_Id},"protocolField":"TSG_FIELD_DOH_HOST"}]},{"filter":[{"objectId":${object_QNAME_FQDN_Id},"protocolField":"TSG_FIELD_DOH_QNAME"}]}],"appIdObjects":[53]}} log ${policyId} #删除策略 ${policyIds} Create List {"policyType":"pxy_manipulation","policyIds":[${policyId}]} # # 获取策略id log ${policyIds} sleep 10 # # 新增策略验证 # 创建attributes中的字典 ${host} Create Dictionary attributeType=string attributeName=host appId=135 appName=DoH protocol=DoH attributeValue={"string": "verify.dns.com"} ${qname} Create Dictionary attributeType=string attributeName=qname appId=135 appName=DoH protocol=DoH attributeValue={"string": "verifytest"} ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string": "135"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "192.168.50.25","port": "80","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 4,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "192.168.50.25","port": "80","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 4,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${host} ${qname} ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=pxy_manipulation verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} sleep 10 # 打印检查结果 # 将 策略id 加入对象 id ${objectid_verify} set variable ${objectids} ${objectid_verify} Catenate SEPARATOR=, ${object_QNAME_FQDN_Id} ${object_Host_Id} ${object_Source_Id} ${policyId} # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true VerifyProxy-manyPolies [Tags] Many Polies # 创建源 ip ${rescodeip} ${object_Source_Id} AddObject {"opAction":"add","returnData":1,"objectList":{"objectType":"ip","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"hbntest","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"192.168.50.3","ipIf":false,"portIf":false,"port":"80","itemId":"","clientIp1":"192.168.50.3","clientIp2":"192.168.50.3","clientPort1":"80","clientPort2":"80","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1595474423}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","objectSubType":"endpoint"}} #${objectids} set Variable ${object_Source_Id} ${objectids} Create List [${object_Source_Id}] # 获取对象id集合 log ${objectids} # 新增策略 ${rescode} ${policyId1} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-000121","policyType":"pxy_manipulation","action":"allow","userTags":"","doBlacklist":0,"doLog":2,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"method":"allow","protocol":"HTTP"},"isValid":1,"objectIds":[],"objectList":[],"scheduleId":[],"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[],"appIdObjects":[24]}} log ${policyId1} sleep 5 # 新增策略 ${rescode} ${policyId2} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-000122","policyType":"pxy_manipulation","action":"allow","userTags":"","doBlacklist":0,"doLog":2,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"method":"allow","protocol":"HTTP"},"isValid":1,"objectIds":[],"objectList":[],"scheduleId":[],"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[],"appIdObjects":[24]}} log ${policyId2} sleep 5 # 新增策略 ${rescode} ${policyId3} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-000123","policyType":"pxy_manipulation","action":"allow","userTags":"","doBlacklist":0,"doLog":2,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"method":"allow","protocol":"HTTP"},"isValid":1,"objectIds":[],"objectList":[],"scheduleId":[],"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[],"appIdObjects":[24]}} log ${policyId3} sleep 5 # 新增策略 ${rescode} ${policyId4} AddPolicy {"opAction":"add","returnData":1,"policyList":{"policyId":"","policyName":"VerifyProxy-Security-000124","policyType":"pxy_manipulation","action":"allow","userTags":"","doBlacklist":0,"doLog":2,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"method":"allow","protocol":"HTTP"},"isValid":1,"objectIds":[],"objectList":[],"scheduleId":[],"source":[{"objectId":${object_Source_Id},"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[],"appIdObjects":[24]}} log ${policyId4} sleep 5 #删除策略 ${policyIds} Create List {"policyType":"pxy_manipulation","policyIds":[${policyId1},${policyId2},${policyId3},${policyId4}]} # # 获取策略id log ${policyIds} #sleep 20 # # 新增策略验证 # 创建attributes中的字典 ${app_id} Create Dictionary attributeType=string attributeName=app_id attributeValue={"string": "106"} ${ipsource} Create Dictionary attributeType=ip attributeName=source attributeValue={"ip": "192.168.50.3","port": "80","tableName": "TSG_SECURITY_SOURCE_ADDR","addrType": 4,"protocol": "6"} ${ipdestination} Create Dictionary attributeType=ip attributeName=destination attributeValue={"ip": "11.11.11.11","port": "800","tableName": "TSG_SECURITY_DESTINATION_ADDR","addrType": 4,"protocol": "6"} # 合成attributes字典集 ${attributes} Create List ${app_id} ${ipsource} ${ipdestination} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=pxy_manipulation verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} sleep 5 # 打印检查结果 ${objectid_verify} set variable ${object_Source_Id} # 将 策略id 加入对象 id ${objectid_verify} Catenate SEPARATOR=, ${objectid_verify} ${policyId1} ${policyId2} ${policyId3} ${policyId4} # 调用关键字 提取应答json获取其中所有的id值,并判断新下发的id值是否在应答json的id中 ${ok} VerifyProxy ${resData} ${objectid_verify} # # ${ok} VerifyProxy ${objectids} ${resData} Should Be Equal As Strings ${ok} true