【问题标题】:How do I write my protractor scenarios to assert on http response errors?如何编写量角器场景以断言 http 响应错误?
【发布时间】:2014-03-20 18:24:53
【问题描述】:

我正在使用量角器来测试我的 Angular 客户端(服务器是使用 Python Google App Engine 构建的)。

我希望我的量角器测试对来自 POST 的 http 响应做出断言,该响应是通过单击表单按钮触发的......就像这样:

  describe('Pointless Form Post Test', function() {
  beforeEach(function() {
      browser.get('/myform'); 
  });

  it('should successfully populate a form, post it, and not return error', function() {
      element(by.model('form_summary')).sendKeys('Some input text');
      element(by.model('form_details')).sendKeys('Lots of detailed text');
      element(by.id('formBtn')).click();
              --> SOME FORM OF ASSERTION FOR HTTP 500 ERROR RESPONSE <
  })
});

如何断言点击按钮后收到的来自服务器的响应?

注意:我有这种偷偷摸摸的怀疑,我对量角器旨在解决的 E2E 测试的范围没有正确的理解......但这感觉就像我的 E2E 测试需要的东西。我正在针对我的 POST 处理程序编写一个测试,并注意到服务器正在发回 500 个错误(服务器中的一个错误)。希望量角器可以用来捕捉这些问题。

【问题讨论】:

  • 量角器是一个e2e测试工具。您的应用程序(正在测试)应该处理错误 500 ,例如通过向用户显示错误消息。您的量角器测试应验证是否显示了错误消息。
  • 谢谢gontard。我明白你在说什么,但我的 App Engine 应用程序总是有可能会根据我的 Angular 客户端访问服务的方式抛出意外异常......我仍然可以为此使用我的 E2E 测试运行监控。
  • 我想我以前很困惑,现在我 less 很困惑:)....如果我正确理解@gontard,他说我应该做一些断言(在已知的 DOM 元素上?)描述了我的应用程序在发生错误时将显示的 HTML 错误页面,而不是在量角器/webdriver 浏览器对象的某些状态(正如我所想的那样)

标签: javascript angularjs selenium-webdriver protractor


【解决方案1】:

Protractor 允许您访问浏览器控制台的输出;您可以解析其输出并检查错误,例如 500 会抛出的错误。

这是一个类似案例的例子(不是我做的):

https://github.com/juliemr/protractor-demo/blob/master/howtos/browserlog/spec.js

如果这忠实于 Protractor 的预期用途是有争议的;就像上面另一位发帖人评论的那样,您应该真正在界面中显示错误并使用量角器来测试这种显示,而不是错误本身。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2018-10-22
    • 2013-06-23
    • 1970-01-01
    相关资源
    最近更新 更多