231 lines
11 KiB
Plaintext
231 lines
11 KiB
Plaintext
*** 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 111111111111111111111111${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} |