【数据模拟】还在愁没有后端接口测试?快来使用json-server零编码实现强大的后端接口

简介: 【数据模拟】还在愁没有后端接口测试?快来使用json-server零编码实现强大的后端接口

前言

在写前端项目时,你是否会遇到以下情况:

  • 与后端进度不一致,急需接口测试项目功能
  • 压根没有后端接口,而自己又迫切需要模拟接口模拟数据进行测试

若你正需要一套强大的,能够符合你心意的模拟的后端数据接口,那么json-server将是你的不二之选

json-server介绍

使用json-server我们只需要提供一个json文件,或者写几行简单的js脚本就可以模拟出RESTful API的接口。

安装

使用npm全局安装:

npm install -g json-server

入门

创建JSON文件

创建一个db.json包含一些数据的文件:

{
    "posts": [
        {
            "id": 1,
            "title": "json-server",
            "author": "typicode"
        },
        {
            "id": 2,
            "title": "json-server2",
            "author": "typicode2"
        }
    ],
    "comments": [
        {
            "id": 1,
            "body": "some comment",
            "postId": 1
        },
        {
            "id": 2,
            "body": "some comment2",
            "postId": 2,
            "author": {
                "name": "typicode"
            }
        },
        {
            "id": 3,
            "body": "some comment3",
            "postId": 1
        }
    ],
    "profile": {
        "name": "typicode"
    }
}

JSON文件中一级的key值就是一个接口的名称,如上所示会生成三个接口:

  • /posts
  • /comments
  • /profile

key值对应的数组内就是该接口的数据。

同时在comments的数据中有一个postId字段(注意不是postsId)对应的是posts中的id,表示comments是与posts相关联的(类似于后端的表关联)

启动JSON server

控制台运行启动db.json

json-server --watch db.json

启动成功:

在这里插入图片描述

默认启动使用的端口号是3000,此时直接访问:http://localhost:3000/posts就会得到posts中的数据:

在这里插入图片描述

指定端口号

使用--port指定端口号为5000

json-server --watch db.json --port 5000

接口使用

对于 JSON server生成的接口,可以同时使用 POSTPUTPATCHDELETE 请求,对应的更改将自动安全地保存到 db.json文件中

简单使用

# 获取所有的posts信息
GET    /posts
 
# 获取id=1的posts信息
GET    /posts/1
# 或
GET    /posts/?id=1
 
# 添加posts信息,请求body中必须包含posts的属性数据,json-server自动保存。
POST   /posts
 
# 修改posts中id=1的数据,请求body中必须包含posts的属性数据
PUT    /posts/1
# 或
PUT       /posts/?id=1
# PATCH请求补丁式修改
PATCH  /posts/1
 
# 删除posts中id=1的信息
DELETE /posts/1
 

筛选

一级筛选

# 获取posts中title=json-server并且author=typicode的数据
GET /posts?title=json-server&author=typicode

使用 . 访问深层属性

# 获取comments中author.name=typicode的数据
GET /comments?author.name=typicode

在这里插入图片描述

使用判断条件

可以用的判断条件为:

  • _gte : 大于等于
  • _lte : 小于等于
  • _ne : 不等于
  • _like : 包含
# 查询posts中id不等于1的数据
GET /posts?id_ne=1

GET /posts?id_lte=1
GET /posts?title_like=server

连接表查询

# 查询posts中id=1对应的comments中的数据
GET /posts/1/comments

在这里插入图片描述

分页

_page: 第几页
_limit:一页多少条

GET /posts?_page=1
GET /posts?_page=2&_limit=1
  • 默认一页10条
  • 后台会返回总条数,总条数的数据在响应头:X-Total-Count

排序

_sort:排序的字段
_order:排序的方式:升序asc(默认),降序desc

# 根据id升序查询posts中数据
GET /posts?_sort=id&_order=asc
GET /posts/1/comments?_sort=votes&_order=asc

支持多个字段排序:

GET /posts?_sort=id,title&_order=desc,asc

_start:片开始的位置
_end_limit:片结束的位置

Array.slice完全一样工作(即_start具有包容性和_end排他性)

# 查询posts中下标0(包含下标0)到下标1(不包含下标1)之间的数据,即第1条
GET /posts?_start=0&_end=1
# 查询posts中id=1对应的comments中的数据的下标1到下标3之间的数据
GET /posts/1/comments?_start=1&_end=3

全文搜索

q:搜索内容

# 搜索posts中包含typicode2的数据
GET /posts?q=typicode2

关系

同时获取子资源

_embed:需要包含的子资源

GET /posts?_embed=comments

获取包含子资源comments中数据(根据comments中的postIdposts中的id相对应进行查询)的posts数据

posts对应的comments子资源会存放到postscomments字段中

在这里插入图片描述

GET /posts/1?_embed=comments

获取postsid=1并且包含其对应的子资源comments数据的数据
在这里插入图片描述

同时获取父资源

_expand:需要包含的父资源

GET /comments?_expand=post

在这里插入图片描述

GET /comments/1?_expand=post

在这里插入图片描述

获取或创建嵌套资源

GET  /posts/1/comments
POST /posts/1/comments
相关文章
|
10天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
52 11
|
1月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
36 6
|
1月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
30 1
|
1月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
65 3
|
2月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
37 1
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
609 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
80 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
270 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
287 3
快速上手|HTTP 接口功能自动化测试
|
3月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
58 5

热门文章

最新文章