How best to tackle tests that download very large files?

I suggest using the discardResponseBodies option globally, or setting responseType: "none" on individual requests. This way k6 will read the whole response, but it will not store it in memory.

Other than that, I guess it depends on how your service works. @pawel’s suggestion could work, but, depending on how your backend works, if it might be the case that interrupting the requests midway through won’t stress it in the same way as when you read through the whole response. If that case, I don’t think you can find a workaround.