使用JMeter HTTP代理来记录来自非浏览器客户端的HTTP请求的JSON

时间:2013-07-04 14:08:00

标签: http proxy jmeter load-testing

我有一个在iPhone模拟器本地运行的客户端程序和用Java编写的本地服务器。客户端通过HTTP请求与服务器通过JSON进行通信。现在我正在尝试使用JMeter记录客户端会话http请求,以将它们用作加载测试服务器的基础。

问题是客户端请求不会抛出JMeter代理。客户端获得501“方法未实现”(这不是因为https,我使用的是http)。 JMeter日志中没有任何关于请求的内容,显然JMeter中没有记录任何内容,请求也没有到达服务器。

有很好的描述步骤来设置JMeter代理来记录来自浏览器的请求,但我的客户端程序不是浏览器。虽然JSON over HTTP是广泛采用的方法,但我在网上找不到有关使用JMeter记录此类请求的任何内容。我理解我需要在客户端做与代理请求时浏览器相同的事情,我发现它是我需要将Host头设置为服务器的主机和端口,但是这不起作用我看不清楚是怎么回事它与501错误客户端获取有关。

如果有人可以解释在客户端应该做什么,或者如何配置JMeter让它知道代理客户端请求的位置或链接任何解释它的手册,那将是很好的帮助。我已经找了几个小时的解决方案,没有运气。请帮忙。

1 个答案:

答案 0 :(得分:0)

你可以看到我的问题和我在下面得到的答案:

Use Jmeter proxy to record HTTP calls from iOS simulator

简而言之: 通过本教程,您可以记录来自Android设备的呼叫: http://blazemeter.com/blog/load-testing-mobile-apps-made-easy

为了与iPhone做同样的事情,请执行以下步骤:

Mac配置:

系统偏好设置 - >网络 - >高级.. - >代理 - >在“Web代理服务器”字段中选中“Web代理(HTTP) - >”,键入您的IP(http://www.wikihow.com/Find-Your-IP-Address-on-a-Mac),然后选择可用端口(我使用的是8080) - > ok - >应用

iPhone配置:

设置 - > WiFi - >选择与Mac一起使用的相同wifi - >再按一下去查看它的详细信息 - >向下滚动 - >在HTTP代理中,选择手动 - > server =您之前找到的mac IP - > port =您选择的端口(可能是8080)

现在您可以使用jmeter录音控制器

开始录制所有“iPhone网络输出”