开发代理是一种命令行工具,可帮助你模拟云 API 的行为和错误,以帮助构建可复原的应用。
本教程介绍如何安装和运行开发代理。
安装开发代理服务器
安装开发代理的最简单方法是使用 winget。 或者,可手动安装开发代理。
若要使用 winget 安装开发代理,请运行以下命令:
winget install DevProxy.DevProxy --silent
重要
开发代理安装程序向 PATH 添加新条目。 若要在安装后使用开发代理,必须重启命令提示符才能刷新 PATH 环境变量。
安装开发代理的最简单方法是使用 Homebrew。 或者,可手动安装开发代理。
安装开发代理的最简单方法是使用安装脚本。 或者,可手动安装开发代理。
若要使用安装脚本安装开发代理,请运行以下命令:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
如果使用 PowerShell,请运行以下命令:
(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression
首次启动开发代理
首次在计算机上启动开发代理时,需要执行几个步骤,以确保开发代理可以截获来自计算机的请求并成功响应。 首次运行后无需重复这些步骤。
注意
关于证书:开发代理使用本地 SSL 证书 仅在计算机上解密 HTTPS 流量。 这是代理如何查看和修改 API 响应。 证书存储在本地,开发代理不会将任何数据上传到Microsoft。 有关详细信息,请参阅 开发人员代理是否将任何数据上传到Microsoft?
-
启动开发代理。 打开命令提示符会话。 输入
devproxy,然后按 Enter。 -
信任证书。 开发代理安装名为
Dev Proxy CA的证书。 一个警告随即显示。 选择Yes以确认要安装证书。 开发代理使用此证书解密从计算机发送的 HTTPS 流量。 -
允许防火墙访问。 Windows 防火墙阻止代理。 一个警告随即显示。 选择“
Allow access”按钮以允许通过防火墙的流量。
-
启动开发代理。 打开命令提示符会话。 输入
devproxy,然后按 Enter。 -
信任证书。 开发代理安装名为
Dev Proxy CA的证书,该证书用于解密从计算机发送的 HTTPS 流量。 一个警告随即显示。 按 和 键确认要信任证书。 -
接受传入连接。 一个警告随即显示。 选择
Allow进行确认。
启动开发代理。 打开命令提示符会话。 输入
devproxy,然后按 Enter。信任证书。 开发代理使用自定义 SSL 证书解密从计算机发送的 HTTPS 流量。
重要
以下说明适用于 Ubuntu。 对于其他 Linux 分发版,步骤可能有所不同。
若要安装和信任证书,请在新的命令提示符下运行以下命令:
# Export Dev Proxy root certificate openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:"" # Install the certificate sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/ # Update certificates sudo update-ca-certificates
命令提示符显示以下输出:
info 8 error responses loaded from devproxy-errors.json
info Dev Proxy API listening on http://localhost:8897...
info Dev Proxy Listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy
默认情况下,开发代理配置为:
- 截获对任何 JSON 占位符 API 终结点发出的请求
- 模拟 API 错误响应和 API 节流,失败率为 50%
确认开发者代理正常工作
开发代理会截获计算机上的应用程序向向开发代理注册的 URL 发出的请求。 当开发代理检测到请求时,它会将其传递到 API(不采取任何作),或返回响应。 让我们确认开发代理是否按预期工作。
在 PowerShell 中,使用 Invoke-WebRequest cmdlet 将 GET 请求发送到 JSON 占位符 API。
Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts
如果使用 curl,请使用以下命令将 GET 请求发送到 JSON 占位符 API。
curl -ikx http://localhost:8000 https://jsonplaceholder.typicode.com/posts
还可以使用 API 客户端(如 Postman)将 GET 请求发送到 https://jsonplaceholder.typicode.com/posts。
在运行开发代理的命令行中,您可以看到有关请求的信息以及开发代理所执行的动作。 默认情况下,开发代理以 50% 的概率模拟错误响应。 如果请求未返回错误,则开发代理会传递它。
req ╭ GET https://jsonplaceholder.typicode.com/posts
time │ 1/31/2025 12:12:14 PM +00:00
skip │ RetryAfterPlugin: Request not throttled
skip │ GenericRandomErrorPlugin: Pass through
api ╰ Passed through
如果开发代理返回错误响应,则输出中会显示错误消息。
req ╭ GET https://jsonplaceholder.typicode.com/posts
time │ 1/31/2025 12:12:37 PM +00:00
skip │ RetryAfterPlugin: Request not throttled
oops ╰ 403 Forbidden
🎉 你只是模拟了 API 失败,而无需更改任何代码!
你的应用会收到相同的错误。 现在假设测试:
- 如果您的结账 API 发生这种情况,该怎么办?
- 如果用户的配置文件无法加载,该怎么办?
重要
如果在命令提示符中未看到任何输出,则开发代理很可能不会截获请求。 查看 常见问题 部分以获取帮助。
现在测试应用
你刚刚看到 Dev Proxy 未能向演示 API 发起请求。 若要使用自己的应用进行测试,请执行以下作:
查找应用调用的 API URL。 在浏览器的 DevTools 中检查“网络”选项卡,或在代码中查找 HTTP 客户端调用。
使用 URL 运行开发者代理服务:
devproxy --urls-to-watch "https://your-api.com/*"像平常一样使用应用程序。 观察开发代理如何将故障注入到 API 调用中。
需要有关为堆栈配置开发代理的帮助? 请参阅以下指南:
安全地停止开发代理
当不再需要开发代理运行时,你应始终安全地停止它。
- 按 Ctrl + C 安全地停止开发代理。
如果你关闭命令提示符会话,开发代理未正确注销为系统代理,你可能会遇到一些常见问题。
下一步
了解如何根据需要配置 Dev Proxy。 开发代理高度灵活,支持许多不同的方案。 详细了解如何配置它以适应您特定的情景。