我有一个简单的Selenium测试,它针对远程Selenium Server实例运行。Selenium RC忽略我的超时
我想测试页面性能,有些页面可能会超过最大执行时间,我试图去捕捉它。
不管我放在setTimeout()中,它总是等待整个页面加载或服务器超时。
public static $browsers = array(
array(
'name' => 'Firefox on Ubuntu',
'browser' => '*firefox',
'host' => 'dev-ubuntudesktop',
'port' => 4444,
'timeout' => '1000',
),
)
public function testSlowPage() {
$this->setTimeout(1000);
$this->open('myslowaddress');
$this->assertTextNotPresent('Internal Server Error');
}
即使我不使用openAndWait
,上面的例子中没有达到断言线的页面加载或web服务器终止请求之后,直到。
我真的很喜欢的是一个测试,确认“页面加载在1秒以内”,无需等待30秒(或任何PHP超时恰好设置为)。
所以没有办法限制这可能会导致我的测试中的延迟?唯一的解决方案似乎是在测试期间将我的PHP max_execution_time设置为短时间,否则我的测试可能需要很长时间才能失败。 – Cylindric 2011-03-23 18:00:06
我不知道PHP,但它向我表明,max_execution_time将让您的测试仅在指定时间内执行。它如何保证页面实际上是?我想直到控制超出开放的方法,可能没有任何观察页面的方式实际上完全加载。但是,这又是我的猜测...... – Tarun 2011-03-24 06:57:50
如果页面运行时间超过max_execution_time,则会终止并返回500服务器错误。但考虑一下,我认为你的方式没有问题 - 如果出现问题,所有的页面应该只花这么长时间,在这种情况下,慢速的测试运行应该没有什么关系。我被测试优先分散注意力,因为我的页面速度很慢,所以我的测试花费了很长时间才失败。事实上,如果出现问题,它们只会很慢。 – Cylindric 2011-03-24 09:42:54