目前做的项目需要大量调用另外一个系统的 http 接口获取数据,
由于系统设计缺陷,一次获取数据调用接口次数非常大。
对方系统忙的时候,偶尔会返回 502 错误。
我这边做了接口调用异常的处理,不过目前没办法测试,最近测试的时候,对方返回都是正常的。
对方系统已经成型,我这边无法控制
我在想有没有这样的软件,能代理我的访问,按配置概率随机返回一些错误码,其他时候返回正确的访问结果。 希望各位赐教。
1
zqz19941106 2023-02-03 10:07:21 +08:00
fiddler
|
2
opengps 2023-02-03 10:09:10 +08:00
5xx 是对方服务器问题,你用代理只是能让中间网络有问题,模拟不了对方的服务器处理报错
|
3
loading 2023-02-03 10:09:27 +08:00
502 错误是内部错误啊,你自己写个 api 接口,先随机数摇塞子,然后直接返回 502 就行了。
浏览器 F12 dev tool 只能模拟慢速网络和脱机。 |
4
killva4624 2023-02-03 10:12:46 +08:00 1
你可以用 nginx 在最前面代理,然后配置 proxy_pass ,把真实的服务器和会随机返回 5XX 的后端一起作为 upstream ,通过 weight 控制权重。
|
5
piaochen0 OP @killva4624 我这边是客户端访问对方的接口,不是 server 端的程序。
|
6
Mithril 2023-02-03 10:19:01 +08:00
fiddler ,直接改一下 auto responder 就可以了。
配置一下 URL ,选那个 502 的 response ,或者你自己改一个。 如果你的匹配条件更复杂的话,也可以自己改脚本来做。 |
7
piaochen0 OP @opengps 我这里只是关心我的客户端是否能获取到数据,对方报的 502 错误我这里要进行重试还有其他的数据补充,对方的服务器处理报错不需要关心。
|
8
Toddd 2023-02-03 10:20:13 +08:00
听起来是 fiddler 和 Charles 能干得事,或者一个 mock
|
9
MossFox 2023-02-03 10:20:26 +08:00
用过一个 node.js http-proxy-middleware 包,可以结合 express 很快地搭一个本地反代理来测试。这种需求下,可以接管实际请求返回时的数据,写一个随机报错 (可以是发送请求之前报错或者是收到响应之后丢弃然后报错,看哪种合理)。
|
10
killva4624 2023-02-03 10:22:32 +08:00
@piaochen0 一样的道理:
客户端 -> 代理 -> (真实 http 接口地址 + 自模拟 502 接口) |
12
MossFox 2023-02-03 10:38:49 +08:00
https://gist.github.com/MossTheFox/eb9ede4c622c4ea65493147efad72ff0
安装两个包: npm i express http-proxy-middleware 如果不熟悉 Node.js 的话,要做的基本就是下面这几步: mkdir temp cd temp npm init -y npm i express http-proxy-middleware 目录结构: 📂 temp - index.mjs (此文件) - package.json (npm 命令创建) 运行: node index.mjs |
13
LLaMA2 2023-02-03 11:03:03 +08:00
别整的那么复杂,直接在你的 http 请求响应里先自己写死,按照一定概率直接无脑替换成 5XX 的 JSON 结果
|
14
perfectlife 2023-02-03 11:07:13 +08:00 via Android
混沌工程应该可以
|
15
xuxu5112 2023-02-03 11:24:36 +08:00
代码里写死,debug 状态下随机忽略请求结果返回一个错误码。
|
16
angryPHP 2023-02-03 14:34:58 +08:00
|
17
unco020511 2023-02-03 15:20:43 +08:00
几乎所有的抓包软件都可以
|
18
paopjian 2023-02-03 16:37:49 +08:00
vmware 里还能设置丢包百分比呢,错误码不应该是本地全测试一遍就好了么
|
19
C603H6r18Q1mSP9N 2023-02-03 16:53:55 +08:00
你自己写个接口,随机返回不同数据和错误码呗
|