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")
Metadata
Release files for behave-rest 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| behave-rest-0.1.3.tar.gz | 5.1 kB | Details |
Release files / behave-rest-0.1.3.tar.gz
| Download URL | behave-rest-0.1.3.tar.gz |
|---|---|
| Size | 5.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
26863ca0163f1e5cffc7be04d07339954ce9f5171e802a18471a4068e465a2a6
|
|
BLAKE2b-256 checksum How to use checksums |
f793b072ece7394d6aa64ad012f4aa01d6612dfaf8f9f3fd2fef68b18d487764
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |