是否可以在JMeter代理上记录带有3G的Android设备的http / https请求?

时间:2015-04-25 05:41:23

标签: android proxy jmeter load-testing 3g

是否可以在JMeter代理上记录来自具有3G的Android设备的http / https请求?

我们有一个客户端 - 服务器应用程序。服务器是驻留在远程PC上的Web应用程序。客户端是一个在Android设备上运行并与服务器交互的Android应用程序。

当Android用户正在旅行时,客户端应用程序将继续使用谷歌地图/ GPS向服务器发送当前位置。服务器使用它来连续跟踪客户端。

我需要为此方案执行负载测试。这就是服务器在必须跟踪1000个Android客户端应用程序用户的长距离(最多20 - 30千米)时的性能

我能够使用JMeter代理uisng WiFi连接记录此负载测试场景。但不是3G连接。使用WIFI,我们可以记录最多100米的跟踪。因此,对于超过100米或更长的距离,我们需要使用3G。

Android设备中的JMeter代理设置适用于WiFi连接但不适用于3G数据连接。

我在3G的APN设置中更改了代理设置。但是,它没有用。我已经在google中搜索过,并在下面找到了有关在APN设置中更改代理设置的链接,但它们无效。

http://www.techverse.net/how-to-setup-proxy-server-3g-4g-data-connection-android-phone/

https://sebastian.expert/changing-proxy-settings-for-3g-mobile-data-in-android-without-root/

请帮忙。顺便说一下,使用的3G连接是Airtel和IDEA。

2 个答案:

答案 0 :(得分:0)

出于兴趣,您为什么需要模拟来自不同位置的客户?在负载测试中,大多数情况下都忽略了功能检查以支持性能。不过这里有可能的选择:

我怀疑运行JMeter的机器是否可通过互联网使用,我的期望是你坐在NAT后面,因此移动设备无法解析你在Android APN设置中设置的内容。联系您的IT团队,也许他们可以帮助您建立VPN连接。

如果您正在寻找一种模拟网络带宽比WiFi慢的方法,可以将以下行添加到 user.properties 文件中(该文件位于JMeter安装的/ bin文件夹中)< / p>

  • httpclient.socket.http.cps=1843200 - 适用于3G
  • httpclient.socket.http.cps=19200000 - for 4G

有关更多信息和选项,请参阅Controlling Bandwidth in JMeter to simulate different networksApache JMeter Properties Customization Guide

如果您的目标是模拟来自不同位置的用户,则从不同位置录制测试并不是一个非常智能的解决方案。我宁愿选择以下内容:

  • 检查记录的请求。我非常确定客户的坐标是以某种方式传递的
  • 找到客户端纬度和经度的参数,并用__Random()函数替换它们。您可以在那里设置最小值和最大值,以限制IDEA和Airtel覆盖的地理区域范围。

答案 1 :(得分:0)

  

Android设备中的JMeter代理设置适用于WiFi连接,但不适用于3G数据连接。

我不明白为什么你需要从远程客户端录制,就像我在上面的评论中所说的那样。除非您专门为本地用户和远程用户提供不同的内容,否则您将看到相同的JMeter脚本,无论您是本地录制还是通过3G录制。您可能会混淆来自不同网络位置的录制,并在不同的网络位置运行测试。

但是,如果您仍然需要通过3G访问JMeter代理,出于某种原因:

您的JMeter代理无法通过3G访问,因为您的JMeter代理IP可能是本地IP而非公共IP。如果您在NATed网络中执行此操作,则需要在面向外部的网络设备上设置端口转发,以便能够访问运行JMeter代理的服务器。