当前位置: 七九推 > IT编程>脚本编程>vue.js > Dredd笔记

Dredd笔记

2022年06月23日 vue.js 我要评论
0 前言 Dredd可以用于测试所写的web api与实际运行的系统是否一致,可以搭配API Blueprint一起使用,并支持各种CI。 通过阅读Dredd的官网

0 前言

Dredd可以用于测试所写的web api与实际运行的系统是否一致,可以搭配API Blueprint一起使用,并支持各种CI。

通过阅读Dredd的官网,把自己的理解写一写,还希望得到大家的指正。


1 安装

可以通过npm直接安装dredd工具,

npm install -g dredd

2 概述

Dredd的使用过程大致可以分为几个阶段:

  • 编写API
  • 实现API
  • 测试API

2.1 编写

Dredd支持两种web api的规范

  • API Blueprint
  • Swagger

由于现实业务使用的是API Blueprint,所以之后都以这个的规范为例。


2.2 实现

这个过程就可大可小了,可以是个helloworld,可以只是为了测试而写的demo,可以是整个模块。
Dredd的功能就是测试2.2实现的API与2.1的Web API文档是否吻合。


2.3 测试

通过之前全局安装的dredd,可以直接在命令行输入指令完成测试,也可以先配置好Dredd的config文件,直接运行。

首先,将工程跑起来

npm start

之后运行dredd命令,参数api.apib表示Web API文档的文件名,之后的URL表示待测试的服务运行在的地址和端口

dredd api.apib http://localhost:3000

2.3.1 配置参数

通过dredd init可以交互式的配置dredd的运行参数、环境等等。

还有一种方法是先配置dredd.yml文件,将参数写入文件后存放到工程的根目录下,之后再想使用dredd时,直接不带任何参数地输入命令dredd即可开始测试。


2.4 Hooks

Hooks用于测试时,加入“钩子”,在程序运行的不同阶段,执行特定的代码,辅助测试。
dredd的hook有很多,分别代表了不同的执行阶段。

  • beforeAll 只执行一次,做一些测试开始前的预处理工作
  • 对于每一个交互事务分别执行
    • 测试开始
    • beforeEach
    • before
    • 发送HTTP请求
    • 接收HTTP响应
    • beforeEachValidation
    • beforeValidation
    • 执行validation
    • after
    • afterEach
    • 测试结束
  • afterAll 只执行一次,做一些收尾工作

3 运行过程

  • 读取API文档,同时检查是否有语法错误
  • 根据文档描述的request和response,生成期望获取的结果
  • 针对API文档,构造请求,测试API
  • 检测收到的响应与期望是否一致
  • 生成报告

4 检测标准

4.1 响应头的检测

  • response必须包含所有在文档中指明的header信息
  • headers的验证不区分大小写
  • 只验证对内容商议有用的值
  • 其余header值可以有所区别

4.2 响应体的检测

对于JSON格式的响应体,只验证JSON结构,
对于其余格式的响应体,当做普通文本处理。

为了便于检测,当文档中有JSON响应体的时候,需要将Schema,Attributes写在Body之前。


5 检测前的准备工作

需要适当的修改所写的API文档,以便更好地使用dredd工具。

将URI中的所有需要的参数都写入文档中并提供样例,这样Dredd可以自动填充URI模板,构造请求。


6 HTTP事务的处理流程

Dredd目前只支持单个请求单个响应的事务模式,即:

+ Request
+ Response

而Blueprint可以支持一个Request多个Response,所以这种情况下,Dredd只会选择第一个Response进行检测。

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

  • Vue整合ElementUI

    Vue整合ElementUI

    文章目录 Vue整合ElementUI下载喝配置ElementUI使用ElementUI美化我们的ElementUI实现路由跳转 Vue整合ElementUI... [阅读全文]
  • 毒霸网址大全的彻底删除

    毒霸网址大全的彻底删除

    篡改主页真是很讨厌,不知道什么时候下载的软件就带上了。说一下处理方法。 [阅读全文]
  • VUE的axios的详细介绍和用法

    VUE的axios的详细介绍和用法

    Vue中发送网络请求有非常多的方式, 那么, 在开发中, 如何选择呢? 选择一: 传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢? ... [阅读全文]
  • 使用vmware ESXI创建虚拟机

    使用vmware ESXI创建虚拟机

    一、目标: ip:192.168.0.237 操作系统:centos7 hostname:home02_2 虚拟机名字:... [阅读全文]
  • vue基础知识

    vue基础知识

    概述 Vue是由一个个实例构建而成的,一个组件就是一个Vue的实例 官网 https://cn.vuejs.org/v2/guide/ link ... [阅读全文]
  • 前端路由拦截器使用及介绍

    前端路由拦截器使用及介绍

    一:路由拦截器(beforeEach:路由守卫) vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。(在路由跳转时触发)我们主要介绍的... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2022  七九推 保留所有权利. 粤ICP备17035492号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com