关于mock:10年开发浅谈-eolinkapifoxapipost-横向对比

性能比照在理论工作中,eolink 、apifox、apipost 三个工具,我集体都有应用。接下来,我会对三款性能比照,于是我拉了个性能比照的清单。 特地阐明:以下的比照,不吹不黑,只列性能,纯主观比对,不带有任何商业带货的意义。 eolink 、aifox、apipost 三款工具有很多功能模块,本次仅筛选罕用的三个功能模块,接口测试、Mock 数据、在线文档。 以下是接口测试、Mock 数据、在线文档等几个子性能的比照状况。 咱们会筛选几个罕用性能进行理论的实用比照,给大家展现一下三个工具的相同点和不同。 接口测试比照http/https 协定测试 http/https 协定测试是在日常工作中最罕用的性能,eolink 、aifox、apipost 三款工具都反对该性能,咱们次要比照 UI 界面和性能易用性。 这里应用 get 申请接口做演示: https://suggest.taobao.com/sug?code=utf-8&q=%E6%B5%8B%E8%AF%9... eolink点击创立接口后,在顶部 tab 中展现,包含:文档、编辑、测试、mock、监控等五个性能。 点击测试 tab 能够看到,蕴含:申请头、申请体、Query 参数、REST 参数、权限校验、前置脚本、后置脚本、高级设置等性能。 点击发送按钮进行接申请,在返回后果局部展现接口数据。在返回后果局部展现工夫剖析性能,能够剖析接口申请到接口返回数据的整个网络申请过程。 apifox点击创立接口后,在顶部展现文档、批改文档、运行、高级 Mock 等四个性能。 点击测试 tab 能够看到,蕴含:Params、Body、Headers、Cookies、前置操作、后置操作等性能。点击发送按钮进行接口申请,在返回 Body 中展现返回数据。 apipostapipost 的创立接口页面,和 eolink、apifox 布局不太一样,感觉更像 postman 的页面布局。mock 数据须要在下边切换应用。 点击发送按钮发送接口测试,在实时响应局部查看返回数据,展现响应头状态码、接口响应工夫等数据。 小结: 在 http/https 协定测试上,eolink、aifox、apipost 三个工具都能很好反对性能的实用,不同点是页面上的布局差别和用户体验上的差别。 WebSocket 协定测试咱们在做接口测试时,除了常见的 http 接口,还有一种比拟多见,就是 WebSocket 接口。 WebSocket 协定测试性能,在 eolink 和 apipost 反对,然而在 apifox 中不反对。 eolink在编辑页面抉择 ws 协定,输出 ip+ 端口信息。 ...

May 23, 2023 · 1 min · jiezi

关于mock:最强-Mock-工具没人反对吧

