This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
dongxiaoyan-tsg-autotest/02-Keyword/tsg_adc/PolicyVertify.robot

99 lines
4.5 KiB
Plaintext
Raw Normal View History

*** Settings ***
Library OperatingSystem
Library Selenium2Library
Library RequestsLibrary
Library Collections
Library json
Resource ../tsg_bfapi/Common.robot
Resource ../../03-Variable/BifangApiVariable.txt
*** Keywords ***
PolicyVertify
[Arguments] ${dict}
Should Not Be Empty ${dict}[policyType]
Should Not Be Empty ${dict}[appId]
Should Not Be Empty ${dict}[cfg]
# APP ID
${appId} Evaluate '${dict}[appId]'.lower()
${attrVDict1} Create Dictionary string=${appId}.
${attrDict1} Create Dictionary attributeType=string attributeName=app_id attributeValue=${attrVDict1}
# IP/Str
${attributes} Create List ${attrDict1}
${unCfg} Set Variable ${dict}[cfg]
${cfgList} Evaluate re.split('[|]', '${unCfg}') re
# 区分 IP/String/Signature
${type} Evaluate '${cfgList}[0]'.lower()
Run Keyword If '${type}' == 'ip' ManageIpCfg ${cfgList} ${attributes}
... ELSE IF '${type}' == 'str' ManageStrCfg ${cfgList} ${attributes} ${appId}
... ELSE ManageSignatureCfg ${cfgList} ${attributes} ${appId}
${vsDict} Create Dictionary attributes=${attributes}
${verify1} Create Dictionary policyType=${dict}[policyType] verifySession=${vsDict}
${verifyList} Create List ${verify1}
${resultObj} Create Dictionary verifyList=${verifyList}
${json} json.Dumps ${resultObj} ensure_ascii=False
${response} BasePostRequest /policy/verify body=${json}
Log REQ = ${json}
Log RES = ${response}
Should Be True ${response['code']} == 200
Should Not Be Empty ${response['data']['hitPolicyList']}
Should Not Be Empty ${response['data']['verifySession']}
ManageIpCfg
[Arguments] ${cfgList} ${attributes}
# IP CFG
${addrType} Evaluate int('${cfgList}[1]'[1:])
${protocolDict} Create Dictionary Any=0 TCP=6 UDP=17
${protocolkey} Set Variable ${cfgList}[6]
${protocol} Evaluate int(${protocolDict}[${protocolkey}])
${attrValueDict} Create Dictionary addrType=${addrType} clientIp=${cfgList}[2] clientPort=${cfgList}[3] serverIp=${cfgList}[4] serverPort=${cfgList}[5] protocol=${protocol}
${attrDict} Create Dictionary attributeType=ip attributeName=ip attributeValue=${attrValueDict}
Append To List ${attributes} ${attrDict}
ManageStrCfg
[Arguments] ${cfgList} ${attributes} ${appId}
# Subscriber ID
${attrValueDict} Create Dictionary string=${cfgList}[1]
${attrDict} Create Dictionary attributeType=string attributeName=subscriberid attributeValue=${attrValueDict}
Append To List ${attributes} ${attrDict}
# APP CFG
${list} Evaluate re.split('[&]', '${cfgList}[2]') re
FOR ${var} IN @{list}
${i} Evaluate '${var}'.find('=')
${name} Evaluate '${var}'[:${i}]
${value} Evaluate '${var}'[${i}+1:]
${attributeValue} Create Dictionary string=${value}
${obj} Create Dictionary attributeType=string attributeName=${name} protocol=${appId} attributeValue=${attributeValue}
Append To List ${attributes} ${obj}
END
ManageSignatureCfg
[Documentation]
... cfg=dstr|$jwctest|account=User-Agent#anony*&url=added&content=added
[Arguments] ${cfgList} ${attributes} ${appId}
# Subscriber ID
${attrValueDict} Create Dictionary string=${cfgList}[1]
${attrDict} Create Dictionary attributeType=string attributeName=subscriberid attributeValue=${attrValueDict}
Append To List ${attributes} ${attrDict}
# APP CFG
${list} Evaluate re.split('[&]', '${cfgList}[2]') re
FOR ${var} IN @{list}
${i} Evaluate '${var}'.find('=')
${name} Evaluate '${var}'[:${i}]
${value} Evaluate '${var}'[${i}+1:]
${y} Evaluate '${value}'.find('#')
${district} Evaluate '${value}'[:${y}]
${string} Evaluate '${value}'[${y}+1:]
${attributeValue} Create Dictionary string=${string} district=${district}
${obj} Create Dictionary attributeType=signature attributeName=${name} protocol=${appId} attributeValue=${attributeValue}
Append To List ${attributes} ${obj}
END