2013-07-31 45 views
0

我有一个Web应用程序执行一些AJAX调用,然后处理结果。根据发送给浏览器的内容,这个处理过程可能非常繁重。如何在浏览器中执行测试代码

我现在想对完成的代码生成性能统计信息。我正在考虑使用Selemium来自动化我的测试。这将允许我自动点击按钮来开始测试,但是我看不到如何检测代码何时完成。

我一直在考虑使用页面加载的事件或(假设我使用JQuery)让Selenium测试以查看所有AJAX调用已完成。但是,这些事件可以(并且确实)触发我试图监视的JavaScript!

有没有人知道一个机制来检测所有JavaScript已完成?

感谢

+0

你检查过硒吗? –

+0

IE11具有“UI响应能力和内存分析工具,可帮助开发人员诊断并修复性能问题”,这可能是您想要查看的内容,但这可能无法满足您的所有需求。 –

+0

@卡洛斯巴塞罗那。我确实看过硒,但我能想到的最好的方式是调用JQuery脚本来“返回$ .active”。这会告诉我什么时候最后的AJAX调用被终止了,但是当调用触发的JavaScript已经完成时不会。你有没有具体的想法? – Stormcloud

回答

0

如果要执行只是一些统计数据,你可以使用Speed Tracer。 “Speed Tracer is a tool to help you identify and fix performance problems in your web applications.

但是如果你想做一些更具体的测试(压力,性能等),我会建议你使用硒。您可以使用waitForElementPresent在动态期间等待由Ajax调用产生的所需元素。

waitForElementPresent(locator) 

如果你的内容已加载,并且您只需填写数据时,你总是可以强制做在机身的末尾添加新的元素。

$.ajax({ 
    type: "POST", 
    data: {data: somedata }, 
    url: someurl, 
    success: function(html){ 
    $("<div/>", { 
     id: 'finnishedId', 
    }).appendTo("body"); 
    } 
}); 
+1

我看到 - 而不是直接访问有关JavaScript解释器有多繁忙的信息,​​我们可以使用“finnishedId”标记的存在作为代理来指示处理已完成。我认为这应该给我我需要的东西。谢谢。 – Stormcloud

相关问题