使用yapi做接口管理/测试很方便,基础的用法不再介绍,这里记录自定义脚本的编写方法,主要参考官方文档:yapi 文档地址:https://hellosean1025.github.io/yapi/documents/project.html#token

首先yapi可以输入自定义脚本的地方有这么几个:

1.接口级别的

2.项目级别的脚本设置,可以用来处理请求参数,进行身份认证

这里主要记录项目级别的脚本编写,有几个问题:

1.console是输出到了那里呢?

console.log()是输出到浏览器的,按F12就可以

2.如何引入第三方依赖库?

yapi内置了基本的依赖库,可以进行常用的加密,网络请求等操作,依赖库是存在context.utils变量中,

3.如何发送网络请求?

从上图可以看到context.utils有一个axios依赖库,这是一个网络请求库

4.如何修改请求响应参数?

从上面可以看到有requestBody和responseData,requestHeader,responseHeader等对象,直接给相应的对象赋值就可以

这里贴一个简化版的代码,这是一个生成认证token的代码,其中crypto是crypto-js依赖库,搜索该库即可知道用法:

console.log("the context is:",context)
var crypto = context.utils.CryptoJS;
function GetTimeStamp() {var now = new Date();return now.getTime() - Math.round(namespace.TimeStamp);
}function GetRandomString(cnt) {var rndstr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";var t = '';if (cnt === null || cnt === undefined) cnt = 8;for (var i = 0; i < cnt; i++) {var r = Math.floor(Math.random() * 62);t = t + rndstr[r];}return t;
}function mac(token, hmackey, url, host, method, timeDifference) {let digest = crypto.HmacSHA256(hmackey+":"+host+":"+url+":"+method, mackey);return digest;
}let body = { access_token: '7F938B2xxxxx',expires_at: '2020-02-28T14:51:00.257+0800',mac_key: 'QOqiKDBMiM',refresh_token: '7F938B205F876FC3411849E1BB2F359A34578yyyyy',server_time: '2020-02-21T14:51:00.259+0800',user_id: 11111 };
console.log("hello world");let mactoken = mac(body.access_token, body.mac_key, context.pathname, context.hostname, context.method, 0);
console.log("mactoken is :",mactoken);
context.requestHeader.Authorization = mactoken;

网络认证代码:

console.log(context);
var axio = context.utils.axios;
let authInfo = null;axios.post('https://xxx.yyy.com/v0.93/tokens', {'login_name': 'user001','password': "soi3223www",'org_name': "test"}).then(function (response) {console.log("response info:",response.data,response.body);authInfo = response.data;}).catch(function (error) {console.log(error);});

更多axios的用法可以搜索axios依赖库,这里贴一个连接:https://www.kancloud.cn/yunye/axios/234845

yapi接口测试--自定义脚本编写(高级mock)相关推荐

  1. Postman接口测试脚本编写规范

    Postman接口测试脚本编写规范 1.前言 2.名词解释 3.接口测试脚本规范 3.1接口测试脚本编写的规范 3.2 Postman使用规范 4.单个接口测试 5.整个流程的开发过程 1.前言 本规 ...

  2. 让ArcMap变得更加强大,用python执行地理处理以及编写自定义脚本工具箱

    文章目录 一.用python执行地理处理工具 1.1 例:乘以0.0001 1.2 例:裁剪栅格 1.3 哪里查看调用某工具的代码? 二.用python批量执行地理处理工具 2.1 必需的python ...

  3. APP UI自动化测试:框架选择、环境搭建、脚本编写……全总结

    首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师.高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去. 接下来, ...

  4. ArcMap自定义脚本工具制作

    ArcMap自定义脚本工具制作 在制图的前期,一般需要做一些数据的整理,如图层合并.裁剪等工作.虽然在ArcMap中也有提供对应的工具,但使用起来需要点技巧.如批量裁剪,虽然可以实现,但出来的结果会重 ...

  5. windows 批处理脚本编写

    windows 批处理脚本编写 什么是批处理 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为bat. 目前比较常见 的批处理包含两类:DOS批 ...

  6. Java应用:编写高级JavaScri…

    不错,恩啊 原文地址:Java应用:编写高级JavaScript应用代码 作者:可信赖的大雁1i 1.创建高级对象 使用构造函数来创建对象 构造函数是一个函数,调用它来例示并初始化特殊类型的对象.可以 ...

  7. bash 与 shell脚本编写指南

    bash 与 shell脚本编写指南 bash 与 shell脚本编写指南 bash基本命令 man与info命令 遍历目录命令 文件与目录列表命令 处理文件相关命令 处理目录命令 查看文件内容 通过 ...

  8. Software Performance Testing - Gatling测试脚本编写

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 脚本示例 import io.gatling.cor ...

  9. Gatling 测试脚本编写

    为了更好的阅读体验,请点击个人网站链接 Gatling基于Scala开发的压测工具,我们可以通过录制自动生成脚本,也可以自己编写脚本,大家不用担心,首先脚本很简单常用的没几个,另外gatling封装的 ...

最新文章

  1. jeecgboot前端开发_一款基于代码生成器的Java快速开发平台【jeecg-boot】
  2. python组件的react实现_React-Router动态路由设计最佳实践
  3. leetcode算法题--最接近的三数之和
  4. 01背包模板、全然背包 and 多重背包(模板)
  5. 又快又简单的sql2005分页存储过程
  6. 微型计算机常用的worm是,2010江西省计算机等级考试试题 二级C试题考试答题技巧...
  7. LeetCode 1120. 子树的最大平均值(DFS自底向上)
  8. 最详细win7下手动搭建PHP环境:apache2.4.23+php7.0.11
  9. 蓝桥杯 ADV-78 算法提高 最长单词
  10. 云端部署大数据解决方案该用IaaS还是PaaS?
  11. 数据预处理与特征工程—11.分层采样
  12. c语言程序设计教程周新答案,c语言程序设计教程周新答案
  13. 又是灵格斯导致软件自动关闭
  14. 几款极好的 JavaScript 文件上传插件
  15. 钟祥义工与残疾人互动频繁
  16. 硬件找工作笔试题、面试题,求职offer指导规划
  17. ES6基础语法(let、const、解构赋值、模板字符串、简化对象、箭头函数、扩展运算符)(一)
  18. 人人都是产品经理 产品经理培训 互联网产品经理
  19. Wargames学习笔记--Bandit
  20. django快速集成富文本编辑器wangeditor

热门文章

  1. https证书异常是什么意思?
  2. 海量大数据地图可视化
  3. VS2010 Ultimate 微软官网免费下载 VS2010终级版
  4. Python基于深度学习多标签分类模型实现云状识别
  5. JAV spi 和扩展方式
  6. NetVLAD场景识别模型解读
  7. unity中3D数学相关类、属性、方法、用途总结+超级综合的案例
  8. python表白女神
  9. 7-20 简单计算器
  10. 日常活动--英文短句