Skip to main content

BDD-style Rest API testing tool

Project description

BDD-style Rest API testing tool

It uses python’s requests for performing HTTP requests, nose for most assertions, trafaret for json validation and behave for BDD style of tests.

Installation

Clone project

Run

pip install -r requirements.txt # install required dependencies

OR

Run

pip install behave_rest

Running

# to execute all feature files (all tests)
behave

# to execture specific feature
behave features/twitter.feature

# to see printed output add --no-capture
behave --no-capture

# run features with specific tags
behave --tags=without_login --tags=slow

More about behave tool you can read here https://pythonhosted.org/behave/index.html

Test example

Feature: Twitter search

  Background: Setup environment
    Given I set base URL to "https://api.twitter.com/1.1/search"
    And I set "Authorization" header to "context.twitter_auth"

  Scenario: Search for tweets
    When I make a GET request to "tweets.json" with parameters
    |q|
    |stanfy|
    Then the response status code should equal 200
    And the response structure should equal "twitterSearchData"
    And the response header "status" should equal "200 OK"

You can get test feature files from the project repo

CI reports

Behave support JUnit reports, that are easily parsed by CI tools

To enable JUnit reports, create behave.ini file:

[behave]
junit=true

Reports are generated into /reports folder

Another useful options to add into behave.ini are:

stdout_capture=False to add printed output into reports

show_timings=no to hide timing of each step

Project Structure

Feature files are intended to locate in /features folder

Corresponding steps are located in /features/steps

Overall project structure is as follows:

+-- features/

    +-- conf.yaml // store project config (urls, global variables, etc.)

    +-- environment.py // context setup steps (e.g. load from config)

    +-- *.feature // feature files

    +-- steps/

        +-- __init__.py // used to import predefined steps

        +-- json_responses.py // response structures described in Trafaret format

        +-- *.py // steps related to corresponding feature (e.g. "login.py" contains steps that are related to "login.feature")

Project details


Download files

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

Source Distribution

behave-rest-0.1.3.tar.gz (5.1 kB view details)

Uploaded Source

File details

Details for the file behave-rest-0.1.3.tar.gz.

File metadata

  • Download URL: behave-rest-0.1.3.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for behave-rest-0.1.3.tar.gz
Algorithm Hash digest
SHA256 26863ca0163f1e5cffc7be04d07339954ce9f5171e802a18471a4068e465a2a6
MD5 2b8053c1c24c2219aa4c8a9ede1f5a50
BLAKE2b-256 f793b072ece7394d6aa64ad012f4aa01d6612dfaf8f9f3fd2fef68b18d487764

See more details on using hashes here.

Supported by

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