我正在使用Python和Selenium测试我的storefront的自定义选项,并注意到随着时间的推移,测试速度明显变慢。
具体地说,我在页面上有许多<select>
标记,每个标记都有一些<option>
标记作为子标记。组合中的每个变化Ajax-查询一个新的价格,Selenium通过显式等待,等待加载的动画首先出现,然后消失,然后更改为下一个选项。
由于我有5个不同的选择字段,每个字段有3-10个选项,整个测试需要一段时间才能运行。然而,较早的组合和较晚的组合之间似乎存在巨大的差异--较早的组合通常加载时间不到一秒,而最后的组合在更改价格之前可以显示加载动画长达20秒。
这个问题似乎不是运行测试的机器造成的,因为CPU和内存使用率都是中等的。我非常好奇是什么导致性能随着时间的推移而下降--如果有人有什么想法的话,我将不胜感激。提前感谢!
发布于 2017-08-23 10:28:33
许多selenium用户的测试都受到动画的影响。要单独测试不断变化的价格,最好禁用动画。即使您打算测试动画,有时使用selenium的更复杂的经验/结果也是分层的,从测试中逐个删除变量将提供更好的控制,并让您有机会单独测试每一层。
http://marcgg.com/blog/2015/01/05/css-animations-failing-capybara-specs/
此外,我还遇到过一些驱动程序二进制文件版本变慢的情况,这主要是由于我的测试环境本地化的原因。它可以帮助您使用一种设计模式,该模式为每个测试实例化一个新的驱动程序二进制文件,并在测试完成时销毁该驱动程序。这样做会在执行代码时增加一些额外的开销;然而,这是一个可以估计的时间,可以包含在期望中。
https://stackoverflow.com/questions/45828868
复制相似问题