0

我正在尝试使用 TestComplete 创建一个自动化测试用例来测试 RESTful Web 服务。

这是脚本;我正在使用 JScript。

function test()
{
    var objhttp = Sys.OleObject("MSXML2.XMLHTTP");
    objhttp.open("GET", URL_HERE, false);
    objhttp.send();
    // Do stuff with objhttp.responseText here...
}

当我第一次运行它时,它似乎得到了正确的响应,并且没有问题地调用了 Web 服务。但是,响应似乎在第一次运行后缓存在某处,当我第二次运行脚本时,缓存的响应又回来了,它似乎根本没有调用 Web 服务。因此,为了调用 Web 服务,我必须在每次运行脚本时关闭 TestComplete 然后重新打开它。

我搜索了参考文档,发现 OLEObject 不是由 TestComplete 释放的,所以我必须手动释放它。但是,我找不到任何可以释放 XMLHTTP 对象的方法。

我尝试调用 abort() 或删除,但它们不起作用。我该如何解决这个问题?

4

1 回答 1

0

这是奇怪的行为,我无法重现它。一切对我来说都很好 - 每次我运行这段代码时,它都会返回一个新值:

function test()
{
  var objhttp = Sys.OleObject("MSXML2.XMLHTTP");
  var url = "http://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new";
  objhttp.open("GET", url, false);
  objhttp.send();
  Log.Message(objhttp.responseText);
}

检查它如何为您工作。

于 2013-11-15T11:31:52.293 回答