JMeter 记录与使用谷歌地图的应用程序
Posted
技术标签:
【中文标题】JMeter 记录与使用谷歌地图的应用程序【英文标题】:JMeter Recording with applications using Google Maps 【发布时间】:2014-09-26 15:54:54 【问题描述】:在使用 Google 地图的应用程序中通过 JMeter 进行记录时遇到了一点问题。
每当我在 Firefox (localhost:8080) 上启用代理时,当代理处于活动状态时,谷歌地图将停止在我导航到的任何页面上显示。
这给我带来了问题,因为我希望在我的应用程序上记录的大部分功能都驻留在页面上的 Google 地图窗口中,并且显示为一个空白窗口。
感谢您的帮助, 谢谢,
【问题讨论】:
【参考方案1】:我敢打赌,你有一堆 Received fatal alert: unknown_ca
和 Software caused connection abort: recv failed
消息。这就是谷歌保护自己免受MITM 攻击的方式。
一般我不建议自己对谷歌地图进行性能测试,它应该由谷歌工程师测试,所以通常的做法是exclude external sites 并专注于你的应用程序。
如果您仍需要记录 Google Maps 操作并将其转换为 JMeter 请求,这仍然是可能的,但这不是性能测试领域通常所做的,您可以使用 JMeter Chrome Extension 或以下嗅探器工具之一:
Fiddler HTTP Analyzer Wireshark并根据嗅探器输出手动构造相关请求。
【讨论】:
您好 Dmitri,感谢您的及时答复。我得到的错误如下:“ReferenceError: google is not defined。”我需要测试的不是 GoogleMaps 本身,而是由我们的软件生成的位于 GoogleMaps 之上的叠加层。如果无法测试这些叠加层,我将无法测试大约 80% 的应用程序,因为该功能非常依赖这些地图叠加层。 BlazeMeter 插件是否需要花钱,它会将所有内容记录到我的记录控制器,还是会转到某个云?猜猜没有其他办法了吗?谢谢google is not defined
在我看来像是一个 javascript 错误。 JMeter 不是浏览器,它不能执行客户端 JavaScript。关于插件 - 它是免费使用的,它可以将记录的数据导出到 JMeter 的 .jmx 文件中。【参考方案2】:
我在通过 JMeter 代理记录脚本时发现了同样的问题,我们通过谷歌 API 获得自动建议位置的文本框从未呈现。我们还看到了“ReferenceError: google is not defined” JavaScript 错误。这是我作为解决方法所做的
-
安装了一个 chrome 插件 (BlazeMeter) 来捕获通过浏览器发送的所有 HTTP 请求、标头和 cookie,而无需代理。 (确保关闭所有选项卡并仅打开您的应用程序)
在 JMeter 脚本中为所有转换为我尝试执行的事务的请求手动创建采样器
根据每个请求的需要手动添加标头和cookie信息
使用 JMeter java API 以编程方式分别通过参数化读取请求/响应标头和 cookie。
【讨论】:
以上是关于JMeter 记录与使用谷歌地图的应用程序的主要内容,如果未能解决你的问题,请参考以下文章