提交 日志接口关键字
This commit is contained in:
@@ -1,50 +1,52 @@
|
||||
*** Settings ***
|
||||
Library Collections
|
||||
Library RequestsLibrary
|
||||
Resource ../../03-Variable/BifangApiVariable.txt
|
||||
|
||||
*** Keywords ***
|
||||
Post-Request
|
||||
[Arguments] ${url} ${data}
|
||||
${header} Create Dictionary Content-Type=application/json Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Post Request api ${url} data=${data} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
Get-Request
|
||||
[Arguments] ${url}
|
||||
${header} Create Dictionary Content-Type=application/json Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Get Request api ${url} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
Delete-Request
|
||||
[Arguments] ${url} ${data}
|
||||
${header} Create Dictionary Content-Type=application/json Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Delete Request api ${url} data=${data} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
UpFilePostRequest
|
||||
[Arguments] ${url} ${data} ${files} ${fileDesc}
|
||||
${header} Set To Dictionary ${fileDesc} Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Post Request api ${url} data=${data} files=${files} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
UpFilePutRequest
|
||||
[Arguments] ${url} ${data} ${files} ${fileDesc}
|
||||
${header} Set To Dictionary ${fileDesc} Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Put Request api ${url} params=${data} files=${files} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
*** Settings ***
|
||||
Library Collections
|
||||
Library json
|
||||
Library RequestsLibrary
|
||||
Resource ../../03-Variable/BifangApiVariable.txt
|
||||
|
||||
*** Keywords ***
|
||||
Post-Request
|
||||
[Arguments] ${url} ${data}
|
||||
${header} Create Dictionary Content-Type=application/json Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
#${data1} json.dumps ${data}
|
||||
${remoteResponse} Post Request api ${url} data=${data} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
Get-Request
|
||||
[Arguments] ${url}
|
||||
${header} Create Dictionary Content-Type=application/json Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Get Request api ${url} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
Delete-Request
|
||||
[Arguments] ${url} ${data}
|
||||
${header} Create Dictionary Content-Type=application/json Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Delete Request api ${url} data=${data} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
UpFilePostRequest
|
||||
[Arguments] ${url} ${data} ${files} ${fileDesc}
|
||||
${header} Set To Dictionary ${fileDesc} Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Post Request api ${url} data=${data} files=${files} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
UpFilePutRequest
|
||||
[Arguments] ${url} ${data} ${files} ${fileDesc}
|
||||
${header} Set To Dictionary ${fileDesc} Authorization=${token}
|
||||
Create Session api http://${host}:${port} headers=${header}
|
||||
${remoteResponse} Put Request api ${url} params=${data} files=${files} headers=${header}
|
||||
${response} to json ${remoteResponse.content}
|
||||
Should Be Equal As Strings ${remoteResponse.status_code} 200
|
||||
[Return] ${response}
|
||||
|
||||
@@ -1,231 +1,231 @@
|
||||
*** 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}
|
||||
*** 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}
|
||||
@@ -1,20 +1,81 @@
|
||||
*** Settings ***
|
||||
Library json
|
||||
Library OperatingSystem
|
||||
Library Selenium2Library
|
||||
Library RequestsLibrary
|
||||
Library Collections
|
||||
Resource ../tsg_bfapi/ApiRequest.robot
|
||||
Resource Log_schema.robot
|
||||
Resource ../tsg_bfapi/Common.robot
|
||||
|
||||
*** Keywords ***
|
||||
log_search
|
||||
[Arguments] ${start-time} ${end-time} ${type} ${filds} ${conditions}
|
||||
log 111111${filds}
|
||||
${filedsJson} json.dumps ${filds}
|
||||
${requestbody} Set Variable {"start_common_recv_time":"${start-time}","end_common_recv_time":"${end-time}","logType":"${type}","fields":${filedsJson},"conditions":${conditions},"refuseCode":true}
|
||||
log %%%%%%%%%%${requestbody}
|
||||
${response} BasePostRequest v1/log/list ${requestbody}
|
||||
log ${response}
|
||||
[Return] ${response}
|
||||
*** Settings ***
|
||||
Library json
|
||||
Library OperatingSystem
|
||||
Library Selenium2Library
|
||||
Library RequestsLibrary
|
||||
Library Collections
|
||||
Library DateTime
|
||||
Library String
|
||||
Library HttpLibrary.HTTP
|
||||
Resource ../tsg_bfapi/ApiRequest.robot
|
||||
Resource Log_schema.robot
|
||||
Resource ../tsg_bfapi/Common.robot
|
||||
Library ../../04-CustomLibrary/Custometest/Schema.py
|
||||
|
||||
*** Test Cases ***
|
||||
Apitext
|
||||
${EndTime} get current date
|
||||
${EndTime1} Get Substring ${EndTime} \ -4
|
||||
${StartTime} add time to date ${EndTime} -01:00:00
|
||||
${StartTime1} Get Substring ${StartTime} \ -4
|
||||
log ${StartTime1}
|
||||
log ${EndTime1}
|
||||
LogApiSearch ${StartTime1} ${EndTime1} security_event_log v1/log/list
|
||||
|
||||
*** Keywords ***
|
||||
log_search
|
||||
[Arguments] ${start-time} ${end-time} ${type} ${filds} ${conditions}
|
||||
log 111111${filds}
|
||||
${filedsJson} json.dumps ${filds}
|
||||
${requestbody} Set Variable {"start_common_recv_time":"${start-time}","end_common_recv_time":"${end-time}","logType":"${type}","fields":${filedsJson},"conditions":${conditions},"refuseCode":true}
|
||||
log %%%%%%%%%%${requestbody}
|
||||
${response} BasePostRequest v1/log/list ${requestbody}
|
||||
log ${response}
|
||||
[Return] ${response}
|
||||
|
||||
LogSchema
|
||||
[Arguments] ${logtype}
|
||||
${responsedata} Get-Request /v1/log/schema?logType=${logtype}
|
||||
${responsedata1} Get From Dictionary ${responsedata} data
|
||||
${responsefields} Get From Dictionary ${responsedata1} fields
|
||||
[Return] ${responsedata}
|
||||
|
||||
LogApiSearch
|
||||
[Arguments] ${start-time} ${end-time} ${logtype} ${url} ${conditions}=${None} ${filter}=null
|
||||
${schemaresponsedata} LogSchema ${logtype}
|
||||
${type1} Evaluate type(${schemaresponsedata})
|
||||
log 11111111${type1}
|
||||
${schemaresponsedata1} Get From Dictionary ${schemaresponsedata} data
|
||||
${filds} Get From Dictionary ${schemaresponsedata1} fields
|
||||
${filedsJson} json.dumps ${filds}
|
||||
${filter1} run keyword if "${filter}"=="null" Filter1 ${schemaresponsedata}
|
||||
run keyword if "${filter}"=="null" ForFilter ${start-time} ${end-time} ${logtype} ${url}
|
||||
... ${filedsJson} ${conditions} ${filter1}
|
||||
... ELSE LogSearchRequest ${start-time} ${end-time} ${logtype} ${url}
|
||||
... ${conditions} ${filter}
|
||||
# ${requestbody} Set Variable {"start_common_recv_time":"${start-time}","end_common_recv_time":"${end-time}","logType":"${type}","fields":${filedsJson},"conditions":${conditions},"filter":${filter},refuseCode":true}
|
||||
# ${response} BasePostRequest v1/log/list ${requestbody}
|
||||
# ${code} Get From Dictionary ${response} code
|
||||
|
||||
LogSearchRequest
|
||||
[Arguments] ${start-time} ${end-time} ${logtype} ${url} ${filedsJson} ${conditions} ${filter}
|
||||
# ${type2} Evaluate type(${filedsJson})
|
||||
# log 7777${type2}
|
||||
${requestbody} Set Variable {"start_common_recv_time":"${start-time}","end_common_recv_time":"${end-time}","logType":"${logtype}","fields":${filedsJson},"conditions":${conditions},"filter":${filter},refuseCode":true}
|
||||
#${requestbody1} json.loads ${requestbody}
|
||||
#${type1} Evaluate type(${requestbody})
|
||||
#log 88888888${type1}
|
||||
${response} Post-Request ${url} ${requestbody}
|
||||
${code} Get From Dictionary ${response} code
|
||||
log 22222222${response}
|
||||
|
||||
ForFilter
|
||||
[Arguments] ${start-time} ${end-time} ${logtype} ${url} ${filedsJson} ${conditions} ${filter1}
|
||||
${LongFilter} Set Variable
|
||||
: FOR ${i} IN @{filter1}
|
||||
\ ${LongFilter} catenate ${i} "and"
|
||||
\ LogSearchRequest ${start-time} ${end-time} ${logtype} ${url} ${filedsJson} ${conditions}
|
||||
\ ... ${i}
|
||||
${LongFilter1} Get Substring ${LongFilter} \ -5
|
||||
log 55555555${LongFilter1}
|
||||
LogSearchRequest ${start-time} ${end-time} ${logtype} ${url} ${conditions} ${LongFilter1}
|
||||
|
||||
125
04-CustomLibrary/Custometest/Schema.py
Normal file
125
04-CustomLibrary/Custometest/Schema.py
Normal file
@@ -0,0 +1,125 @@
|
||||
#!/user/bin/python
|
||||
#-*-coding:utf-8-*-
|
||||
import requests
|
||||
import random
|
||||
import json
|
||||
number = random.randint(0,100000)
|
||||
str = random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')
|
||||
list = []
|
||||
# def schema():
|
||||
# url = "http://192.168.44.72:8080/v1/log/schema?logType=security_event_log"
|
||||
# headers = {"Content-Type":"application/x-www-form-urlencoded","Authorization":"555b5dc2-d69f-44a4-8a00-171e81edd739&889&"}
|
||||
# response = requests.get(url=url,headers=headers)
|
||||
# return response.json()
|
||||
|
||||
def Filter1(schema):
|
||||
print("1234")
|
||||
print(type(schema))
|
||||
json_str = json.dumps(schema)
|
||||
schema1 = json.loads(json_str)
|
||||
fields = schema1["data"]["fields"]
|
||||
#print(fields)
|
||||
|
||||
#print(type(fields))
|
||||
operator = schema1["data"]["doc"]["schema_query"]["references"]["operator"]
|
||||
#print(operator)
|
||||
for i in fields:
|
||||
print(i)
|
||||
name = i["name"]
|
||||
doc = i["doc"]
|
||||
if doc == None:
|
||||
type1 = i["type"]
|
||||
for j in operator:
|
||||
if type1 == j["type"]:
|
||||
if type1 == "int" or type1 == "long":
|
||||
value1 = number
|
||||
functions = j["functions"]
|
||||
functions1 = functions.split(",")
|
||||
for v in functions1:
|
||||
str1 = name + " "+v + " "+ f"{value1}"
|
||||
list.append(str1)
|
||||
elif type1 == "string":
|
||||
value1 = str
|
||||
functions = j["functions"]
|
||||
functions1 = functions.split(",")
|
||||
for v in functions1:
|
||||
str1 = name + " "+v + " "+ value1
|
||||
list.append(str1)
|
||||
else:
|
||||
if i["doc"]["constraints"]== None:
|
||||
type1 = i["type"]
|
||||
for j in operator:
|
||||
if type1==j["type"]:
|
||||
if type1=="int" or type1=="long":
|
||||
value1 = number
|
||||
functions = j["functions"]
|
||||
functions1 = functions.split(",")
|
||||
for v in functions1:
|
||||
str1 = name + " "+v + " "+ f"{value1}"
|
||||
list.append(str1)
|
||||
elif type1=="string":
|
||||
value1 = str
|
||||
functions = j["functions"]
|
||||
functions1 = functions.split(",")
|
||||
for v in functions1:
|
||||
str1=name + " "+v + " "+ value1
|
||||
list.append(str1)
|
||||
|
||||
else:
|
||||
if i["doc"]["constraints"]["operator_functions"]==None:
|
||||
type1 = i["type"]
|
||||
for j in operator:
|
||||
if type1 == j["type"]:
|
||||
if type1 == "int" or type1 == "long":
|
||||
value1 = number
|
||||
functions = j["functions"]
|
||||
functions1 = functions.split(",")
|
||||
for v in functions1:
|
||||
str1 = name + " "+ v + " "+ f"{value1}"
|
||||
list.append(str1)
|
||||
elif type1 == "string":
|
||||
value1 = str
|
||||
functions = j["functions"]
|
||||
functions1 = functions.split(",")
|
||||
for v in functions1:
|
||||
str1 = name + " "+ v + " "+ value1
|
||||
list.append(str1)
|
||||
else:
|
||||
type1 = i["type"]
|
||||
operator1 = i["doc"]["constraints"]["operator_functions"]
|
||||
operator2 = operator1.split(",")
|
||||
data = i["doc"]["data"]
|
||||
for d in data:
|
||||
code = d["code"]
|
||||
if type1 == "int" or type1 == "long":
|
||||
for o in operator2:
|
||||
str1 = name + " "+ o + " "+ code
|
||||
list.append(str1)
|
||||
else:
|
||||
for o in operator2:
|
||||
str1 = name + " "+ o + " "+ code
|
||||
list.append(str1)
|
||||
print(list)
|
||||
return list
|
||||
# def api():
|
||||
# filter2 = Filter1()
|
||||
# a = schema()
|
||||
# fields = a["data"]["fields"]
|
||||
# for i in filter2:
|
||||
# url = "http://192.168.32.59:8888/v1/log/list"
|
||||
# headers = {"Content-Type": "application/json",
|
||||
# "Authorization": "7dda2581-38ca-4c48-9103-98ab852a5be5&807&"}
|
||||
# data = {
|
||||
# "start_common_recv_time":'2021-03-20 16:36:41',
|
||||
# "end_common_recv_time":'2021-03-21 17:36:41',
|
||||
# "logType":"security_event_log",
|
||||
# "fields":fields,
|
||||
# "filter":i
|
||||
# }
|
||||
# print(data)
|
||||
# response1 = requests.post(url=url, data=json.dumps(data),headers=headers)
|
||||
# print(response1.json())
|
||||
# return response1.json()
|
||||
#
|
||||
# if __name__ == '__main__':
|
||||
# api()
|
||||
Reference in New Issue
Block a user