Robot Framework接口测试demo大全

一、需要导入的库
*** Settings ***
Library Collections
Library String
Library ../src/RequestsLibrary/RequestsKeywords.py
Library OperatingSystem
Suite Teardown Delete All Sessions

二、*** Test Cases ***
Get Requests
[Tags] get
Create Session google http://www.google.com
Create Session github https://api.github.com
${resp}= Get Request google /
Should Be Equal As Strings ${resp.status_code} 200
${resp}= Get Request github /users/bulkan
Should Be Equal As Strings ${resp.status_code} 200
Dictionary Should Contain Value ${resp.json()} Bulkan Evcimen

Get Requests with Url Parameters
[Tags] get
Create Session httpbin http://httpbin.org
&{params}= Create Dictionary key=value key2=value2
${resp}= Get Request httpbin /get params=${params}
Should Be Equal As Strings ${resp.status_code} 200
${jsondata}= To Json ${resp.content}
Should be Equal ${jsondata['args']} ${params}

Get Requests with Json Data
[Tags] get
Create Session httpbin http://httpbin.org
&{data}= Create Dictionary latitude=30.496346 longitude=-87.640356
${resp}= Get Request httpbin /get json=${data}
Should Be Equal As Strings ${resp.status_code} 200
${jsondata}= To Json ${resp.content}
Should Be Equal As Strings ${resp.status_code} 200

Get HTTPS & Verify Cert
[Tags] get get-cert
Create Session httpbin https://httpbin.org verify=True
${resp}= Get Request httpbin /get
Should Be Equal As Strings ${resp.status_code} 200

Get HTTPS & Verify Cert with a CA bundle
[Tags] get get-cert
Create Session httpbin https://httpbin.org verify=${CURDIR}${/}cacert.pem
${resp}= Get Request httpbin /get
Should Be Equal As Strings ${resp.status_code} 200

Get HTTPS with Client Side Certificates
[Tags] get get-cert
@{client_certs}= Create List ${CURDIR}${/}clientcert.pem ${CURDIR}${/}clientkey.pem
Create Client Cert Session crtsession https://server.cryptomix.com/secure client_certs=@{client_certs}
${resp}= Get Request crtsession /
Should Be Equal As Strings ${resp.status_code} 200

Get With Auth
[Tags] get get-cert
${auth}= Create List user passwd
Create Session httpbin https://httpbin.org auth=${auth}
${resp}= Get Request httpbin /basic-auth/user/passwd
Should Be Equal As Strings ${resp.status_code} 200
Should Be Equal As Strings ${resp.json()['authenticated']} True

Get With Digest Auth
[Tags] get get-cert
${auth}= Create List user pass
Create Digest Session httpbin https://httpbin.org auth=${auth} debug=3
${resp}= Get Request httpbin /digest-auth/auth/user/pass
Should Be Equal As Strings ${resp.status_code} 200
Should Be Equal As Strings ${resp.json()['authenticated']} True

Post Request With URL Params
[Tags] post
Create Session httpbin http://httpbin.org
&{params}= Create Dictionary key=value key2=value2
${resp}= Post Request httpbin /post params=${params}
Should Be Equal As Strings ${resp.status_code} 200

Post Request With No Data
[Tags] post
Create Session httpbin http://httpbin.org
${resp}= Post Request httpbin /post
Should Be Equal As Strings ${resp.status_code} 200

Put Request With No Data
[Tags] put
Create Session httpbin http://httpbin.org
${resp}= Put Request httpbin /put
Should Be Equal As Strings ${resp.status_code} 200

Post Request With No Dictionary
[Tags] post
Create Session httpbin http://httpbin.org debug=3
Set Test Variable ${data} some content
${resp}= Post Request httpbin /post data=${data}
Should Be Equal As Strings ${resp.status_code} 200
Should Contain ${resp.text} ${data}

Put Request With URL Params
[Tags] put
Create Session httpbin http://httpbin.org
&{params}= Create Dictionary key=value key2=value2
${resp}= Put Request httpbin /put params=${params}
Should Be Equal As Strings ${resp.status_code} 200

Put Request With No Dictionary
[Tags] put
Create Session httpbin http://httpbin.org
Set Test Variable ${data} some content
${resp}= Put Request httpbin /put data=${data}
Should Be Equal As Strings ${resp.status_code} 200
Should Contain ${resp.text} ${data}

