问题标签 [dredd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
127 浏览

apiblueprint - Dredd 将尾随方括号传递给 API

我正在使用 Dredd 来测试我编写的 API。在我尝试改变资源中的操作 uri 之前,它工作正常。当我有表格的动作时

它向 Drakov 发送]附加请求。此 Drakov 服务器正在运行蓝图文档。

你可以看到这个请求最后有一个额外]的。

这是我的蓝图。它是Api Blueprint 示例中示例的子集:

我究竟做错了什么?

0 投票
2 回答
1269 浏览

swagger - 大摇大摆的类似Dredd的工具?

是否有像 Dredd(用于 API 蓝图)这样的工具可以与 Swagger 模式一起使用?

我想使用这样的工具来自动化测试 - 让 swagger 模式文件记录我的 API,然后使用这样的工具来自动化测试。该工具应具备以下能力:

  • 定义要运行测试的端点(包括主机和端口)
  • 为每个测试提供描述符或元数据,定义要使用的模式文件和使用的示例有效负载,以及预期的响应是什么
0 投票
2 回答
254 浏览

ios - npm install -g dredd 在 mac 上失败

我需要使用 apiary 来使用 API。在安装 dredd 之前,我已经安装了 Node 和 npm。

现在,当我尝试执行“npm install -g dredd”时,出现以下错误:

有人可以帮忙吗?

0 投票
1 回答
189 浏览

bdd - 重用 schema/model apiblueprint 对其他参数的重复请求

我正在尝试使用 API 蓝图(使用 dredd 作为测试运行程序)以几乎相同(复杂)的请求连续两次调用后端。我想做的是为某个端点定义一个输入,并在其中有一些占位符,如果没有给出参数,可能会使用默认值。

喜欢:请求1,数据集x,参数x = 0 =>结果='无事可做'

喜欢:请求 2,数据集 x,参数 x = 100 => 结果 = '很多事情要做'

apiblueprint 是否提供此功能?

搜索它,模式和模型似乎接近了,但我找不到任何可以做到这一点的示例实现。

亲切的问候,蒂姆

0 投票
1 回答
267 浏览

apiary.io - Dredd 似乎挂起对 asp.net kestrel 服务器的 api 调用

当我运行 dredd 时,它似乎只是在第一次 api 调用之后挂起。我不确定如何调试或诊断。我正在使用dnx web命令运行 asp.net 5 mvc 6 api 服务。我怎样才能看到正在发生的事情或问题可能是什么?

我尝试添加用于调试的钩子,发现它调用了第一个 api,然后就永远不会触发 after 事件。我用邮递员和 curl 测试了 api,结果正确。如果我使用的是 express node.js 服务器,Dredd 也可以使用相同的蓝图。

唯一失败的组合是 Dredd 与 asp.net kestrel 服务器响应。服务器记录发出请求并发送响应,因此它确实触发了测试,但永远不会完成。

Dredd 是否在寻找某种处理后挂钩,因为我看到服务器使用 dredd 接收请求,而不管 .net 或 node.js 是什么。即使我在另一个进程中启动 .net api 进程,它也不起作用,这有什么关系?无论如何,它应该只是对dredd的http请求,对吗?

它是否关心它从红隼服务器返回?

红隼反应

dredd.yml

dredd命令的控制台输出

测试.apib

0 投票
1 回答
197 浏览

laravel - 与--only相反的Dredd配置

有谁知道在运行Dredd测试时是否有可能排除某些事务名称?我知道该--only命令可用于定义所需的事务,但我想要相反。

0 投票
1 回答
245 浏览

apiblueprint - 如何在 API 蓝图中一次性指定所有响应的 Content-Type?

为了满足 Dredd,我必须为我的 API 蓝图文档中的每个响应都写下这个:

有没有办法(application/json; charset=utf-8)为每个响应全局指定一次媒体类型()?这会稍微清理一下文档。

0 投票
2 回答
847 浏览

apiblueprint - Dredd 找不到我的 API 文档,如果它不在我的本地驱动器上(它在 apiary.io 服务器上),我如何告诉它它在哪里

我正在使用Dredd工具来测试我的 API(位于 apiary.io 上)。

问题

我想为 dredd 提供我的文档的路径(它甚至要求它),但是我的 API 文档在 apiary.io 上,但我不知道指向它的确切 url。为 dredd 提供 API 路径的正确方法是什么?

什么有效(但不是我想要的)

注意:我尝试将 api 下载到我的本地驱动器并为 dredd 提供文件的本地路径(yml 或 apib),它可以正常工作(耶!),但我想避免保留本地副本并简单地提供 dredd我在养蜂场服务器上维护的真实 API 文档的位置。

我该怎么做(无需先将文件提取到本地驱动器)?

试图解决这个失败的问题

我还阅读(并尝试过)以下主题,它们可能是相关的,但我没有成功解决问题 - 使用身份验证令牌作为环境变量 - 将 apiary.io//settings 提供的域提供给 dredd - 提供在 dredd 命令中,所有这些尝试仍然产生相同的结果,Dredd 不知道在哪里可以找到 API 文档,除非我在本地计算机中提供文件的路径(我必须先在我的计算机上下载或手动创建) .

任何帮助表示赞赏,谢谢!

0 投票
2 回答
947 浏览

node.js - 如何在 dredd.yml 文件中为 dredd 测试设置环境变量?

我正在尝试使用dreddapi blueprint运行多个 api 调用来测试站点。我想在 circleCI 上运行测试,因为 Selenium 测试在同一个地方运行。每笔交易都需要附有两个令牌,这些令牌在标头中设置为 cookie。理想情况下,这些将在 dredd.yml 文件中设置。在本地机器上运行时,如果我用实际值替换ACCESS_TOKEN和,测试会按预期运行。REFRESH_TOKEN

圈子.yml:

dredd.yml 标头

其中 ACCESS_TOKEN 和 REFRESH_TOKEN 被 circleCI 的环境变量中设置的实际值替换。我也试过access_token=$[ACCESS_TOKEN]access_token=$["ACCESS_TOKEN"]access_token=$ACCESS_TOKEN。这些都没有在第一个 api 调用的标头中被替换。

标题看起来像:{"Content-Type":"application/json; charset=utf-8","User-Agent":"Dredd/1.4.0 (Darwin 14.5.0; x64)","Cookie":" access_token=$ACCESS_TOKEN; refresh_token=$REFRESH_TOKEN"}

我是 yaml 文件的新手,所以我可能缺少一些基本的东西,但我确实搜索了一段时间。hooks 文件是用 node.js 编写的,所以我认为 ruby​​/rails 帮助在这里没有用。如果我在问题中遗漏了任何内容,请随时告诉我。

0 投票
1 回答
434 浏览

apiblueprint - API 蓝图和 Dredd - 响应中缺少必填字段,但测试仍然通过

我正在使用 API Blueprint 和 Dredd 的组合来测试我的应用程序所依赖的 API。我在 API 蓝图中使用属性来定义响应正文的结构。

显然我遗漏了一些东西,因为即使我故意定义了一个我知道 API 响应中缺少的假“必需”参数,测试也总是通过。看来 Dredd 只是测试响应体(数组)的类型,而不是其中的类型参数

我的 API 蓝图文件:

响应正文:

还有我的 Dredd 配置文件:

有谁知道为什么 Dredd 忽略了“fakeParameter”实际上并没有出现在响应正文中并且仍然允许测试通过的事实?