当前位置: 首页 > article >正文

接口Mock技术介绍

        相信学习过程序设计的读者朋友们,一定对“桩(Stub)”这个概念并不陌生。它是指用来替换一部分功能的程序代码段。桩程序代码段可以用来模拟已有程序的某些功或者是将实现的系统代码的一种临时替代方法。插桩方法被广泛应用于开发和测试工作中。在接口测试中也需要这种处理方式应用Mock技术,Mock的意思是模拟,就是针对发出的请求,通过某种技术手段来模拟测试对象的行为,返回预先设计的结果。在真实系统并没有实现对应的功能情况下,而只是根据前、后端给出的接口设计规范、示例文档,来设计接口测试用例及实现对应脚本,待系统实现对应的接口功能后再进行替换。从而来实现测试与开发并行或测试先行的目的。目前针对不同的语言有很多现成的Mock工具可以来帮助我们来完成接口测试工作。如:针对Java语言有EasyMock、针对C++语言有GoogleMock等。json(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。简洁和清晰的层次结构使得 JSON成为理想的数据交换语言。易于人阅读、编写、解析,并能有效地提升网络传输效率。鉴于以上特点,JSON被广泛的应用于系统应用开发中。在本章节,笔者将向大家分别介绍如何应用json-server这款Mock工具来实现Restful风格的API,较应用Django、Flask实现这些API,json-server的实现是如此简单、快捷,相信您一定会喜欢上它。

json-server Mock工具实例讲解

json-server介绍

您可以在github上搜索“json-server”获得这款工具的相关项目信息,如图7-1所示。

图7-1  json Server项目的相关说明信息

       如图7-1所示,它可以在不到30秒的时间内在零编码的情况下完整模拟REST API,适合前端开发团队人员小于3人,需要快速后端原型设计和模拟。

json-server安装

        首先,您需要下载Node.js,鉴于笔者是64位的Windows 10操作系统,这里下载“10.15.3”

版本,如图7-2所示。

图7-2  Node.js下载界面信息

       “node-v10.15.3-x64 .msi”文件下载以后,单击该文件,开始安装node.js,如图7-3所示。

图7-3  Node.js Setup界面信息

       单击“Next”按钮,选择“I accept the terms in the License Agreement”复选框,如图7-4所示。

图7-4  用户许可相关界面信息

       单击“Next”按钮,选择安装存放路径,这里我们不做更改,如图7-5所示。

图7-5  存放路径相关界面信息

单击“Next”按钮,选择要安装相关功能,这里我们仍然不需要做任何更改,如图7-6所示。

图7-6  用户自定义安装相关界面信息

       单击“Next”按钮,进入准备安装Node.js界面,如图7-7所示。

图7-7  准备安装相关界面信息

       单击“Install”按钮,则开始安装Node.js,安装完成后,将会出现图7-8所示界面。

图7-8  安装完成相关界面信息

       单击“Finish”按钮,完成Node.js的安装过程。为了验证其是否正确安装,可以输入“node –version”命令,来查看其版本信息,如图7-9所示。

图7-9  Node.js版本信息

        NPM是随同Node.js一起安装的包管理工具,使用它能够解决Node.js代码部署上的很多问题,我们在后续安装json-server时也会使用到它,所以同样要验证一下npm是否正确安装,可以应用“npm –v”命令来查看其对应的版本信息,如图7-10所示。

图7-10  npm版本信息

        由图7-9和图7-10,我们知道Node.js和npm都已经成功安装,接下来,我们就可以使用“npm install -g json-server”命令来装json-server了,如图7-11所示。json-server安装完成后,您可以使用“json-server -h”来查看其是否安装成功,若出现对应的帮助信息,则说明其被正确的安装,如图7-12所示。

图7-11  安装json-server相关命令信息

图7-12  json-server相关帮助信息

json-server应用简要说明

        在第5章,笔者详细的向读者朋友们介绍了如何应用Django REST Framework接口实现

Restful风格的接口,在本章节我们将应用json-server实现同样的Restful风格的接口。

       这里,笔者准备了一个Json格式文件,即:mytest.json文件,其内容如下所示:

{

    "books": [{

             "id": 1,

             "title": "软件性能测试与LoadRunner实战教程",

             "author": "于涌"

         },

         {

             "id": 2,

             "title": "精通移动App测试实战",

             "author": "于涌"

         }

    ],

    "comments": [{

             "id": 1,

             "content": "性能测试图书",

             "postId": 1

         },

         {

             "id": 2,

             "content": "App测试图书",

             "postId": 2

         }

    ],

    "press": {

         "name": "出版社"

    }

}

       从上面的JSON文件,大家可以看到主要包含3类信息,即:图书、评论和出版社信息。

在第5章的案例三,我们用10几页来描述如何实现基于JSON文件增删改查的相关操作。这里,我们想应用json-server来实现基于该JSON文件的增删改查接口操作。那么,我们应该怎样做呢?

       首先,创建一个Python项目,这里我们把该项目命名为“APITest”。在该工程中,新建一个JSON文件,即:mytest.json文件,文件内容就是上面的JSON文件内容,如图7-13所示。

图7-13  APITest项目及mytest.json文件内容

       接下来,您可以通过使用“json-server --watch C:\Users\Administrator\PycharmProjects\

APITest\mytest.json”命令来运行json-server,这样就创建了一个基于mytest.json数据文件内容的Restful增删改查接口服务了,如果成功的话,将显示如图7-14所示界面信息。

图7-14  启动json-server服务

       如图7-14所示,您可以通过在浏览器中输入“http://localhost:3000”来访问其为我们创建的相关接口,如图7-15所示。

图7-15  基于mytest.json数据文件的json-server Home页面信息

       如图7-15标号为“2”的区域,我们可以看到json-server支持GET、POST、PUT、PATCH、DELETE和OPTIONS等HTTP方法。标号为“1”的区域,您可以单击对应的链接查看对应mytest.json文件内数据信息。这里以查看图书信息为例,单击“/books”链接,将出现图7-16所示界面信息。

图7-16  mytest.json文件的图书相关信息

       您可以通过使用“http://localhost:3000/books?id=1”或者“http://localhost:3000/books/1”来查找或者说过滤出对应id的图书信息,如图7-17所示。

图7-17  过滤查找出id为1的图书相关信息


http://www.kler.cn/a/454680.html

相关文章:

  • IntelliJ Idea常用快捷键详解
  • jenkins集成工具(一)部署php项目
  • Vue3入门(9)
  • 【Linux 系统负载详情解析】
  • JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介
  • SpringBoot学习
  • Exchange ProxyShell 攻击链利用详解
  • 虚拟化 | Proxmox VE 8.x 开源的虚拟化平台快速上手指南
  • 惯性动捕套装与虚拟人应用 | 激活3D虚拟人互动性与表现力
  • Day56 图论part06
  • .net core 的多线程编程
  • stm32f103zet6 i2c 四针 oled 标准库开发
  • 机试题——圣诞节礼盒
  • python监控数据处理应用服务Socket心跳解决方案
  • 树莓集团:解读资源整合是什么意思?
  • C语言基础学习记录-文件管理
  • RabbitMQ工作模式(详解 工作模式:简单队列、工作队列、公平分发以及消息应答和消息持久化)
  • Zettlr(科研笔记) v3.4.1 中文版
  • 在Nginx部署Web应用,如何保障后端API的安全
  • 找到字符串中所有字母异位词
  • 云原生大数据计算服务 MaxCompute
  • IPv6的报头
  • 全视通智慧机构养老方案,含有紧急呼叫、安全保障等系统
  • Lua元方法
  • element-ui表格多级表头固定列和合并单元格
  • HTML CSS 超链