【问题标题】:How to verify that a file is downloaded using NightWatch如何使用 NightWatch 验证文件是否已下载
【发布时间】:2018-09-04 23:57:43
【问题描述】:

我们需要测试一下,当点击下载按钮时,

  1. 预期的文件 (Template.xlsx) 已下载并在下载文件夹 ("c:/user/downloads/") 中可用。
  2. 文件大小与预期大小相符
  3. 此外,在我下载之前,我必须从下载文件夹中删除现有文件,以免出现相同文件的副本

我们正在使用 Nightwatch.js 进行测试自动化。我见过一些例子(例如File Upload Testing in Nightwatch.jsTesting download links with Nightwatch.jsValidating download file in Nightwatch),但无法为我的问题找到可行的解决方案。

我知道这个问题与 (Validating download file in Nightwatch) 重复,但那里也没有提供可行的解决方案。所以我再次提出这个问题。

有什么想法吗?

【问题讨论】:

  • 我发现缺少其他可用的解决方案。如果你明白这一点,请回答你自己的问题。 ;)
  • @ChaBukuBakke 不幸的是,我们还没有提出解决方案,所以我们正在使用另一个框架(机器人框架)来测试下载。

标签: javascript nightwatch.js


【解决方案1】:

我只能在夜间值班上进行本地跑步。所以这个解决方案不适用于远程服务器(例如网格、浏览器堆栈)。我正在寻找远程解决方案,如果遇到会更新。

仅限本地运行的解决方案:

fs = require('fs')
async handleDownload(path, retry = 10) { 
    while(retry) {
        await this.api.pause(1000); 
        if (fs.existsSync(path) && retry) {
            break;
        }
        retry--;
        if (!retry) {
            throw new Error('Didn't find file in time');
        }
    }
    return new promise(resolve => {
        resolve(fs.open);
        // Or do other stuff, such as read file contents
    });
}

【讨论】:

    【解决方案2】:

    我看到您想验证是否在 BrowserStack 中的远程计算机上下载了文件。 BrowserStack 具有自定义 JavaScript 命令,您可以在 BrowserStack 上执行测试时使用这些命令来实现用例。请参考链接中的命令:https://www.browserstack.com/automate/node#enhancements-uploads-downloads

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      相关资源
      最近更新 更多