用空手道下载文件
Download file with Karate
我想从网络位置下载一个 (100MB debian) 文件。我不想与文件交互;我只想把它保存在我的系统上。作为输入,我有 url 和 api 键(作为 header 传递)。以下 curl 命令在我的终端中有效:
curl --insecure -H key:value --output C:\Users\username\filename.deb https://path/filename.deb
所以我像这样尝试了 curl:
Scenario: Download file
* karate.exec('curl --insecure -H key:value --output C:\Users\username\filename.deb https://path/filename.deb')
但是没有任何反应。然后我尝试写响应,省略了输出字段,但结果是 190MB 而不是 100MB:
Scenario: Download file
* def result = karate.exec('curl --insecure -H key:value https://path/filename.deb')
* karate.write(result, 'fw.deb')
有没有办法只执行一个命令(我试过 karate.fork
但它也没有做任何事情)而不需要捕获结果并将其写入文件?
如果您无法让 karate.exec()
或 karate.fork()
工作,那么我建议的唯一选择是编写一些 Java 代码来完成这个特定的事情,并且您可以将这个奇怪的步骤纳入您的测试脚本的方式。
karate.exec()
的使用方法请参考:
让 Java 进程在文件系统上正确定位可执行文件是很棘手的。您可以尝试使用系统 PATH
之类的设置 env
属性 是否有所作为。或者使用 curl
的完整绝对路径,无论它安装在哪里等
我想从网络位置下载一个 (100MB debian) 文件。我不想与文件交互;我只想把它保存在我的系统上。作为输入,我有 url 和 api 键(作为 header 传递)。以下 curl 命令在我的终端中有效:
curl --insecure -H key:value --output C:\Users\username\filename.deb https://path/filename.deb
所以我像这样尝试了 curl:
Scenario: Download file
* karate.exec('curl --insecure -H key:value --output C:\Users\username\filename.deb https://path/filename.deb')
但是没有任何反应。然后我尝试写响应,省略了输出字段,但结果是 190MB 而不是 100MB:
Scenario: Download file
* def result = karate.exec('curl --insecure -H key:value https://path/filename.deb')
* karate.write(result, 'fw.deb')
有没有办法只执行一个命令(我试过 karate.fork
但它也没有做任何事情)而不需要捕获结果并将其写入文件?
如果您无法让 karate.exec()
或 karate.fork()
工作,那么我建议的唯一选择是编写一些 Java 代码来完成这个特定的事情,并且您可以将这个奇怪的步骤纳入您的测试脚本的方式。
karate.exec()
的使用方法请参考:
让 Java 进程在文件系统上正确定位可执行文件是很棘手的。您可以尝试使用系统 PATH
之类的设置 env
属性 是否有所作为。或者使用 curl
的完整绝对路径,无论它安装在哪里等