*** Settings *** Library Collections Library RequestsLibrary Resource ../../../03-Variable/BifangApiVariable.txt Variables ../../../05-Other/variable/policy/apipolicyjsonbase.py Library json Library ../../../04-CustomLibrary/Custometest/Common.py *** Variables *** *** Keywords *** JsonIPItem [Documentation] ... 生成IP催下json ... parm${ip},Example Format ... IPv4 x.x.x.x ... IPv4 CIDR x.x.x.x/n ... IPv4 Range x.x.x.x-y.y.y.y ... IPv6 CIDR x:x:x::x/n ... IPv6 Range x:x:x::x-y:y:y::y ... parm ${port} ... Port Range ... 0-65535 [Arguments] ${parmList} #"ip":"1.1.1.1","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"1.1.1.1","clientIp2":"1.1.1.1","clientPort1":"","clientPort2":"","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0 log ${Test-LoadBase_IP_OBJ_IP} ${clientIp1} Set Variable ${EMPTY} ${clientIp2} Set Variable ${EMPTY} ${clientPort1} Set Variable ${EMPTY} ${clientPort2} Set Variable ${EMPTY} ${clientIpFormat} Set Variable ${EMPTY} ${clientPortFormat} Set Variable ${EMPTY} ${addrType} Set Variable ${EMPTY} ${itemId} Set Variable ${EMPTY} ${ip} Get From List ${parmList} 0 ${port} Get From List ${parmList} 1 ${isinclude} aisincludeb . ${ip} ${addrType} Set Variable If '${isinclude}'=='True' 4 6 ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_ip ${ip} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_port ${port} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientIp1 ${clientIp1} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientIp2 ${clientIp1} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientPort1 ${clientPort1} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientPort2 ${clientPort2} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientIpFormat ${clientIpFormat} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_clientPortFormat ${clientPortFormat} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_addrType ${addrType} ${Test-LoadBase_IP_OBJ_IP} Replace String ${Test-LoadBase_IP_OBJ_IP} base_itemId ${itemId} [Return] ${Test-LoadBase_IP_OBJ_IP} JsonGEOItem [Documentation] ... 生成GEOjson ... parm${ip},Example Format ... Armenia.Abovyan.* Armenia.Agarak.* Armenia.* ... [Return] josn:{"keywordArray":["Armenia.Agarak.*"]} [Arguments] ${parmList} #"Test-LoadBase_IP_OBJ_GEO":'{"keywordArray":["base_keywordArray"]}' log ${Test-LoadBase_IP_OBJ_GEO} ${keywordArray} Get From List ${parmList} 0 ${Test-LoadBase_IP_OBJ_GEO} Replace String ${Test-LoadBase_IP_OBJ_GEO} base_keywordArray ${keywordArray} [Return] ${Test-LoadBase_IP_OBJ_GEO} JsonIPLEARNItem [Documentation] ... 生成单个对象 ... parm${parmList},Example Format ... ${fromFqdns} "*abc.com","$www.dce.com" ... ${fromProtocol} HTTP,SSL ... ${learningDepth} 1 2 ... ${agingTime} 1至2147483647 ... ${voteClientNum} 1至10000 ... ${learnedIpLimit} 1至10000 ... [Return]:"fromFqdns":[base_fromFqdns],"fromProtocol":"base_fromProtocol","learningDepth":"base_learningDepth","agingTime":"base_agingTime","voteClientNum":"base_voteClientNum","learnedIpLimit":"base_learnedIpLimit" [Arguments] ${parmList} #"Test-LoadBase_IP_OBJ_LEARN":'"fromFqdns":[base_fromFqdns],"fromProtocol":"base_fromProtocol","learningDepth":"base_learningDepth","agingTime":"base_agingTime","voteClientNum":"base_voteClientNum","learnedIpLimit":"base_learnedIpLimit"', log ${Test-LoadBase_IP_OBJ_LEARN} #${fromFqdns} ${fromProtocol} ${learningDepth} ${agingTime} ${voteClientNum} ${learnedIpLimit} ${fromFqdns} Get From List ${parmList} 0 ${fromProtocol} Get From List ${parmList} 1 ${learningDepth} Get From List ${parmList} 2 ${agingTime} Get From List ${parmList} 3 ${voteClientNum} Get From List ${parmList} 4 ${learnedIpLimit} Get From List ${parmList} 5 ${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_fromFqdns ${fromFqdns} ${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_fromProtocol ${fromProtocol} ${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_learningDepth ${learningDepth} ${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_agingTime ${agingTime} ${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_voteClientNum ${voteClientNum} ${Test-LoadBase_IP_OBJ_LEARN} Replace String ${Test-LoadBase_IP_OBJ_LEARN} base_learnedIpLimit ${learnedIpLimit} [Return] ${Test-LoadBase_IP_OBJ_LEARN} JsonKeywords [Documentation] ... 生成单个对象 ... parm${parmList},Example Format${itemId} Get From List ${parmList} 0 ... ${keywordArray} Get From List ${parmList} 1 ... 支持如下匹配方式: ... abc:substring matching ... *abc:suffix matching ... abc*:prefix matching ... $abc:exactly matching ... ${isHexbin} Get From List ${parmList} 2 ... 0:大小写不敏感,且非HEX,缺省 ... 1:HEX格式二进制 ... 2:大小写敏感,且非HEX ... ${isInitialize} Get From List ${parmList} 3 ... 0:非内置单元 ... 1:内置单元 ... 缺省为0 ... [Return] json:{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize} [Arguments] ${parmList} #[Arguments] ${itemId} ${keywordArray} ${isHexbin} ${isInitialize} #"Test-LoadBase_KEYWORDS":'{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}', log ${Test-LoadBase_KEYWORDS} ${itemId} Get From List ${parmList} 0 ${keywordArray} Get From List ${parmList} 1 ${isHexbin} Get From List ${parmList} 2 ${isInitialize} Get From List ${parmList} 3 ${Test-LoadBase_KEYWORDS} Replace String ${Test-LoadBase_KEYWORDS} base_keywordArray ${keywordArray} ${Test-LoadBase_KEYWORDS} Replace String ${Test-LoadBase_KEYWORDS} base_itemId ${itemId} ${Test-LoadBase_KEYWORDS} Replace String ${Test-LoadBase_KEYWORDS} base_isHexbin ${isHexbin} ${Test-LoadBase_KEYWORDS} Replace String ${Test-LoadBase_KEYWORDS} base_isInitialize ${isInitialize} [Return] ${Test-LoadBase_KEYWORDS} JsonDISTRICTKeywords [Documentation] ... 生成单个对象 ... parm${parmList},Example Format${itemId} Get From List ${parmList} 0 ... ${keywordArray} Get From List ${parmList} 1 ... 支持如下匹配方式: ... abc:substring matching ... *abc:suffix matching ... abc*:prefix matching ... $abc:exactly matching ... ${isHexbin} Get From List ${parmList} 2 ... 0:大小写不敏感,且非HEX,缺省 ... 1:HEX格式二进制 ... 2:大小写敏感,且非HEX ... ${isInitialize} Get From List ${parmList} 3 ... 0:非内置单元 ... 1:内置单元 ... 缺省为0 ... ${district} 指定位置 ... [Return] json:{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize} [Arguments] ${parmList} #${itemId} ${keywordArray} ${isHexbin} ${isInitialize} ${district} #"Test-LoadBase_KEYWORDS":'{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}', log ${Test-LoadBase_KEYWORDS} ${itemId} Get From List ${parmList} 0 ${keywordArray} Get From List ${parmList} 1 ${isHexbin} Get From List ${parmList} 2 ${isInitialize} Get From List ${parmList} 3 ${district} Get From List ${parmList} 4 #"Test-LoadBase_DISTRICTKEYWORDS":'{"keywordArray":["base_keywordArray"],"district":"base_district","itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}', log ${Test-LoadBase_DISTRICTKEYWORDS} ${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_keywordArray ${keywordArray} ${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_district ${district} ${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_itemId ${itemId} ${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_isHexbin ${isHexbin} ${Test-LoadBase_DISTRICTKEYWORDS} Replace String ${Test-LoadBase_DISTRICTKEYWORDS} base_isInitialize ${isInitialize} [Return] ${Test-LoadBase_DISTRICTKEYWORDS} JsonNumberOrFile [Arguments] ${itemId} ${lowBoundary} ${upBoundary} ${isInitialize} #"Test-LoadBase_NUMBERORFILE":'{"lowBoundary":base_lowBoundary,"upBoundary":base_upBoundary,"itemId":"base_itemId","isInitialize":base_isInitialize}', log ${Test-LoadBase_NUMBERORFILE} ${Test-LoadBase_NUMBERORFILE} Replace String ${Test-LoadBase_NUMBERORFILE} base_lowBoundary ${lowBoundary} ${Test-LoadBase_NUMBERORFILE} Replace String ${Test-LoadBase_NUMBERORFILE} base_upBoundary ${upBoundary} ${Test-LoadBase_NUMBERORFILE} Replace String ${Test-LoadBase_NUMBERORFILE} base_itemId ${itemId} ${Test-LoadBase_NUMBERORFILE} Replace String ${Test-LoadBase_NUMBERORFILE} base_isInitialize ${isInitialize} [Return] ${Test-LoadBase_NUMBERORFILE} JsonOBJ [Documentation] ... 生成单个对象 ... parm${parmList},Example Format ... ${objectType} Get From List ${parmList} 0 ... ${objectSubType} Get From List ${parmList} 1 ... ${objectName} Get From List ${parmList} 2 ... ${addItemList} Get From List ${parmList} 3 ... ${updateItemList} Get From List ${parmList} 4 ... ${deleteItemIds} Get From List ${parmList} 5 ... ${subObjectIds} Get From List ${parmList} 6 ... ${ipLearning} Get From List ${parmList} 7 [Arguments] ${parmList} #${objectType} ${objectSubType} ${objectName} ${itemList} #"Test-LoadBase_IP_OBJ":'{"objectType":"base_objectType","objectSubType":"base_objectSubType","isValid":base_isValid,"isInitialize":base_isInitialize,"isExclusion":base_isExclusion,"objectName":"base_objectName","objectDesc":"base_objectDesc","subObjectIds":[base_subObjectIds],"addItemList":[base_addItemList],"updateItemList":[base_updateItemList],"deleteItemIds":[base_deleteItemIds],"iconColor":"base_iconColor"}', log ${Test-LoadBase_OBJ} ${isValid} Set Variable 1 ${isInitialize} Set Variable 0 ${isExclusion} Set Variable 0 #${objectSubType} Set Variable ${objectSubType} #${objectName} Set Variable ${objectName} ${objectDesc} Set Variable AUTOTEST #${addItemList} ${updateItemList} ${deleteItemIds} ${subObjectIds} ${ipLearning} #${listlenth}= Get Length ${parmList} #FOR ${var} IN RANGE ${listlenth} # log ${var} # ${tempValue${var}} Get From List ${listtest} ${var} #END ${objectType} Get From List ${parmList} 0 ${objectSubType} Get From List ${parmList} 1 ${objectName} Get From List ${parmList} 2 ${addItemList} Get From List ${parmList} 3 ${updateItemList} Get From List ${parmList} 4 ${deleteItemIds} Get From List ${parmList} 5 ${subObjectIds} Get From List ${parmList} 6 ${ipLearning} Get From List ${parmList} 7 ${iconColor} Get From List ${parmList} 8 ${iconColor} Set Variable IF "${iconColor}"=="${EMPTY}" 31739C ${iconColor} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_isValid ${isValid} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_isInitialize ${isInitialize} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_isExclusion ${isExclusion} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectName ${objectName} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectDesc ${objectDesc} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_iconColor ${iconColor} #${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectType ${tempValue1} #${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectSubType ${tempValue2} #${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectName ${tempValue3} #${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_addItemList ${tempValue4} #${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_updateItemList ${tempValue5} #${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_deleteItemIds ${tempValue6} #${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_subObjectIds ${tempValue7} #${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_IPLEARN ${tempValue8} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectType ${objectType} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectSubType ${objectSubType} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_objectName ${objectName} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_addItemList ${addItemList} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_updateItemList ${updateItemList} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_deleteItemIds ${deleteItemIds} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_subObjectIds ${subObjectIds} ${ipLearning} run keyword if '${objectSubType}' == 'ip_learning' set variable ,${ipLearning} ... ELSE set variable ${EMPTY} ${Test-LoadBase_OBJ} Replace String ${Test-LoadBase_OBJ} base_IPLEARN ${ipLearning} [Return] ${Test-LoadBase_OBJ} JsonOBJS [Documentation] ... 生成新增对象接口的json ... parm${parmList},Example Format ... 操作参数:add:表示新增${opAction} Get From List ${parmList} 0 ... update:表示修改策略对象内容,包括对象名称,对象引用的子级策略对象等有修改时 ... disable:表示停用,只修改isValid属性为0 ... enable:表示启用,只修改isValid属性为1 ... ${returnData}是否返回请求数据(新增)${returnData} Get From List ${parmList} 1 ... 1:返回; ... 0:不返回 默认; Get From List ${parmList} 1 ... 对象列表:${objectList} Get From List ${parmList} 2 [Arguments] ${parmList} #"Test-LoadBase_OBJS":'{"opAction":"base_opAction","refuseCode":true,"returnData":base_returnData,"objectList":[base_objectList]}', log ${Test-LoadBase_OBJS} ${opAction} Get From List ${parmList} 0 ${returnData} Get From List ${parmList} 1 ${objectList} Get From List ${parmList} 2 ${Test-LoadBase_OBJS} Replace String ${Test-LoadBase_OBJS} base_opAction ${opAction} ${Test-LoadBase_OBJS} Replace String ${Test-LoadBase_OBJS} base_returnData ${returnData} ${Test-LoadBase_OBJS} Replace String ${Test-LoadBase_OBJS} base_objectList ${objectList} #2020-12-30: #策略:{"opAction":"add","refuseCode":true,"policyList":{"policyId":"","policyName":"dxytest","policyType":"tsg_security","action":"deny","userTags":"451,455,429","doBlacklist":0,"doLog":1,"policyDesc":"TSG-4961TSG-4961TSG-4961TSG-4961","effectiveRange":{"tag_sets":[[{"tag":"data_center","value":["Nur-sultan","Aktau"],"ids":[2,3]}],[{"tag":"data_center","value":["Aktubinsk"],"ids":[4]}]]},"userRegion":{"method":"drop"},"source":[{"objectId":108300,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest50.9,50.29,50.40","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":""},{"objectId":108430,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest关系subobj","objectType":"ip","objectSubType":"endpoint","objectDesc":"啊手动阀","iconColor":"#31739C"},{"objectId":109036,"protocolField":"","objectName":"dxytest40","objectType":"subscriberid","objectDesc":"","iconColor":"#31739C"},{"objectId":108577,"protocolField":"","objectName":"dxytest50.8","objectType":"subscriberid","objectDesc":"","iconColor":"#31739C"},{"objectId":108431,"protocolField":"TSG_SECURITY_SOURCE_LOCATION","objectName":"dxytestsubGeography","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":108433,"protocolField":"TSG_SECURITY_SOURCE_LOCATION","objectName":"dxytestGeography引用一级sub","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":108428,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest","objectType":"ip","objectSubType":"ip_learning","objectDesc":"","iconColor":"#31739C"},{"objectId":108415,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytestlearning","objectType":"ip","objectSubType":"ip_learning","objectDesc":"*.platinumai.net\n*m.iqiyipic.com\n*.sogou.com","iconColor":"#E46D6D"}],"destination":[{"objectId":108300,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest50.9,50.29,50.40","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":""},{"objectId":111766,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest引用","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":"#31739C"},{"objectId":144695,"protocolField":"TSG_SECURITY_DESTINATION_LOCATION","objectName":"dxytestGeography","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":125097,"protocolField":"TSG_SECURITY_DESTINATION_LOCATION","objectName":"dxytest城市","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":110307,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest","objectType":"ip","objectSubType":"ip_learning","objectDesc":"","iconColor":"#31739C"},{"objectId":110292,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest3996","objectType":"ip","objectSubType":"ip_learning","objectDesc":"dxytest","iconColor":"#31739C"}],"filterList":[],"appIdObjects":[21,24,25,44],"appSelectorObjects":[],"isValid":0,"scheduleId":[233,55]}} #IP对象:{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"sdf","subObjectIds":[],"addItemList":[{"ip":"1.1.1.1","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"1.1.1.1","clientIp2":"1.1.1.1","clientPort1":"","clientPort2":"","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325256},{"ip":"2.2.2.2","ipIf":false,"portIf":false,"port":"1-65535","itemId":"","clientIp1":"2.2.2.2","clientIp2":"2.2.2.2","clientPort1":"1","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325266},{"ip":"3.3.3.3","ipIf":false,"portIf":false,"port":"65535","itemId":"","clientIp1":"3.3.3.3","clientIp2":"3.3.3.3","clientPort1":"65535","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325277},{"ip":"1.1.1.1-1.1.1.254","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"","clientIp2":"","clientPort1":"","clientPort2":"","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325293},{"ip":"2.2.2.2-2.2.2.254","ipIf":false,"portIf":false,"port":"8080","itemId":"","clientIp1":"","clientIp2":"","clientPort1":"8080","clientPort2":"8080","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1609325335},{"ip":"a1::b1/128","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"a1::b1","clientIp2":"a1::b1","clientPort1":"","clientPort2":"","clientIpFormat":"CIDR","clientPortFormat":"range","addrType":6,"direction":0,"temporaryItemId":1609325350}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#E46D6D"}} #IP对象引用:{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"asdf","subObjectIds":[155107],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}} #Geography对象:{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"geo_location","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"asdf","subObjectIds":[],"addItemList":[{"keywordArray":["Armenia.Abovyan.*"]},{"keywordArray":["Armenia.Agarak.*"]},{"keywordArray":["Iran.Abadan.*"]},{"keywordArray":["1000.1000.*"]}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}} #IPLearnning:{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"ip_learning","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"1111","subObjectIds":[],"addItemList":[],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C","fromFqdns":["*abc.com","$www.dce.com"],"fromProtocol":"HTTP,SSL","learningDepth":"2","agingTime":"48","voteClientNum":"20","learnedIpLimit":10000}} #fqdn:{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"fqdn","objectSubType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"asdf","subObjectIds":[],"addItemList":[{"keywordArray":["$www.abc.com"],"t":"16093258203690","itemId":"","isHexbin":0,"state":2},{"keywordArray":["*bec.com"],"t":"16093258203691","isHexbin":0,"state":2}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}} #subid:{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"subscriberid","objectSubType":"subscriberid","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"dxytest","objectDesc":"$test3","subObjectIds":[],"addItemList":[{"keywordArray":"$test30","status":"","temporaryId":1609384206},{"status":"","keywordArray":"$test31","temporaryId":1609384242},{"keywordArray":"$test1","itemDesc":"{source:history_recommend,IP:192.168.50.4FIRST_FOUND_TIME:2020-12-14 13:11:22,LAST_FOUND_TIME:2020-12-15 20:03:06}","customId":"18test1","type":null,"ifEdit":"noEdit","searcHide":true}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}} [Return] ${Test-LoadBase_OBJS} JsonPolicy [Documentation] ... 生成新增对象接口的json ... parm${parmList},Example Format,相关参数说明地址:https://docs.geedge.net/pages/viewpage.action?pageId=8041075 ... 策略id新增为空,修改不为空${policyId} Get From List ${parmList} 0 ... 是否有效:0无效;1有效${isValid} Get From List ${parmList} 1 ... ${policyName} Get From List ${parmList} 2 ... policyList对象属性,策略类型:tsg_security:安全策略;pxy_manipulation:proxy控制策略;pxy_cache:proxy缓存策略;active_defence:主动防御策略;inline_device:串联设备策略${policyType} Get From List ${parmList} 3 ... policyList对象属性,安全策略:allow:128;monitor:1;deny:16;intercept:2;代理管控策略:deny:16;manipulation:48;allow:128;monitor:1;主动防御策略:activeDefence:4;串联设备策略:inlineDevice:96;地址转换策略:wannat:8;pxy_tcp_option:代理tcp option设置策略none:0.此参数只输入字符串不输入数字${action} Get From List ${parmList} 4 ... 策略标签:policyList对象属性,标签ID【可用于标识第三方的任务ID等信息】, 多个标签用英文逗号","分割${userTags} Get From List ${parmList} 5 ... policyList对象属性,是否生成日志0:不需要,1:需要,2:只记录结构化日志${doLog} Get From List ${parmList} 6 ... 动作参数对象:${userRegion} Get From List ${parmList} 7 ... source的多个object+protocolField之间是“或”的关系 ${source} Get From List ${parmList} 8 ... destination的多个object+protocolField之间是“或”的关系${destination} Get From List ${parmList} 9 ... 策略协议字段类的filter(condition)列表,多个filter之间是“与”的关系,filter的多个object+protocolField之间是“或”的关系,一个filter内的protocolField必须相同${filterList} Get From List ${parmList} 10 ... ${appIdObjects} Get From List ${parmList} 11 ... ${policyDesc} Get From List ${parmList} 12 ... ${effectiveRange} Get From List ${parmList} 13 ... ${appSelectorObjects} Get From List ${parmList} 14 ... ${scheduleId} Get From List ${parmList} 15 [Arguments] ${parmList} log ${Test-LoadBase_POLICY} #Test-LoadBase_POLICY ${policyId} Get From List ${parmList} 0 ${isValid} Get From List ${parmList} 1 ${policyName} Get From List ${parmList} 2 ${policyType} Get From List ${parmList} 3 ${action} Get From List ${parmList} 4 ${userTags} Get From List ${parmList} 5 ${doLog} Get From List ${parmList} 6 ${userRegion} Get From List ${parmList} 7 ${source} Get From List ${parmList} 8 ${destination} Get From List ${parmList} 9 ${filterList} Get From List ${parmList} 10 ${appIdObjects} Get From List ${parmList} 11 ${policyDesc} Get From List ${parmList} 12 ${effectiveRange} Get From List ${parmList} 13 ${appSelectorObjects} Get From List ${parmList} 14 ${scheduleId} Get From List ${parmList} 15 #${doBlacklist} Get From List ${parmList} 5 ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_policyId ${policyId} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_isValid ${isValid} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_policyName ${policyName} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_policyType ${policyType} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_action ${action} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_userTags ${userTags} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_doLog ${doLog} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_userRegion ${userRegion} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_source ${source} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_destination ${destination} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_filter ${filterList} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_appIdObjects ${appIdObjects} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_policyDesc ${policyDesc} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_effectiveRange ${effectiveRange} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_appSelectorObjects ${appSelectorObjects} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_scheduleId ${scheduleId} ${Test-LoadBase_POLICY} Replace String ${Test-LoadBase_POLICY} base_doBlacklist 0 #{"policyId":"","policyName":"dxytest","policyType":"tsg_security","action":"deny","userTags":"451,455,429","doBlacklist":0,"doLog":1,"policyDesc":"TSG-4961TSG-4961TSG-4961TSG-4961","effectiveRange":{"tag_sets":[[{"tag":"data_center","value":["Nur-sultan","Aktau"],"ids":[2,3]}],[{"tag":"data_center","value":["Aktubinsk"],"ids":[4]}]]},"userRegion":{"method":"drop"},"source":[{"objectId":108300,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest50.9,50.29,50.40","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":""},{"objectId":108430,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest关系subobj","objectType":"ip","objectSubType":"endpoint","objectDesc":"啊手动阀","iconColor":"#31739C"},{"objectId":109036,"protocolField":"","objectName":"dxytest40","objectType":"subscriberid","objectDesc":"","iconColor":"#31739C"},{"objectId":108577,"protocolField":"","objectName":"dxytest50.8","objectType":"subscriberid","objectDesc":"","iconColor":"#31739C"},{"objectId":108431,"protocolField":"TSG_SECURITY_SOURCE_LOCATION","objectName":"dxytestsubGeography","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":108433,"protocolField":"TSG_SECURITY_SOURCE_LOCATION","objectName":"dxytestGeography引用一级sub","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":108428,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytest","objectType":"ip","objectSubType":"ip_learning","objectDesc":"","iconColor":"#31739C"},{"objectId":108415,"protocolField":"TSG_SECURITY_SOURCE_ADDR","objectName":"dxytestlearning","objectType":"ip","objectSubType":"ip_learning","objectDesc":"*.platinumai.net\n*m.iqiyipic.com\n*.sogou.com","iconColor":"#E46D6D"}],"destination":[{"objectId":108300,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest50.9,50.29,50.40","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":""},{"objectId":111766,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest引用","objectType":"ip","objectSubType":"endpoint","objectDesc":"","iconColor":"#31739C"},{"objectId":144695,"protocolField":"TSG_SECURITY_DESTINATION_LOCATION","objectName":"dxytestGeography","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":125097,"protocolField":"TSG_SECURITY_DESTINATION_LOCATION","objectName":"dxytest城市","objectType":"ip","objectSubType":"geo_location","objectDesc":"","iconColor":"#31739C"},{"objectId":110307,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest","objectType":"ip","objectSubType":"ip_learning","objectDesc":"","iconColor":"#31739C"},{"objectId":110292,"protocolField":"TSG_SECURITY_DESTINATION_ADDR","objectName":"dxytest3996","objectType":"ip","objectSubType":"ip_learning","objectDesc":"dxytest","iconColor":"#31739C"}],"filterList":[],"appIdObjects":[21,24,25,44],"appSelectorObjects":[],"isValid":0,"scheduleId":[233,55]} [Return] ${Test-LoadBase_POLICY} JsonPolicys [Documentation] ... 生成新增策略接口的json ... 操作参数:add:表示新增${opAction} Get From List ${parmList} 0 ... update:表示修改策略象内容 ... disable:表示停用,只修改isValid属性为0 ... enable:表示启用,只修改isValid属性为1 ... ${returnData}是否返回请求数据(新增)${returnData} Get From List ${parmList} 1 ... 1:返回; ... 0:不返回 默认; Get From List ${parmList} 1 ... 策略列表:${policyList} Get From List ${parmList} 2 [Arguments] ${parmList} log ${Test-LoadBase_POLICYS} #Test-LoadBase_POLICY ${opAction} Get From List ${parmList} 0 ${returnData} Get From List ${parmList} 1 ${policyList} Get From List ${parmList} 2 ${Test-LoadBase_POLICYS} Replace String ${Test-LoadBase_POLICYS} base_opAction ${opAction} ${Test-LoadBase_POLICYS} Replace String ${Test-LoadBase_POLICYS} base_returnData ${returnData} ${Test-LoadBase_POLICYS} Replace String ${Test-LoadBase_POLICYS} base_policyList ${policyList} #{"opAction":"base_opAction","refuseCode":true,"returnData":base_returnData,"policyList":[base_policyList]}', [Return] ${Test-LoadBase_POLICYS} AddObjects [Documentation] ... 根据输入参数,新增对象并返回对象拼接到策略中的参数 ... ${parmList} 对象列表 ... ${objectSubType} endpoint ... ${opration} 对象新增方式,0,${parmList}作为多个item新增到一个对象;1,${parmList}每个新增一个对象一个对象;3.${parmList}新增多个对象并添加到一个对象group中; ... ${position} 对象位置:指定策略对象在哪个协议字段上生效参照https://docs.geedge.net/pages/viewpage.action?pageId=8041075 [Arguments] ${parmList} ${opration} ${position} #IP对象 ${ipObjs} Set Variable ${EMPTY} :FOR ${element} IN @{parmList} \ LOG ${element} \ ${ipObj} JsonIPItem ${parmList} \ ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} ${ipObjs} removeBeforOrAfter ${ipObjs} [1:] #拼接obj对象 ${objectType} Run Keyword If '${objectSubType}'=='endpoint' or '${objectSubType}'=='geo_location' or '${objectSubType}'=='ip_learning' Set Variable ip ${objectSubType} objectSubType # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 ${parmList} Create List ${objectType} ${objectType} ${TEST NAME}_IP ${ipObjs} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor} ${ipObjjson} JsonOBJ ${parmList} #拼接新增json #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 ${parmList} Create List add 1 ${ipObjjson} ${ipObjjson} JsonOBJS ${parmList} #add Object,return statuscode,objectid 多个返回以英文逗号分隔 ${returncode} ${ipid} AddObjectData 1 ${ipObjjson} #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 ${objectid} Set Variable ${ipid} ${objectIds} Create List [${objectid}] ${sourcejson} Set Variable {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_SOURCE_ADDR"} ${destjson} Set Variable {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_DESTINATION_ADDR"} [Return] ${Test-LoadBase_POLICYS}