前端003_模拟数据接口_easymock

为了不影响大家的学习,如果后端的api数据还没有生成,可以先使用mock.js来模拟数据接口,提供对外服务的api接口。

对接 Mock.js 模拟数据接口

1、Mock.js 解决什么问题

  • 问题
    前后端分离项目,前端和后端人员都是根据 API 文档进行开发项目的,不应该直接相互依赖, 前端人员不应该等
    待后端开发好接口后再进行测试,既然不依赖后端接口,那前端人员应该如何测试呢?
  • 解决
    可以通过模拟数据生成器,通过一定规则 (API文档)生成模拟数据接口, 提供给前端人员进行测试。

2、设么是Mock.js

  • 官网:http://mockjs.com/
  • 文档:https://github.com/nuysoft/Mock/wiki
  • Mock.js 是用于生成随机数据,拦截 Ajax 请求。
    通过拦截 Ajax 请求,根据数据模板生成并返回模拟数据,让前端攻城师独立于后端进行开发,帮助编写单元测试。

3、使用EasyMock

3.1 什么是 EasyMock

Easy Mock 是一个可视化,并且能快速生成模拟数据的服务。是杭州大搜车无线团队出品的一个极其简单、高效、可视化、并且能快速生成模拟数据的在线 Mock 服务 。
现在 Easy Mock 内置了 Mock.js,我们可以更愉快的伪造数据了
网址下载: https://github.com/easy-mock/easy-mock

$ git clone https://github.com/easy-mock/easy-mock.git
$ cd easy-mock && npm install
  • 注意:
    easy-mock 的安装还是比较麻烦,需要事先安装mongodb redis 。

3.2 创建项目

  1. 访问 http://192.168.16.11:7300/ ,进行登录。
    注意:没有单独的注册页面,第一次输入的用户名和密码会自动帮你注册。
    在这里插入图片描述
  2. 点击右下角 + , 创建一个项目
    在这里插入图片描述
  3. 创建一个项目,如下: 在这里插入图片描述
    在这里插入图片描述

3.3 创建测试数据接口

  1. 点击 创建接口
    在这里插入图片描述

  2. EasyMock 添加模拟数据配置
    请求地址:/test
    请求方式:get

{
"code": 20000,
"message": "操作成功"
}

在这里插入图片描述
3. 点击预览,测试数据接口是否正常
在这里插入图片描述

3.4 调用数据接口

  1. 在 vue.config.js 文件中使用 devServer.proxy 选项进行代理配置
    注意:复制自己创建的 Base URL
 devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    before: require('./mock/mock-server.js'),
    // 开发环境配置
    proxy: {
      [process.env.VUE_APP_BASE_API]: { // 是.env.development 文件的'/dev-api':
        // 目标服务器地址
        target: ' https://192.168.16.11:7900/mock/64557f4faf3bc37f99a23c05/db',
        changeOrigin: true, // 开启代理服务器,
        pathRewrite: {
          // '^/dev-api': '',
          ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }
    }
  }
  1. 创建 src/api/test.js 文件,定义调用接口 API
import request from '@/utils/request'
export default {
    test() {
        return request({
            url: '/test',
            method: 'get'
        })
    }
}
  1. 调用接口获取数据
src/views/dashboard/index.vue
<script>
// 引入 api
import api from '@/api/test'
export default {
  name: 'Dashboard',
  created() {
    this.fetchData()
  },
  methods: {
    fetchData() {
      api.test().then(response => {
      console.log(response)
    })
   }
  }
}
</script>
  1. 访问 http://localhost:9528/#/dashboard 查看浏览器是否打印值
    在这里插入图片描述

3.5 Post 请求带参数 报请求超时

  1. post接口
    修改下 /test 接口请求方式为 post
    在这里插入图片描述

  2. 修改 src/api/test.js 文件,定义调用接口 API
    通常post调用的时候都会传输数据

import request from '@/utils/request'
export default {
    test() {
        return request({
            url: '/test',
            method: 'post',
            data: {'name': '数哥'}
        })
    }
}
  1. 重启,访问页面报错
    Axios 如果发送Post请求,并且带上请求参数时,会一直报请求超时,如下
    在这里插入图片描述
  2. 原因:
    这个问题是因为mock-server中express的中间件body-parser导致的,表现为不带参数请求没有问题,带上

