diff --git a/02-Keyword/tsg_bfapi/LoginLogout.robot b/02-Keyword/tsg_bfapi/LoginLogout.robot index a706493..e228347 100644 --- a/02-Keyword/tsg_bfapi/LoginLogout.robot +++ b/02-Keyword/tsg_bfapi/LoginLogout.robot @@ -103,7 +103,7 @@ SecurityPolicy-Allow-TSGUIAPI-Add #可以添加多个 ${addItemLists} Create list ${addItemList1} #objectList对象 - ${objectDict} Create Dictionary objectType=ip isValid=${1} addItemList=${addItemLists} + ${objectDict} Create Dictionary objectType=ip objectSubType=endpoint isValid=${1} addItemList=${addItemLists} ${rescode} ${objectId} AddObjects ${1} ${objectDict} SET GLOBAL VARIABLE ${testBifangIP} ${objectId} Comment 创建安全策略 @@ -115,7 +115,7 @@ SecurityPolicy-Allow-TSGUIAPI-Add SecurityPolicy-Allow-TSGUIAPI-DEL [Tags] uiallow log toDelTSGUIAPI - ${policyId1} set Variable {"policyType":"tsg_security","policyIds":[${testBifangPolicy}]} - ${policyIds} Create List ${policyId1} - DeletePolicyAndObject ${policyIds} ${testBifangIP} + #${policyId1} set Variable {"policyType":"tsg_security","policyIds":[${testBifangPolicy}]} + #${policyIds} Create List ${testBifangPolicy} + DeletePolicyAndGroupObject ${testBifangPolicy} ${testBifangIP} log delTSGUIAPISucess \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/PolicyObject.robot b/02-Keyword/tsg_bfapi/PolicyObject.robot index 7876b42..7a454f1 100644 --- a/02-Keyword/tsg_bfapi/PolicyObject.robot +++ b/02-Keyword/tsg_bfapi/PolicyObject.robot @@ -42,13 +42,13 @@ AddLocalIPObject #可以添加多个 ${addItemLists} Create list ${addItemList1} #objectList对象 - ${objectDict} Create Dictionary objectType=ip isValid=${1} addItemList=${addItemLists} + ${objectDict} Create Dictionary objectType=ip objectSubType=endpoint isValid=${1} addItemList=${addItemLists} ${rescode} ${objectId1} AddObjects ${1} ${objectDict} SET GLOBAL VARIABLE ${testClentID} ${objectId1} log to_AddLocalSubidObject ${objectDict} Create Dictionary ... objectType=subscriberid - ... objectSubType=${Default_ObjectSubType} + ... objectSubType=subscriberid ... isInitialize=${Default_IsInitialize} ... isExclusion=${Default_IsExclusion} ... objectName=autotest_localSubId_${testSubscriberID} diff --git a/02-Keyword/tsg_bfapi/policy/ApiPolicyRequest.robot b/02-Keyword/tsg_bfapi/policy/ApiPolicyRequest.robot index a96e6c0..2a8f639 100644 --- a/02-Keyword/tsg_bfapi/policy/ApiPolicyRequest.robot +++ b/02-Keyword/tsg_bfapi/policy/ApiPolicyRequest.robot @@ -16,7 +16,7 @@ GetRequestResposeCodePrivate [Arguments] ${data} [Documentation] [Get方法封装:第二层,] ${header} Create Dictionary Content-Type=application/json Authorization=${token} - ${response} GetRequestBase http://${hosturl}:${port} ${policyapiv2} ${header} ${data} + ${response} GetRequestBase http://${hosturl} ${policyapiv2} ${header} ${data} ${response} to json ${response} ${code} get from dictionary ${response} code [Return] ${code} diff --git a/02-Keyword/tsg_bfapi/policy/PolicyJsonVariable.robot b/02-Keyword/tsg_bfapi/policy/PolicyJsonVariable.robot new file mode 100644 index 0000000..380ee86 --- /dev/null +++ b/02-Keyword/tsg_bfapi/policy/PolicyJsonVariable.robot @@ -0,0 +1,397 @@ +*** 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} \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/policy/Test_ApiPolicyRequest.robot b/02-Keyword/tsg_bfapi/policy/Test_ApiPolicyRequest.robot index 4087a03..07ac9fe 100644 --- a/02-Keyword/tsg_bfapi/policy/Test_ApiPolicyRequest.robot +++ b/02-Keyword/tsg_bfapi/policy/Test_ApiPolicyRequest.robot @@ -8,6 +8,7 @@ Variables ../../../05-Other/variable/policy/apipolicyrequesttest.py Variables ../../../05-Other/variable/policy/apipolicyjsonbase.py Resource ../../../03-Variable/ApplicationID.txt #Resource ../../tsg_bfapi/PolicyObject.robot +Library ../../../04-CustomLibrary/Custometest/Common.py *** Variables *** ${policyIds} @@ -280,8 +281,192 @@ Test-Policy-Test #新增对象添加到删除策略列表,及时添加避免后面异常导致遗留垃圾数据 #${policyId1} Set Variable {"policyType":"tsg_security","policyIds":[${policyid}]} ${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyid}]} - + + +Test-Policy-TestNew + [Tags] test + #获取当前Case名称 + ${sourcejson} Set Variable ${EMPTY} + ${destjson} Set Variable ${EMPTY} + ${filterjson} Set Variable ${EMPTY} + ${iconColor} Set Variable 31739C + log ${TEST NAME} + #IP对象 + log @{Test} + ${tt} Get From List ${Test} 0 + ${parmList} Create List 1.1.1.2 0-65535 + ${ipObjs} JsonIPItem ${parmList} + ${parmList} Create List 1.1.1.1-1.1.1.200 1-65535 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List 2.2.2.2/24 443 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List a1::b1 0-65535 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List a1::b1-a1::b15 1-65535 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List a1::b1/128 8080 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List 192.168.0.1 0-65535 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List ip endpoint ${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"} + + #Geo对象 + ${parmList} Create List Armenia.Abovyan.* + ${ipGeos} JsonGEOItem ${parmList} + ${parmList} Create List Armenia.Agarak.* + ${ipGeo} JsonGEOItem ${parmList} + ${ipGeos} Catenate SEPARATOR=, ${ipGeos} ${ipGeo} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List ip geo_location ${TEST NAME}_GEO ${ipGeos} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor} + ${ipGeojson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${ipGeojson} + ${ipObjjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${ipid} AddObjectData 1 ${ipObjjson} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Catenate SEPARATOR=, ${objectid} ${ipid} + ${objectIds} Create List [${objectid}] + ${sourcejson} Catenate SEPARATOR=, ${sourcejson} {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_SOURCE_LOCATION"} + ${destjson} Catenate SEPARATOR=, ${destjson} {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_DESTINATION_LOCATION"} + + #IPLEARN对象 + #${parmList}:${fromFqdns} ${fromProtocol} ${learningDepth} ${agingTime} ${voteClientNum} ${learnedIpLimit} + ${parmList} Create List "*abc.com","$www.dce.com" HTTP,SSL 2 48 20 10000 + ${ipLearns} JsonIPLEARNItem ${parmList} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List ip ip_learning ${TEST NAME}_IPLEARN ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${ipLearns} ${iconColor} + ${ipLearnjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${ipLearnjson} + ${ipObjjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${ipid} AddObjectData 1 ${ipObjjson} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Catenate SEPARATOR=, ${objectid} ${ipid} + ${objectIds} Create List [${objectid}] + ${sourcejson} Catenate SEPARATOR=, ${sourcejson} {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_SOURCE_ADDR"} + ${destjson} Catenate SEPARATOR=, ${destjson} {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_DESTINATION_ADDR"} + + #subid对象 + #${parmList}:${itemId} ${keywordArray} ${isHexbin} ${isInitialize} + #创建拼接对象参数list + ${parmList} Create List ${EMPTY} $test1 0 0 + #调用关键字生成对象itemjson + ${subids} JsonKeywords ${parmList} + #添加另一个 创建拼接对象参数list + ${parmList} Create List ${EMPTY} $test62 0 0 + ${subid} JsonKeywords ${parmList} + ${subids} Catenate SEPARATOR=, ${subids} ${subid} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List subscriberid subscriberid ${TEST NAME}_SUBID ${subids} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor} + ${subidjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${subidjson} + ${subidjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${subidid} AddObjectData 1 ${subidjson} + ${objectid} Catenate SEPARATOR=, ${objectid} ${subidid} + ${objectIds} Create List [${objectid}] + ${sourcejson} Catenate SEPARATOR=, ${sourcejson} {"objectId" : ${subidid},"protocolField" : ""} + #${destjson} Catenate SEPARATOR=, ${destjson} {"objectId" : ${subidid},"protocolField" : ""} + + #fqdn对象 + #${parmList}:${itemId} ${keywordArray} ${isHexbin} ${isInitialize} + ${parmList} Create List ${EMPTY} $www.abc.com 0 0 + ${fqdns} JsonKeywords ${parmList} + ${parmList} Create List ${EMPTY} *.abc.com 0 0 + ${fqdn} JsonKeywords ${parmList} + ${fqdns} Catenate SEPARATOR=, ${fqdns} ${fqdn} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List fqdn fqdn ${TEST NAME}_FQDN ${fqdns} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor} + ${fqdnjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${fqdnjson} + ${fqdnjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${fqdnidSub} AddObjectData 1 ${fqdnjson} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + #${objectid} Catenate SEPARATOR=, ${objectid} ${fqdnid} + ${objectIds} Create List [${objectid}] [${fqdnidSub}] + + #fqdn对象组 + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List fqdn fqdn ${TEST NAME}_FQDN_GROUP ${EMPTY} ${EMPTY} ${EMPTY} ${fqdnidSub} ${EMPTY} ${iconColor} + ${fqdnjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${fqdnjson} + ${fqdnjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${fqdnid} AddObjectData 1 ${fqdnjson} + ${objectid} Catenate SEPARATOR=, ${objectid} ${fqdnid} + ${objectIds} Create List [${objectid}] [${fqdnidSub}] + ${filterjson} Set Variable {"objectId" : ${fqdnid},"protocolField" : "TSG_FIELD_SSL_SNI"} + + #从变量文件中加载的新增对象JSON串 + # ${Test-LoadBase_POLICY} + ${appIdObjects} Set Variable ${SSL_ID} + ${userRegion} Set Variable "protocol" : "SSL","keyring" : 1,"decryption" : 1,"decrypt_mirror" : {"enable" : 0,"mirror_profile" : null} + ${policyDesc} Set Variable ${TEST NAME}_aututest + #~!@#$%^&*()_+{}|:\">