我有一個簡單的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