有什么软件能模拟 http 接口访问不稳定的情况?

2023-02-03 10:04:50 +08:00
 piaochen0

目前做的项目需要大量调用另外一个系统的 http 接口获取数据,
由于系统设计缺陷,一次获取数据调用接口次数非常大。
对方系统忙的时候,偶尔会返回 502 错误。
我这边做了接口调用异常的处理,不过目前没办法测试,最近测试的时候,对方返回都是正常的。
对方系统已经成型,我这边无法控制

我在想有没有这样的软件,能代理我的访问,按配置概率随机返回一些错误码,其他时候返回正确的访问结果。 希望各位赐教。

1966 次点击
所在节点    问与答
19 条回复
zqz19941106
2023-02-03 10:07:21 +08:00
fiddler
opengps
2023-02-03 10:09:10 +08:00
5xx 是对方服务器问题,你用代理只是能让中间网络有问题,模拟不了对方的服务器处理报错
loading
2023-02-03 10:09:27 +08:00
502 错误是内部错误啊,你自己写个 api 接口,先随机数摇塞子,然后直接返回 502 就行了。

浏览器 F12 dev tool 只能模拟慢速网络和脱机。
killva4624
2023-02-03 10:12:46 +08:00
你可以用 nginx 在最前面代理,然后配置 proxy_pass ,把真实的服务器和会随机返回 5XX 的后端一起作为 upstream ,通过 weight 控制权重。
piaochen0
2023-02-03 10:15:26 +08:00
@killva4624 我这边是客户端访问对方的接口,不是 server 端的程序。
Mithril
2023-02-03 10:19:01 +08:00
fiddler ,直接改一下 auto responder 就可以了。
配置一下 URL ,选那个 502 的 response ,或者你自己改一个。

如果你的匹配条件更复杂的话,也可以自己改脚本来做。
piaochen0
2023-02-03 10:19:34 +08:00
@opengps 我这里只是关心我的客户端是否能获取到数据,对方报的 502 错误我这里要进行重试还有其他的数据补充,对方的服务器处理报错不需要关心。
Toddd
2023-02-03 10:20:13 +08:00
听起来是 fiddler 和 Charles 能干得事,或者一个 mock
MossFox
2023-02-03 10:20:26 +08:00
用过一个 node.js http-proxy-middleware 包,可以结合 express 很快地搭一个本地反代理来测试。这种需求下,可以接管实际请求返回时的数据,写一个随机报错 (可以是发送请求之前报错或者是收到响应之后丢弃然后报错,看哪种合理)。
killva4624
2023-02-03 10:22:32 +08:00
@piaochen0 一样的道理:
客户端 -> 代理 -> (真实 http 接口地址 + 自模拟 502 接口)
opengps
2023-02-03 10:24:16 +08:00
@piaochen0 #7 那你自己做个 webapi 就行了,用修改 hosts 方式实际调用自己的模拟 webapi
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
LLaMA2
2023-02-03 11:03:03 +08:00
别整的那么复杂,直接在你的 http 请求响应里先自己写死,按照一定概率直接无脑替换成 5XX 的 JSON 结果
perfectlife
2023-02-03 11:07:13 +08:00
混沌工程应该可以
xuxu5112
2023-02-03 11:24:36 +08:00
代码里写死,debug 状态下随机忽略请求结果返回一个错误码。
angryPHP
2023-02-03 14:34:58 +08:00
unco020511
2023-02-03 15:20:43 +08:00
几乎所有的抓包软件都可以
paopjian
2023-02-03 16:37:49 +08:00
vmware 里还能设置丢包百分比呢,错误码不应该是本地全测试一遍就好了么
shanghai1998
2023-02-03 16:53:55 +08:00
你自己写个接口,随机返回不同数据和错误码呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/912785

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX