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

news2025/1/16 9:00:58
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.coloradmin.cn/o/1392573.html

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

相关文章

abap 将xstring转换成PDF展示

收到外围系统的xstring之后,如何在sap中将其打开呢 1.创建一个屏幕 2.绘制一个customer control 3.创建流逻辑 4.流逻辑如下: DATA: go_html_container TYPE REF TO cl_gui_custom_container, go_html_control TYPE REF TO cl_gui_html_viewer, lv_u…

66.Go从零搭建一个orm框架【简版】

文章目录 一:前置学习1、 为什么要用orm2、Golang里面是如何原生连接MySQL的3、ORM框架构想 二: 开始造1、连接Connect2、设置/读取表名Table/GetTable3、新增/替换Insert/Replace4、条件Where5、条件OrWhere6、删除Delete7、修改Update8、查询9、设置查询字段Field…

序列到序列模型

一.序列到序列模型的简介 序列到序列(Sequence-to-Sequence,Seq2Seq)模型是一类用于处理序列数据的深度学习模型。该模型最初被设计用于机器翻译,但后来在各种自然语言处理和其他领域的任务中得到了广泛应用。 Seq2Seq模型的核…

介绍下Redis?Redis有哪些数据类型?

一、Redis介绍 Redis全称(Remote Dictionary Server)本质上是一个Key-Value类型的内存数据库,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性…

Spring框架的背景学习

Spring 的前世今生 相信经历过不使用框架开发 Web 项目的 70 后、80 后都会有如此感触,如今的程序员开发项目太轻松了,基本只需要关心业务如何实现,通用技术问题只需要集成框架便可。早在 2007 年,一个基于 Java语言的开源框架正…

Python环境下基于自适应滤波器的音频信号(wav格式)降噪方法

Python的集成环境我一般使用的是Winpython,Winpytho脱胎于pythonxy,面向科学计算,兼顾数据分析与挖掘;Anaconda主要面向数据分析与挖掘方面,在大数据处理方面有自己特色的一些包;Winpytho强调便携性&#x…

Python Tkinter Grid布局管理器用法

很多时候 Tkinter 界面编程都会优先考虑使用 Pack 布局,但实际上 Tkinter 后来引入的 Grid 布局不仅简单易用,而且管理组件也非常方便。 Grid 把组件空间分解成一个网格进行维护,即按照行、列的方式排列组件,组件位置由其所在的行…

MySQL、Oracle 生成随机ID、随机数、随机字符串

目录 1 MySQL 生成随机ID1.1 生成 唯一的随机ID:UUID()1.2 生成随机数:RAND()1.2.1 RAND():返回一个介于0和1之间的随机浮点数1.2.2 FLOOR(RAND() * 100):返回一个介于0和99之间的随机整数1.2.3 LPAD(FLOOR(RAND() * 99999999), 8…

行为型设计模式——中介者模式

中介者模式 中介者模式主要是将关联关系由一个中介者类统一管理维护,一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即…

【上分日记】第380场周赛(数位dp+ KMP + 位运算 + 二分 + 双指针 )

文章目录 前言正文1.3005. 最大频率元素计数2.3007.价值和小于等于 K 的最大数字3.3008. 找出数组中的美丽下标 II 总结尾序 前言 本场周赛,博主也只写出两道题(前两道, hhh菜鸡勿喷),第三道涉及位运算 ,数位dp,第四道涉及KMP。 下…

c语言[]优先级大于*优先级

本博文源于笔者正在学习的c语言[]优先级大于*优先级.在定义二维数组时&#xff0c;a1与[]号结合后&#xff0c;谁的优先级更高&#xff0c;是本博文探讨的话题 博文来源 想要看看*与[]谁的优先级更高 博文代码 #include<stdio.h> #include<stdlib.h> int main(…

OAuth 2.0 - 微信登录

一、概述 1、什么是OAuth 2.0 OAuth (Open Authorization) 是一个关于授权 (athorization) 的开放网络标准。 允许用户授权第三应用访问他们存储在另外的服务提供者上的信息&#xff0c;而不需要将用户名和密码提供给第三方。OAuth在全世界得到广泛应用&#xff0c;目前的版本…

R语言【paleobioDB】——pbdb_orig_ext():绘制随着时间变化而出现的新类群

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_orig_ext (data, rank, temporal_extent…

核对表:基本数据类型CHECKLIST:Fundmental Data

核对表&#xff1a;基本数据类型CHECKLIST:Fundmental Data 数值概论 代码中避免使用神秘数值吗&#xff1f; 代码考虑了除零错误吗&#xff1f; 类型转换很明显吗&#xff1f; 如果在一条语句中存在两个不同类型的变量&#xff0c;那么这条语句会像你期望的那样求值吗&#x…

JMeter 相关的面试题

1、什么是 JMeter&#xff1f; 它是一个开源的负载和性能测试工具&#xff0c;用于对软件、Web应用程序、API、数据库等进行压力测试。 2、JMeter 的优势是什么&#xff1f; JMeter具有以下优势&#xff1a; 开源免费&#xff1a;JMeter是开源工具&#xff0c;无需付费使用。…

使用 Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索

2023 年是检索增强生成 (RAG) 的一年&#xff0c;人们探索了许多用例&#xff0c;并使用该技术开发了数百种产品。 从 Q/A 聊天机器人到基于上下文的代理&#xff0c;RAG 的使用一直是 LLM 申请快速增长的主要因素。 支持不断发展的社区以及 Langchain 和 LlamaIndex 等强大框架…

vue-cli解决跨域

在vue.config.js中 找到devServer 在devServer中创建proxy代理 proxy:{ path&#xff08;路径中包含这个path就会导航到target的目标接口&#xff09;&#xff1a;{ target:"目标接口" } } 例&#xff1a; 1 同源策略只针对于浏览器&#xff0c;代理服务器到后端接…

如何选择适合的乔拓云小程序付费服务

在数字化时代&#xff0c;微信小程序已经成为商家与客户互动的重要平台。乔拓云小程序作为一款便捷的微信小程序&#xff0c;不仅提供免费的基本功能&#xff0c;还为商家提供了多种付费增值服务和广告投放选择&#xff0c;以满足不同需求。本文将为您揭秘乔拓云小程序的费用明…

SpringBoot多环境配置与添加logback日志

1、多环境配置 一个项目会有多个运行环境 所以SpringBoot提供了可以适应多个环境的配置文件 每个文件对应一个端口号 application-dev.yml 开发环境 端口8090 application-test.yml 测试环境 端口8091 application-prod.yml 生产环境 端口8092 在application中选择使用哪个…

中国社会科学院与新加坡社科院大学联合培养博士——如何就读在职博士

说到了在职博士&#xff0c;可能会大家就会觉得这不就是字面意思嘛&#xff1f;还用什么懂不懂的&#xff0c;在职博士的意思不就是&#xff0c;在职就是上班&#xff0c;博士就是博士&#xff0c;意思就是上班读的博士&#xff0c;当然是对的啊&#xff0c;但是知道字面意思之…