调通用例;
完善引用变量关键字;
This commit is contained in:
@@ -4,6 +4,8 @@ Library RequestsLibrary
|
|||||||
Resource ../../../03-Variable/BifangApiVariable.txt
|
Resource ../../../03-Variable/BifangApiVariable.txt
|
||||||
Resource ../../common/ApiHttpRequest.robot
|
Resource ../../common/ApiHttpRequest.robot
|
||||||
Variables ../../../05-Other/variable/policy/apipolicyrequesttest.py
|
Variables ../../../05-Other/variable/policy/apipolicyrequesttest.py
|
||||||
|
Library REST http://${host}:${port}
|
||||||
|
Library json
|
||||||
|
|
||||||
*** Variables ***
|
*** Variables ***
|
||||||
${policyapiv2} /v2/policy/compile
|
${policyapiv2} /v2/policy/compile
|
||||||
@@ -29,20 +31,24 @@ GetPolicyData
|
|||||||
[Return] ${returnValue}
|
[Return] ${returnValue}
|
||||||
|
|
||||||
AddPolicyData
|
AddPolicyData
|
||||||
[Arguments] ${data} ${returnKey}
|
[Arguments] ${returnData} ${data}
|
||||||
[Documentation] [Get方法封装:第二层,]
|
[Documentation] [Get方法封装:第二层,]
|
||||||
${response} PostRequestBase ${hosturl} ${policyapiv2} ${header} ${data}
|
${response} PostHttpRequestBase ${hosturl} ${policyapiv2} ${header} ${data}
|
||||||
${response} to json ${response}
|
${response} to json ${response}
|
||||||
${returnValue} get from dictionary ${response} ${returnKey}
|
${policyIds} Run Keyword If "${returnData}" == "1" GetPolicyIds ${response}
|
||||||
[Return] ${returnValue}
|
... ELSE Create List
|
||||||
|
${rescode} Set Variable ${response['code']}
|
||||||
|
[Return] ${rescode} ${policyIds}
|
||||||
|
|
||||||
AddObjectData
|
AddObjectData
|
||||||
[Arguments] ${data} ${returnKey}
|
[Arguments] ${returnData} ${data}
|
||||||
[Documentation] [Get方法封装:第二层,]
|
[Documentation] [Get方法封装:第二层,]
|
||||||
${response} PostHttpRequestBase ${hosturl} ${objectapiv1} ${header} ${data}
|
${response} PostHttpRequestBase ${hosturl} ${objectapiv1} ${header} ${data}
|
||||||
${response} to json ${response}
|
${response} to json ${response}
|
||||||
${returnValue} get from dictionary ${response} ${returnKey}
|
${objectIds} Run Keyword If "${returnData}" == "1" GetObjectIds ${response}
|
||||||
[Return] ${returnValue}
|
... ELSE Create List
|
||||||
|
${rescode} Set Variable ${response['code']}
|
||||||
|
[Return] ${rescode} ${objectIds}
|
||||||
|
|
||||||
AddPolicyBase
|
AddPolicyBase
|
||||||
[Arguments] ${host} ${api} ${header} ${body}
|
[Arguments] ${host} ${api} ${header} ${body}
|
||||||
@@ -59,3 +65,111 @@ AddPolicyCode
|
|||||||
${code} get from dictionary ${response} code
|
${code} get from dictionary ${response} code
|
||||||
[Return] ${code}
|
[Return] ${code}
|
||||||
|
|
||||||
|
|
||||||
|
GetObjectIds
|
||||||
|
[Documentation]
|
||||||
|
... 获取结果中的对象ID
|
||||||
|
[Arguments] ${value}
|
||||||
|
Log Call Get-ObjectIds
|
||||||
|
${objectIds} Create List
|
||||||
|
${objectIdsTemp} Set Variable ${EMPTY}
|
||||||
|
${return} ${data} Run Keyword And Ignore Error Get From Dictionary ${value} data
|
||||||
|
Return From Keyword If "${return}"=="FAIL" ${objectIdsTemp}
|
||||||
|
|
||||||
|
FOR ${object} IN @{value['data']['objectList']}
|
||||||
|
Append To List ${objectIds} ${object['objectId']}
|
||||||
|
END
|
||||||
|
${json} json.Dumps ${objectIds} ensure_ascii=False
|
||||||
|
${json} Remove String ${json} [
|
||||||
|
${json} Remove String ${json} ]
|
||||||
|
[Return] ${json}
|
||||||
|
|
||||||
|
GetPolicyIds
|
||||||
|
[Arguments] ${value}
|
||||||
|
[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']}
|
||||||
|
END
|
||||||
|
${len} Get Length ${policyIds}
|
||||||
|
${policyIds} Run Keyword If ${len}==1 Set Variable ${policyIds[0]}
|
||||||
|
... ELSE Set Variable ${policyIds}
|
||||||
|
[Return] ${policyIds}
|
||||||
|
|
||||||
|
|
||||||
|
DelPolicysAndGroupObjects
|
||||||
|
[Arguments] ${policyids} ${objectids}
|
||||||
|
#引用此关键字,${objectids}参数必须是双层列表,eg:['[1]','[2,3]','[4,5,6,7]']
|
||||||
|
#删除和对象
|
||||||
|
#删除策略
|
||||||
|
log toDeletePolicy_DelPolicys
|
||||||
|
${listlenth}= Get Length ${policyids}
|
||||||
|
Run Keyword If "${listlenth}"=="0" log no Policys to del
|
||||||
|
... ELSE DelPolicys ${policyids}
|
||||||
|
#删除对象
|
||||||
|
log todeleteobj_DelGroupObjects
|
||||||
|
Run Keyword If "${objectids}"=="${EMPTY}" log no Objects to del
|
||||||
|
... ELSE DelGroupObjects ${objectids}
|
||||||
|
|
||||||
|
DelPolicys
|
||||||
|
[Arguments] ${policyids}
|
||||||
|
${listlenth}= Get Length ${policyids}
|
||||||
|
FOR ${var} IN RANGE ${listlenth}
|
||||||
|
log ${var}
|
||||||
|
DelPolicy ${policyids}[${var}]
|
||||||
|
END
|
||||||
|
|
||||||
|
DelPolicy
|
||||||
|
[Arguments] ${body}
|
||||||
|
#删除策略
|
||||||
|
log toDeletePolicy_DeletePolicyDeletePolicy
|
||||||
|
${response} DeleteRequestBase /${version}/policy/compile ${body}
|
||||||
|
#{"policyType":"tsg_security","policyIds":[${policyids}]}
|
||||||
|
${response_code} Get From Dictionary ${response} code
|
||||||
|
Should Be Equal As Strings ${response_code} 200
|
||||||
|
${response} Convert to String ${response}
|
||||||
|
log ${response}
|
||||||
|
#Should Be Equal As Strings ${response} {'code': 200, 'msg': 'Success', 'success': True}
|
||||||
|
|
||||||
|
DelGroupObjects
|
||||||
|
[Arguments] ${objectids}
|
||||||
|
FOR ${var} IN @{objectids}
|
||||||
|
log ${var}
|
||||||
|
DelGroupObject ${var}
|
||||||
|
END
|
||||||
|
|
||||||
|
DelGroupObject
|
||||||
|
[Arguments] ${objectids}
|
||||||
|
#删除对象
|
||||||
|
log todeleteobj
|
||||||
|
${response} DeleteRequestBase /${version}/policy/object {"objectIds":${objectids}}
|
||||||
|
${response_code} Get From Dictionary ${response} code
|
||||||
|
Should Be Equal As Strings ${response_code} 200
|
||||||
|
${response} Convert to String ${response}
|
||||||
|
log ${response}
|
||||||
|
|
||||||
|
|
||||||
|
DelPolicyAndObjectAndProfile
|
||||||
|
[Arguments] ${policyids} ${objectids} ${profiles}
|
||||||
|
DelPolicysAndGroupObjects ${policyids} ${objectids}
|
||||||
|
DelProfiles ${profiles}
|
||||||
|
|
||||||
|
DelProfiles
|
||||||
|
[Arguments] ${profiles}
|
||||||
|
FOR ${profile} IN @{profiles}
|
||||||
|
Run Keyword If "${profile}"!="" and ${profile}!="${EMPTY}" DelProfile ${profile}[typeUrl] ${profile}[profileIds]
|
||||||
|
END
|
||||||
|
|
||||||
|
DelProfile
|
||||||
|
[Arguments] ${typeUrl} ${profileIds}
|
||||||
|
#删除对象
|
||||||
|
log DeleteProfile
|
||||||
|
${response} DeleteRequestBase /${version}/policy/profile/${typeUrl} {"profileIds":[${profileIds}]}
|
||||||
|
${response_code} Get From Dictionary ${response} code
|
||||||
|
Should Be Equal As Strings ${response_code} 200
|
||||||
|
#Integer ${response_code} 200
|
||||||
|
${response} Convert to String ${response}
|
||||||
|
log ${response}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
*** Settings ***
|
*** Settings ***
|
||||||
Test Teardown DeletePolicyAndGroupObject ${policyIds} ${objectIds}
|
Test Teardown DelPolicysAndGroupObjects ${policyIds} ${objectIds}
|
||||||
Resource ../../common/ApiHttpRequest.robot
|
Resource ../../common/ApiHttpRequest.robot
|
||||||
Resource ../../common/Util.robot
|
Resource ../../common/Util.robot
|
||||||
Resource ApiPolicyRequest.robot
|
Resource ApiPolicyRequest.robot
|
||||||
Variables ../../../05-Other/variable/policy/apipolicyrequesttest.py
|
Variables ../../../05-Other/variable/policy/apipolicyrequesttest.py
|
||||||
Resource ../../tsg_bfapi/PolicyObject.robot
|
#Resource ../../tsg_bfapi/PolicyObject.robot
|
||||||
|
|
||||||
*** Variables ***
|
*** Variables ***
|
||||||
|
|
||||||
@@ -18,16 +18,38 @@ Test-GetRequestResposeCodePrivate
|
|||||||
|
|
||||||
Test-AddPolicyData
|
Test-AddPolicyData
|
||||||
[Tags] test
|
[Tags] test
|
||||||
|
#获取当前Case名称
|
||||||
|
log ${TEST NAME}
|
||||||
|
#从变量文件中加载的新增对象JSON串
|
||||||
log ${IP_OBJ}
|
log ${IP_OBJ}
|
||||||
${returnKey} Set Variable data
|
#add Object,return statuscode,objectid 多个返回以英文逗号分隔
|
||||||
${header} Create Dictionary Content-Type=application/json Authorization=${token}
|
${returncode} ${ipid} AddObjectData 1 ${IP_OBJ}
|
||||||
${ipid} AddObjectData ${Test-AddPolicyData_IP_OBJ} ${returnKey}
|
#新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据
|
||||||
|
${objectid} Set Variable ${ipid}
|
||||||
|
${objectIds} Create List [${objectid}]
|
||||||
|
#从变量文件中加载的新增对象JSON串
|
||||||
log ${FQDN_OBJ}
|
log ${FQDN_OBJ}
|
||||||
${fqdnid} AddObjectData ${FQDN_OBJ}
|
#add Object,return statcode,objectid
|
||||||
|
${returncode} ${fqdnid} AddObjectData 1 ${FQDN_OBJ}
|
||||||
|
#新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据
|
||||||
|
${objectid} Catenate SEPARATOR=, ${objectid} ${fqdnid}
|
||||||
|
${objectIds} Create List [${objectid}]
|
||||||
|
#从变量文件中加载的新增策略的JSON串
|
||||||
log ${SECURITY_POLICY}
|
log ${SECURITY_POLICY}
|
||||||
${POLICY} Replace String ${SECURITY_POLICY} IP_OBJ ${ipid}
|
#替换策略中的引用内容,需要在变量文件中提前固定内容
|
||||||
${POLICY} Replace String ${SECURITY_POLICY} FQDN_OBJ ${fqdnid}
|
#替换策略中的引用内容,源、目的对象对象引用
|
||||||
${policyid} AddPolicyData ${POLICY}
|
${SECURITY_POLICY} Replace String ${SECURITY_POLICY} IP_OBJ ${ipid}
|
||||||
|
#替换策略中的引用内容,filter,sni对象对象引用
|
||||||
|
${SECURITY_POLICY} Replace String ${SECURITY_POLICY} FQDN_OBJ ${fqdnid}
|
||||||
|
#替换策略中的策略名称
|
||||||
|
${SECURITY_POLICY} Replace String ${SECURITY_POLICY} policyNameautotest ${TEST NAME}
|
||||||
|
log ${SECURITY_POLICY}
|
||||||
|
#add Policy,return statuscode,policyid 多个返回以逗号分隔
|
||||||
|
${returncode} ${policyid} AddPolicyData 1 ${SECURITY_POLICY}
|
||||||
|
#新增对象添加到删除策略列表,及时添加避免后面异常导致遗留垃圾数据
|
||||||
|
${policyId1} set Variable {"policyType":"tsg_security","policyIds":[${policyid}]}
|
||||||
|
${policyIds} Create List ${policyId1}
|
||||||
|
|
||||||
|
|
||||||
Test-GetRandomIP
|
Test-GetRandomIP
|
||||||
[Tags] test
|
[Tags] test
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
def get_variables():
|
def get_variables():
|
||||||
variables = {"IP_OBJ":'{"opAction":"add","refuseCode":true,"returnData":1,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"autotest","objectDesc":"autotest","subObjectIds":[],"addItemList":[{"ip":"192.168.32.69","ipIf":false,"portIf":false,"port":"1-65535","itemId":"","clientIp1":"192.168.32.69","clientIp2":"192.168.32.69","clientPort1":"1","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1606647164},{"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":1606647177}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}',
|
variables = {"IP_OBJ":'{"opAction":"add","refuseCode":true,"returnData":1,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"autotest","objectDesc":"autotest","subObjectIds":[],"addItemList":[{"ip":"192.168.32.69","ipIf":false,"portIf":false,"port":"1-65535","itemId":"","clientIp1":"192.168.32.69","clientIp2":"192.168.32.69","clientPort1":"1","clientPort2":"65535","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1606647164},{"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":1606647177}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}',
|
||||||
"FQDN_OBJ":'"{"opAction":"add","returnData":1,"objectList":{"objectType":"fqdn","objectSubType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"autotest","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["$www.test.com"],"t":1606647302921,"itemId":"","isHexbin":0,"state":2},{"keywordArray":["*autotest.com"],"t":1606647302921,"isHexbin":0,"state":2}],"updateItemList":[],"deleteItemIds":[],"objectId":""}}"',
|
"FQDN_OBJ":'{"opAction":"add","refuseCode":true,"returnData":1,"objectList":{"objectType":"fqdn","objectSubType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"autotest","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["*autotest.com"],"t":"16088629755980","itemId":"","isHexbin":0,"state":2},{"keywordArray":["$www.test.com"],"t":"16088629755981","isHexbin":0,"state":2}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}',
|
||||||
"SECURITY_POLICY":'{"opAction":"add","refuseCode":true,"policyList":{"policyId":"","policyName":"autotest","policyType":"tsg_security","action":"intercept","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"dxytest","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":1,"mirror_profile":25}},"source":[{"objectId":IP_OBJ,"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[{"objectId":IP_OBJ,"protocolField":"TSG_SECURITY_DESTINATION_ADDR"}],"filterList":[{"filter":[{"objectId":FQDN_OBJ,"protocolField":"TSG_FIELD_SSL_SNI"}]}],"appIdObjects":[44],"appSelectorObjects":[],"isValid":1,"scheduleId":[]}}',
|
"SECURITY_POLICY":'{"opAction":"add","refuseCode":true,"returnData":1,"policyList":{"policyId":"","policyName":"policyNameautotest","policyType":"tsg_security","action":"intercept","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"autotest","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}},"source":[{"objectId":IP_OBJ,"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[{"objectId":IP_OBJ,"protocolField":"TSG_SECURITY_DESTINATION_ADDR"}],"filterList":[{"filter":[{"objectId":FQDN_OBJ,"protocolField":"TSG_FIELD_SSL_SNI"}]}],"appIdObjects":[44],"appSelectorObjects":[],"isValid":1,"scheduleId":[55]}}',
|
||||||
"STRINGS":["one","two","kolme","four"],
|
"STRINGS":["one","two","kolme","four"],
|
||||||
"NUMBERS":[1,66,3.1415926],
|
"NUMBERS":[1,66,3.1415926],
|
||||||
"MAPPING":'{"one":1,"two":2,"three":3}',
|
"MAPPING":'{"one":1,"two":2,"three":3}',
|
||||||
|
|||||||
Reference in New Issue
Block a user