首页 > 解决方案 > 有没有办法使用 Protractor 从 API 调用中提取数据

问题描述

所以假设我有一个可以提交的表单,提交后这个完整的表单将有一个唯一的 ID 并将存储在数据库中。问题是,在提交表单之后,我需要做的就是测试这个提交的表单中的功能。

在前端有一个提交表单的列表,但不显示唯一 ID。我需要打开并测试我刚刚创建的这个特定表单。当我查看 API 调用时,我可以看到我的 AUT 正在将 POST 调用发送到外部 API

{
"owner":123123,
"id":010101,
"type":"someType"
}

好消息是,当我打开提交的表单时,它的 ID 在 url 中。因此,我将能够提取并保存我的 AUT 发送到外部 API 的 ID,然后只需导航到 myaut/forms/010101 即可直接转到此表单。有没有办法(可能是某个库?)读取此 POST 请求中的 json 数据?

ps 请不要建议模拟请求或直接对外部 API 进行 API 调用找到想要的

标签: angularrestapiprotractor

解决方案


这是一个简单的解决方案,这不一定是量角器应该处理的问题。它更适合nodejs。您需要创建一个辅助类/函数来从数据库中提取 ID。

您的工作流程将是:

  1. 使用量角器配置和提交表单
  2. 使用辅助函数查询 db 并返回相关 ID
  3. 使用第二步中的 ID 导航到提交的表单

// this is just an example
const id = dbHelper.getID(someQuery);
browser.get(`myaut/forms/${id}`);

如果您找不到您正在使用的数据库已经存在的包,我会感到非常惊讶。现在大多数数据库都有节点包,可以让你查询。如果您没有数据库的连接字符串或凭据,请获取它们。至少没有理由不具有只读访问权限。尤其是在这种情况下。


推荐阅读