postmanlabs / postman-app-support

Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.
https://www.postman.com
5.85k stars 839 forks source link

Read external files in pre-tests and tests requests #7210

Open ymeunier opened 5 years ago

ymeunier commented 5 years ago

Hi, I'm developping a postman collection for do a regression-test on my API. I'm validating all my responses schemes with tv4. I run some similar queries whose answers are usually very close. Therefore the validation schemes are the same. How can I outsource my schemes in order to simplify my collection and simplify the corrections?

Best Regards, Yann

shamasis commented 5 years ago

Indeed we are considering an api to read files in away similar to how files are read for request body via a working directory.

BidyutJBorah commented 4 years ago

Any updates on this feature?

deepayadav06 commented 4 years ago

Hi @shamasis Any updates on this feature, We use GraphQL where we have lots of mutations and queries against which automated tests are written, But we are struggling at the moment to deal with last and complex data sets. Thanks

zekikaraca commented 4 years ago

Any progress on this feature guys? An update would be great. I would love to be able to use this in Postman.

fionayang99 commented 4 years ago

This will be a great feature to have, any updates?

sanster9292 commented 3 years ago

Any updates on this issue??

froyo2 commented 3 years ago

I need to calculate the file md5 before calling the api, so I really need this feature, any updates on this issue?

mrkprdo commented 3 years ago

If this feature is going to be implemented, READ/WRITE External file, I'm going to devote my devops career to use Postman, till something will surpass its functionality.

But for now, sticking to native testing frameworks, currently using Rest-Assured.

Chris-Loughnane commented 3 years ago

... why is this still not available? I have found posts from 5~6 years ago with people asking for it. I'm tired of generating JWT tokens in my CLI and then manually updating my postman environment. Let us access system environment variables or let us load from a file.

phalverson commented 3 years ago

Waiting for this as well, I want to read AWS authorization credentials (key, secret, session token) from a local .aws/credentials file that changes very frequently (SSO timeouts), instead of constantly having to copy and paste values into workspace environment variables.

jiteshk11 commented 3 years ago

Waiting for this feature for long time now!!!!

shamasis commented 3 years ago

Newman and Postman App shares the same core code. As such these become exponentially difficult to build.

I don't see these come together soon a bit of more groundwork is needed how external files fit into the whole API lifecycle.

Would love to continue this discussion around the bigger picture here and know more around what adds up.

rothrock commented 3 years ago

Really need to read a local file.

Creedzy commented 3 years ago

It's been 8 years since it was requested in another ticket. Just saying.

igorbljahhin commented 3 years ago

I also would like to read local files in pre-request scripts. In our project we use postman/newman to upload website provisioning data to STAGE/PROD environments. At the moment we successfully uploading data from CSV files. Now I would like to upload text files also.

bencpeters commented 2 years ago

I have the same use-case as @phalverson (reading AWS credentials from the system file). This really doesn't seem like it should be such a difficult ask!

Camble commented 2 years ago

Can't believe this really isn't implemented.

Penumbra69 commented 2 years ago

All I want to do is make a signed JWT using the current date, which means needing to either read a file, or use an external module. The modules which support signing JWT's in Javascript land do not publish minified/umd versions of their code, so importing via the unpakd.com method is not going to work. I need to be able to load a module which can then do the work of creating / signing + inserting CURRENT TIME in my JWT payloads.

Right now I have a (very janky) approach by using browserify to "modularize" all the code and dependencies of the module, and then pasting that minified code to a freakin' environment variable so I can eval() it for use.. Similar to your unpakd.com janky workaround. I've still had to hand-edit some of that code because the "this" in the module loader and the "this" in the postman pre-req script are not the same "this" -- regardless of what your example shows. (console.log(this) doesn't lie.)

So what we need are either: A) Your team to add token parsing/ decoding/ verifying/ creating code into your Postman modules that you insert into the codebase, or a way to properly load them. B) A way to load schema / test data / WHATEVER WE NEED from a safe space (Like, say /Users/my_user/Postman/files -- which you already condition for use) so we can load modules / code / test data / WHATEVER IS REQUIRED by our enterprise to properly pre-condition a request.

Failing either of these fails this product at being capable of working with modern API's that require oAuth / OIDC / Auth0 style interactions.

Q.E.D.

erhhung commented 2 years ago

@Penumbra69 While this reply doesn't address Postman's underlying deficiency, the technique that I've been using to load external modules into pre-request scripts might help you from having to squeeze minified code into an environment variable: https://gist.github.com/erhhung/4d8884c014350364791587425259c8ea

Since Postman does support invoking additional arbitrary requests in the pre-request script, I've also thought about—but never needed to implement—loading external files by running a local http-server (CLI one-liner) that serves the files I need, and making requests to http://localhost/my_data.json. Of course you can also run any local HTTP server that supports shell-based CGI scripts so you can perform any task you need.

aklef commented 1 year ago

I have a test case just now where I need to automate a comparison to an expected result from some process' network folder dump... there's just no easy way currently with Postman, bummed

Darkona commented 1 year ago

For those in the future to stumble upon this thread, I made a little utility in python that can ease some of the pains for the lack of the feature. Please take a look at: https://github.com/Darkona/Tardigrade

cheers

humbienri commented 1 year ago

Hello all,

Kinda new here and been stumbling through a few of these issues here on Github regarding this "external files" matter. I've now seen it mentioned a couple of times, including on StackOverflow, the idea of setting up your local HTTP server to be able to sneak in the file. However, I do wonder how that would work once you have to integrate your API tests into a CI/CD scenario? I'm not that technical but it seems to me that's a no go?

Another thing that comes to mind is that if you are that technical to be setting up local servers and such...then why bother automating your tests using a tool like Postman, instead of just going straight up programmatically w/ something like axios/supertest/got etc.?

Thanks for the insights folks.