Javascript 我能处理量角器测试的特殊jasmine错误吗?

Javascript 我能处理量角器测试的特殊jasmine错误吗?,javascript,jasmine,protractor,ui-automation,overriding,Javascript,Jasmine,Protractor,Ui Automation,Overriding,我们有一些监控测试,它们按计划连续执行,有时由于未知的网络相关错误而失败 修复随机网络错误是首要任务,但与此同时,我正在考虑优雅地处理此类错误-无论是在量角器上还是在jasmine上 错误消息总是相同的,所以我想知道是否有一种方法可以通过量角器配置文件或其他地方处理该错误 例如: expect(obj1).isEqual(obj2) 当出现真正的失败时,jasmine会给出如下错误消息 obj1 is not equal to obj2 当出现具有一致消息的随机网络错误时,jasmine会打

我们有一些监控测试,它们按计划连续执行,有时由于未知的网络相关错误而失败

修复随机网络错误是首要任务,但与此同时,我正在考虑优雅地处理此类错误-无论是在量角器上还是在jasmine上

错误消息总是相同的,所以我想知道是否有一种方法可以通过量角器配置文件或其他地方处理该错误

例如:

expect(obj1).isEqual(obj2)
当出现真正的失败时,jasmine会给出如下错误消息

obj1 is not equal to obj2
当出现具有一致消息的随机网络错误时,jasmine会打印错误,如下所示

Unable to connect to network. It may be busy now so please try later (example message)
我想覆盖所有jasmine错误,只忽略示例消息的失败报告

错误跟踪日志:

Stacktrace:
 UnknownError: <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
            <html>
            <head>
            <title>*** Web Proxy</title>
            <LINK REL ="stylesheet" TYPE="text/css" HREF="http://xdddd.com/cacheflow/errors.css" TITLE="Style">
            </head>
            <body bgcolor="#ffffff">
            <table width="100%" border="0" cellpadding="1" cellspacing="0" bgcolor="#ccccff">
                    <tr><td><font size="-3"> </font></td></tr> 
                    <tr><td valign="middle">
                            <h2>  <img SRC="http://home.xx.com/art/logos/black_51x51.gif" ALT="XXXXXXXX" border="0" height="51" width="51">   Web Proxy Error - TCP Error 503</h2> <hr size="1" color="black"> </td>
                    </tr>
            </table>
            <br>
            <font color=red><b>XXXXXXXXX.com</b></font><p>
            The Firm's web proxy could not contact the web server in the URL above.  This can happen when the web
            server is down, too busy, or is unreachable on the Internet.  Try the server again later. If you receive
            this message for many URLs, please contact your local helpdesk to report the problem.
            <font size="-1"><br><br><br>
            Reporting proxy: uxxxxxx.com<br><br>
             Copyright 2000 - The XXXXXXXX, Inc. - All rights reserved.
            </font>
            </body>
            </html>

    at new bot.Error (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\error.js:108:18)
    at Object.bot.response.checkResponse (h:\Projects\mdddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\response.js:106:11)
    at h:\Projects\xxxxxxx\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:379:20
    at [object Object].promise.ControlFlow.runInFrame_ (eval at <anonymous> (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\base.js:1124:19), <anonymous>:1857:20)
    at [object Object].goog.defineClass.notify (eval at <anonymous> (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\base.js:1124:19), <anonymous>:2448:25)
    at [object Object].promise.Promise.notify_ (eval at <anonymous> (h:\Projects\dddddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\base.js:1124:19), <anonymous>:564:12)
    at Array.forEach (native)
    at [object Object].promise.Promise.notifyAll_ (eval at <anonymous> (h:\Projects\dddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\base.js:1124:19), <anonymous>:553:15)
    at [object Object].goog.async.run.processWorkQueue [as _onTimeout] (h:\Projects\ddddddn\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:130:15)
Error
    at [object Object].ElementArrayFinder.applyAction_ (h:\Projects\dddddd\web\private-site\node_modules\protractor\lib\element.js:392:21)
    at [object Object].self.(anonymous function) [as isDisplayed] (h:\Projects\dddddd\web\private-site\node_modules\protractor\lib\element.js:76:19)
    at [object Object].self.(anonymous function) [as isDisplayed] (h:\Projects\dddddd\web\private-site\node_modules\protractor\lib\element.js:721:11)
    at [object Object].expectHomePage (h:\Projects\ddddddd\web\private-site\test-common\page-objects\learning-center.js:10:20)
    at h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\jasminewd\index.js:94:14
    at [object Object].promise.ControlFlow.runInFrame_ (eval at <anonymous> (h:\Projects\dddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\base.js:1124:19), <anonymous>:1857:20)
    at [object Object].promise.ControlFlow.runEventLoop_ (eval at <anonymous> (h:\Projects\dddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\base.js:1124:19), <anonymous>:1729:8)
    at [object Object].eval (eval at <anonymous> (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\base.js:1124:19), <anonymous>:2043:12)
    at [object Object].goog.async.run.processWorkQueue [as _onTimeout] (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:130:15)
