Create your http(s)-tests in simple yaml files, and run them with command line, against various environments
Reqman is the postman killer ;-)
reqman can be used as a python's module, or a commandLine.
- Light (simple py3 file, 1800 lines of code, and x3 lines for unittests, in TDD mind ... cov:95%)
- Powerful (at least as postman free version)
- tests are simple (no code !)
- Variable pool
- can create(save)/re-use variables per request
- "procedures" (declarations & re-use/call), local or global
- Environment aware (switch easily)
- https/ssl ok (bypass)
- http 1.0, 1.1, 2.0
- headers inherits
- tests inherits
- timed requests + average times
- html tests renderer (with request/response contents)
- encoding aware
- cookie handling
- color output in console (when colorama is present)
- variables can be computed/transformed (in a chain way)
- tests files extension : .yml or .rml (ReqManLanguage)
- generate conf/rml (with 'new' command)
- can paralleliz tests (option
- NEW 2.0 :
- rewrite from scratch, a lot stronger & speeder !
- advanced save mechanisms
- new switchs system
- a lot of new options (auto open browser, set html filename, compare, ...)
- ability to save the state, to compare with newer ones
- ability to replay given tests (rmr file)
- dual mode : compare switchs vs others switchs (-env1 +env2) in html output
- shebang mode
- better html output (need some works yet !)
- fully compatible with reqman1 conf/ymls
- doc & examples ;-)
- postman converter ?
Getting started : installation
If you are on an nix platform, you can start with pip :
$ pip3 install reqman
it will install the reqman script in your path (perhaps, you'll need to Add the path
~/.local/bin to the PATH environment variable.)
Getting started : let's go
You can start a new project in your folder, like that:
$ reqman new https://pypi.org/pypi/reqman/json
It's the first start ; it will create a conf file reqman.conf and a (basic) test file 0010_test.rml. Theses files are YAML, so ensure that your editor understand them ! (Following 'new' command will just create another fresh rml file if a reqman.conf exists)
Now, you can run/test it :
$ reqman .
It will scan your folder "." and run all test files (
*.yml) against the reqman.conf ;-)
It will show you what's happened in your console. And generate a
reqman.html with more details (open it to have an idea)!
If you edit the
reqman.conf, you will see :
root: https://pypi.org headers: User-Agent: reqman (https://github.com/manatlan/reqman)
the root is a
special var which will be prependded to all relative urls in your requests tests.
the headers (which is a
special var too) is a set of
http headers which will be added to all your requests.
Change it to, and save it :
root: https://pypi.org headers: User-Agent: reqman (https://github.com/manatlan/reqman) test: root: https://test.pypi.org
Now, you have created your first switch. And try to run your tests like this:
$ reqman.py . -test
It will run your tests against the root defined in test section ; and the test is KO, because reqman doesn't exist on test.pypi.org ! In fact; all declared things under test will replace those at the top ! So you can declare multiple environments, with multiple switchs !
But you can declare what you want, now edit reqman.conf like this :
root: https://pypi.org headers: User-Agent: reqman (https://github.com/manatlan/reqman) package: reqman test: root: https://test.pypi.org
You have declared a var package ! let's edit the test file 0010_test.rml like this :
- GET: /pypi/<<package>>/json tests: - status: 200
Now, your test will use the package var which was declared in reqman.conf ! So, you can create a switch to change the package thru the command line, simply edit your reqman.conf like that :
root: https://pypi.org headers: User-Agent: reqman (https://github.com/manatlan/reqman) package: reqman test: root: https://test.pypi.org switchs: # the new way to declare switchs (in a 'switchs' statement) colorama: package: colorama
Now, you can check that 'colorama' exists on pypi.org, like that :
$ reqman . -colorama
And you can check that 'colorama' exists on test.pypi.org, like that :
$ reqman . -colorama -test
As you can imagine, it's possible to make a lot of fun things easily. (see a more complex reqman.conf)
Now, you can edit your rml file, and try the things available in this tuto. Organize your tests as you want : you can make many requests in a rml file, you can make many files with many requests, you can make folders which contain many rml files. Reqman will not scan sub-folders starting with "_" or ".".
reqman will return an
exit code which contains the number of KO tests : 0 if everything is OK, or -1 if there is a trouble (tests can't be runned) : so it's easily scriptable in your automated workflows !
Use and abuse !
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size reqman-22.214.171.124-py3-none-any.whl (48.8 kB)||File type Wheel||Python version py3||Upload date||Hashes View hashes|
|Filename, size reqman-126.96.36.199.tar.gz (30.7 kB)||File type Source||Python version None||Upload date||Hashes View hashes|