如何使用实习生框架测试文件下载?

How do I test file download using intern framework?

我有一个要求,我需要编写功能测试来下载文件并测试其内容。 所以我可以说有两个部分。 1) 确保点击 link 下载文件 2) 读取文件并检查其内容。它是一个 csv 文件,所以我可以对内容进行一些操作。

这样做有几个问题。一个是,如果您是 运行 远程系统上的浏览器,您将需要一种方法将文件返回到系统 运行 实习生。第二个问题是您需要知道下载的文件在下载时最终去了哪里。第三个问题是某些浏览器(FF 和 IE)会弹出 Selenium 无法处理的 OS 级对话框。

第一个问题是:你真的需要在浏览器中下载文件吗?听起来您可能正在测试服务而不是浏览器,在这种情况下,您可以使用 Intern 下载文件并在那里检查它。

假设您确实需要通过浏览器下载文件,您应该能够将浏览器配置为不打开确认对话框并将文件下载到已知位置,这至少可以解决 3 个问题中的 2 个上文提到的。请注意,我还没有实际测试过这个。

在 Firefox 中,您可以设置 test profile and use it when running tests。您可能需要配置以下属性:

  • browser.download.dir: 'path to download folder'
  • browser.download.folderList: 2
  • browser.helperApps.neverAsk.saveToDisk: 'text/csv'
  • browser.download.manager.showWhenStarting: 错误

对于 Chrome,您将通过 environment descriptor 传递选项。具体选项应该是:

  • 'profile.default_content_settings.popups': 0
  • 'download.default_directory': 'path to download folder'

设置浏览器后,您的测试代码需要单击 link,然后等待一段不确定的时间(Selenium 不提供任何类型的下载进度数据),然后从 Intern 测试本身抓取文件(使用网络请求或本地文件操作)来检查它。