Skip to main content

Robot Framework keyword library wrapper around requests

Project description

Python application codecov PyPi downloads Latest Version

🏠 RequestsLibrary is a Robot Framework library aimed to provide HTTP api testing functionalities by wrapping the well known Python Requests Library.

Install stable version

pip install robotframework-requests

🤖 Quick start

*** Settings ***
Library               RequestsLibrary

*** Test Cases ***

Quick Get Request Test
    ${response}=    GET  https://www.google.com

Quick Get Request With Parameters Test
    ${response}=    GET  https://www.google.com/search  params=query=ciao  expected_status=200

Quick Get A JSON Body Test
    ${response}=    GET  https://jsonplaceholder.typicode.com/posts/1
    Should Be Equal As Strings    1  ${response.json()}[id]

What's new in 0.9

Sessionless keywords are now available, you can just GET, POST, etc.. no need to create a session anymore!

${resp}=  GET  https://www.google.com

Status Should Be and Request Should Be Successfull can use the last response, no need to pass the response anymore!

GET  https://www.google.com
Status Should Be  200

What's new in 0.8

New keywords structure: All requests keywords have been rewritten because of many not backward compatible changes and to allow in the near future requests keywords without a session. Example Get Request become GET On Session and soon there will be also just GET when a session is not needed. Old keywords * Request are now deprecated and will be removed in 1.0.0 version.

Implicit assert on status code: * On Session keywords automatically fail if an error status code is returned. expect_status= could be used to specify a status code (201, OK, Bad request) or any if you want to evaluate the response in any case.

Closer to the original Requests library: New keywords have the same parameter orders and structure as the original. Lot of pre-parsing / encoding has been removed to have a more accurate and unchanged behaviour.

Cleaner project architecture: Main keywords file has been split with a more logic division to allow better and faster maintenance.

🤖 More examples

*** Settings ***                                                                                       
Library    Collections                                                                                 
Library    RequestsLibrary                                                                             
                                                                                                       
Suite Setup    Create Session  jsonplaceholder  https://jsonplaceholder.typicode.com                   
                                                                                                       
*** Test Cases ***                                                                                     
                                                                                                       
Get Request Test                                                                                       
    Create Session    google  http://www.google.com                                                    
                                                                                                       
    ${resp_google}=   GET On Session  google  /  expected_status=200                                   
    ${resp_json}=     GET On Session  jsonplaceholder  /posts/1                                        
                                                                                                       
    Should Be Equal As Strings          ${resp_google.reason}  OK                                      
    Dictionary Should Contain Value     ${resp_json.json()}  sunt aut facere repellat provident        
                                                                                                       
Post Request Test                                                                                      
    &{data}=    Create dictionary  title=Robotframework requests  body=This is a test!  userId=1       
    ${resp}=    POST On Session    jsonplaceholder  /posts  json=${data}  expected_status=anything     
                                                                                                       
    Status Should Be                 201  ${resp}                                                      

📖 Keywords documentation

Robotframework-requests offers a wide set of keywords which can be found in the Keywords documentation

🔬 Test examples

You can find many test examples inside the atests folder.

🤝 Contributing ✍️

Feel free to contribute and open an issue in order to discuss it. Before doing it take a look at the contribution guidelines.

📢 Get in touch with the community via slack and Users group

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework-requests-0.9.3.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robotframework_requests-0.9.3-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file robotframework-requests-0.9.3.tar.gz.

File metadata

  • Download URL: robotframework-requests-0.9.3.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for robotframework-requests-0.9.3.tar.gz
Algorithm Hash digest
SHA256 0bbe78b8e7b3ab9bec4968a51bf3795e2671001a780b2b7ebf2ae2152988da35
MD5 4564a28a123aae08fdda6af7fec1b3f5
BLAKE2b-256 b4ea985beb57cbe294e0946b6503bb5342830298516ec3f67d91b1b3d16ba0f9

See more details on using hashes here.

File details

Details for the file robotframework_requests-0.9.3-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_requests-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 34cc9b17bb86810dd8496af79b5210cf401e79e0823cfb4388a6c41d9f4e3114
MD5 40afc2f2fa7543d56aba381a997d009c
BLAKE2b-256 434657408ac5c28bc3d8b8ec92ab86c1210ab8d9ae932afee6d10773118a56cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page