【问题标题】:Download file with Karate用空手道下载文件
【发布时间】:2021-11-25 00:33:19
【问题描述】:

我想从网络位置下载一个 (100MB debian) 文件。我不想与文件交互;我只是希望它保存在我的系统上。作为输入,我有 url 和 api 键(作为标题传递)。以下 curl 命令在我的终端中有效:

curl --insecure -H key:value --output C:\Users\username\filename.deb https://path/filename.deb

所以我尝试这样卷曲:

  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,它也没有做任何事情)而不需要捕获结果并将其写入文件?

【问题讨论】:

    标签: curl karate


    【解决方案1】:

    如果您无法让 karate.exec()karate.fork() 工作,那么我建议的唯一选择是编写一些 Java 代码来执行此特定操作,这样您就可以将这个奇怪的步骤纳入您的测试-脚本。

    有关如何使用karate.exec()的详细信息,请参阅:https://stackoverflow.com/a/62911366/143475

    让 Java 进程正确定位文件系统上的可执行文件是很棘手的。您可以尝试使用系统PATH 等设置env 属性是否有所作为。或者使用curl 的完整绝对路径安装在哪里等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-06
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多