Post Requests
[Tags] post
Create Session httpbin http://httpbin.org
&{data}= Create Dictionary name=bulkan surname=evcimen
&{headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= Post Request httpbin /post data=${data} headers=${headers}
Dictionary Should Contain Value ${resp.json()['form']} bulkan
Dictionary Should Contain Value ${resp.json()['form']} evcimen

Post With Unicode Data
[Tags] post
Create Session httpbin http://httpbin.org debug=3
&{data}= Create Dictionary name=度假村
&{headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= Post Request httpbin /post data=${data} headers=${headers}
Dictionary Should Contain Value ${resp.json()['form']} 度假村

--post请求对比返回关键字(返回字典型)
Post Request With Unicode Data
[Tags] post
Create Session httpbin http://httpbin.org debug=3
&{data}= Create Dictionary name=度假村
&{headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= Post Request httpbin /post data=${data} headers=${headers}
Dictionary Should Contain Value ${resp.json()['form']} 度假村

Post Request With Binary Data in Dictionary
[Tags] post
Create Session httpbin http://httpbin.org debug=3
${file_data}= Get Binary File ${CURDIR}${/}data.json
&{data}= Create Dictionary name=${file_data.strip()}
&{headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= Post Request httpbin /post data=${data} headers=${headers}
Log ${resp.json()['form']}
Should Contain ${resp.json()['form']['name']} \u5ea6\u5047\u6751

--post请求返回对比(返回字符串型)
Post Request With Binary Data
[Tags] post
Create Session httpbin http://httpbin.org debug=3
${data}= Get Binary File ${CURDIR}${/}data.json
&{headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= Post Request httpbin /post data=${data} headers=${headers}
Log ${resp.json()['form']}
${value}= evaluate list(${resp.json()}['form'].keys())[0]
Should Contain ${value} 度假村

Post Request With Arbitrary Binary Data
[Tags] post
Create Session httpbin http://httpbin.org debug=3
${data}= Get Binary File ${CURDIR}${/}randombytes.bin
&{headers}= Create Dictionary Content-Type=application/octet-stream Accept=application/octet-stream
${resp}= Post Request httpbin /post data=${data} headers=&{headers}
# TODO Compare binaries. Content is json with base64 encoded data
Log "Success"

Post With File
[Tags] post
Create Session httpbin http://httpbin.org
${file_data}= Get Binary File ${CURDIR}${/}data.json
&{files}= Create Dictionary file=${file_data}
${resp}= Post Request httpbin /post files=${files}
${file}= To Json ${resp.json()['files']['file']}
Dictionary Should Contain Key ${file} one
Dictionary Should Contain Key ${file} two

Post Request With File
[Tags] post
Create Session httpbin http://httpbin.org
${file_data}= Get Binary File ${CURDIR}${/}data.json
&{files}= Create Dictionary file=${file_data}
${resp}= Post Request httpbin /post files=${files}
${file}= To Json ${resp.json()['files']['file']}
Dictionary Should Contain Key ${file} one
Dictionary Should Contain Key ${file} two

Post Request With Data and File
[Tags] post
Create Session httpbin http://httpbin.org
&{data}= Create Dictionary name=mallikarjunarao surname=kosuri
Create File foobar.txt content=foobar
${file_data}= Get File foobar.txt
&{files}= Create Dictionary file=${file_data}
${resp}= Post Request httpbin /post files=${files} data=${data}
Should Be Equal As Strings ${resp.status_code} 200

Put Requests
[Tags] put
Create Session httpbin http://httpbin.org
&{data}= Create Dictionary name=bulkan surname=evcimen
&{headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= Put Request httpbin /put data=${data} headers=${headers}
Dictionary Should Contain Value ${resp.json()['form']} bulkan
Dictionary Should Contain Value ${resp.json()['form']} evcimen

Head Request
[Tags] head
Create Session httpbin http://httpbin.org
${resp}= Head Request httpbin /headers
Should Be Equal As Strings ${resp.status_code} 200

Options Request
[Tags] options
Create Session httpbin http://httpbin.org
${resp}= Options Request httpbin /headers
Should Be Equal As Strings ${resp.status_code} 200
Dictionary Should Contain Key ${resp.headers} allow

Delete Request With URL Params
[Tags] delete
Create Session httpbin http://httpbin.org
&{params}= Create Dictionary key=value key2=value2
${resp}= Delete Request httpbin /delete ${params}
Should Be Equal As Strings ${resp.status_code} 200

Delete Request With No Data
[Tags] delete
Create Session httpbin http://httpbin.org
${resp}= Delete Request httpbin /delete
Should Be Equal As Strings ${resp.status_code} 200

Delete Request With Data
[Tags] delete
Create Session httpbin http://httpbin.org debug=3
&{data}= Create Dictionary name=bulkan surname=evcimen
${resp}= Delete Request httpbin /delete data=${data}
Should Be Equal As Strings ${resp.status_code} 200
Log ${resp.content}
Comment Dictionary Should Contain Value ${resp.json()['data']} bulkan
Comment Dictionary Should Contain Value ${resp.json()['data']} evcimen

Patch Requests
[Tags] patch
Create Session httpbin http://httpbin.org
&{data}= Create Dictionary name=bulkan surname=evcimen
&{headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= Patch Request httpbin /patch data=${data} headers=${headers}
Dictionary Should Contain Value ${resp.json()['form']} bulkan
Dictionary Should Contain Value ${resp.json()['form']} evcimen

Get Request With Redirection
[Tags] get
Create Session httpbin http://httpbin.org debug=3
${resp}= Get Request httpbin /redirect/1
Should Be Equal As Strings ${resp.status_code} 200

${resp}=  Get Request  httpbin  /redirect/1  allow_redirects=${true}
Should Be Equal As Strings  ${resp.status_code}  200

Get Request Without Redirection
[Tags] get
Create Session httpbin http://httpbin.org
${resp}= Get Request httpbin /redirect/1 allow_redirects=${false}
${status}= Convert To String ${resp.status_code}
Should Start With ${status} 30

Options Request With Redirection
[Tags] options
Create Session httpbin http://httpbin.org
${resp}= Options Request httpbin /redirect/1
Should Be Equal As Strings ${resp.status_code} 200
${resp}= Options Request httpbin /redirect/1 allow_redirects=${true}
Should Be Equal As Strings ${resp.status_code} 200

Head Request With Redirection
[Tags] head
Create Session httpbin http://httpbin.org
${resp}= Head Request httpbin /redirect/1 allow_redirects=${true}
Should Be Equal As Strings ${resp.status_code} 200

Head Request Without Redirection
[Tags] head
Create Session httpbin http://httpbin.org
${resp}= Head Request httpbin /redirect/1
${status}= Convert To String ${resp.status_code}
Should Start With ${status} 30
${resp}= Head Request httpbin /redirect/1 allow_redirects=${false}
${status}= Convert To String ${resp.status_code}
Should Start With ${status} 30

Post Request With Redirection
[Tags] post
Create Session jigsaw http://jigsaw.w3.org
${resp}= Post Request jigsaw /HTTP/300/302.html
Should Be Equal As Strings ${resp.status_code} 200
${resp}= Post Request jigsaw /HTTP/300/302.html allow_redirects=${true}
Should Be Equal As Strings ${resp.status_code} 200

Post Request Without Redirection
[Tags] post
Create Session jigsaw http://jigsaw.w3.org debug=3
${resp}= Post Request jigsaw /HTTP/300/302.html allow_redirects=${false}
${status}= Convert To String ${resp.status_code}
Should Start With ${status} 30

Put Request With Redirection
[Tags] put
Create Session jigsaw http://jigsaw.w3.org debug=3
${resp}= Put Request jigsaw /HTTP/300/302.html
Should Be Equal As Strings ${resp.status_code} 200
${resp}= Put Request jigsaw /HTTP/300/302.html allow_redirects=${true}
Should Be Equal As Strings ${resp.status_code} 200

Put Request Without Redirection
[Tags] put
Create Session jigsaw http://jigsaw.w3.org
${resp}= Put Request jigsaw /HTTP/300/302.html allow_redirects=${false}
${status}= Convert To String ${resp.status_code}
Should Start With ${status} 30

Do Not Pretty Print a JSON object
[Tags] json
Comment Define json variable.
&{var}= Create Dictionary key_one=true key_two=this is a test string
${resp}= Get Request httpbin /get params=${var}
Set Suite Variable ${resp}
Should Be Equal As Strings ${resp.status_code} 200
${jsondata}= To Json ${resp.content}
Dictionaries Should Be Equal ${jsondata['args']} ${var}

Pretty Print a JSON object
[Tags] json
Comment Define json variable.
Log ${resp}
${output}= To Json ${resp.content} pretty_print=True
Log ${output}
Should Contain ${output} "key_one": "true"
Should Contain ${output} "key_two": "this is a test string"
Should Not Contain ${output} {u'key_two': u'this is a test string', u'key_one': u'true'}

Set Pretty Print to non-Boolean value
[Tags] json
Comment Define json variable.
Log ${resp}
${output}= To Json ${resp.content} pretty_print="Hello"
Log ${output}
Should Contain ${output} "key_one": "true"
Should Contain ${output} "key_two": "this is a test string"
Should Not Contain ${output} {u'key_two': u'this is a test string', u'key_one': u'true'}

三、此为转载,防止原文链接失效。
原文地址:https://github.com/bulkan/robotframework-requests/blob/master/tests/testcase.txt
再次感谢大佬,有不懂的地方多跑跑这些demo,真的很管用。

推荐阅读更多精彩内容