client-side RESTful test app
Automatic tool for testing rest api. You have to write configuration file Results printed in console.
$ git clone https://github.com/AHAPX/test-rest
$ cd test-rest
$ pip install -r requirements.txt
$ python main.py testfile.yml
Test file format can be:
Example:
url: http://example.com/
method: get
code: 200
handler: dict
actions:
- action1:
url: /account/
steps:
- step1:
url: welcome
result: {message: Welcome}
skip_errors: True
-
url: index.html
code: 404
- action2:
url: /forum/
step2:
-
url: comments
method: post
data: {text: Hello}
code: 200
result: {rc: True, number: None}
handler: dict(only_keys=True, level=1)
File has 3 levels:
- root with required element actions, which has action list.
- action must have required element steps
- step is description of api test
Each level can have fields:
- url - required field for step and root, not required for action
- method - rest api method, default - GET
- data - sent data if method == POST
- code - status code of request which you expect, default - 200
- result - data which you expect to get
- handler - handler of result
- skip_errors - do not show errors, only warnings
Hanlder compares expected resut with actual response. Names of hanlders:
- base - compares data straightforward, like a == b
- list - default behaviour same as base, if you want to compare lists independently order use list(any_order=True)
- dict - default behaviour same as base, if you want to compare keys, but not values, use dict(only_keys=True, level=1). level argument shows how deep compare dicts inside, i.e. {a: {b: {c: {d: 1}}}}
$ python -m unittest