feat:(策略导入导出)上传文件下载文件以及样例

This commit is contained in:
wangxin
2020-06-19 19:13:50 +08:00
parent bc6b6ed90f
commit c24acb6bc3
4 changed files with 123 additions and 2 deletions

View File

@@ -425,4 +425,13 @@ Policy-Delete-v1-00017
Comment 删除安全策略
${rescode} DeletePolicies ${policyIds}
${policyIds} Create List
Log ${rescode}
Log ${rescode}
Policy-Import-v1-00018
Comment 导入json
${objectIds} Set Variable ${EMPTY}
${rescode} ${policyIds} ImportPolicy uploadFiles tsg_security_imp.json tsg_security
Policy-Export-v1-00019
Comment 导 出json
${objectIds} Set Variable ${EMPTY}
${response} ExportPolicy tsg_security ${EMPTY} ${EMPTY}
WriteFile downloads download.json ${response}

View File

@@ -3,6 +3,7 @@ Resource ../../03-Variable/BifangApiVariable.txt
Library REST http://${host}:${port}
Library Collections
Library RequestsLibrary
Library json
*** Keywords ***
ManageApistr
@@ -142,4 +143,29 @@ BaseFormRequest
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}
BaseFormRequest1
[Documentation]
... 下载文件专用
... 由于下载的json存在特殊字符
... 隐藏需要设置response.encoding='utf-8-sig'
[Arguments] ${requestUri} ${data} ${apiVersion}
${headers} set variable {"Authorization":"${token}","Content-Type":"application/x-www-form-urlencoded"}
create session api http://${host}:${port}/${apiVersion} ${headers}
${response} Run Keyword If "${data}"=="${EMPTY}" Get Request api ${requestUri}
... ELSE Get Request api ${requestUri}?${data}
log return data =${response}
${response.encoding} set variable utf-8-sig
Should Be Equal As Strings ${response.status_code} 200
${response} json.Loads ${response.content}
[Return] ${response}
BaseMultipartPostRequest
[Arguments] ${requestUri} ${data} ${files} ${apiVersion}
${headers} set variable {"Authorization":"${token}"}
${dataString} Dictionary-To-QueryParams ${data}
create session api http://${host}:${port}/${apiVersion} ${headers}
${response}= Post Request api ${requestUri}?${dataString} files=${files}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}

View File

@@ -107,4 +107,38 @@ WxDeletePolicy1
${response} BaseDeleteRequest /${version}${policyUrl} ${params}
${rescode} Set Variable ${response['code']}
Should Be Equal As Strings ${rescode} 200
[Return] ${rescode}
[Return] ${rescode}
ImportPolicy
[Documentation]
... 策略导入
[Arguments] ${filePath} ${fileName} ${policyType}
Directory Should Exist ${path}
File Should Exist ${path}/${filePath}/${fileName}
File Should Not Be Empty ${path}/${filePath}/${fileName}
${size} Get File Size ${path}/${filePath}/${fileName}
${binFile} Evaluate (r'import_policy.json',open(r"${path}/${filePath}/${fileName}",'rb'),'application/json')
Log ${binFile}
${data} Create Dictionary policyType=${policyType}
${file} Create Dictionary file=${binFile}
${response} BaseMultipartPostRequest ${policyUrl}/batch ${data} ${file} ${version}
${rescode} Set Variable ${response['code']}
Should Be Equal As Strings ${rescode} 200
[Return] ${rescode}
ExportPolicy
[Documentation]
... 策略导出
[Arguments] ${policyType} ${policyIds} ${policyName}
Should Not Be Empty ${policyType}
${params} Create Dictionary policyType=${policyType}
Run Keyword If "${policyIds}"!="${EMPTY}" Set To Dictionary ${params} policyIds=${policyIds}
Run Keyword If "${policyName}"!="${EMPTY}" Set To Dictionary ${params} policyName=${policyName}
${paramsStr} Dictionary-To-QueryParams ${params}
${response} BaseFormRequest1 ${policyUrl}/batch ${paramsStr} ${version}
[Return] ${response}
WriteFile
[Arguments] ${filePath} ${fileName} ${content}
Create File ${path}/${filePath}/${fileName}
${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}

View File

@@ -0,0 +1,52 @@
{
"list": [
{
"action": "deny",
"appObjectIdArray": [
2
],
"doLog": 1,
"evaluationLayer": "any_layer",
"evaluationOrder": 0,
"evaluationStage": 0,
"filterInfo": "2537:TSG_FIELD_HTTP_REQ_HDR;3002:TSG_SECURITY_SOURCE_ADDR;2723:TSG_SECURITY_DESTINATION_ADDR;2:app_id",
"isValid": 0,
"opTime": "2020-06-15 13:31:39",
"opUser": 353,
"policyDesc": "",
"policyId": 1231,
"policyName": "zw_test",
"policyType": "tsg_security",
"protocol": "HTTP",
"referenceObject": [
{
"objectId": 2723,
"protocolFields": [
"TSG_SECURITY_DESTINATION_ADDR"
]
},
{
"objectId": 2537,
"protocolFields": [
"TSG_FIELD_HTTP_REQ_HDR"
]
},
{
"objectId": 3002,
"protocolFields": [
"TSG_SECURITY_SOURCE_ADDR"
]
}
],
"scheduleId": [],
"userRegion": {
"protocol": "HTTP",
"code": 200,
"method": "alert",
"message": "aaaa"
},
"userTags": ""
}
],
"totalNum": 1
}