背景在开发过程中,因为后端与前端并行开发,或者前端须要期待后盾开发,难以保障对接效率,同时即应用开发好的 API 对接,也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高,一不小心就可能导致整个软件不能失常工作。并且界面之间存在着重大的相互依赖关系,产生的业务逻辑非常复杂,这些都会对软件的开发效率产生很大的影响。 所以学习如何利用最好的 Mock数据是很要害的。这样做会升高前端开发者的工作量,升高开发费用,进步开发效率。 以下是一些常见的Mock办法,咱们能够依据具体的场景和条件来进行抉择和配置。最要害的是要晓得如何去做,并从中挑选出最适宜本人的形式。 Mock介绍或者还有一些没见过 Mock的读者,不晓得 Mock是什么。明天就来跟你说说这玩意的厉害,这玩意非同凡响! 简略地说, Mock是指在测试期间,为一些难以构建或不易取得的对象,创立一个虚构物体进行测试。而这个虚构物体就是模仿物体,模仿对象是在调试过程中理论对象的代替。 有时候, Mock服务被称为一个测试服务替代品,或一个测试服务,上面的图片十分活泼地阐明了它的性能。 Mock能解决什么问题?Mock性能的劣势: 前端对接不依赖后端: 让前端工程师独立于后端进行开发。减少测试的真实性: 通过随机数据,模仿各种场景。开发无侵入: 不须要批改既有代码,就能够拦挡Ajax申请,返回模仿的响应数据。数据类型丰盛: 反对生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、色彩等。不便扩大: 反对扩大更多数据类型,反对自定义函数和正则。Mock性能实用场景在理论工作中十分多,真正在理论我的项目中,引入Mock工具通常来解决如下几类问题。 次要有: 开发进行单元测试因为单元测试只对目前的单元进行,所以必须保障所有的内外依赖关系都是稳固的,应用 mock的形式来模仿根底单元依赖的其它单元,这样就能够把测试的重心放在以后单元的性能上,从而打消内部因素的影响,进步测试的准确性。 调用第三方接口在做接口自动化的时候,有时候须要调用第三方的接口,然而他人公司的接口服务稳定性不受你的管制,有可能他人提供的测试环境明天服务给你开着,他人就关掉了,给自动化接口测试带来很多的麻烦,此时就能够通过mock来模仿接口的返回数据,比方模仿各种第三方异样时的返回。 解决接口间的相互依赖例如,您正在开发前端网页,当初您须要开发付款性能:下一次订购、付款页面界面、付款后果、付款胜利、显示付款胜利页、付款失败页。为了实现这个个性,您必须调用后盾界面,并显示出相应的页面。当初的后端界面还没有齐全开发进去,如果是前端开发,那就只能加班了。要实现开发工作的同步,在这个时候,您能够依照接口文件的要求,将接口的地址和参数发送给用户,再通过 mock接口的不同的返回接口,来实现开发工作。 传统Mock解决方案传统Mock解决方案常见的有两种,一种是应用Postman接口测试工具进行Mock数据,另外一种是应用Mock js第三方库进行Mock数据。 Postman接口测试工具Postman中须要点击Create Mock Server配置mock服务。抉择之后,应用程序会进行一步一步的提醒。 配置须要mock的接口地址,手动输出响应数据返回值即可。 Mock js第三方库Mock.js 是一款模仿数据生成器,旨在帮忙前端攻城师独立于后端进行开发,帮忙编写单元测试。提供了以下模仿性能: 依据数据模板生成模仿数据模仿 Ajax 申请,生成并返回模仿数据基于 HTML 模板生成模仿数据在Mac上关上命令行终端,输出装置命令: npm install mockjs,稍等几分钟装置实现。 简略示例展现:Mock list是自增数据 // 应用 Mockvar Mock = require('mockjs')var data = Mock.mock({ // 属性 list 的值是一个数组,其中含有 1 到 10 个元素 'list|1-10': [{ // 属性 id 是一个自增数,起始值为 1,每次增 1 'id|+1': 1 }]})// 输入后果console.log(JSON.stringify(data, null, 4))Mock 按规定生成字符串 ...

May 22, 2023 · 1 min · jiezi

关于mock:API-Mock-完整工作流程

Mock API 是一种用模仿数据代替实在 API 接口返回的的技术。在开发过程中,前端开发往往依赖后端 API,但后端 API 还在开发中。通过 Mock API,前端无需期待后端 API 开发实现。前端能够用 Mock API 返回的模仿数据来开发。 只需 3 步就能搞定 Mock API。 第 1 步 新建我的项目在 Apifox 的 App 首页,点击右侧的 “新建我的项目” 按钮来创立我的项目。 第 2 步 新建接口这边以创立用户详情接口为例来展现创立接口的性能。 申请办法: GET。URL: api/user/{id}。其中 {id} 是参数: 示意用户 id。响应类型: json,响应内容:进入上一步新建我的项目的首页,点击左侧的 “+” 按钮来新建接口。 填写对应的接口信息并保留: 这样,用户详情接口就创立好了。同时,Apifox 依据响应的字段格局和类型,给咱们主动创立好了 Mock。点击 Mock 下的 “快捷申请” 按钮可查看 Mock 的返回: 咱们来看一下 Mock 的返回。点击“快捷申请” 按钮,在进入的页面点击“发送”。 Mock 的返回还挺像样子的~ 第 3 步 设置 Mock 匹配规定大家有没有留神到一个神奇的点,咱们给 name 字段设置了 string 类型,为什么会返回中文人名;给 phone 设置了 string 类型,为什么会返回手机号;给 avatar 设置了 string 类型,为什么会返回图片地址? ...

May 16, 2023 · 1 min · jiezi

关于mock:搞懂-API-Mock-常见问题及解决办法

API Mock是一个构建Web服务质量保障环节的十分实用的工具。它能够让开发者在独立工作或集成测试时,疾速开始调试和验证他们的代码。然而,在实践中,API Mock也可能会呈现一些问题。 本文将探讨API Mock中的一些常见问题,并提供一些解决办法。 动态响应无奈满足需要在某些状况下,开发人员应用动态Mock数据来模仿API的响应后果。这种形式尽管在测试场景很不便,然而很难模仿简单的场景和实在的申请后果。 解决办法:在创立Mock时,应该尽可能地思考到现实情况和业务逻辑。在设计响应和状态码时不应过于简略,而应为每个API端点结构更多的响应数据、状态码等变量。 线上接口与Mock数据不统一Mock数据个别为固定数据,线上接口可能依据各种条件动静生成所需数据,如果Mock数据恰好与线上接口返回的后果不统一,则会影响程序的正确性。 解决办法:为了防止这种状况产生,开发人员必须要确保Mock数据与线上接口的响应高度一致。在设计 Mock 数据时,应该思考到接口中各种变量、参数和数据类型的个性。 Mock响应工夫不精确在API服务的失常工作流程中,响应工夫对于申请方至关重要。如果应用Mock数据的响应工夫与线上接口的响应工夫不尽相同,则会导致某些测试用例无奈进行正确的工夫基准测试。 解决办法:测试人员应该在Mock数据设计方案中充分考虑响应工夫。在测试环境中,可能须要应用Mock数据进行集成测试,并依据须要调整Mock提早以尽可能反映真实情况。 数据同步问题如果Mock API性能比理论的API更强壮或简单,则可能会导致实现API同步变得十分艰难。例如,Mock数据可能会蕴含不成熟的性能或缩放性问题,这些问题可能在实现阶段被疏忽而最终影响线上API的运作。 解决办法:为防止这种状况,开发人员应确保Mock数据和理论API具备高度一致性。当您更新理论API时,请记得及时同步并更新Mock数据以反映这些变动。此外,Mock数据的测试应在模仿和线上环境中进行以保障其有效性。 总而言之,API Mock是一个便捷且实用的工具,但也须要咱们特地留神在应用和设计Mock过程中遇到的各种问题。通过建设优良的Mock设计准则、充分考虑各种边缘状况,以及与理论API同步更新Mock数据,能够确保API Mock的准确性和可靠性,并最终进步团队整体效率。 给大家举荐一个开源的 API 管理工具-Postcat,除了 mock 相干的外围性能,还有其余的更多的宝藏插件,比方 Chatgpt、 Apispace、Swagger同步URL 等插件。 如果你感觉这个开源我的项目还能够的话,无妨点个 star 反对下他们,如果你感觉还须要持续优化,无妨去提个Issue. Github:https://github.com/Postcatlab/postcat Gitee:https://gitee.com/eolink_admin/postcat

April 17, 2023 · 1 min · jiezi

关于mock:Mock-语法讲解

Mock 是生成随机数据,拦挡 Ajax 申请的 JavaScript 库。 本文来介绍下 Mock 的罕用语法。 模仿数据生成随机数据Mock.Random.boolean()生成一个随机的布尔值。例如: 返回值为 true 或 false。 Mock.Random.integer(min, max)生成一个随机的整数,能够指定范畴。例如: 返回值为 0 到 10 之间的整数。 Mock.Random.float(min, max, dmin, dmax)生成一个随机的浮点数,能够指定范畴和精度。例如: 返回值为 0.00 到 100.00000 之间的浮点数,精度为 2 到 5 位小数。 Mock.Random.string(length)生成一个随机的字符串,能够指定长度。例如: 返回值为长度为 10 的随机字符串。 Mock.Random.date()生成一个随机的日期。例如: 返回值为随机日期的字符串示意,例如 "1977-07-03"。 Mock.Random.time()生成一个随机的工夫。例如: 返回值为随机工夫的字符串示意,例如 "05:38:02"。 Mock.Random.datetime()生成一个随机的日期工夫。例如: 返回值为随机日期工夫的字符串示意,例如 "2007-06-29T22:03:06.140Z"。 Mock.Random.image(size, background, foreground, format, text)生成一个随机的图片,能够指定大小、背景色、前景色、格局和文字。例如: 返回值为图片的 Base64 编码字符串。 生成数据模板指定的数据Mock.mock(template) 依据数据模板生成模仿数据。数据模版能够生成简单的数据结构。 数据模版的语法如下: 属性名和属性值之间用 : 分隔。属性与属性之间用 , 分隔。属性值是字符串类型,能够应用 @ 来示意占位符。属性值是对象类型,能够应用 name|rule 来示意生成规定。示例: const Mock = require('mockjs')const data = Mock.mock({ 'list|1-10': [{ 'id|+1': 1, // 从 1 开始,每次加 1 'name': '@cname', // 随机中文名字 'age|18-60': 1, // 18 到 60 岁之间的整数 'gender|1': ['男', '女'], // 男或女 'email': '@email' // 随机电子邮件地址 }]})console.log(data)输入: ...

April 14, 2023 · 1 min · jiezi

关于mock:再见-Postman-我用这个开始-Mock测试

在测试的时候常常会碰到后端开发工程师的接口还没有开发实现,然而前端页面曾经开发好了。没有接口怎么对接呢? 前端人员能够通过 mock server 本人去造一个接口来拜访。mock server 可用于模仿实在的接口。收到申请时,它会依据配置返回对应的申请。 在前后端拆散的大背景下,mock server 在前端开发利用十分宽泛,mock.js 这样的库没有方法间接应用,前端开发不想把文档的返回值再写一遍,那怎么办呢? 实际上 Postcat 的 mock 性能简略好用,而且还是收费的,开源的。明天咱们介绍下应用 Postcat 来进行 mock 服务。 创立 Mock进入API文档详情页面,点击 Mock 标签,点击新建 Mock,在弹窗中输出 Mock 的名称以及响应内容: 调用 Mock进入 Mock 列表页面,点击调用地址即可复制到剪贴板,在代码中间接对该 API 地址发动申请即可失去响应后果。 这个开源的 API 工具叫 Postcat ,除了根本的文档和测试性能,还有插件广场和 MOCK 这些外围性能,集体应用后感觉还不错。还在为 API 工具发愁的思友们,无妨试试这个。 在线 Demo 链接: https://postcat.com/zh/?utm_s... 如果你感觉这个开源我的项目还能够的话,无妨点个 star 反对下他们,如果你感觉还须要持续优化,无妨去提个Issue. Github: https://github.com/Postcatlab... Gitee: https://gitee.com/eolink_admi...

February 23, 2023 · 1 min · jiezi

关于mock:开源-API-工具的-Mock-功能真的好用么

很多时候,接口尚未开发实现,在零碎交互单方定义好接口之后,咱们能够提前进行开发和测试,并不依赖上游零碎的开发实现。 通过应用Mock模仿数据接口,咱们即可在只开发了UI的状况下,毋庸服务端的开发就能够进行产品的演示。 明天给大家带来一款全新的 API 工具,同样领有 MOCK 性能 创立 Mock进入API文档详情页面,点击 Mock 标签,点击新建 Mock: 在弹窗中输出 Mock 的名称以及响应内容: 调用 Mock进入 Mock 列表页面,点击调用地址即可复制到剪贴板,在代码中间接对该 API 地址发动申请即可失去响应后果。 这个开源的 API 工具叫 Eoapi,除了根本的文档和测试性能,还有插件广场和 MOCK 这些外围性能,集体应用后感觉还不错。 还在为 API 工具发愁的盆友们,无妨试试这个。 Eoapi 蕴含 API 文档、 API 治理 、API 测试等等性能,Eoapi 是一款类 Postman 的开源 API 工具,它更轻量,同时可拓展。目前的 v 1.9.0 版本,除了新增 API 分享、团队合作性能。他们还反对:弱小的文档功能丰富的插件市场,可拓展前后置脚本反对查看所有测试历史反对 Websocket 协定,后续也会新增反对更多的支流协定。 在线 Demo:https://www.eoapi.io/?utm_sou... 如果你感觉这个开源我的项目还能够的话,无妨点个 star 反对下他们,如果你感觉还须要持续优化,无妨去提个Issue. Github:https://github.com/eolinker/e... Gitee:https://gitee.com/eolink_admi...

November 4, 2022 · 1 min · jiezi

关于mock:mockjs随机数生成

"data|2": [{ "id|+1": 1, // 属性值主动加1,初始值为 number "likeNumber|0-100": 10, //生成一个大于等于0、小于等于100的整数,10只是用来确定类型 "name|min-max.dmin-dmax": number, // 浮点数,限度形式与上一个整数雷同 "like": "@boolean(1)", // 生成布尔值 "displaySign|1": ["oneLeft", "oneRight"], // 从数组中随机取一个值 "likeNum": "@integer(1,9999)", // 随机1-9999间的数字 "content": "@csentence(5,50)", // 随机生成5-50个字符,完结带句号 "name": "@cword(2,5)", // 随机生成2-5个字符,没有标点 "releaseTime": "@date(yyyy-MM-dd)",// 按格局生成随机日期 "creatTime": "@date(yyyy-MM-dd hh:mm:ss)",// 按格局生成随机日期工夫 "name|min-max": "string", //通过反复 string 生成一个字符串,反复次数大于等于 min,小于等于 max "name|count": "string", //通过反复 string 生成一个字符串,反复次数等于 count }]

September 30, 2022 · 1 min · jiezi

关于mock:使用Mockoon进行接口Mock

内部接口之苦日常开发中,常常须要调用第三方接口,或者是工友们正在开发的接口。这些接口经常因为不稳固或者有bug妨碍开发联调,此时须要mock接口进步开发速度。 罕用mock工具大抵有这些,仅供参考。 mock工具运行是否反对proxymocojar,命令行不反对mockoonexe 桌面利用 + nodejs cli 命令行反对mock-server看起来比拟麻烦还没钻研反对咱们有个 biz-api 服务,常常要往里面加接口。测试的时候又只测局部,因而须要有转发性能,所以选了 mockoon。感觉用起来还比拟棘手,上面简略阐明一下。 Mockoon 应用阐明首先,创立 route,就是你要 mock 的接口。 而后,开启proxy。意思是,如果方才创立的route没有的话,就会走proxy转发。 配置实现后,启动server mockoon-cli除了桌面利用,还有命令行工具,不便在服务器上部署或容器化部署。 npm install -g @mockoon/cli接口配置文件,应用上述桌面工具导出即可(mock.json)。上面列举了一些常用命令。 # 启动mock-server,默认daemonmockoon-cli start --data mock.json# daemon-off,适宜用作容器启动命令mockoon-cli start -D --data mock.json # 查看正在mock的服务mockoon list # 进行mockoon-cli stop {id}

May 16, 2022 · 1 min · jiezi

关于mock:推荐一个在线接口Mock工具-useMock

示例代码://一键解耦:const apiHost = true ? "https://project.usemock.com" : "https://project.domain.com";//前期应用齐全不变:fetch( apiHost + "/v1/todos" ).then((res) => console.log(res) )开发流程中作用应用useMock代入流程后,能够疾速制订并实现前后端单方接口要求,并行开发提高效率 单方均可对接口数据格式进行协商定义,接口变更时:任意一方操作即可;而不须要等实在业务逻辑实现后再调试 开源我的项目或教学也可利用useMock,使用者岂但能够看文档,还能够进行测试mock公开接口数据 自动化工作日志除了自动记录日志,也主动生成接口文档,查看文档成果:https://www.usemock.com/docs/... 点评:useMock上手非常简略易用,而且带统计接口性能,不便发现热点接口优化,能够团队合作和主动生成文档也是相当给力的。还会自动记录操作日志,这是很多同类mock平台不具备的性能。

February 15, 2022 · 1 min · jiezi

关于mock:react使用在线mock服务模拟真实请求示例不用安装mockjs库

通常咱们mock数据都会装置mockjs:yarn add mockjs然而须要配置很多货色,还要拦挡申请等等,对老手不敌对,即便是新手也感觉麻烦。 举荐大家应用useMock 在线Mock助手,我的项目API数据模仿,宣称比外部环境更贴心 反对团队合作灵便解耦不局域可重复调试主动生成文档React申请示例:在线Demo: https://www.usemock.com/demo/... <div id="app"></div><script type="text/babel"> const axiosDemo = React.createElement(() => { const { useState } = window.React; const [apiUrl, setApiUrl] = useState("https://2weima.usemock.com/api/qrdecode"); //input const [info, setInfo] = useState(null); // 申请后果 const onReqApi = ()=> { // 应用axios发申请 axios.post(apiUrl,{ // 模仿申请信息 qr_image:"https://img.2weima.com/qr_template/2021/6/26/8857784941a0f2d2a024044f414c69f9.jpg" }) .then(response =>{ // 响应信息 setInfo(response.data) console.log('因为跨域申请,在Network中多一个 Request Method: OPTIONS 申请是失常的。') console.log('response data:',response.data) }) } return <div> <div class="ui-input">接口URL:<input placeholder="useMock接口链接" value={apiUrl} onChange={(event)=>{ setApiUrl(event.target.value)}} /></div> <p> <button class="ui-button" data-type="primary" onClick={()=>{ onReqApi() }}>发送申请</button> </p> {info && ( <div> <h4>申请后果:</h4> <p>{JSON.stringify(info)}</p> </div> )} </div> }); ReactDOM.render( <div>{axiosDemo}</div>, document.getElementById('app') );</script>

February 15, 2022 · 1 min · jiezi

关于mock:vue使用在线mock平台用axios请求示例-不用自己安装mockjs

通常咱们mock数据都会装置mockjs:yarn add mockjs然而须要配置很多货色,还要拦挡申请等等,对老手不敌对,即便是新手也感觉麻烦。 举荐大家应用useMock 在线Mock助手,我的项目API数据模仿,宣称比外部环境更贴心 反对团队合作灵便解耦不局域可重复调试主动生成文档Vue申请示例: 你须要先在useMock平台增加你本人的我的项目和接口,而后就会失去接口文档,复制API链接申请就能够获取到在线mock设置的数据了。 以二维码解码接口mock为例: 在线示例Vue:https://www.usemock.com/demo/... 示例图: <script>//vue 示例代码 const App = { data() { return { apiUrl:"https://2weima.usemock.com/api/qrdecode", info:null } }, methods: { onReqApi(){ // 应用axios发申请 axios.post(this.apiUrl,{ qr_image:"https://img.2weima.com/qr_template/2021/6/26/8857784941a0f2d2a024044f414c69f9.jpg" }) .then(response =>{ this.info = response.data console.log('因为跨域申请,在Network中多一个 Request Method: OPTIONS 申请是失常的。') console.log('response data:',this.info) }) } } } Vue.createApp(App).mount('#app')</script>

February 15, 2022 · 1 min · jiezi

关于mock:强大的mock工具YApi功能介绍

YApi是一个开源的在线mock服务YApi 次要性能介绍【数据管理-数据导入】 反对导入的起源:swagger(swagger还反对url的模式), postman,chrome HAR, YApi json反对导入的形式:web界面导入,命令行导入反对的导入模式:齐全笼罩,智能合并,一般三种模式自动化导入:反对定义导入swagger的接口【数据管理-数据导出】 反对导出的格局:swagger json, YApi json,html, markdown, 不便和后端对接代码生成: yapi-to-typescript:依据 YApi 的接口定义生成 TypeScript 的申请函数yapi-gen-js-code: 依据 YApi 的接口定义生成 javascript 的申请函数【数据管理-数据编辑】 反对导入数据的在线编辑,新增的属性:delay提早【数据管理-数据Mock】数据返回权重从高到低 【高级Mock-冀望】返回指定的内容,body,http code,http header, delay; 可设置过滤条件,设置多条冀望【高级Mock-脚本】解析URL参数,动静返回不同数据【全局mock数据】整个我的项目顶层的返回信息设置【Mockjs】依据定义主动生成,同时也可指定key为指定值【Mock测试】 【单个测试】在线发送http申请测试,相似postman【自动化测试】【权限治理】 提供团队,集体分组【插件】 反对插件的二次开发罕用的一些插件举荐:钉钉机器人推送,自定义导入swagger插件,第三方登陆...【开源】 反对内网部署反对二次开发参考资料:官网:http://yapi.smart-xwork.cn/文档:https://hellosean1025.github....github地址:https://github.com/YMFE/yapi

September 20, 2021 · 1 min · jiezi

关于mock:绝佳的前端开发体验前后端联调数据mock方案

前后端交互的桥梁:RESTful API标准swagger性能: 【主动文档生成】定义 接口名称/门路/正文/分组标签/出入参字段/类型/是否必填, 可通过接口 swagger schema查看原始数据【在线测试】在线发送http申请进行测试swagger schema生成路径【swagger主动生成】依据swagger api-docs接口获取json数据【模板手动增加】本地生成swagger scheme模板,再手动编辑这块原始数据,最初和后端对这份数据即可。在线验证及可视化查看:https://editor.swagger.io/swagger schema 用处这些性能可通过自定义cli实现,更加高效【接口代码生成】api.ts, api.d.ts文件 (依据swagger schema生成),应用ts可实现接口数据校验【接口数据mock】yapi 生成mock数据(依据swagger schema生成)【导入postman】能够应用更多postman高级的性能:变量,测试自动化,导出,参数记忆等性能;相比swagger web更高效、易用;swagger cli性能开发> swagger api init // 生成swaggerSchema.json本地模板,不便编辑> swagger api api.d.ts [swagger url] //依据swagger url地址生成api.d.ts和api.ts文件 > jst api create -o src/services/api.d.ts swaggerTemplate.json -r @/utils/request // 依据swagger url地址生成api.d.ts和api.ts文件 (反对自定义存储门路和api.ts中 require库的引入)生成的swaggerSchema.json本地模板文件 { "swagger": "2.0", "info": { "description": "xxx接口治理", "version": "1.0", "title": "xxx服务端接口文档", "contact": {}, "license": { "name": "MIT", "url": "http://opensource.org/licenses/MIT" } }, "host": "petstore.swagger.io", "basePath": "/", "definitions": { "TmCallStartRequestDto": { "type": "object", "properties": { "callid": { "type": "string", "description": "形容信息" }, "listenerUid": { "type": "integer", "format": "int64", "description": "形容信息" } } }, "TmResponseDto": { "type": "object", "properties": { "code": { "type": "string" }, "data": { "type": "array", "description": "抄送列表", "items": { "type": "string" } }, "errMsg": { "type": "string" }, "msg": { "type": "string" } } } }, "tags": [ { "name": "tel-call-hook-api", "description": "通话" } ], "paths": { "/call/tm/directcall/callbackstart": { "post": { "tags": [ "tel-call-hook-api" ], "summary": "tmAxbSuccess", "description": "接口形容", "operationId": "tmAxbSuccessUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "callStartRequestDto", "description": "callStartRequestDto", "required": true, "schema": { "$ref": "#/definitions/TmCallStartRequestDto" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/TmResponseDto" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } } } } }}生成的api.ts文件 (可在cli命令中,增加参数,在代码头部增加request门路) ...

September 13, 2021 · 2 min · jiezi

关于mock:fastmock-新增功能从我的其他项目导入接口

很多用户反馈,有时候新建的我的项目,很多接口和之前的我的项目的接口是反复的或者url是雷同的,心愿反对从现有我的项目导入接口的性能,当初,这个性能曾经开发好并上线从其余我的项目导入接口 <!-- {docsify-ignore} -->1、在我的项目接口治理页面点击”从其余我的项目导入“ 2、在弹出层中切换到有接口的我的项目而后抉择要导入到以后我的项目的接口 3、点击右下角的”确认导入“按钮即可实现导入 留神只能从本人创立或者曾经退出的我的项目导入抉择的接口url和method在以后我的项目曾经存在,则不会导入这个接口导入的接口是独立存在的,批改和删除都不影响原接口

July 11, 2021 · 1 min · jiezi

关于mock:如何以-mock-server-的方式本地启动-SAP-UI5-应用使它不连接服务器端-OData-服务

咱们在做 SAP UI5 开发时,在视图逻辑没有开发结束时,往往不心愿连贯服务器端的 OData 服务进行联调,而仅仅连贯本地端的测试数据。 本文介绍如果启动本地 mock server,将 SAP UI5 我的项目工程里提前准备好的测试数据,渲染到 SAP UI5 利用的视图上。 本文介绍具体方法。 因为不须要间接连贯后盾 OData 服务,因而 manifest.json 的 dataSources 区域也就无需保护实在的服务器端 OData 服务的 url 了: sap.ui5 区域里,定义该利用的根视图 (rootView)为 SmartTable: SmartTable.view.xml 的源代码:<mvc:View xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc" controllerName="sap.ui.demo.smartControls.SmartTable" xmlns:smartTable="sap.ui.comp.smarttable"> <smartTable:SmartTable id="smartTable_ResponsiveTable" tableType="ResponsiveTable" editable="false" entitySet="Products" header="Products" showRowCount="true" useExportToExcel="false" enableAutoBinding="true"> </smartTable:SmartTable></mvc:View> controller 什么都不必实现: component.js 也不必实现: 次要的逻辑位于 sap.ui.core 的 Init hook 实现函数里。加载我的项目工程文件夹 test/service 上面的 server.js, 启动这个 mock server,而后将 sap.ui.demo.smartControls 这个 Component,搁置到ComponentContainer,即 Component 容器里渲染成最初的 HTML 源代码: 次要代码: sap.ui.getCore().attachInit(function() { sap.ui.require([ "sap/ui/demo/smartControls/test/service/server" ], function(server) { server.init(); new sap.ui.core.ComponentContainer({ name: "sap.ui.demo.smartControls", height: "100%" }).placeAt("content"); }); });Mock server 的外围逻辑在这个 server.js 里: ...

May 9, 2021 · 2 min · jiezi

关于mock:如何使用mock应对测试所需随机数据

摘要:在做接口测试的时候,有的接口须要进行大量的数据进行测试,还不能是反复的数据,这个时候就须要随机生产数据进行测试了。这里教诲大家应用mock.js生成各种随机数据。一、什么是mock.jsmock.js是用于生成随机数据,拦挡 Ajax 申请。 通过拦挡 Ajax 申请,依据数据模板生成并返回模仿数据,让前端攻城师独立于后端进行开发,帮忙编写单元测试。 1、减少单元测试的真实性。通过随机数据,模仿各种场景。 2、开发无侵入。不须要批改既有代码,就能够拦挡 Ajax 申请,返回模仿的响应数据。 用法简略合乎直觉的接口。 3、数据类型丰盛。反对生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、色彩等。 4、不便扩大。反对扩大更多数据类型,反对自定义函数和正则 5、总结。因为mock.js能够生产各种数据数据,所以也能够用在接口测试上,生成各种接口参数值。 二、如何在接口测试工具apipost中应用mock.js1、apipost内置了罕用的mock字段变量 须要应用变量的时候,间接把变量名称复制到参数值中就可应用了,如图: 2、在与执行脚本中编写自定义的mock.js变量 如: 1)生产一个随机手机号,相熟mock.js的能够本人编写一下,不会的能够间接百度,而后粘贴到与执行脚本中,在设置一个环境变量,变量值为数据生产的手机号: const phonePrefix = [‘132’, ‘135’, ‘189’] const index = Math.floor(Math.random() * phonePrefix.length) var phone = phonePrefix[index] + Mock.mock(/d{8}/)apt.variables.set(“phone”, phone); 援用设置的变量,如图; 2)生产一个随机工夫戳 var timestamp=Date.parse(new Date())apt.variables.set(“timestamp”, timestamp); 援用随机工夫戳 有趣味深刻mock.js能够去mock.js官网进行学习。 本文分享自华为云社区《接口测试-应用mock生产随机数据》,原文作者:奔四码农。点击关注,第一工夫理解华为云陈腐技术~

December 31, 2020 · 1 min · jiezi

关于mock:喜大皆奔在线Mock虚拟数据接口系统VirAPI开源版发布啦

VirAPI -- 非侵入式虚构数据在线申请响应生成接口,反对MockJs语法,申请即可得自定义规定的响应数据。本着让宽广开发者能分享VirAPI的成绩,也为了VirAPI能更好的服务大家,现做出重大决定——将VirAPI开源!!!。 此次开源,将公布在Githu以及Gitee两大开源仓库网站上。开源的内容次要包含: 创立及治理我的项目利用创立及治理虚构接口在线测试虚构接口查看虚构接口申请日志查看虚构接口申请相干数据统计登录及编辑个人资料当初您能够依据本人的须要拉取开源代码进行本地部署,若有相干开发能力还可在下面进行降级再革新。 本开源我的项目次要分前端代码仓库以及后端代码仓库;仓库保护上将以Github为主,这也就意味着在Github上更新的更及时。 Github上对应的仓库地址为: VirAPI开源版VirAPI开源版--前端代码仓库Gitee上对应的仓库地址为: VirAPI开源版1. VirAPI开源版 https://github.com/bluvenr/open_virapi1.1 环境依赖NodeJs(NPM)MongoDB本我的项目应用了eggjs作为后端逻辑我的项目框架。 1.2 运行&部署搭建好必要环境后,执行npm install装置我的项目所需依赖包。 本地测试运行,则请执行:npm dev 正式环境运行,请执行:npm start;此时若想敞开进行我的项目,则执行:npm stop。因为eggjs框架的机制,请每次批改后端代码后重启该我的项目npm restart。 默认服务端口为7001,本地可间接拜访http://127.0.0.1:7001/进入控制台治理页面。若是部署到线上,可配置nginx或apache进行重定向。 1.3 我的项目配置相干介绍我的项目配置文件放在config/config.default.js文件中,若是搁置服务器正式环境,则倡议复制该文件您须要自定义的配置在同目录下命名为config.local.js文件中,并设置您要的配置参数。 默认config.default.js文件内容为: /* eslint valid-jsdoc: "off" */'use strict';const fs = require('fs');const path = require('path');/** * @param {Egg.EggAppInfo} appInfo app info */module.exports = appInfo => { /** * built-in config * @type {Egg.EggAppConfig} **/ const config = { mongoose: { // url: 'mongodb://127.0.0.1:27017/open_virapi_db', options: { // useMongoClient: true, autoReconnect: true, reconnectTries: Number.MAX_VALUE, bufferMaxEntries: 0, }, }, bcrypt: { saltRounds: 10, }, security: { csrf: { enable: false, ignoreJSON: true, }, domainWhiteList: [ 'http://localhost:8080', ], }, validate: { convert: true, }, cors: { // origin: '*', allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS', }, jwt: { secret: 'virapi-202008192239', }, proxy: true, // 通过ips获取nginx代理层实在IP session: { key: 'Vir_SESSION', // 承载 Session 的 Cookie 键值对名字 maxAge: 2 * 3600 * 1000, // Session 的最大无效工夫 httpOnly: true, encrypt: true, renew: true, // 每次拜访页面都会给session会话延长时间 }, static: { prefix: '/', dir: path.join(appInfo.baseDir, 'app/public'), dynamic: true, preload: false, maxAge: 0, buffer: false, }, }; // use for cookie sign key, should change to your own and keep security config.keys = appInfo.name + '_hNW87vqPkMiMpLBHEtolB3Yg6vQsk5Ip4AJzCih2QCXbZBmjh5I033ELjdwB'; // add your middleware config here config.middleware = [ 'errorHandler', ]; config.siteFile = { '/favicon.ico': fs.readFileSync(appInfo.baseDir + '/app/public/favicon.ico'), }; // add your user config here const userConfig = { // myAppName: 'egg', imgUri: '/images', imgDir: appInfo.baseDir + '/app/public/images', }; return { ...config, ...userConfig, };};在您的自定义配置参数文件config.local.js中,咱们建议您配置以下必要参数: ...

August 22, 2020 · 2 min · jiezi