问题背景

类似这种沟通很没有效率,不如直接扔一个 cURL,减少沟通来回次数。
image.png
image.png
image.png
image.png

这种情况,在《使用 cURL 提高前后端开发连调中的沟通效率》一文里反复说明了并且给了解决方案。今天又遇到一个情况,就是测试和后端开发的沟通,而且是压测,具体地说,是使用 jmeter 做压测,碰到问题,该怎么把 cURL 导出呢?

以及如果是其他前端开发,调用第三方库,碰到和后端交互的问题,该怎么把请求日志打出来并且打印成 cURL 格式呢?

image.png

解决方案

如果是开发想在日志里将请求打印成 cURL,可以参考《将 FeignClient 的请求记录成 cURL 格式》的思路。但如果不想开发,其实只需要抓包就行了

Web 开发,浏览器自带请求抓包;微信小程序开发,微信小程序开发者工具自带请求抓包。如果原生 APP 开发,或者使用 jmeter 做压测这种情况,就可以使用通用的系统级抓包工具。

抓包工具推荐

在 Windows 系统中,可以使用 Fiddler。在 mac OS 里,可以使用 Charles。

jmeter 压测抓包举例

在 mac OS 里,把 Charles 打开,看一下代理设置:
image.png
记下端口,然后使用代理配置的方式执行 JMeter 命令(详见官方文档http://jmeter.apache.org/usermanual/get-started.html#proxy_server),比如:

shell ➜ jmeter -H localhost -P 8888 -n -t /path/to/your/script.jmx -l test_result.jtl


在 meter 命令跑起来后,你就可以在 Charles 里实时看到发出的请求了:

image.png

要拿到 cURL,只是一个右键的事情:

image.png