
目前做的项目需要大量调用另外一个系统的 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 你可以用 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 你自己写个接口,随机返回不同数据和错误码呗 |