我正在尝试使用QTP进行测试,这是一个使用ajax4jsf实现ajax功能的web应用程序。QTP不能识别ajax何时结束。我读到QTP 9.5和QTP 10提供的web可扩展性工具包就是我的问题的解决方案。然而,我不能理解这对我有什么帮助:我需要知道httpRequest对象的就绪状态,并在状态为“完成”时继续测试。但我不知道如何从web可扩展性工具包访问httpRequest。任何帮助都将不胜感激。
发布于 2009-08-05 06:38:50
感谢您的回答。
我们确实设法使用QTP Extensibilty工具包解决了这个问题: A4j使用在ajax之前和之后唤醒的侦听器队列(取决于侦听器的类型)。在我们的解决方案中,我们为每个ajax组件(例如webButton)实现了一个Jscript函数:
类型的侦听器
_elem.ownerDocument.parentWindow.A4J.AJAX.AddListener({
onafterajax: function(req, event, data) {
globalVariable = 1;
}
});
while (globalVariable != 1) { _util.Wait(250);}
我们注册的函数将在ajax完成时调用,并更改globalVariable,以便退出while循环。我知道这很丑陋,但它工作得很好。
我们唯一的问题是QTP10实现了_util.wait,而QTP9.5没有,如果没有等待,浏览器将陷入无限循环,注册的函数将永远不会被调用。任何关于在Jscript中实现非忙等待等待的解决方案都将不胜感激。
发布于 2009-07-30 13:42:01
根据我使用AJAX调用自动化测试基于web的应用程序的经验,我建议您考虑以下几点。
谢谢你,艾伯特·加列夫
https://stackoverflow.com/questions/1199534
复制相似问题