接口Mock技术介绍

server/2024/12/29 4:02:50/

        相信学习过程序设计的读者朋友们,一定对“桩(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.ppmy.cn/server/154093.html

相关文章

IP属地和所在地不一致什么意思?怎么换成另外一个地方的

在数字化时代,IP地址作为网络设备的唯一标识符,不仅关乎设备间的通信,还涉及到用户的网络身份与位置信息。然而,有时我们会发现,社交媒体或网络平台上显示的IP属地与用户的实际所在地并不一致。这种不一致现象引发了诸…

Java通过反射实现通用查询方法

JDBC连接数据库 public class BaseDao {protected Connection conn; // 连接对象protected PreparedStatement pstmt; // 执行对象protected ResultSet rs; // 结果集对象public Connection getConnection() {try {// 1、加载驱动 ctrl alt tClass.forName("com.m…

DS的使用

使用DS和[address]实现字的传送 要解决的问题:CPU从内存单元中要读取数据 要求:CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址。 原理:在8086PC中,内存地址段地址和偏移地址组成(段地址:偏移地址) 解决方案 :DS和[a…

linux攻防

1. 实践内容 linux 系统结构 宏内核;抢占式多用户多进程模式;通过LKM装卸驱动,进程使用两套描述符分别访问内核态和用户态,用户态进程不可能访问3GB以上的地址空间(虚存),通过系统调用或者中断…

【Java数据结构】LinkedList与链表

认识LinkedList LinkedList就是一个链表,它也是实现List接口的一个类。LinkedList就是通过next引用将所有的结点链接起来,所以不需要数组。LinkedList也是以泛型的方法实现的,所以使用这个类都需要实例化对象。 链表分为很多种,比…

王佩丰24节Excel学习笔记——第二十讲:图表基础

【以 Excel2010 系列学习,用 Office LTSC 专业增强版 2021 实践】 【本章技巧】 课件图片有问题,不能随隐藏熟悉各个图表小部件的功能,需要修改都是选中右键进行更改。 一、认识图表中的元素 图表标题:主坐标(横坐标&…

【Python】基于界面库PyQt5+Qt Dsigner的环境配置和界面绘制

目录 一 安装PyQt5以及PyQt5-tools 二 配置外部开发工具 三 使用Qt Designer设计界面 四 使用PyUIC将ui文件转换为py文件 五 CU分离实现逻辑代码 一 安装PyQt5以及PyQt5-tools 之前做的一些Python脚本、软件都是基于 Tkinter 实现的,其中界面的设计布局是很头疼…

青岛市勘察测绘研究院携手云轴科技ZStack获评专有云典型案例

近日,中国信息通信研究院(简称“中国信通院”)举办的“央国企上云高质量发展沙龙”在北京召开,会上公布了2024专有云典型案例,旨在为产业提供标杆示范与发展指引,助力构建创新生态,推动数字化转…