【问题标题】:How to debug failed test steps in protractor如何在量角器中调试失败的测试步骤
【发布时间】:2026-02-21 15:50:01
【问题描述】:

如何在量角器中调试失败的测试步骤?

以下是我的测试用例。

it('Testcase-TC_BY_09 , Case 2: User Selects NO option', function() {
   //Execution Steps 
  Login();//Calling Login Function
//options Click 
    //book_typeValidation();
    book_type.click();
    expect(Nextbtn.isEnabled()).toBe(true);
    Nextbtn.click();`enter code here`

    //True_pages _Validation();
    True_pagesoption.click();
    expect(Nextbtn.isEnabled()).toBe(true);
    Nextbtn.click();

    expect(Nextbtn.isEnabled()).toBe(true);
    Nextbtn.click();

    expect(Nextbtn.isEnabled()).toBe(true);
    Nextbtn.click();
    Poles_Nooption.click();    
    expect(Nextbtn.isEnabled()).toBe(true);     
    Nextbtn.click();
      });

假设这个测试用例有 10 个测试步骤。当我们执行这个测试用例时,如果它在第 5 步失败,如何在量角器中找到失败的步骤?

现在它的工作原理是它会在控制台中显示测试用例失败。但它没有显示它失败的步骤?

请提出您的建议,以找出量角器中的失败步骤。

提前致谢。

【问题讨论】:

  • 您好,对此有任何答案

标签: javascript angularjs node.js automation protractor


【解决方案1】:

首先,您希望您的 e2e 测试为您提供有关失败的有意义的明确信息、失败的线路、失败的步骤、可能导致失败的原因等 - 最大限度地减少了解和研究失败原因的时间失败。而且,看到你编写的每个测试都失败也很重要,这样你就可以以合理“清晰”的方式观察它是否失败。

将您的测试用例组织成多个步骤,每个步骤都在一个单独的函数中定义:

it('Testcase-TC_BY_09 , Case 2: User Selects NO option', function() {
    Login();

    selectBookType();
    next();

    selectPagesOption();
    next();

    next();
    next();

    selectPolesNoOption();
    next();
});

而且,您可以使用 jasmine 内置机制提供有意义的错误消息:

expect(Nextbtn.isEnabled()).toBe(true, "Next is disabled after clicking option");  

我还建议使用protractor-jasmine2-screenshot-reporter jasmine 记者,它会在测试运行期间或测试失败时为您提供浏览器窗口的屏幕截图。

此外,BrowserStackSauce Labs 等服务为您提供了测试运行的可视日志和视频会话,我个人认为这对调试非常有用。

至于调试,有一个相关的文档页面描述了您的选项:

【讨论】:

    【解决方案2】:

    你可以安装茉莉花记者

    npm install -g jasmine-reporters
    

    并在conf文件中添加:

        exports.config = {
    
    
    
        onPrepare: function(){ //configure junit xml report
    
              var jasmineReporters = require('jasmine-reporters');
              jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
                 consolidateAll: true,
                 filePrefix: 'guitest-xmloutput',
                 savePath: '.'
              }));
           },  
    };
    

    这将在命令行上打印原因

    【讨论】: