如何使用mock.js实现接口测试的自动化?

Mock.js 基础用法介绍

Mock.js是一个常用于生成随机数据和拦截Ajax请求的JavaScript库。本文将介绍Mock.js的用法,包括安装和基础用法,在开始前我们可以看下看:了解 Mock.js 的语法规范。

安装

可以通过npm安装Mock.js:

npm install mockjs

基础用法

随机生成一个用户信息

使用Mock.js可以很方便地生成随机数据。下面的示例中,每个用户信息包括随机生成的中文名、15-25之间的年龄和随机的城市。代码如下所示:

const Mock = require('mockjs') const data = Mock.mock({ 'name': '@cname', 'age|15-25': 0, 'city': '@city' }) console.log(data)

运行上面的代码,可能会得到如下的输出结果:

{ name: '张伟', age: 18, city: '羊城' }

随机生成一个用户信息数组

如果需要生成多个用户信息,可以定义一个Mock.js的数据数组模板,可以指定数组长度为1到10的随机数。代码如下所示:

const data = Mock.mock({ 'list|1-10': [{ 'name': '@cname', 'age|15-25': 0, 'city': '@city' }] }) console.log(data)

运行上面的代码,可能会得到如下的输出结果:

{ "list": [ { "name": "陈芳", "age": 24, "city": "西宁" }, { "name": "罗娟", "age": 20, "city": "咸阳" } ] }

Mock.js API

下面介绍Mock.js中常用的 API。

生成随机数据

Mock.Random对象包含了Mock.js中的所有随机数据生成方法。下面是一些常用的方法:

  • Mock.Random.boolean():生成一个随机的布尔值。
  • Mock.Random.integer(min, max):生成一个随机的整数,可以指定范围。
  • Mock.Random.float(min, max, dmin, dmax):生成一个随机的浮点数,可以指定范围和精度。
  • Mock.Random.string(length):生成一个随机的字符串,可以指定长度。
  • Mock.Random.name(middle?):生成一个随机的常见英文姓名。
  • Mock.Random.cname():生成一个随机的常见中文姓名。
  • Mock.Random.date():生成一个随机的日期。
  • Mock.Random.time():生成一个随机的时间。
  • Mock.Random.datetime():生成一个随机的日期时间。
  • Mock.Random.image(size, background, foreground, format, text):生成一个随机的图片,可以指定大小、背景色、前景色、格式和文字。

生成数据模板指定的数据

Mock.mock(template) 根据数据模板生成模拟数据。数据模版可以生成复杂的数据结构。下面是一个示例:

const data = Mock.mock({ 'name': '@cname', 'age|15-25': 0, 'email': /[a-z]{5}@163.com/, 'phone': /1[35789]\d{9}/ }) console.log(data)

运行上面的代码,可能会得到如下的输出结果:

{ name: '杜浩', age: 15, email: 'xianq@163.com', phone: '13940684653' }

模拟接口请求

Mock.mock(url, template)和Mock.mock(method, url, template)用于根据接口地址和数据模板模拟接口请求,支持GET、POST、PUT、DELETE等请求方法。示例如下:

Mock.mock('/user', 'get', { 'name': '@cname', 'age|15-25': 0, 'email': /[a-z]{5}@163.com/, 'phone': /1[35789]\d{9}/ }) Mock.mock('/user', 'post', { 'result': 'success' })

设置Ajax请求响应时间

Mock.setup({timeout: 400}) 指定被拦截的Ajax请求的响应时间,表示400毫秒后才会返回响应内容。示例如下:

Mock.setup({timeout: '200-600'}) Mock.mock('/user', { 'name': '@cname', 'age|15-25': 0, 'email': /[a-z]{5}@163.com/, 'phone': /1[35789]\d{9}/ })

上面的代码表示,响应时间介于200到600毫秒之间。

总结

本文介绍了Mock.js的基础用法,包括随机生成用户信息、随机生成用户信息数组、Mock.js API的常用方法、生成数据模板和模拟接口请求。Mock.js是一个非常实用的数据模拟和接口测试工具,能够大大提高前端开发效率。想进阶成为一位 Mock 高手?Apifox 是一个强大的接口文档管理工具,用 Apifox 可以让 Mock 变得更容易。Apifox 语法完全兼容 Mock.js, 并扩展了一些 Mock.js 没有的语法。

学习上

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Debezium发布历史94

原文地址: https://debezium.io/blog/2020/09/16/debezium-1-3-beta2-released/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. Debezium 1.3.0.Beta2 发布 2020 年 9 月 16 日 作者: Gu…

敏捷认证大热:PMI-ACP

你是否在寻找一个能让你在不断变化的职场环境中脱颖而出的认证?PMI-ACP正是你需要的!这个由美国项目管理协会PMI颁发的认证,是全球敏捷项目管理领域的权威代表。无论你是希望转型到项目管理领域,还是想提升现有项目管理技能&#…

代码随想录算法训练营第二十三天|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

