From 230d0b663406572083a3afb42de8f2b25942239c Mon Sep 17 00:00:00 2001 From: wangxin Date: Wed, 1 Jul 2020 10:59:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:(=E7=AD=96=E7=95=A5=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=BF=AE=E6=94=B9)1.=E5=88=86=E9=9A=94=E7=AC=A6=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=8C=96=EF=BC=8C=E5=B0=86=E5=88=86=E9=9A=94=E7=AC=A6?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E4=BA=8EVariables=E4=B8=AD=202.filterList?= =?UTF-8?q?=E5=88=86=E9=9A=94=E7=AC=A6=E5=90=91v1=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=EF=BC=8CobjectId=E5=92=8CprotocolField?= =?UTF-8?q?=E4=B9=8B=E9=97=B4=E7=9A=84=E5=88=86=E9=9A=94=E7=AC=A6=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC=E6=94=B9=E6=88=90|=EF=BC=8CobjectId=E4=B9=8B?= =?UTF-8?q?=E9=97=B4=E7=9A=84=E5=88=86=E9=9A=94=E7=AC=A6=E6=94=B9=E6=88=90?= =?UTF-8?q?=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../policy_object/PolicyObjectTests.robot | 2 +- .../tsg_bfapi/policy_object/Policy.robot | 10 ++++--- .../policy_object/ProcessPolicyBody.robot | 29 ++++++++++++------- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot b/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot index 0693de1..e284a87 100644 --- a/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot +++ b/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot @@ -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} diff --git a/02-Keyword/tsg_bfapi/policy_object/Policy.robot b/02-Keyword/tsg_bfapi/policy_object/Policy.robot index e8c506a..7b582f5 100644 --- a/02-Keyword/tsg_bfapi/policy_object/Policy.robot +++ b/02-Keyword/tsg_bfapi/policy_object/Policy.robot @@ -35,12 +35,14 @@ AddPolicies ... 为字符串类型,以','分隔 ... v2版本特殊参数说明: ... v2版本中无referenceObject,取而代之的是source,destination,filterList - ... 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 diff --git a/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot b/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot index 78cc222..89b031d 100644 --- a/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot +++ b/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot @@ -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,取而代之的是source,destination,filterList -# ... 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