ejpiaj
License
- Free software: BSD license
Features
- describe your API requests in single file (YAML, JSON and XML at this moment) so you can store you API tests with code in same repository (f.i. as ejpiaj.json file)
- file format is detected from file extension
.yml
,.json
and.xml
- extract variables from responses and store them to use in next requests (f.i. to get and use authorization token)
- write assertions agains responses
- register your own variables extractors and assertions
- run suite using
ejpiaj-cli test -m my_addons -s tests.yml
command
Sample yml file:
requests: 001_search_repos_with_django_in_name: method: get url: https://api.github.com/search/repositories url_params: q: django sort: stars order: desc variables: json: total_count: count items.[0].full_name: repo_name assertions: response: - 'status_code equals 200' json: - 'items.[0].full_name contains ango' 002_get_commits_from_first_repo: method: get url: https://api.github.com/repos/{{repo_name}}/commits assertions: response: - 'status_code equals 200'
Run it:
$ ejpiaj-cli test sample.yml -s -------------------------------------------------------------------------------- P - passed assertions, F - failed assertions, V - extracted variables -------------------------------------------------------------------------------- ✓ 001_search_repos_with_django_in_name [P2,F0,V2] {'count': 29754, 'repo_name': u'django/django'} ✓ 002_get_commits_from_first_repo [P1,F0,V0] {} --------------------------------------------------------------------------------
SNI note
In order to support SNI in python 2.6/2.7 you need to install additional packages:
- pyOpenSSL, a Python wrapper module around the OpenSSL library.
- ndg-httpsclient, enhanced HTTPS support for httplib and urllib2.
- pyasn1, ASN.1 types and codecs.