postman2py is a library for Postman that run Postman's collections.
Originaly was forked from https://github.com/k3rn3l-p4n1c/postpython and https://github.com/matkapi/postpy2 Added few updates related to Postman collection import and urlencoded request type.
- No hardcoded variables
- If your team use postman collection for testing and you want to extend testing by integrating some calculation or etc.
postman2py is available on PyPI and you can install it using pip:
$ pip install postman2py
Import postman2py
from postman2py.core import PostPython
runner = postman2py('/path/to/collection/postman_collection.json')
# runner.default.<request_name> # if no folders in collection
# runner.<folder_name>.<request_name> # if folders exist in collection
response = runner.default.get_request()
print(response.json())
print(response.status_code)
In postman2py you can load enviroment variables from postman enviroment files
pp.environments.load('environments/postman_environment.json')
runner.environments.update({'BASE_URL': 'http://127.0.0.1:5000'})
runner.environments.update({'PASSWORD': 'test', 'EMAIL': 'you@email.com'})
postman2py try to correct your mistake if you spell a function or folder wrong it will suggest you the closest name.
>>> response = runner.RequestMethods.get_requasts()
Traceback (most recent call last):
File "test.py", line 11, in <module>
response = runner.RequestMethods.get_requasts()
File "/usr/local/lib/python3.5/site-packages/postman2py/core.py", line 73, in **getattr**
'Did you mean %s' % (item, self.name, similar))
AttributeError: get_requasts request does not exist in RequestMethods folder.
Did you mean get_request
You can also use help()
method to print all available requests.
>>> runner.help()
>>> Posible requests:
>>> runner.AuthOthers.hawk_auth()
>>> runner.AuthOthers.basic_auth()
>>> runner.AuthOthers.oauth1_0_verify_signature()
>>> runner.RequestMethods.get_request()
>>> runner.RequestMethods.put_request()
>>> runner.RequestMethods.delete_request()
>>> runner.RequestMethods.post_request()
>>> runner.RequestMethods.patch_request()
or
>>> runner.RequestMethods.help()
>>> runner.RequestMethods.delete_request()
>>> runner.RequestMethods.patch_request()
>>> runner.RequestMethods.get_request()
>>> runner.RequestMethods.put_request()
>>> runner.RequestMethods.post_request()