1、IP类适配GEO类型;

2、appid变量内置初始化补全;
3、策略对象删除必填部分校验;
4、公共对象适配addobjects;
This commit is contained in:
dongxiaoyan
2021-01-26 17:56:36 +08:00
parent 6b92bfe5ea
commit 21e0834607
9 changed files with 678 additions and 21 deletions

View File

@@ -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

View File

@@ -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}

View File

@@ -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}

View File

@@ -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
... 支持如下匹配方式:
... abcsubstring matching
... *abcsuffix matching
... abc*prefix matching
... $abcexactly 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
... 支持如下匹配方式:
... abcsubstring matching
... *abcsuffix matching
... abc*prefix matching
... $abcexactly 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_manipulationproxy控制策略pxy_cacheproxy缓存策略active_defence主动防御策略inline_device串联设备策略${policyType} Get From List ${parmList} 3
... policyList对象属性安全策略allow:128;monitor:1;deny:16;intercept:2;代理管控策略deny:16;manipulation48;allow:128;monitor:1;主动防御策略activeDefence:4;串联设备策略inlineDevice:96;地址转换策略wannat8;pxy_tcp_option代理tcp option设置策略none0.此参数只输入字符串不输入数字${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 Objectreturn statuscodeobjectid 多个返回以英文逗号分隔
${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}

View File

@@ -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 Objectreturn statuscodeobjectid 多个返回以英文逗号分隔
${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 Objectreturn statuscodeobjectid 多个返回以英文逗号分隔
${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 Objectreturn statuscodeobjectid 多个返回以英文逗号分隔
${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 Objectreturn statuscodeobjectid 多个返回以英文逗号分隔
${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 Objectreturn statuscodeobjectid 多个返回以英文逗号分隔
${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 Objectreturn statuscodeobjectid 多个返回以英文逗号分隔
${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
#~!@#$%^&*()_+{}|:\"><?`1234567890-=\[\]\;\',./mn
${parmList} Create List ${EMPTY} 1 ${TEST NAME}_Policy tsg_security intercept ${EMPTY} 1 ${userRegion} ${sourcejson} ${destjson} ${filterjson} ${appIdObjects} ${policyDesc} ${EMPTY} ${EMPTY} ${EMPTY}
#${policyId}0 ${isValid}1 ${policyName}2 ${policyType}3 ${action}4 ${userTags}5 ${doLog}6 ${userRegion}7 ${source}8 ${destination}9 ${filterList}10 ${appIdObjects}11 ${policyDesc}12 ${effectiveRange}13 ${appSelectorObjects}14 ${scheduleId}15
${policys} JsonPolicy ${parmList}
#log ${Test-LoadBase_POLICYS}
${parmList} Create List add 1 ${policys}
${policysJson} JsonPolicys ${parmList}
#add Objectreturn statcodeobjectid
${returncode} ${policyid} AddPolicyData 1 ${policysJson}
#新增对象添加到删除策略列表,及时添加避免后面异常导致遗留垃圾数据
#${policyId1} Set Variable {"policyType":"tsg_security","policyIds":[${policyid}]}
${policyIds} Create List {"policyType":"tsg_security","policyIds":[${policyid}]}
test
# 新建一个list变量
${l1} create list aa bb
# 为list追加数据 同Append To List
${l2} create list 11 22
${l3} create list
# 为list追加数据 同Append To List
Append To List ${l3} ${l1}
Append To List ${l3} ${l2}
log ${l3}
log ${Test}
${a} Get From List ${Test} 0
${b} Get From List ${Test} 1
#${tWarningMessage} Run Keyword If abcdef AutoItLibrary.Win Get Text Generate Fee Data warning message ELSE Set Variable ""
#${tIfDuplicateFee} Evaluate "Duplicate Fee Warning" in """${tWarningMessage}"""
@@ -305,6 +490,8 @@ test
# 为list追加数据 同Append To List
Append To List @{list} dd
#可以获取list的某一段子list从两端截取或从中间截取
#list的下标从0开始
@{list} Create List lilei hanmeimei liming liliang liming
@@ -366,6 +553,9 @@ test
Test-GetRandomIP
[Tags] test
log ${CURDIR}
${a} aisincludeb . 1.1.1.2
${b} get_md5_01 E:/x509_cert_tool-master.zip
${ip} GetRandomIP ipv4
log ${ip}
${ip} GetRandomIP ipv6

View File

@@ -132,6 +132,7 @@ ObjectOrganize
${return} ${learnedIpLimit} Run Keyword And Ignore Error Get From Dictionary ${object} learnedIpLimit
Run Keyword If "${return}"!="FAIL" and "${fromProtocol}"!="${EMPTY}" Set To Dictionary ${returnDict} learnedIpLimit=${learnedIpLimit}
#... ELSE Set To Dictionary ${returnDict} learnedIpLimit=${Default_learnedIpLimit}
# 处理AddItemList
${return} ${addItemList} Run Keyword And Ignore Error Get From Dictionary ${object} addItemList
Run Keyword If "${return}"!="FAIL" and "${addItemList}"!="${EMPTY}" ManageAddItemListNew ${addItemList} ${returnDict} ${objectTypeV} ${objectSubType}
@@ -161,7 +162,8 @@ ManageAddItemListNew
Log Call ManageAddItemListNew
${itemList} Create List
FOR ${item} IN @{addItemList}
${itemNew} Run Keyword If '${type}'=='ip' ManageIpItem ${item} ${subType} add
${itemNew} Run Keyword If '${type}'=='ip' and '${subType}'=="geo_location" ManageGeoItem ${item} ${subType} add
... ELSE IF '${type}'=='ip' ManageIpItem ${item} ${subType} add
... ELSE IF '${type}'=='url' or '${type}'=='fqdn' or '${type}'=='keywords' or '${type}'=='subscriberid' or '${type}'=='fqdn_category' or '${type}'=='account' or '${type}'=='app_id'
... ManageStrItem ${item} ${type} add
... ELSE IF '${type}'=='file_type' ManageFileItem ${item} ${type} add
@@ -180,7 +182,9 @@ ManageUpdateItemList
FOR ${item} IN @{updateItemList}
${itemId} Get From Dictionary ${item} itemId
${itemNew} Run Keyword If '${type}'=='ip' ManageIpItem ${item} ${subType} update
${itemNew} Run Keyword If '${type}'=='ip' and '${subType}'=="geo_location" ManageGeoItem ${item} ${subType} update
... ELSE IF '${type}'=='ip' ManageIpItem ${item} ${subType} update
... ELSE IF '${type}'=='url' or '${type}'=='fqdn' or '${type}'=='keywords' or '${type}'=='subscriberid' or '${type}'=='fqdn_category' or '${type}'=='account' or '${type}'=='app_id'
... ManageStrItem ${item} ${type} update
... ELSE IF '${type}'=='file_type' ManageFileItem ${item} ${type} update
@@ -231,6 +235,20 @@ ManageIpItem
Run Keyword If "${itemName}"!="${EMPTY}" Set To Dictionary ${itemNew} itemName=${itemName}
Run Keyword If "${itemDesc}"!="${EMPTY}" Set To Dictionary ${itemNew} itemDesc=${itemDesc}
[Return] ${itemNew}
ManageGeoItem
[Documentation]
... ip item处理
[Arguments] ${item} ${subType} ${action}
Log ManageGeoItem
${return} ${keywordArray} Run Keyword And Ignore Error Get From Dictionary ${item} keywordArray
${keywordArray} Run Keyword If "${return}"!="FAIL" Set Variable ${keywordArray} ELSE Set Variable ${EMPTY}
${itemNew} Create Dictionary
${kArray} Create List
Run Keyword If "${keywordArray}"!="${EMPTY}" Append To List ${kArray} ${keywordArray}
Run Keyword If "${keywordArray}"!="${EMPTY}" Set To Dictionary ${itemNew} keywordArray=${kArray}
[Return] ${itemNew}
ManageStrItem
[Documentation]
... 字符串item处理

View File

@@ -97,7 +97,7 @@ PolicyOrganize
Run Keyword If "${policyObjectVersion}"=="v1" Dictionary Should Not Contain Key ${policy} filterList
Run Keyword If "${policyObjectVersion}"=="v1" Dictionary Should Not Contain Key ${policy} appIdObjects
Run Keyword If "${policyObjectVersion}"=="v2" Dictionary Should Not Contain Key ${policy} referenceObject
Run Keyword If "${policyObjectVersion}"=="v2" Dictionary Should Not Contain Key ${policy} appObjectIdArray
#Run Keyword If "${policyObjectVersion}"=="v2" Dictionary Should Not Contain Key ${policy} appObjectIdArray
#更新时 policyId不允许为空
${return} ${policyId} Run Keyword And Ignore Error Get From Dictionary ${policy} policyId
Run Keyword If "${opAction}"=="update" and "${return}"=="FAIL" Fail policyId is required when opAction is update
@@ -141,7 +141,8 @@ PolicyOrganize
Set To Dictionary ${returnDict} scheduleId=${scheduleIdV}
${return} ${appObjectIdArray} Run Keyword If "${policyObjectVersion}"=="v1" Run Keyword And Ignore Error Get From Dictionary ${policy} appObjectIdArray
... ELSE Run Keyword And Ignore Error Get From Dictionary ${policy} appIdObjects
${appObjectIdArrayV} Run Keyword If "${return}"=="FAIL" or "${appObjectIdArray}"=="${EMPTY}" Evaluate list(map(int, re.split('[,]', '${Default_AppObjectIdArray}'))) re
#${appObjectIdArrayV} Run Keyword If "${return}"=="FAIL" or "${appObjectIdArray}"=="${EMPTY}" Evaluate list(map(int, re.split('[,]', '${Default_AppObjectIdArray}'))) re
${appObjectIdArrayV} Run Keyword If "${return}"=="FAIL" or "${appObjectIdArray}"=="${EMPTY}" Evaluate ${Default_AppObjectIdArray} re
... ELSE Evaluate list(map(int, re.split('[,]', '${appObjectIdArray}'))) re
Run Keyword If "${policyObjectVersion}"=="v1" Set To Dictionary ${returnDict} appObjectIdArray=${appObjectIdArrayV}
... ELSE IF "${policyObjectVersion}"=="v2" Set To Dictionary ${returnDict} appIdObjects=${appObjectIdArrayV}
@@ -338,14 +339,15 @@ Get-PolicyIds
[Documentation] 获取结果中的策略ID
${policyIds} Create List
FOR ${policy} IN @{value['data']['policyList']}
#${policyIdList} Create List ${policy['policyId']}
#${policyObj} Create Dictionary policyType=${policy['policyType']} policyIds=${policyIdList}
#Append To List ${policyIds} ${policyObj}
Append To List ${policyIds} ${policy['policyId']}
${policyIdList} Create List ${policy['policyId']}
${policyObj} Create Dictionary policyType=${policy['policyType']} policyIds=${policyIdList}
Append To List ${policyIds} ${policyObj}
#Append To List ${policyIds} ${policy['policyId']}
END
${len} Get Length ${policyIds}
${policyIds} Run Keyword If ${len}==1 Set Variable ${policyIds[0]}
... ELSE Set Variable ${policyIds}
log ${policyIds}
#${len} Get Length ${policyIds}
#${policyIds} Run Keyword If ${len}==1 Set Variable ${policyIds[0]}
#... ELSE Set Variable ${policyIds}
[Return] ${policyIds}
DeletePolicyWithParamDict

View File

@@ -1,7 +1,57 @@
*** Variables ***
#${DNS_ID} 21
#${FTP_ID} 22
#${HTTP_ID} 24
#${SSL_ID} 44
#${MAIL_ID} 28
${UNKNOWN_TCP_ID} 18
${UNKNOWN_UDP_ID} 19
${UNKNOWN_OTHER_ID} 20
${DNS_ID} 21
${FTP_ID} 22
${FTPS_ID} 23
${HTTP_ID} 24
${SSL_ID} 44
${HTTPS_ID} 25
${ICMP_ID} 26
${IKE_ID} 27
${MAIL_ID} 28
${IMAPS_ID} 29
${IPSEC_ID} 30
${XMPP_ID} 31
${L2TP_ID} 32
${NTP_ID} 33
${POP3S_ID} 35
${PPTP_ID} 36
${QUIC_ID} 37
${SIP_ID} 38
${SMB_ID} 39
${SMTPS_ID} 41
${SPDY_ID} 42
${SSH_ID} 43
${SSL_ID} 44
${SOCKS_ID} 45
${TELNET_ID} 46
${DHCP_ID} 47
${RADIUS_ID} 48
${OPENVPN_ID} 49
${STUN_ID} 50
${TEREDO_ID} 51
${DTLS_ID} 52
${DOH_ID} 53
${ISAKMP_ID} 54
${MDNS_ID} 55
${NETBIOS_ID} 56
${NETFLOW_ID} 57
${RDP_ID} 58
${RTCP_ID} 59
${RTP_ID} 60
${SLP_ID} 61
${SNMP_ID} 62
${SSDP_ID} 63
${TFTP_ID} 64
${BJNP_ID} 65
${LDAP_ID} 66
${RTMP_ID} 67
${RTSP_ID} 68
${RTSP_ID} 68

View File

@@ -10,7 +10,7 @@ ${Default_Action} deny
${Default_EffectiveRange} Nursurtan|Transtelecom&Astel,|Astel&Transtelecom
${Default_UserRegion} method:rst
${Default_ReferenceObject} ${EMPTY}
${Default_AppObjectIdArray} 2,3,4,5,6
${Default_AppObjectIdArray} []
${Default_UserTags} ${EMPTY}
${Default_DoLog} ${1}
${Default_ScheduleId} ${EMPTY}