通过选择组合时测试速度变慢

时间:2017-08-23 00:34:11

标签: python selenium web-scraping web-crawler automated-tests

我正在使用Python和Selenium来测试我店面的自定义选项,并注意到测试会随着时间的推移而显着减慢。

具体来说,我在页面上有多个<select>标记,每个标记都有一些<option>个标记作为子标记。组合Ajax中的每次更改都会查询新价格,Selenium会通过显式等待加载动画首先出现,然后在更改为下一个选项之前消失。

由于我有5个不同的选择字段,每个字段有3-10个选项,因此整个测试需要一段时间才能运行。然而,早期组合和后期组合之间似乎存在巨大差异 - 而较早的组合通常加载不到一秒钟,最后一组可以在更改价格之前显示加载动画长达20秒。

由于CPU和内存使用率都适中,因此测试运行的机器似乎没有问题。我非常好奇可能会导致性能随着时间的推移而降低 - 如果有人有想法,我将非常感激。提前谢谢!

1 个答案:

答案 0 :(得分:0)

许多硒用户的动画都会影响他们的测试。要单独测试不断变化的价格,最好禁用动画。即使你打算测试动画,有时硒的更复杂的经验/结果是分层的,从测试逐个删除变量将提供更好的控制,并让你有机会单独测试每一层。

http://marcgg.com/blog/2015/01/05/css-animations-failing-capybara-specs/

此外,我经历过某些版本的驱动程序二进制文件变得很慢,主要原因是本地化到我的测试环境。它可以帮助您使用为每个测试实例化新驱动程序二进制文件的设计模式,并在测试完成时销毁驱动程序。这样做会在执行代码时增加一些额外的开销;然而,这是一个可估计的时间,可以包括在期望中。