2017-07-06 290 views
1

我有一個web應用測試。我使用量角器JS進行了測試,即點擊不同的按鈕。 某些按鈕確實會觸發POST請求,並且webapp正在等待該點的答案。答案可能需要30或40秒才能完成。如果我查看Chrome開發人員工具,則會發現web應用程序每隔2秒發送一次GET數據包以獲取狀態。狀態可以是waiting,failedsuccessful監控Chrome網絡流量(XHR數據包)

我現在的問題是: 如何監視網絡流量並過濾它們,我知道successfulfailed狀態數據包在哪一點出現? 我找到PhantomJS Network Monitoring

基本上我想用量角器自動點擊按鈕後調用一個函數,這個函數應該查看每個進來的數據包,當它讀取狀態爲successful時應該停止。如果超過60或70秒,該功能應該超時。

回答

0

點擊觸發POST方法的按鈕後,您應該每隔n秒開始在循環中監聽另一個端點(GET)(您每2秒寫一次該應用程序執行一次)。

如果狀態是waiting - 繼續前進,如果它是failed - 引發異常並且測試失敗,如果它失敗successful - 通過測試或做任何你想做的事情。

循環將防止您超時。

您需要考慮是否需要保護自己免受無限循環(例如,處理任務的工作人員停止工作。那麼GET方法可能會返回waiting,循環不會結束並且測試不會停止。

+0

是的,你是對的,那將是最好的方法。但我的問題是,我如何每兩秒鐘收聽一次GET?理論上很簡單:在一個循環中監聽並始終檢查狀態,直到狀態爲「失敗」或「成功」,然後停止循環。但是如何監控/收聽所有收到的包裹?我沒有寫這個webapp,我不知道內部功能是如何工作的。我只是想監視流量.. – dave

+0

嗯,你可以嘗試這些建議:https://stackoverflow.com/a/34950795/6331748和https://stackoverflow.com/a/5103448/6331748 – Kacper