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

241 lines
12 KiB
Plaintext
Raw Permalink Normal View History

2021-03-25 09:37:02 +08:00
*** Settings ***
Resource ../../03-Variable/BifangApiVariable.txt
Library REST http://${host}:${port}
Library Collections
Library RequestsLibrary
Library json
*** Keywords ***
ManageApistr
[Documentation]
... 描述入口apistr 为调用api地址
... 本关键字的作用是判断地址前有没有加版本号,如果没有加上
... policy/compile -> /v1/policy/compile
... /policy/compile -> /v1/policy/compile
... v1/policy/compile -> /v1/policy/compile
... /v1/policy/compile -> /v1/policy/compile
[Arguments] ${apistr}
${apiStart} Evaluate '${apistr}'[0:1]
${apiStart1} Evaluate '${apistr}'[0:2]
${apistr} Run Keyword If "${apiStart}"!="/" and "${apiStart}"!="v"
... Set Variable /${version}/${apistr}
... ELSE IF "${apiStart}"=="/" and "${apiStart1}"!="/v"
... Set Variable /${version}${apistr}
... ELSE IF "${apiStart}"=="v" Set Variable /${apistr}
... ELSE IF "${apiStart1}"=="/v" Set Variable ${apistr}
... ELSE Set Variable ${apistr}
log ${apistr}
[Return] ${apistr}
BasePostRequest
[Arguments] ${apistr} ${body}
Set Headers {"Authorization":"${token}","Content-Type":"application/json"}
log ${apistr}
&{httpResponse} Post ${apistr} ${body}
#Output response body
Object response body
#Integer $.code 200
#Array $.data.policyList
${response} Set Variable ${httpResponse.body}
[Return] ${response}
BasePostRequestOK
[Arguments] ${apistr} ${body}
${response} BasePostRequest ${apistr} ${body}
log ${response['code']}
Should Be Equal As Strings ${response['code']} 200
[Return] ${response}
BasePostRequestForV2
[Arguments] ${requestUri} ${data} ${apiVersion}
${headers} set variable {"Authorization":"${token}","Content-Type":"application/json"}
create session api http://${host}:${port}/${apiVersion} ${headers}
${response}= Post Request api ${requestUri} data=${data}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}
BaseGetRequest
[Arguments] ${apistr} ${body}
Set Headers {"Authorization":"${token}","Content-Type":"application/json"}
&{httpResponse} Get ${apistr}?${body}
#Output response body
Object response body
#Integer $.code 200
#Array $.data.policyList
${response} Set Variable ${httpResponse.body}
[Return] ${response}
BaseGetRequestOK
[Arguments] ${apistr} ${body}
${response} BaseGetRequest ${apistr} ${body}
log ${response['code']}
Should Be Equal As Strings ${response['code']} 200
[Return] ${response}
BaseGetRequestForV2
[Arguments] ${requestUri} ${data} ${apiVersion}
${headers} set variable {"Authorization":"${token}","Content-Type":"application/json"}
create session api http://${host}:${port}/${apiVersion} ${headers}
${response}= Get Request api ${requestUri}?${data}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}
BaseDeleteRequest
[Arguments] ${requestUri} ${data}
${headers} set variable {"Authorization":"${token}","Content-Type":"application/json"}
create session api http://${host}:${port} ${headers}
${response}= Delete Request api ${requestUri} data=${data}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}
BaseDeleteRequestOK
[Arguments] ${apistr} ${body}
${response} BaseDeleteRequest ${apistr} ${body}
log ${response['code']}
Should Be Equal As Strings ${response['code']} 200
[Return] ${response}
BaseEditRequest
[Arguments] ${requestUri} ${data}
${headers} set variable {"Authorization":"${token}","Content-Type":"application/json"}
create session api http://${host}:${port} ${headers}
${response}= Put Request api ${requestUri} data=${data}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}
BaseEditRequestOK
[Arguments] ${apistr} ${body}
${response} BaseEditRequest ${apistr} ${body}
log ${response['code']}
Should Be Equal As Strings ${response['code']} 200
[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}
#拼接字典类型数据为get请求的字符串
Dictionary-To-QueryParams
[Documentation]
... 接收get参数字典转换为请求字符串
[Arguments] ${params}
${paramsString} = Set Variable ${EMPTY}
Run Keyword And Return If "${params}" == "${EMPTY}" Set Variable ${EMPTY}
FOR ${key} IN @{params}
${value} = Get From Dictionary ${params} ${key}
${paramStr} = Catenate SEPARATOR=\= ${key} ${value}
${len} = Get Length ${paramsString}
${paramsString} = Run Keyword If ${len} != 0 Catenate SEPARATOR=& ${paramsString} ${paramStr}
... ELSE Set Variable ${paramStr}
END
Log To Console ${paramsString}
[Return] ${paramsString}
BaseFormRequest
[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}
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}
BasePostRequestReturnBinary
[Documentation]
... 下载文件专用
... 返回二进制数据
[Arguments] ${requestUri} ${data} ${apiVersion}
Log Call BasePostRequestReturnBinary
${headers} set variable {"Authorization":"${token}","Content-Type":"application/json"}
create session api http://${host}:${port}/${apiVersion} ${headers}
Log ${data}
${response} Post Request api ${requestUri} data=${data}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
[Return] ${response.content}
BaseGetRequestReturnBinary
[Documentation]
... 下载文件专用
... 返回二进制数据
[Arguments] ${requestUri} ${data} ${apiVersion}
Log Call BasePostRequestReturnBinary
${headers} set variable {"Authorization":"${token}","Content-Type":"application/json"}
${dataString} Dictionary-To-QueryParams ${data}
create session api http://${host}:${port}/${apiVersion} ${headers}
Log ${data}
${response} Get Request api ${requestUri}?${dataString}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
[Return] ${response.content}
BaseFormEditRequest
[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}= Put Request api ${requestUri} data=${data}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}
BaseFormPostRequest
[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}= Post Request api ${requestUri} data=${data}
log return data =${response}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}
OamRequest
[Arguments] ${requestUri} ${path} ${method} ${contentType} ${data}
${headers} set variable {"Authorization":"${token}","Content-Type":"${contentType}","path":"${path}"}
create session api http://${host}:${port} ${headers}
${response} Run Keyword If "${method}" == "GET" Get Request api ${requestUri}?${data}
... ELSE IF "${method}" == "POST" Post Request api ${requestUri} data=${data}
... ELSE IF "${method}" == "PUT" Put Request api ${requestUri} data=${data}
... ELSE IF "${method}" == "DELETE" Delete Request api ${requestUri} data=${data}
... ELSE Set Variable ${EMPTY}
Should Be Equal As Strings ${response.status_code} 200
${response} to json ${response.content}
[Return] ${response}
ResultGetRequestOK
[Arguments] ${apistr} ${body}
sleep 35
${response} BaseGetRequest ${apistr} ${body}
log ${response['code']}
log ${response}[data][list][0][status]
Should Be Equal As Strings ${response['code']} 200
Should Be Equal As Strings ${response}[data][list][0][status] 2