fix:(策略新增修改)1.分隔符参数化,将分隔符定义于Variables中

2.filterList分隔符向v1版本兼容,objectId和protocolField之间的分隔符默认值改成|,objectId之间的分隔符改成:
This commit is contained in:
wangxin
2020-07-01 10:59:42 +08:00
parent cec28c7a7a
commit 230d0b6634
3 changed files with 26 additions and 15 deletions

View File

@@ -104,7 +104,7 @@ Policy-Post-v2-00004
... policyDesc=autotest
... action=deny #effectiveRange={}
... userRegion={"protocol":"SSL","method":"drop"}
... filterList=${objectId}:TSG_FIELD_SSL_CN
... filterList=${objectId}|TSG_FIELD_SSL_CN
... isValid=${1} appIdObjects=3
${rescode} ${policyIds} AddPolicies 1 ${policy} v2
Log ${rescode} ${policyIds} ${objectIds}

View File

@@ -35,12 +35,14 @@ AddPolicies
... 为字符串类型,以','分隔
... v2版本特殊参数说明
... v2版本中无referenceObject取而代之的是sourcedestinationfilterList
... source= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
... destination= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
... filterList= ${265}|${257}:TSG_FIELD_HTTP_HOST,${266}|${299}:TSG_FIELD_SSL_SNI
... filterList由多个数字用|’分隔,加上对上对应的protocolFiled,
... source= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI
... destination= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI
... filterList= ${265}:${257}|TSG_FIELD_HTTP_HOST,${266}:${299}|TSG_FIELD_SSL_SNI
... filterList由多个数字用:’分隔,加上|对上对应的protocolFiled,
... 一个filter中的protocolFiled是确定的一个protocolFiled对应多个objectId
... v2版本不支持protocolFiled之间的&符号连接,因为接口中protocolFiled不是数组结构
... appIdObjects==${2},${3}
... 20200701修订分隔符号在Variables中定义,可替换
[Arguments] ${returnData} ${policyList} ${version}
Log To Console Call AddPolicies
${returnData}= Run Keyword If '${returnData}' == '${EMPTY}' Set Variable 1

View File

@@ -4,6 +4,15 @@ Library Collections
Resource ../../../03-Variable/BifangApiVariable.txt
Resource ../../../03-Variable/PolicyObjectDefault.txt
Resource ../../tsg_common/ManagePolicyBody.robot
*** Variables ***
#arraySplitor:数组元素之间的分隔符
${arraySplitor} ,
#protocolFiledSplitor:protocolFiled之间的分隔符
${protocolFiledSplitor} &
#objectIdSplitor:objectId之间的分隔符
${objectIdSplitor} :
#idFiledSplitor: objectId和protocolFiled之间的分隔符
${idFiledSplitor} |
*** Keywords ***
# ... 特殊参数说明:
# ... effectiveRange=Nursurtan|Transtelecom&Astel,Almaty&Nursurtan,|Astel&Transtelecom
@@ -26,10 +35,10 @@ Resource ../../tsg_common/ManagePolicyBody.robot
# ...
# ... 注:数字类型变量为${0}、${1}、${...}
# ... 在v2版本中 无referenceObject取而代之的是sourcedestinationfilterList
# ... source= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
# ... destination= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
# ... filterList= ${265}|${257}:TSG_FIELD_HTTP_HOST,${266}|${299}:TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
# ... filterList由多个数字用|’分隔,加上对上对应的protocolFiled,
# ... source= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI
# ... destination= ${265}|TSG_FIELD_HTTP_HOST,${266}|TSG_FIELD_SSL_SNI
# ... filterList= ${265}:${257}|TSG_FIELD_HTTP_HOST,${266}:${299}|TSG_FIELD_SSL_SNI
# ... filterList由多个数字用:’分隔,加上|对上对应的protocolFiled,
# ... 一个filter中的protocolFiled是确定的一个protocolFiled对应多个objectId
PolicyListDataOperation
[Documentation]
@@ -287,7 +296,7 @@ AnalysisObjectV2
${objectList} Run Keyword If "${return}"=="FAIL" or "${objectList}"=="${EMPTY}" Set Variable ${policyObjectDefault}
... ELSE Set Variable ${objectList}
${list} Evaluate re.split('[,]', '${objectList}') re
${list} Evaluate re.split('[${arraySplitor}]', '${objectList}') re
FOR ${var} IN @{list}
${tempObj} Run Keyword If "${objectType}"=="filterList" and "${var}" != "" ManageFilter ${var}
... ELSE IF "${var}" != "" ManageObject ${var} ELSE Set Variable ${EMPTY}
@@ -301,9 +310,9 @@ ManageObject
Log To Console Call ManageObject
${objectList} Create List
#截取objectId
${objectId} Evaluate '${object}'[0:'${object}'.find('|')]
${objectId} Evaluate '${object}'[0:'${object}'.find('${idFiledSplitor}')]
#截取protocolField
${protocolField} Evaluate '${object}'['${object}'.find('|')+1:]
${protocolField} Evaluate '${object}'['${object}'.find('${idFiledSplitor}')+1:]
${tempObj} Create Dictionary
${objectId} Run Keyword If '${objectId}'.isdigit() Evaluate int('${objectId}')
... ELSE Set Variable ${objectId}
@@ -317,11 +326,11 @@ ManageFilter
Log Call ManageFilter
${filterObjectList} Create List
#截取objectId
${objectIds} Evaluate '${filter}'[0:'${filter}'.find(':')]
${objectIds} Evaluate '${filter}'[0:'${filter}'.find('${idFiledSplitor}')]
#截取protocolField
${protocolField} Evaluate '${filter}'['${filter}'.find(':')+1:]
${protocolField} Evaluate '${filter}'['${filter}'.find('${idFiledSplitor}')+1:]
#遍历 objectId
${list} Evaluate re.split('[|]', '${objectIds}') re
${list} Evaluate re.split('[${objectIdSplitor}]', '${objectIds}') re
Log list ${list}
FOR ${var} IN @{list}
${tempObj} Create Dictionary