diff --git a/02-Keyword/tsg_bfapi/ApiRequest.robot b/02-Keyword/tsg_bfapi/ApiRequest.robot index 590d397..5763b32 100644 --- a/02-Keyword/tsg_bfapi/ApiRequest.robot +++ b/02-Keyword/tsg_bfapi/ApiRequest.robot @@ -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} diff --git a/02-Keyword/tsg_bfapi/Common.robot b/02-Keyword/tsg_bfapi/Common.robot index 77a9907..8d243e3 100644 --- a/02-Keyword/tsg_bfapi/Common.robot +++ b/02-Keyword/tsg_bfapi/Common.robot @@ -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} \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/Log_search.robot b/02-Keyword/tsg_bfapi/Log_search.robot index dd00124..63f53f4 100644 --- a/02-Keyword/tsg_bfapi/Log_search.robot +++ b/02-Keyword/tsg_bfapi/Log_search.robot @@ -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} diff --git a/04-CustomLibrary/Custometest/Schema.py b/04-CustomLibrary/Custometest/Schema.py new file mode 100644 index 0000000..3c9adae --- /dev/null +++ b/04-CustomLibrary/Custometest/Schema.py @@ -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() \ No newline at end of file