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_caSoftware 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 记录与使用谷歌地图的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何获取谷歌位置历史/谷歌地图时间线数据?

谷歌地图与黑莓路线

苹果手机的谷歌地图怎么删除

使用片段的谷歌地图

地图数据不同于谷歌地图

如何使用Openlayers 3加载谷歌离线地图