如何在前端应用程序的端到端测试流程中测试API?

时间:2019-01-16 04:50:34

标签: javascript api frontend nightwatch.js e2e-testing

我们在应用程序中遇到了一个问题,有时由于缺少请求数据或API合约不匹配,导致应用程序中的特定流程中断。

我们一直在使用Nightwatch Js进行端到端流测试。

所以我的问题陈述如下:

我们需要一种方法来检查从应用程序进行的服务调用是否具有从API成功检索数据所需的数据。

因此,每个服务调用都会有一个配置(该特定服务调用所需的请求数据结构与预期响应相同),以及何时结束结束流测试(浏览器自动测试)正在进行中,将使用前面提到的配置检查每个指定的网络调用,以确定其成功或失败,并且原因是存在任何不匹配或缺少数据的原因朋友。

此外,它应该以适当的方式在文件中报告它。如果 我们可以在Nightwatch本身中以任何方式完成此操作 ,或者此特定用例有任何框架,那将是非常不错的选择>。

1 个答案:

答案 0 :(得分:0)

Nightwatch作为硒驱动程序不适合测试API调用。 我建议将Frisby.js与Nightwatch结合使用。由于它被设计为API测试框架。您可以定义期望的请求和期望的响应格式。

frisby.get('http://jsonplaceholder.typicode.com/posts')
      .expect('status', 200)
      .expect('jsonTypes', '*', {
        userId: Joi.number(),
        id: Joi.number(),
        title: Joi.string(),
        body: Joi.string()
      })

...

frisby
  .post('http://api.example.com/files', { title: "foo", body: "bar" })
  .expect('status', 200)

它支持HTTP get,post,put和del方法。

https://www.frisbyjs.com/nested-tests.html

https://github.com/vlucas/frisby