3.6 解决方案

  1. 将 mock\mock-server.js 文件下面的注释掉,再加上新的(大概第12行)
  for (const mock of mocksForServer) {
    // app[mock.type](mock.url, mock.response)
    app[mock.type](mock.url, bodyParser.json(), bodyParser.urlencoded({
      extended: true
      }), mock.response)      
    mockLastIndex = app._router.stack.length
  }
  1. 然后往下拉,找到下面的注释掉
  // parse app.body
  // https://expressjs.com/en/4x/api.html#req.body
  // app.use(bodyParser.json())
  // app.use(bodyParser.urlencoded({
  //   extended: true
  // }))
  1. 修改后,完整的图示:
    在这里插入图片描述

  2. 验证
    在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Charles Mock是一种模拟接口测试工具,可以帮助开发人员模拟网络环境,以便测试应用程序的性能和稳定性。它可以模拟各种网络条件,如延迟、带宽限制、网络中断等,以便开发人员可以更好地了解应用程序在不同网络条件下的表现。此外,Charles Mock还可以记录和重放网络流量,以便开发人员可以更好地了解应用程序与服务器之间的通信。 ### 回答2: Charles Mock是一款专业的模拟接口测试工具,它可以帮助开发人员、测试人员等相关人员对于应用程序进行测试,在测试的过程中,Charles Mock可以扮演一个虚拟的服务器,通过构建虚拟数据响应请求,对应用程序的功能进行模拟测试。 接口测试是现今应用程序开发的一个必要环节,对于保证应用程序的稳定性和安全性起到了关键的作用,特别是在分布式系统的环境下,接口测试成为了不可或缺的环节。基于此,Charles Mock可以让我们在程序的开发和测试过程中不需要依赖真实的服务器,通过构建虚拟数据模拟服务器处理请求,并返回相应的响应结果,以此来测试应用程序的功能性和接口的安全性。 Charles Mock的使用方法十分简单,首先我们需要在设备上安装Charles代理,并将设备的代理设置为Charles所在的IP。接着我们需要在Charles中配置模拟接口请求,即指定请求的URL、请求的参数、请求的类型等内容,然后就可以按照需求构建虚拟响应数据,并设置返回响应结果,最后我们可以通过Charles的数据监测功能来查看应用程序对于虚拟数据的处理情况,以此来判断程序的稳定性和安全性。 总而言之,Charles Mock模拟应用程序接口测试方面具有非常高的效率和准确度,通过构建虚拟的请求和数据响应,实现了对应用程序接口模拟测试,对于开发人员和测试人员来说,是非常好的工具和辅助手段。 ### 回答3: Charles Mock是一款功能强大的模拟接口测试工具,在接口调试和测试领域被广泛使用。它的主要功能是拦截HTTP/HTTPS请求以及相应的响应,然后对它们进行实时分析和修改,从而解决了开发者在开发过程中遇到的一些问题。 在使用Charles Mock进行接口测试时,其主要优点包括以下几个方面: 1. 快速构建模拟场景:Charls Mock提供了代码编辑器和预置模板编辑,可以快速地创建API请求和相应的Mock脚本,并支持快速构建模拟数据场景。 2. 详细的日志记录:Charls Mock提供详细的日志记录,方便用户进行调试和问题排查,减少了因为API调用错误产生的数据丢失和损失。 3. 多场景模拟:Charls Mock支持多种不同的场景模拟,比如:网络故障、请求超时、响应异常等。 4. 实时数据演示:Charls Mock实时显示API请求和响应的数据,方便开发者对数据进行分析和调试。 虽然Charls Mock不像一些 IDE 这样可以提供给你一种完整的开发环境,但是它的独特特性与功能可以帮助开发者快速地找到了问题,以及保存了在测试时所获得的数据,让团队更快地进行解决方案的探索。使用Charles Mock可以提高开发和测试的效率和质量,降低整个项目的风险和成本,因此,它被广泛地应用于软件开发和测试领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值