Using "params" statement, it's possible to embbed python3 scripts, to make your tests more powerful.
Can be really useful to:
- transform data (gzip, base64, encrypt, ...)
- save/read content from filesystem
- compute complex data
You can include all python libs available in reqman, but for others libs you should have python3 on the host with yours libs.
With param value
- POST: /post body: <<content>> params: content: | with open("image.jpg","rb") as fid: return fid.read()
With method over a param value
it's like a param, but 'x' is the input parameter (ENV dict is also available)
- POST: /post body: <<content|gzip>> params: content: "hello world" gzip: | import zlib return zlib.compress( bytes(x,"utf8") )
And you can chain methods like this
- POST: /post body: <<content|gzip|b64>> params: content: "hello world" gzip: | import zlib return zlib.compress( bytes(x,"utf8") ) b64: | import base64 return str( base64.b64encode( bytes(x,"utf8") ), "utf8" )
Example of using a python method to save content during tests:
- get: /image.jpeg params: mysave: | with open("myfile.jpg","wb+") as fid: fid.write( x ) return True save: isSaved: <<content|mysave>>
You will need version >= 220.127.116.11 (previous was bugged ;-( )
A better place for theses methods : declare them in the reqman.conf !