Reqman is the postman killer ;-)
Switch branches/tags
Nothing to show
Clone or download
Failed to load latest commit information.
.vscode better names Jul 13, 2018
dist exe for Jul 20, 2018
examples remove params as list -> replaced by foreach Jul 14, 2018
.gitignore add tasks file Jul 11, 2018
LICENSE Initial commit Jan 28, 2018 color in readme Jul 22, 2018
changelog release a 1.0 Jul 19, 2018 release a 1.0 Jul 19, 2018 u+x Jul 16, 2018 when None is present in <,<=,>,>= -> False Jul 16, 2018


Reqman is the postman killer ;-)

Create your http(s)-tests in simple yaml files, and run them with command line, against various environments. reqman is a python3 simple file (need PyYAML dependency). The changelog !


  • Light (simple py3 file, 900 lines of code, and x3 lines for unittests, in TDD mind)
  • 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)
  • 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)
  • versionning

and soon

  • 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 script in your path (perhaps, you'll need to Add the path ~/.local/bin to the PATH environment variable.)

If you are on microsoft windows, just download reqman.exe, and add it in your path.

Getting started : let's go

Imagine that you want to test the json api from, to verify that it finds me ;-) (if you are on windows, just replace with reqman.exe)

You can start a new project in your folder, like that:

$ new

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 :

$ .

It will scan your folder "." and run all test files (*.rml or *.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 :

    User-Agent: 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:

    User-Agent: reqman (


Now, you have created your first switch. And try to run your tests like this:

$ . -test

It will run your tests against the root defined in test section ; and the test is KO, because reqman doesn't exist on ! 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 :

    User-Agent: reqman (
package: reqman


You have declared a var package ! let's edit the test file 0010_test.rml like this :

- GET: /pypi/<<package>>/json
    - 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 :

    User-Agent: reqman (
package: reqman


    package: colorama

Now, you can check that 'colorama' exists on, like that :

$ . -colorama

And you can check that 'colorama' exists on, like that :

$ . -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 !