diff --git a/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot b/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot index 6ec67c8..53af8bf 100644 --- a/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot +++ b/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot @@ -149,4 +149,107 @@ Policy-Post-v2-00006 ${profile1} Create Dictionary typeUrl=reflector/payload profileIds=${payload_profile_id} Append To List ${profiles} ${profile} ${profile1} ${objectIds} Set Variable ${EMPTY} - Log ${rescode} ${policyIds} ${objectIds} \ No newline at end of file + Log ${rescode} ${policyIds} ${objectIds} +Policy-Post-v2-00007 + Comment 创建IP + ${objectDict} Create Dictionary objectType=ip isValid=${1} + ... isInitialize=0 + ... addItemList=range|192.168.41.68|192.168.41.68|0/0 + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + ${objectIds} Set Variable ${objectId1} + Log To Console Create IP Object1 + Comment 创建IP1 + ${objectDict} Create Dictionary objectType=ip isValid=${1} + ... isInitialize=0 + ... addItemList=range|192.168.41.67|192.168.41.67|0/0 + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + ${objectIds} Set Variable ${objectId2} + Log To Console Create IP Object2 + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=*baidu.com + ${rescode} ${objectId3} AddObject2 ${1} ${objectDict} + ${objectIds} Set Variable ${objectId3},${objectIds} + Log To Console Create url Object3 + Comment 创建url1 + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=*google.com.com + ${rescode} ${objectId4} AddObject2 ${1} ${objectDict} + ${objectIds} Set Variable ${objectId4},${objectIds} + Log To Console Create url Object4 + Comment 创建安全策略 + ${policy} Create Dictionary policyName=WX_AddPolicy-v2-00007 policyType=tsg_security + ... policyDesc=wx-autotest + ... action=deny effectiveRange={} + ... userRegion={"protocol":"HTTP","method":"drop"} + ... source=${objectId1}|TSG_SECURITY_SOURCE_ADDR + ... destination=${objectId3}|TSG_FIELD_HTTP_URL + ... isValid=${1} appIdObjects=2 + ${rescode} ${policyIds} AddPolicies 1 ${policy} v2 + Log ${rescode} + ${updatePolicyId} Set Variable ${policyIds}[0][policyIds][0] + Comment 更新安全策略 + ${policy} Create Dictionary policyName=WX_UpdatePolicy-v2-00007 policyType=tsg_security + ... policyDesc=wx-autotest policyId=${updatePolicyId} + ... action=monitor + ... userRegion={"protocol":"HTTP","traffic_forward":{"enable":1}} + ... source=${objectId2}|TSG_SECURITY_SOURCE_ADDR + ... destination=${objectId4}|TSG_FIELD_HTTP_URL + ... isValid=${1} appIdObjects=2 + ${rescode} UpdatePolicies 1 ${policy} v2 update +Policy-Post-v2-00008 + Comment 创建IP + ${objectDict} Create Dictionary objectType=ip isValid=${1} + ... isInitialize=0 + ... addItemList=range|192.168.41.68|192.168.41.68|0/0 + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + ${objectIds} Set Variable ${objectId1} + Log To Console Create IP Object1 + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=*baidu.com + ${rescode} ${objectId3} AddObject2 ${1} ${objectDict} + ${objectIds} Set Variable ${objectId3},${objectIds} + Log To Console Create url Object3 + + Comment 创建安全策略 + ${policy} Create Dictionary policyName=WX_AddPolicy-v2-00008 policyType=tsg_security + ... policyDesc=wx-autotest + ... action=deny effectiveRange={} + ... userRegion={"protocol":"HTTP","method":"drop"} + ... source=${objectId1}|TSG_SECURITY_SOURCE_ADDR + ... destination=${objectId3}|TSG_FIELD_HTTP_URL + ... isValid=${1} appIdObjects=2 + ${policy1} Copy Dictionary ${policy} true + ${rescode} ${policyIds} AddPolicies 1 ${policy} v2 + Log ${rescode} + ${updatePolicyId} Set Variable ${policyIds}[0][policyIds][0] + Comment 更新安全策略 + Set To Dictionary ${policy1} policyId=${updatePolicyId} + ${rescode} UpdatePolicies 1 ${policy1} v2 disable +Policy-Post-v2-00009 + Comment 创建IP + ${objectDict} Create Dictionary objectType=ip isValid=${1} + ... isInitialize=0 + ... addItemList=range|192.168.41.68|192.168.41.68|0/0 + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + ${objectIds} Set Variable ${objectId1} + Log To Console Create IP Object1 + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=*baidu.com + ${rescode} ${objectId3} AddObject2 ${1} ${objectDict} + ${objectIds} Set Variable ${objectId3},${objectIds} + Log To Console Create url Object3 + + Comment 创建安全策略 + ${policy} Create Dictionary policyName=WX_AddPolicy-v2-00009 policyType=tsg_security + ... policyDesc=wx-autotest + ... action=deny effectiveRange={} + ... userRegion={"protocol":"HTTP","method":"drop"} + ... source=${objectId1}|TSG_SECURITY_SOURCE_ADDR + ... destination=${objectId3}|TSG_FIELD_HTTP_URL + ... isValid=${0} appIdObjects=2 + ${policy1} Copy Dictionary ${policy} true + ${rescode} ${policyIds} AddPolicies 1 ${policy} v2 + Log ${rescode} + ${updatePolicyId} Set Variable ${policyIds}[0][policyIds][0] + Comment 更新安全策略 + Set To Dictionary ${policy1} policyId=${updatePolicyId} + ${rescode} UpdatePolicies 1 ${policy1} v2 enable \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/Common.robot b/02-Keyword/tsg_bfapi/Common.robot index e6694ca..4fc1734 100644 --- a/02-Keyword/tsg_bfapi/Common.robot +++ b/02-Keyword/tsg_bfapi/Common.robot @@ -83,3 +83,10 @@ BaseEditRequest Should Be Equal As Strings ${response.status_code} 200 ${response} to json ${response.content} [Return] ${response} +BaseEditRequestForV2 + [Arguments] ${requestUri} ${data} ${apiVersion} + ${apiStart} Evaluate '${requestUri}'[0:1] + ${requestUri} Run Keyword If "${apiStart}"=="/" set variable /${apiVersion}${requestUri} + ... ELSE set variable /${apiVersion}/${requestUri} + ${response} BaseEditRequest ${requestUri} ${data} + [Return] ${response} \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/policy_object/Policy.robot b/02-Keyword/tsg_bfapi/policy_object/Policy.robot index 3a9225b..ae8deeb 100644 --- a/02-Keyword/tsg_bfapi/policy_object/Policy.robot +++ b/02-Keyword/tsg_bfapi/policy_object/Policy.robot @@ -74,4 +74,18 @@ AddPolicies ${policyIds} Run Keyword If "${returnData}" == "1" WxGet-PolicyIds ${response} ... ELSE Create List ${rescode} Set Variable ${response['code']} - [Return] ${rescode} ${policyIds} \ No newline at end of file + [Return] ${rescode} ${policyIds} +UpdatePolicies + [Arguments] ${returnData} ${policyList} ${version} ${opAction} + Log To Console Call UpdatePolicies + ${returnData}= Run Keyword If '${returnData}' == '${EMPTY}' Set Variable 1 + ... ELSE Set Variable ${returnData} + #必选参数判定 + Should Not Be Empty ${policyList} + ${dictType} = Evaluate type(${policyList}) + ${body} Run Keyword If "${dictType}" == "" WxPolicyListOperation ${returnData} ${policyList} ${opAction} ${version} + ... ELSE IF "${dictType}" == "" WxPolicyOperation ${returnData} ${policyList} ${opAction} ${version} + ... ELSE Set Variable ${EMPTY} + ${response} BaseEditRequestForV2 ${url} ${body} ${version} + ${rescode} Set Variable ${response['code']} + [Return] ${rescode} \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot b/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot index 2f68d94..2c136f0 100644 --- a/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot +++ b/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot @@ -33,7 +33,7 @@ Resource ../../tsg_common/ManagePolicyBody.robot # ... 一个filter中的protocolFiled是确定的,一个protocolFiled对应多个objectId WxPolicyListOperation [Documentation] - ... 描述:入口,opAction参数固定为'add' + ... 描述:入口,opAction参数可为'add','update','disable','enable' ... 参数:returnData: 必传,是否返回请求数据。可选${0}(不返回)/${1}(返回)。 ... policyList: 必传,字典类型。字典内可选参数信息: ... policyObjectVersion: 必传,v1,v2,涉及策略版本 @@ -57,7 +57,7 @@ WxPolicyListOperation WxPolicyOperation [Documentation] - ... 描述:入口,opAction参数固定为'add' + ... 描述:入口,opAction参数可为'add','update','disable','enable' ... 参数:returnData: 必传,是否返回请求数据。可选${0}(不返回)/${1}(返回)。 ... policyList: 必传,字典类型。字典内可选参数信息: ... policyObjectVersion: 必传,v1,v2,涉及策略版本 @@ -77,7 +77,7 @@ WxPolicyOperation WxPolicyOrganize [Documentation] - ... 描述:入口,opAction参数固定为'add' + ... 描述:入口,opAction参数可为'add','update','disable','enable' ... policyList: 必传,字典类型。字典内可选参数信息: ... 其它参数默认值见../../03-Variable/PolicyObjectDefault.txt ... policyObjectVersion: 必传,v1,v2,涉及策略版本 @@ -93,6 +93,14 @@ WxPolicyOrganize Run Keyword If "${policyObjectVersion}"=="v2" Dictionary Should Not Contain Key ${policy} referenceObject 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 + Run Keyword If "${opAction}"=="update" and "${policyId}"=="${EMPTY}" Fail policyId is required when opAction is update + Run Keyword If "${opAction}"=="disable" and "${return}"=="FAIL" Fail policyId is required when opAction is disable + Run Keyword If "${opAction}"=="disable" and "${policyId}"=="${EMPTY}" Fail policyId is required when opAction is disable + Run Keyword If "${opAction}"=="enable" and "${return}"=="FAIL" Fail policyId is required when opAction is enable + Run Keyword If "${opAction}"=="enable" and "${policyId}"=="${EMPTY}" Fail policyId is required when opAction is enable # 取可选参数,为传入设置默认值 ${return} ${policyName} Run Keyword And Ignore Error Get From Dictionary ${policy} policyName @@ -116,6 +124,9 @@ WxPolicyOrganize Run Keyword If "${return}"=="FAIL" or "${isValid}"=="${EMPTY}" Set To Dictionary ${policy} isValid=${Default_IsValid} ${return} ${scheduleId} Run Keyword And Ignore Error Set Variable ${policy}[scheduleId] + Run Keyword If "${opAction}"=="enable" Set To Dictionary ${policy} isValid=1 + Run Keyword If "${opAction}"=="disable" Set To Dictionary ${policy} isValid=0 + ${scheduleIdV} Run Keyword If "${return}"!="FAIL" and "${scheduleId}"!="${EMPTY}" and "${scheduleId}"!="${None}" Evaluate list(map(int, re.split('[,]', '${scheduleId}'))) re ... ELSE Set Variable ${emptyList} Set To Dictionary ${policy} scheduleId=${scheduleIdV}