配置运行 还有一种更简单的方法来设置Dredd,即运行> dredd init命令,该命令运行配置向导以帮助您在项目根目录中创建dredd.yml文件。 从交互式向导回答几个问题后,只需输入以下命令即可运行测试:> dredd。 如果配置正确,Dredd将使用您向向导提供的命令启动后端服务器进程并开始测试。 我们首先在项目中添加一个钩子文件(在我们的例子中,我们可以将它添加到项目根目录并命名为dredd-hooks.js)。 有两种方法可以让Dredd使用钩子文件。 一种是手动添加命令参数和我们的钩子文件的路径: > dredd --hookfiles=dredd-hooks.js 另一种方法是编辑我们的dredd.yml文件并通过设置hookfiles属性来更新配置 Dredd在API蓝图描述文件(.apib)中按名称标识事务。 要在测试运行期间列出事务名称,可以添加--names命令参数:> dredd --names。
为此,我们选择了一个杰出的工具 Dredd[2]。 用 Dredd 测试 API Dredd 简单而有效。 在这里,我们针对 API 端点运行 Dredd。 ? 例程启动 Dredd 容器,并使用正在运行的 API 向其提供 spec 和端点的位置。 Dredd 提供了 hooks.js 文件,该文件为数据库提供了服务的 fixture。 您可以了解更多关于我们在存储库上创建的 Dredd Docker 镜像的信息[3],并阅读文档[4]中有关 Dredd 钩子的更多信息。 thenewstack.io/start-socks-towards-cloud-native-reference-application/ [2] https://github.com/apiaryio/dredd
用 Dredd + OpenAPI + FastAPI 实现文档校验我们来用 Python + FastAPI 举个例子,演示怎么让测试代码变成“文档同步器”。 通过 Dredd 测试接口与文档是否一致安装 Dredd(Node.js 工具)npm install -g dredd创建 OpenAPI 文件(openapi.yaml)openapi: 3.0.0info schema: type: integer responses: '200': description: OK执行 Dredd 测试dredd openapi.yaml http://localhost:8000如果接口变了,比如返回结构不一样,Dredd 会立刻报错。 2、Dredd 能用于所有语言吗?Dredd 是语言无关的工具,只要有 OpenAPI 文件就行。你可以用 Java 写服务,用 Dredd 做测试,一样好使。3、单元测试也能验证文档吗?可以。
开源选择包括自行编写调用 API 端点的测试、SoapUI(由制定 API 规范标准的团队出品)、Pact 与 Dredd。 就我个人而言,常在 CI 中使用 Dredd,但 API 测试并没有唯一的正确选择。 UI 测试 凡是有可视化前端的应用,都需要自动化 UI 测试。此类测试通常会模拟界面交互,以验证其按预期工作。
你还可以使用其他类似的工具,如 Dredd 和 Apiary CLI 来自动化 API 文档的生成。 4.
(4)工具替代方案 若不想自研:直接使用 Schemathesis(Python)或 Dredd(Node.js),它们内置 OpenAPI 解析和测试能力。
自动:基于 OpenAPI 规范自动生成异常用例(推荐工具:Schemathesis, Dredd, 或自研解析器)。
工具示例:Schemathesis(基于OpenAPI的模糊测试)、Dredd。效果: 文档即单点真理源,文档更新则测试自动同步。
应对:使用工具(Swagger Codegen、Dredd)自动验证文档与实现一致性。将文档更新纳入开发流程的强制检查项。上述的场景共性问题源于环境、数据、依赖、流程的不可控性。
3 在宕机这件事上,没有一家云厂商能幸免 此次宕机事件后,5 月 11 日,Twitter 上一位宣称是 Google Cloud 澳大利亚云服务总监 Kenneth Dredd 表示自己已经被谷歌直接解雇