669.修剪二叉搜索树 public class Solution {public TreeNode TrimBST(TreeNode root, int low, int high) {if(rootnull){return null;}if(root.val<low){var rightTrimBST(root.right,low,high);return right;}if(root.val>high){var leftTrimBST(root.left,low,high)…

Kafka下载安装及基本使用

目录 Kafka介绍 消息队列的作用 消息队列的优势 应用解耦 异步提速 削峰填谷 为什么要用Kafka Kafka下载安装 Kafka快速上手&#xff08;单机体验&#xff09; 1. 启动zookeeper服务 2. 启动kafka服务 3. 简单收发消息 Kakfa的消息传递机制 Kafka介绍 Apache Kafka…

数据库面试题汇总

如何定位慢查询SQL慢语句执行的很慢&#xff0c;如何分析&#xff1f;索引概念及索引底层数据结构&#xff1f;聚簇索引和非聚簇索引、回表查询&#xff1f;覆盖索引、超大分页优化索引创建的原则什么情况下索引会失效谈一谈你对SQL优化的经验事务的特性并发事务问题、隔离级别…

联邦学习公式推导--为何只需要发送模型参数而不是模型梯度?

参考文献&#xff1a;https://arxiv.org/pdf/1602.05629v4.pdf 对于一个机器学习应用来说&#xff0c;我们需要找到一个目标函数&#xff0c;使其最小化 f ( w ) 1 n ∑ i 1 n f i ( w ) f(w) \frac{1}{n}\sum_{i1}^{n}f_i(w) f(w)n1​i1∑n​fi​(w) 上面等式中&#xff…

Vue3中的watch函数使用

Vue2和Vue3中的watch函数作用是一样的&#xff0c;用来监测数据的变化并在数据变化时触发对应的回调函数&#xff0c;但Vue2和Vue3中的watch在使用的细节上有所不同&#xff0c;Vue3中的watch在监测reactive定义的响应式数据时&#xff0c;oldValue&#xff08;旧的值&#xff…

模拟实现哈希表 - HashMap(Java版本)

目录 1. 概念 2. 冲突-概念 3. 冲突-避免 4. 冲突-避免-哈希函数设计 5. 冲突-避免-负载因子调节 ⭐⭐⭐⭐⭐ 6. 冲突-解决 6.1 冲突-解决-闭散列 6.2 冲突-解决-开散列/哈希桶 ⭐⭐⭐⭐⭐ 7. 冲突严重时的解决办法 8. 模拟实现 1. 概念 顺序结构以及平衡树中&#…

揭开时间序列的神秘面纱:特征工程的力量

目录 写在开头1. 什么是特征工程?1.1 特征工程的定义和基本概念1.2 特征工程在传统机器学习中的应用1.3 时间序列领域中特征工程的独特挑战和需求3. 时间序列数据的特征工程技术2.1 数据清洗和预处理2.1.1 缺失值处理2.1.2 异常值检测与处理2.2 时间特征的提取2.2.1 时间戳解析…

MySQL基础(三)-学习笔记

一.innodb引擎&#xff1a; 1). 表空间&#xff1a;表空间是InnoDB存储引擎逻辑结构的最高层&#xff0c;启用了参数 innodb_file_per_table(在 8.0版本中默认开启) &#xff0c;则每张表都会有一个表空间&#xff08;xxx.ibd&#xff09;&#xff0c;一个mysql实例可以对应多个…

计算机网络——网络层(3)

计算机网络——网络层&#xff08;3&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)1 网络层——控制平面因特网中自治系统内部的路由选择总括考虑因素总结 ISP之间的路由选择&#xff1a;BGP考虑因素总结 SDN控制层面重要组件和功能总结 ICMP主要功能和特点…

京东手机评论分析

文章目录 前言:数据处理1.1数据导入1.2数据描述1.3数据预处理 2.情感分析2.1情感分析安装snownlp包 2.2 情感分直方图情感分直方图 2.3 词云图2.4 关键词提取关键词top10 3 积极评论与消极评论3.1 积极评论与消极评论占比计算积极评论与消极评论各自的数目积极评论占比 3.2 消极…

大脑模型认知实验报告(脑与认知期末考核)

实验名称&#xff1a;大脑模型认知实验 实验目的&#xff1a; &#xff08;1&#xff09;对大脑的三部分、七层结构、区域划分有一个清晰的认识。 &#xff08;2&#xff09;对脑的各个区域的基本功能以及脑的工作方式有所了解。 实验环境&#xff1a;大脑模具、配有详细标…

Mongodb安装Linux

确定你的CentOS 版本 使用以下命令: /etc/centos-release下载Mongodb 解压tgz压缩包 创建data和log文件夹 , 确定你的文件夹访问权限 在log文件夹里面创建mongodb.log文件(这一步很重要 ! ! !) touch mongodb.log创建mongodb.conf文件 在你的mongodb文件夹下 vi mongo…

Flink 1.18.1 部署与配置 [CentOS7]

静态IP设置 # 修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33# 修改文件内容 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic IPADDR192.168.18.128 NETMASK255.255.255.0 GATEWAY192.168.18.2 DEFROUTEyes IPV4_FAILURE_FATALno IPV6INIT…

GO 的 Web 开发系列(四)—— 静态资源文件访问的几种方式

Gin 的路由其实就是 Java 中 RequestMapping 注解的内容&#xff0c;只是 Go 需要在一个代码模块中统一对所有路由进行配置。 全文链接&#xff1a;https://blog.nineya.com/archives/155.html 一、路由组配置 一般情况下&#xff0c;通过路由需要完成两个事情&#xff0c;一…

如何本地搭建Emby影音管理服务并结合内网穿透实现远程访问本地影音库

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中&#xff0c;观看视频绝对是主力应用场景之一&…

6个AI写作工具,让你的文字变得生动有力

写作是一项需要耐心和技巧的任务&#xff0c;对于许多人来说&#xff0c;写作可能是一项困难的挑战。然而&#xff0c;随着人工智能的发展&#xff0c;AI智能写作软件逐渐崭露头角&#xff0c;为我们提供了更加便捷和高效的写作体验。在本文中&#xff0c;我们将介绍几款好用的…

Spring-mybatis

怎样通过Spring整合Mybatis来实现业务 目录 1.导入依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency>&l…

一文教你如何本地搭建Qchan图床网站实现公网远程访问

文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景&#xff0c;在大量开发人员的努力下&#xff0c;已经开发出大…