From: Task: Asynchronous test function: it()
    at [object Object].<anonymous> (h:\Projects\dddddd\web\private-site\node_modules\protractor\node_modules\jasminewd\index.js:93:33)
    at [object Object].<anonymous> (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\minijasminenode\lib\async-callback.js:45:37)
    at [object Object].jasmine.Block.execute (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:1174:17)
    at [object Object].jasmine.Queue.next_ (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31)
    at [object Object]._onTimeout (h:\Projects\dddddddn\web\private-site\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2199:18)
Error
    at [object Object].<anonymous> (h:\Projects\ddddddd\web\private-site\test-monitoring\specs\learning-center.spec.js:11:5)
    at [object Object].jasmine.Env.describe_ (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:913:21)
    at [object Object].jasmine.Env.describe (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:898:15)
    at describe (h:\Projects\ddddddd\web\private-site\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:658:27)
    at Object.<anonymous> (h:\Projects\ddddddd\web\private-site\test-monitoring\specs\learning-center.spec.js:5:1)
Stacktrace:
未知错误:
***网络代理
Web代理错误-TCP错误503

XXXXXXXXX.com 该公司的web代理无法联系上述URL中的web服务器。这可能发生在网络崩溃时 服务器已关闭、太忙或无法在Internet上访问。请稍后重试服务器。如果你收到 此消息对于许多URL,请联系您当地的帮助热线以报告问题。


报告代理:uxxx.com

版权所有2000-XXXXXXXX公司-保留所有权利。 在新的bot.Error(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\atoms\Error.js:108:18) 在Object.bot.response.checkResponse(h:\Projects\mdddd\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\atoms\response.js:106:11) 在h:\Projects\xxxxxxx\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\webdriver.js:379:20 在[object object].promise.ControlFlow.runInFrame(评估位置为(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\base.js:1124:19),1857:20) 在[object object].goog.defineClass.notify(评估地址:h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\base.js:1124:19),:2448:25) 在[object object].promise.promise.notify(eval at(h:\Projects\dddddd\web\private site\node\modules\dragrator\node\modules\selenium webdriver\lib\goog\base.js:1124:19),:564:12) at Array.forEach(本机) 在[object object].promise.promise.notifyAll(eval at(h:\Projects\dddddd\web\private site\node\modules\dragrator\node\modules\selenium webdriver\lib\goog\base.js:1124:19),:553:15) 在[object object].goog.async.run.processWorkQueue[as\u onTimeout](h:\Projects\ddddddn\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\async\run.js:130:15) 错误 位于[object object].ElementArrayFinder.applyAction(h:\Projects\dddddd\web\private site\node\u modules\dragrator\lib\element.js:392:21) 在[object object].self.(匿名函数)[as isDisplayed](h:\Projects\ddddddd\web\private site\node\u modules\dragrator\lib\element.js:76:19) 在[object object].self.(匿名函数)[as isDisplayed](h:\Projects\ddddddd\web\private site\node\u modules\dragrator\lib\element.js:721:11) 在[object object].expectHomePage(h:\Projects\ddd\web\private site\test common\page objects\learning center.js:10:20) 在h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\jasminewd\index.js:94:14 在[object object].promise.ControlFlow.runInFrame(在(h:\Projects\ddddddd\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\base.js:1124:19)进行评估:1857:20) 在[object object].promise.ControlFlow.runEventLoop(在(h:\Projects\ddddddd\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\base.js:1124:19)进行评估:1729:8) 在[object object].eval(eval at(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\base.js:1124:19),:2043:12) 在[object object].goog.async.run.processWorkQueue[as\u onTimeout](h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\async\run.js:130:15) From:Task:Asynchronous test function:it() 在[对象]。(h:\Projects\dddddd\web\private site\node\u modules\dragrator\node\u modules\jasminewd\index.js:93:33) 在[对象]。(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\minijasminenode\lib\async callback.js:45:37) 在[object object].jasmine.Block.execute(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:1174:17) 在[object object].jasmine.Queue.next(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31) 在[object object]。\u onTimeout(h:\Projects\ddd n\web\private site\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2199:18) 错误 在[对象]。(h:\Projects\ddd\web\private site\test monitoring\specs\learning center.spec.js:11:5) 在[object object].jasmine.Env.descripe\uh(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:913:21) 在[object object].jasmine.Env.description(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:898:15) 描述(h:\Projects\ddd\web\private site\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:658:27) 反对。(h:\Projects\ddd\web\private-
jasmine.Spec.prototype.fail = function (e) {
  if(e.message && e.message.indexOf('timed out after')>=0) {
    console.log("EXCEPTION MSG " + JSON.stringify(e, null, 4));
    var expectationResult = new jasmine.ExpectationResult({
      passed: true,
      message: 'Skipped for proxy error',
      trace: { stack: e.stack }
    });
  }
  else {
    var expectationResult = new jasmine.ExpectationResult({
      passed: false,
      message: e ? jasmine.util.formatException(e) : 'Exception',
      trace: { stack: e.stack }
    });    
  }
  this.results_.addResult(expectationResult);
};