在我正在测试的网站上,我们具有各种链接,可将PDF文件下载到用户计算机。

我们的硒套件每晚在竹子上运行,如果我们要在一夜之间下载各种文件,则会导致硬盘在短时间内填满。 Selenium作业本身已沙箱化,无法访问文件系统以删除文件。

使用此设置测试文件下载的最佳实践是什么?

一些潜在的情况;


下载文件并在服务器端执行某种形式的cron清理(可能不可行)。
检查文件位置的URL符合预期,但不下载文件
单击链接并接受对话框的存在作为足够的覆盖范围(而无需下载文件) >

评论

重复:sqa.stackexchange.com/questions/2197/…投票最多的答案应该可以为您提供很多信息!

这是一个不同的问题,它与实际下载无关,而与测试文件下载时的最佳做法有关。您想将实际文件与上一个文件进行比较,还是只是检查链接是否足够?

#1 楼

我同意KirbyScope,我将完全不使用Selenium进行测试。以确保它是有效的PDF。

您可以通过编程或使用JMeter之类的工具来执行此操作(并通过命令行运行JMeter脚本)

#2 楼

使用chrome,我自动下载文件,然后打开chrome://downloads页面以从影子DOM检索下载的文件列表,如下所示:数据还包含文件路径和下载日期之类的信息。

不确定数据清理,我目前正在Bamboo上进行,没有任何问题。

我也使用超时

如果不需要通过浏览器测试下载,则可以使用程序来测试网站的损坏链接。

#3 楼

@ Adurbe


加载带有下载链接的页面,在
页面上找到元素,然后单击它。
>
driver.findElement(By.id(“foo”)).sendKeys(“AbsoluteFileLocation”);下载的文件
< input type="file">


评论


尽管我没有使用确切的解决方案,但使用delete的概念对内置文件已有很大的假设,以便删除。赞!

–质量
20年5月20日在5:24



#4 楼

处理下载功能和弹出窗口的最佳方法是将AutoIT与Selenium结合使用以测试下载/上传文件的功能(希望这就是您要的内容)。此链接将为您提供逐步指导,指导您如何轻松地将AutoIT与Selenium一起使用以实现此类功能。

实际上,文件的下载和上传与Windows /桌面功能有关,这就是领域Selenium的文章显示了问题,但是借助AutoIT(台式机测试工具),您也可以处理这些窗口弹出窗口并管理下载。

您将在此处以及SO上找到一些有关如何您可以使用Selenium本身处理下载功能(但不幸的是,由于我的计算机问题,这对我不起作用,因此我切换到了AutoIT)。

评论


当我们有Windows台式机时,运行的竹盒是基于Linux的。尽管这是一个不错的主意,但我认为它在我们的设置中不可行。

– ECiurleo
2015年10月29日在15:17

#5 楼


测试文件下载的最佳实践是什么?断言单击上的(静态链接)URL是否正确?


硒不能与浏览器外部的任何内容交互,除非您像@Dhiman指出的那样并入AutoIT。

您要在这里声明什么?链接正常吗?您可以提取URL并单击它,然后确保响应为200(确定)。或者,只需确保链接是您期望的。

评论


那实际上是问题基础的一部分。测试此方案的最佳实践/妥协是什么?

– ECiurleo
2015年10月30日14:34