whistle代理+mock轻松解决“页面端“测试接口没数据难题

0、whistle是什么?怎么用?

自行百度,此处不再赘述!

1、示例演示(交易订单测试)
  • 背景和痛点最近在测试一个小需求,需要涉及订单侧服务+商品库侧服务+库存侧服务+财务侧线下交易服务。痛点主要在订单侧,需要配置脉聘 + 特价优惠配置(这里是个痛点)
    为什么说【特价优惠配置】是个痛点?
    因为之前开发同学在上一个需求开发过程中,为了能更充分的在沙箱进行测试,修改了一些代码让特价优惠配置的时候,沙箱和线上环境互斥了:即沙箱如果操作特价优惠配置,那么就会覆盖线上的配置数据—至于为什么这么玩?不太清楚,详细可以咨询开发或 测试。然后测试脉聘,需要在【框架合同】下的【XXXX】表单里有一个get接口需要取到配置的特价配置数据,然后才能享受特价配置计算价格等–下面会有详细说明图文的

  • 如何解决呢?因为测试基本都在沙箱(需要配置hosts),我们又没办法通过页面配置,那么我们只能换一种方案:即mock【框架合同】下的【XXXX】表单里有一个get接口的返回值(前提是得知道这个接口返回值的数据类型)。

  • 实施步骤:

    • 首先进入【框架合同】下的【XXXX】表单页面,打开开发者模式,拿到添加商品时调用的get获取配置接口,如下图:
      在这里插入图片描述

    最终我们能拿到get接口是:https://xxxxxxx/aaa/bbb/create/findXXXX?contractNo=xx-xx-KJ-xxxxxxxxxxx&pxxxCode=8102614xxxxx0000接口返回值demo:json的字符串

[{"id": 123123123123123123123,"type": 8,"limitCountMin": 0.01,"limitCountMax": 0.02,"discount": 5.00000,"discountExtra": 2.85000,"state": 1,"creatorId": "20150106xxxxxxx","createTime": "2022-10-18 00:36:36","updateId": "201811xxxxxxxxxx","updateTime": "2023-01-30 18:31:52","businessType": 0,"customerType": 0,"consumeMonth": 0,"consumeQuarter": 0,"productLine": 1,"productCode": "820916xxxxxxx0001","businessTypes": "[1],[4],","computeWay": 1,"validTimeType": 1,"validBeginTime": "2021-06-18 00:00:00","validEndTime": "2022-10-17 23:59:59","relationId": "16660xxxxxx550","realDiscount": 0.1419999999999999873434575192732154391705989837646484375
}]
  • 拿到接口和接口返回值我们就好mock了

  • 本地安装whistle并进行一些必要的代理配置–自行百度

  • 启动whistle 并新增values文件
    在这里插入图片描述
    文件名随便定义,文件的内容就是接口的数据结构,json字符串,当然其中部分字段的值可能需要根据业务规则做相应修改—详询开发补充:如果接口返回是json格式的,需要格式化接口返回值的demo数据,然后放到文件中。并且需要修改文件名为xxxx.json即可

  • 然后新增策略
    在这里插入图片描述
    我们可以新增一个如上图,也可以直接放在default里因为我们需要mock接口返回值,这里直接放需要被mock的接口(无需包含入参),然后加我们设置的file即可格式是:【接口url】【空格】【file://{values中的文件名}】如上例:https://xxxx/xxx/xxx file://{testForMaiPin}

  • 然后就可以抓包了(最后在下图最下面黑框的filter中过滤一下接口域名或直接指定接口名也行,不然可能抓到很多请求不好check)
    在这里插入图片描述

  • 最后去页面操作【框架合同】下的【XXXXX】表单页面,再次添加商品时,可以看到抓包到的接口已经有返回值了
    在这里插入图片描述

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

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

相关文章

《关于小北花了2美元购买一个便宜域名:zhiyilangcn.buzz那件事》

事件起因: 域名这玩意~真的挺有用的,特别是在内网环境倒弄各种服务器的时候,自己内网环境懒得搭建DNS服务器的情况下,可以直接使用域名加上各种免费DNS解析服务器偷懒。 印象里,去年还能使用freenom去注册免费域名来…

2024 年 8 款最好的PDF阅读和编辑软件

写出好的内容本身就是一门艺术。写作中的错误会让你看起来粗心大意或无能为力——这两种情况都不利于你的职业形象。没有任何软件能够取代现实生活中可以指出您写作错误的编辑器。幸运的是,有些软件已经接近并仍在改进它们的服务以帮助您清理工作。 编辑PDF很昂贵&…

用通俗易懂的方式讲解:十分钟读懂 Stable Diffusion 运行原理

AIGC 热潮正猛烈地席卷开来,可以说 Stable Diffusion 开源发布把 AI 图像生成提高了全新高度,特别是 ControlNet 和 T2I-Adapter 控制模块的提出进一步提高生成可控性,也在逐渐改变一部分行业的生产模式。惊艳其出色表现,也不禁好…

Redis:原理速成+项目实战——Redis实战12(好友关注、Feed流(关注推送)、滚动分页查询)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis实战11(达人探店(Redis实现点赞、热榜)&#xf…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑨

单元测试 一、任务要求 题目1:根据下列流程图编写程序实现相应分析处理并显示结果。返回文字“xa*a*b的值:”和x的值;返回文字“xa-b的值:”和x的值;返回文字“xab的值:”和x的值。其中变量a、b均须为整型…

【Linux实用篇】项目部署 基于Shell脚本自动部署

目录 1. 项目部署 1.1 手动部署项目 1.2 基于Shell脚本自动部署 1.2.1 介绍 1.2.2 推送代码到远程 1.2.3 Git操作 1.2.4 Maven安装 1.2.5 Shell脚本准备 1.2.6 Linux权限 1.2.7 授权并执行脚本 1.2.8 设置静态IP 1. 项目部署 之前我们讲解Linux操作系统时&#xff0…

【Mybatis系列】Mybatis空值关联

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

操作系统-操作系统的概念和功能

文章目录 大家熟悉的操作系统总览操作系统的概念(定义)操作系统的功能和目标-作为系统资源的管理者操作系统的功能和目标-向上层提供方便易用的服务图形化用户接口联机命令接口脱机命令接口程序接口小结 操作系统的功能和目标-作为最解决硬件的层次小结 …

6. 逻辑删除

逻辑删除对应的是物理删除,分别介绍一下这两个概念: 物理删除 :指的是真正的删除,即:当执行删除操作时,将数据表中的数据进行删除,之后将无法再查询到该数据逻辑删除 :并不是真正意…

数据结构排序——详细讲解归并排序(c语言实现递归及非递归)

上次是快排和冒泡:数据结构排序——详解快排及其优化和冒泡排序(c语言实现、附有图片与动图示意) 今天为大家带来归并排序 文章目录 1.基本思想2.递归实现3.非递归实现 1.基本思想 归并排序是一种分治算法,它将序列分成两个子序列&#xff0…

virtualbox Ubuntu 网络连接

一、网络连接需求1—— 上网: 虚拟机默认的NAT连接方式,几乎不需要怎么配置,即可实现上网。 enp0s17以太网必须要开启,才能上网; 但是主机ping不通虚拟机,貌似可以ping 127.0.0.1; 二、主机和虚拟机相互p…

Whisper: openAI开源准确率最高的通用语言语音识别

简介 我们研究了仅通过预测大量互联网音频录音的语音处理系统的能力。当扩大到68万小时的多语言和多任务监督时,生成的模型可以很好地泛化到标准基准,而且通常可以与之前的全监督结果相竞争,但在zero-shot识别设置中,无需进行任何…