feat:(策略验证)1.策略验证提交;2:Wx开头的关键字修改;

3:修复删除策略一行关键字名写错
This commit is contained in:
wangxin
2020-06-23 18:15:03 +08:00
parent c1326a0039
commit 2230c98d24
5 changed files with 263 additions and 55 deletions

View File

@@ -336,14 +336,12 @@ Policy-Post-v1-00013
${rescode} ${itemIds} ${itemList} GetObjectItems ${params}
Log To Console ${itemIds}
Comment 更新IP
${len} Get Length ${itemList}
FOR ${index} IN ${len}
${index1} Evaluate int(${index})-1
Set To Dictionary ${itemList}[${index1}] clientIp1 192.168.41.67
Set To Dictionary ${itemList}[${index1}] clientIp2 192.168.41.67
Remove From Dictionary ${itemList}[${index1}] isInitialize
Set To Dictionary ${itemList}[${index1}] serverIp1 192.168.41.68
Set To Dictionary ${itemList}[${index1}] serverIp2 192.168.41.68
FOR ${item} IN @{itemList}
Set To Dictionary ${item} clientIp1 192.168.41.67
Set To Dictionary ${item} clientIp2 192.168.41.67
Remove From Dictionary ${item} isInitialize
Set To Dictionary ${item} serverIp1 192.168.41.68
Set To Dictionary ${item} serverIp2 192.168.41.68
END
${objectDict} Create Dictionary objectId=${objectId1} objectType=ip
... updateItemList=${itemList}
@@ -395,7 +393,7 @@ Policy-Delete-v1-00016
${rescode} ${policyIds} AddPolicies 1 ${policy} v2
Log ${rescode}
Comment 删除安全策略
${rescode} WxDeletePolicy1 ${policyIds[0]['policyIds']} tsg_security
${rescode} DeletePolicy1 ${policyIds[0]['policyIds']} tsg_security
${policyIds} Create List
Log ${rescode}
Policy-Delete-v1-00017
@@ -434,4 +432,66 @@ Policy-Export-v1-00019
Comment 导 出json
${objectIds} Set Variable ${EMPTY}
${response} ExportPolicy tsg_security ${EMPTY} ${EMPTY}
WriteFile downloads download.json ${response}
WriteFile downloads download.json ${response}
Policy-Verify-v1-00020
${objectIds} Set Variable ${EMPTY}
Comment 创建对象
${ipValue} Create Dictionary clientIp=192.168.41.67 clientPort=${1} serverIp=192.168.41.67 serverPort=${1}
... addrType=${4} protocol=${6}
${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=ip
... attributeValue=${ipValue}
${stringValue} Create Dictionary string=*baidu.com
${stringObj} Create Dictionary attributeType=string tableName=TSG_OBJ_URL protocol=HTTP attributeName=url
... attributeValue=${stringValue}
${appIdValue} Create Dictionary string=http.
${appIdObj} Create Dictionary attributeType=string protocol=HTTP attributeName=app_id
... attributeValue=${appIdValue}
${attributes} Create List ${ipObj} ${stringObj} ${appIdObj}
${verifySession} Create Dictionary attributes=${attributes}
${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession}
${rescode} ${resData} VerifyPolicies ${verifyList}
Policy-Verify-v1-00021
${objectIds} Set Variable ${EMPTY}
Comment 创建对象
${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=ip
... attributeValue={"clientIp":"192.168.41.67","clientPort":1,"serverIp":"192.168.41.67","serverPort":1,"addrType":4,"protocol":6}
${stringValue} Create Dictionary string=*baidu.com
${stringObj} Create Dictionary attributeType=string tableName=TSG_OBJ_URL protocol=HTTP attributeName=url
... attributeValue=${stringValue}
${appIdValue} Create Dictionary string=http.
${appIdObj} Create Dictionary attributeType=string protocol=HTTP attributeName=app_id
... attributeValue=${appIdValue}
${attributes} Create List ${ipObj} ${stringObj} ${appIdObj}
${verifySession} Create Dictionary attributes=${attributes}
${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession}
${rescode} ${resData} VerifyPolicies ${verifyList}
Policy-Verify-v1-00022
${objectIds} Set Variable ${EMPTY}
Comment 创建对象
${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=ip
... attributeValue={"clientIp":"192.168.41.67","clientPort":1,"serverIp":"192.168.41.67","serverPort":1,"addrType":4,"protocol":6}
${stringObj} Create Dictionary attributeType=string tableName=TSG_OBJ_URL protocol=HTTP attributeName=url
... attributeValue={'string':'*baidu.com'}
${appIdValue} Create Dictionary string=http.
${appIdObj} Create Dictionary attributeType=string protocol=HTTP attributeName=app_id
... attributeValue=${appIdValue}
${attributes} Create List ${ipObj} ${stringObj} ${appIdObj}
${verifySession} Create Dictionary attributes=${attributes}
${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession}
${rescode} ${resData} VerifyPolicies ${verifyList}
Policy-Verify-v1-00023
${objectIds} Set Variable ${EMPTY}
Comment 创建对象
${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=ip
... attributeValue=192.168.41.67|1|192.168.41.67|1|4|6
${stringObj} Create Dictionary attributeType=string tableName=TSG_OBJ_URL protocol=HTTP attributeName=url
... attributeValue=*baidu.com
${appIdObj} Create Dictionary attributeType=string protocol=HTTP attributeName=app_id
... attributeValue=http.
${signatureObj} Create Dictionary attributeType=signature protocol=HTTP attributeName=req_body
... attributeValue=Content-Type|application/json
${attributes} Create List ${ipObj} ${stringObj} ${appIdObj} ${signatureObj}
${verifySession} Create Dictionary attributes=${attributes}
${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession}
${rescode} ${resData} VerifyPolicies ${verifyList}

View File

@@ -21,12 +21,12 @@ AddObjects
#必选参数判定
Should Not Be Empty ${objectList}
${dictType} = Evaluate type(${objectList})
${body} Run Keyword If "${dictType}" == "<class 'list'>" WxObjectListOperation ${returnData} ${objectList} add
... ELSE IF "${dictType}" == "<class 'dict'>" WxObjectOperation ${returnData} ${objectList} add
${body} Run Keyword If "${dictType}" == "<class 'list'>" ObjectListOperation ${returnData} ${objectList} add
... ELSE IF "${dictType}" == "<class 'dict'>" ObjectOperation ${returnData} ${objectList} add
... ELSE Set Variable ${EMPTY}
${response} BasePostRequestForV2 ${objectUrl} ${body} ${version}
${objectIds} Run Keyword If "${returnData}" == "1" WxGet-ObjectIds ${response}
${objectIds} Run Keyword If "${returnData}" == "1" Get-ObjectIds ${response}
... ELSE Create List
${rescode} Set Variable ${response['code']}
Should Be Equal As Strings ${rescode} 200
@@ -44,8 +44,8 @@ UpdateObjects
#必选参数判定
Should Not Be Empty ${objectList}
${dictType} = Evaluate type(${objectList})
${body} Run Keyword If "${dictType}" == "<class 'list'>" WxObjectListOperation ${returnData} ${objectList} ${opAction}
... ELSE IF "${dictType}" == "<class 'dict'>" WxObjectOperation ${returnData} ${objectList} ${opAction}
${body} Run Keyword If "${dictType}" == "<class 'list'>" ObjectListOperation ${returnData} ${objectList} ${opAction}
... ELSE IF "${dictType}" == "<class 'dict'>" ObjectOperation ${returnData} ${objectList} ${opAction}
... ELSE Set Variable ${EMPTY}
${response} BaseEditRequestForV2 ${objectUrl} ${body} ${version}

View File

@@ -51,12 +51,12 @@ AddPolicies
#必选参数判定
Should Not Be Empty ${policyList}
${dictType} = Evaluate type(${policyList})
${body} Run Keyword If "${dictType}" == "<class 'list'>" WxPolicyListOperation ${returnData} ${policyList} add ${version}
... ELSE IF "${dictType}" == "<class 'dict'>" WxPolicyOperation ${returnData} ${policyList} add ${version}
${body} Run Keyword If "${dictType}" == "<class 'list'>" PolicyListDataOperation ${returnData} ${policyList} add ${version}
... ELSE IF "${dictType}" == "<class 'dict'>" PolicyDataOperation ${returnData} ${policyList} add ${version}
... ELSE Set Variable ${EMPTY}
#${body} Set Variable {"opAction":"add","policyList":{"policyName":"wx-test","policyType":"tsg_security","action":"deny","userTags":"","doBlacklist":0,"doLog":1,"policyDesc":"","effectiveRange":{"tag_sets":[[]]},"userRegion":{"protocol":"SSL","method":"drop"},"source":[{"objectId":3101,"protocolField":"TSG_SECURITY_SOURCE_ADDR"}],"destination":[],"filterList":[{"filter":[{"objectId":3404,"protocolField":"TSG_FIELD_SSL_CN"}]}],"appIdObjects":[3],"isValid":0,"scheduleId":[]}}
${response} BasePostRequestForV2 ${policyUrl} ${body} ${version}
${policyIds} Run Keyword If "${returnData}" == "1" WxGet-PolicyIds ${response}
${policyIds} Run Keyword If "${returnData}" == "1" Get-PolicyIds ${response}
... ELSE Create List
${rescode} Set Variable ${response['code']}
Should Be Equal As Strings ${rescode} 200
@@ -72,36 +72,32 @@ UpdatePolicies
#必选参数判定
Should Not Be Empty ${policyList}
${dictType} = Evaluate type(${policyList})
${body} Run Keyword If "${dictType}" == "<class 'list'>" WxPolicyListOperation ${returnData} ${policyList} ${opAction} ${version}
... ELSE IF "${dictType}" == "<class 'dict'>" WxPolicyOperation ${returnData} ${policyList} ${opAction} ${version}
${body} Run Keyword If "${dictType}" == "<class 'list'>" PolicyListDataOperation ${returnData} ${policyList} ${opAction} ${version}
... ELSE IF "${dictType}" == "<class 'dict'>" PolicyDataOperation ${returnData} ${policyList} ${opAction} ${version}
... ELSE Set Variable ${EMPTY}
${response} BaseEditRequestForV2 ${policyUrl} ${body} ${version}
${rescode} Set Variable ${response['code']}
Should Be Equal As Strings ${rescode} 200
[Return] ${rescode}
DeletePolicies
[Arguments] ${params}
${paramsType} Evaluate type(${params})
Run Keyword And Return If "${paramsType}" == "<class 'dict'>" DeletePoliciy ${params}
FOR ${param} IN @{params}
${rescode} WxDeletePolicy ${param}
END
[Return] ${rescode}
WxDeletePolicy
[Documentation]
... 删除策略
... params,传入的删除字典
... 结构为policyIds=${policyIds} (List) policyType=${policyType} (variable)
[Arguments] ${params}
${response} BaseDeleteRequest /${version}${policyUrl} ${params}
${rescode} Set Variable ${response['code']}
Should Be Equal As Strings ${rescode} 200
... params结构可为List或者dict
... dict结构
... dict data{'policyType':'tsg_security','policyIds':[1,2,3]}
... list 结构
... list data:[{'policyType':'tsg_security','policyIds':[1,2,3]},{'policyType':'pxy_manipulation','policyIds':[4,5,6]}]
[Arguments] ${params}
${paramsType} Evaluate type(${params})
Run Keyword And Return If "${paramsType}" == "<class 'dict'>" DeletePolicyWithParamDict ${params}
FOR ${param} IN @{params}
${rescode} DeletePolicyWithParamDict ${param}
END
[Return] ${rescode}
WxDeletePolicy1
DeletePolicy1
[Documentation]
... 与DeletePoliciy类似但是参数分开
... policyIds 策略id list
... policyType 策略类型
... policyIds 策略id list [1,2,3]
... policyType 策略类型 tsg_security等
[Arguments] ${policyIds} ${policyType}
${params} Create Dictionary policyIds=${policyIds} policyType=${policyType}
${response} BaseDeleteRequest /${version}${policyUrl} ${params}
@@ -127,6 +123,9 @@ ImportPolicy
ExportPolicy
[Documentation]
... 策略导出
... policyType tsg_security等
... policyIds 1,2,3
... policyName 字符串
[Arguments] ${policyType} ${policyIds} ${policyName}
Should Not Be Empty ${policyType}
${params} Create Dictionary policyType=${policyType}
@@ -141,4 +140,30 @@ WriteFile
${type} Evaluate type(${content})
${content} Run Keyword If "${type}" == "<class 'dict'>" json.Dumps ${content}
... ELSE Set Variable ${content}
Append To File ${path}/${filePath}/${fileName} ${content}
Append To File ${path}/${filePath}/${fileName} ${content}
VerifyPolicies
[Documentation]
... 策略验证
... 支持多个策略验证与单个策略验证
... 单个策略验证时verifyList 是一个dict
... 多个策略验证时是一个list
... atrributeValue字段可为三种格式
... 1:dict
... 2:json
... 3.字符串ip的value对应格式为clientIp|clientPort|serverIp|serverPort|addrType|protocol,注意addrType,protocol为数字
... signature 的value对应格式为district|string
... string的格式就是string
... 以上三种方式可以混合搭配使用
[Arguments] ${verifyList}
Log To Console Call VerifyPolicies
#必选参数判定
Should Not Be Empty ${verifyList}
${dictType} = Evaluate type(${verifyList})
${body} Run Keyword If "${dictType}" == "<class 'list'>" VerifyPolicyList ${verifyList}
... ELSE IF "${dictType}" == "<class 'dict'>" VerifyPolicyObj ${verifyList}
... ELSE Set Variable ${EMPTY}
${body} Set Variable {"verifyList":${body}}
${response} BasePostRequestForV2 /policy/verify ${body} ${version}
${rescode} Set Variable ${response['code']}
Should Be Equal As Strings ${rescode} 200
[Return] ${rescode} ${response['data']}

View File

@@ -5,7 +5,7 @@ Resource ../../../03-Variable/BifangApiVariable.txt
Resource ../../../03-Variable/PolicyObjectDefault.txt
Resource ../../tsg_common/ManageObjectBody.robot
*** Keywords ***
WxObjectListOperation
ObjectListOperation
[Documentation]
... 描述入口opAction参数可为'add','update','disable','enable'
... 参数returnData: 必传,是否返回请求数据。可选${0}(不返回)/${1}(返回)。
@@ -14,10 +14,10 @@ WxObjectListOperation
... 多个对象处理
[Arguments] ${returnData} ${objectList} ${opAction}
Log To Console Call WxObjectListOperation
Log To Console Call ObjectListOperation
${objectListJson} Set Variable [
FOR ${object} IN @{objectList}
${json} WxObjectOrganize ${object} ${opAction}
${json} ObjectOrganize ${object} ${opAction}
${objectListJson} Set Variable ${objectListJson}${json},
END
${objectListJson}= Replace String Using Regexp ${objectListJson} ,$ ]
@@ -28,7 +28,7 @@ WxObjectListOperation
Log Object_Request_Body-${json}
[Return] ${json}
WxObjectOperation
ObjectOperation
[Documentation]
... 描述入口opAction参数可为'add','update','disable','enable'
... 参数returnData: 必传,是否返回请求数据。可选${0}(不返回)/${1}(返回)。
@@ -37,8 +37,8 @@ WxObjectOperation
... 单个策略处理
[Arguments] ${returnData} ${object} ${opAction}
Log To Console Call WxPolicyOperation
${json} WxObjectOrganize ${object} ${opAction}
Log To Console Call ObjectOperation
${json} ObjectOrganize ${object} ${opAction}
# 转为json结构并返回
${dict} Create Dictionary opAction=${opAction} returnData=${returnData} objectList=replace:objectList
${bodyJson} json.Dumps ${dict} ensure_ascii=False
@@ -47,14 +47,14 @@ WxObjectOperation
Log Object_Request_Body-${json}
[Return] ${json}
WxObjectOrganize
ObjectOrganize
[Documentation]
... 描述入口opAction参数可为'add','update','disable','enable'
... object: 必传,字典类型。字典内可选参数信息:
... 其它参数默认值见../../03-Variable/PolicyObjectDefault.txt
... 单个策略转换为json
[Arguments] ${object} ${opAction}
Log To Console Call WxObjectOrganize
Log To Console Call ObjectOrganize
${emptyList} Create List
${returnDict} Create Dictionary
# 断言必传参数
@@ -144,11 +144,11 @@ ManageDeleteItemIds
Append To List ${list1} ${var}
END
Set To Dictionary ${returnDict} deleteItemIds=${list1}
WxGet-ObjectIds
Get-ObjectIds
[Documentation]
... 获取结果中的对象ID
[Arguments] ${value}
Log Call WxGet-ObjectIds
Log Call Get-ObjectIds
${objectIds} Create List
${objectIdsTemp} Set Variable ${EMPTY}
${return} ${data} Run Keyword And Ignore Error Get From Dictionary ${value} data

View File

@@ -31,7 +31,7 @@ Resource ../../tsg_common/ManagePolicyBody.robot
# ... filterList= ${265}|${257}:TSG_FIELD_HTTP_HOST,${266}|${299}:TSG_FIELD_SSL_SNI&TSG_FIELD_SSL_SAN
# ... filterList由多个数字用|分隔加上对上对应的protocolFiled,
# ... 一个filter中的protocolFiled是确定的一个protocolFiled对应多个objectId
WxPolicyListOperation
PolicyListDataOperation
[Documentation]
... 描述入口opAction参数可为'add','update','disable','enable'
... 参数returnData: 必传,是否返回请求数据。可选${0}(不返回)/${1}(返回)。
@@ -41,7 +41,7 @@ WxPolicyListOperation
... 多个策略处理
[Arguments] ${returnData} ${policyList} ${opAction} ${policyObjectVersion}
Log To Console Call WxPolicyListOperation
Log To Console Call PolicyListDataOperation
${policyListJson} Set Variable [
FOR ${policy} IN @{policyList}
${json} WxPolicyOrganize ${policy} ${opAction} ${policyObjectVersion}
@@ -55,7 +55,7 @@ WxPolicyListOperation
Log Policy_Request_Body-${json}
[Return] ${json}
WxPolicyOperation
PolicyDataOperation
[Documentation]
... 描述入口opAction参数可为'add','update','disable','enable'
... 参数returnData: 必传,是否返回请求数据。可选${0}(不返回)/${1}(返回)。
@@ -65,7 +65,7 @@ WxPolicyOperation
... 单个策略处理
[Arguments] ${returnData} ${policy} ${opAction} ${policyObjectVersion}
Log To Console Call WxPolicyOperation
Log To Console Call PolicyDataOperation
${json} WxPolicyOrganize ${policy} ${opAction} ${policyObjectVersion}
# 转为json结构并返回
${dict} Create Dictionary opAction=${opAction} returnData=${returnData} policyList=replace:policyList
@@ -333,7 +333,7 @@ ManageFilter
${filterObject} Create Dictionary filter=${filterObjectList}
[Return] ${filterObject}
WxGet-PolicyIds
Get-PolicyIds
[Documentation]
... 获取结果中的策略ID
[Arguments] ${value}
@@ -348,4 +348,127 @@ WxGet-PolicyIds
#Log To Console ${objectType}
END
[Return] ${policyIds}
[Return] ${policyIds}
DeletePolicyWithParamDict
[Documentation]
... 删除策略
... params传入的删除字典
... 结构为policyIds=${policyIds} (List) policyType=${policyType} (variable)
[Arguments] ${params}
${response} BaseDeleteRequest /${version}${policyUrl} ${params}
${rescode} Set Variable ${response['code']}
Should Be Equal As Strings ${rescode} 200
[Return] ${rescode}
VerifyPolicyList
[Documentation]
... 策略验证
... 多个策略验证
[Arguments] ${verifyList}
Log To Console Call VerifyPolicyList
${verifyListJson} Set Variable [
FOR ${verifyObj} IN @{verifyList}
${json} VerifyPolicyObj ${verifyObj}
${verifyListJson} Set Variable ${verifyListJson}${json},
END
${verifyListJson}= Replace String Using Regexp ${verifyListJson} ,$ ]
Log Policy_Request_Body-${verifyListJson}
[Return] ${verifyListJson}
VerifyPolicyObj
[Documentation]
... 策略验证
... 单个策略验证
[Arguments] ${verifyObj}
Log To Console Call VerifyPolicyObj
${emptyList} Create List
${return} ${policyType} Run Keyword And Ignore Error Get From Dictionary ${verifyObj} policyType
#Should Not Be Empty ${policyType}
${verifySession} Get From Dictionary ${verifyObj} verifySession
Should Not Be Empty ${verifySession}
${attributes} Get From Dictionary ${verifySession} attributes
Should Not Be Empty ${attributes}
FOR ${attribute} IN @{attributes}
${attributeType} Get From Dictionary ${attribute} attributeType
${return} ${tableName} Run Keyword And Ignore Error Get From Dictionary ${attribute} tableName
${return} ${protocol} Run Keyword And Ignore Error Get From Dictionary ${attribute} protocol
${attributeName} Get From Dictionary ${attribute} attributeName
${attributeValue} Get From Dictionary ${attribute} attributeValue
#将json转换为dict
${attributeValue} Convert To String ${attributeValue}
${start} Get Regexp Matches ${attributeValue} ^{\"
${start1} Get Regexp Matches ${attributeValue} ^{\'
${len} Get Length ${start}
${len1} Get Length ${start1}
${attributeValue} Run Keyword If ${len}>0 Evaluate eval('${attributeValue}')
... ELSE IF ${len1}>0 Evaluate eval("${attributeValue}")
... ELSE Set Variable ${attributeValue}
${type} Run Keyword If ${len}>0 or ${len1}>0 Set Variable dict
... ELSE Set Variable str
${attributeValue} Run Keyword If "${attributeType}"=="ip" ManageIpAttributeValue ${attributeValue} ${attributeName} ${type}
... ELSE IF "${attributeType}"=="signature" ManageSignatureAttributeValue ${attributeValue} ${type}
... ELSE ManageStringAttributeValue ${attributeValue} ${type}
Set To Dictionary ${attribute} attributeValue=${attributeValue}
END
Set To Dictionary ${verifyObj} verifySession=${verifySession}
# 转为json结构并返回
${json} json.Dumps ${verifyObj} ensure_ascii=False
Log VerifyPolicy-${json}
[Return] ${json}
ManageIpAttributeValue
[Arguments] ${attributeValue} ${attributeName} ${type}
Run Keyword And Return If "${type}"=="str" ExtractIpAttributeValue ${attributeValue}
${dict} Create Dictionary
${return} ${clientIp} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} clientIp
Run Keyword If "${clientIp}"=="${EMPTY}" and "${attributeName}"=="src_ip" Should Not Be Empty ${clientIp}
Set To Dictionary ${dict} clientIp=${clientIp}
${return} ${clientPort} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} clientPort
Run Keyword If "${clientPort}"=="${EMPTY}" and "${attributeName}"=="src_ip" Should Not Be Empty ${clientPort}
Set To Dictionary ${dict} clientPort=${clientPort}
${return} ${serverIp} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} serverIp
Run Keyword If "${serverIp}"=="${EMPTY}" and "${attributeName}"=="dest_ip" Should Not Be Empty ${serverIp}
Set To Dictionary ${dict} serverIp=${serverIp}
${return} ${serverPort} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} serverPort
Run Keyword If "${serverPort}"=="${EMPTY}" and "${attributeName}"=="dest_ip" Should Not Be Empty ${serverPort}
Set To Dictionary ${dict} serverPort=${serverPort}
${return} ${addrType} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} addrType
Should Be Equal As Strings ${return} PASS
Set To Dictionary ${dict} addrType=${addrType}
${return} ${protocol} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} protocol
Should Be Equal As Strings ${return} PASS
Set To Dictionary ${dict} protocol=${protocol}
[Return] ${dict}
ExtractIpAttributeValue
[Arguments] ${attributeValue}
${list} Split String ${attributeValue} |
${len} Get Length ${list}
Should Be Equal As Integers ${len} 6
${addrType} Evaluate int(${list}[4])
${protocol} Evaluate int(${list}[5])
${dict} Create Dictionary clientIp=${list}[0] clientPort=${list}[1] serverIp=${list}[2]
... serverPort=${list}[3] addrType=${addrType} protocol=${protocol}
[Return] ${dict}
ManageSignatureAttributeValue
[Arguments] ${attributeValue} ${type}
Run Keyword And Return If "${type}"=="str" ExtractSignatureAttributeValue ${attributeValue}
${dict} Create Dictionary
${district} Get From Dictionary ${attributeValue} district
Should Not Be Empty ${district}
Set To Dictionary ${dict} district=${district}
${string} Get From Dictionary ${attributeValue} string
Should Not Be Empty ${string}
Set To Dictionary ${dict} string=${string}
[Return] ${dict}
ExtractSignatureAttributeValue
[Arguments] ${attributeValue}
${list} Split String ${attributeValue} |
${len} Get Length ${list}
Should Be Equal As Integers ${len} 2
${dict} Create Dictionary district=${list}[0] string=${list}[1]
[Return] ${dict}
ManageStringAttributeValue
[Arguments] ${attributeValue} ${type}
${dict} Create Dictionary
Run Keyword And Return If "${type}"=="str" Create Dictionary string=${attributeValue}
${string} Get From Dictionary ${attributeValue} string
Should Not Be Empty ${string}
Set To Dictionary ${dict} string=${string}
[Return] ${dict}