如何模拟 Web 浏览器或仅模拟 Flash 插件来对基于 Flash 的 Web 应用程序进行负载测试?
我想我不需要网络浏览器,因为网络功能内置于独立播放器中。 我只需要某种 .NET 组件,它允许我以编程方式启动数百个 Flash 播放器(没有 UI)播放特定的 SWF 文件以进行负载测试。 SWF 文件访问网络服务并下载其他 SWF 文件,但一旦加载到播放器中,基本上会自行运行完成。
如果这样的组件还允许我检测它何时在一段时间内不再访问网络或接收指示 SWF 已完成其工作的消息,那就太好了,此时我将终止该实例Flash 播放器并启动一个新的播放器。
也许我可以使用现有的 Flash 播放器,但我不想真正启动一个带有 UI 的播放器,我基本上需要编写一个没有 UI 的播放器,因为如果我要在一台机器上运行数百个播放器,我不需要实际渲染所有图形的开销。 我可能会将其作为分布式应用程序在多台计算机上运行。
有什么想法吗?
I guess I don't need the web browser, since network capabilities are built into the stand-alone player. I just need some kind of .NET component which will allow me to programatically start hundreds of flash players (with no UI) playing a specific SWF file for load testing purposes. The SWF file accesses a network service and downloads other SWF files, but basically runs on its own to completion once loaded into the player.
It would be nice if such a component would also allow me to detect when it is no longer accessing the network for a period of time or receive a message indicating that the SWF has finished its work, at which point I would terminate that instance of the flash player and start up a new one.
Perhaps I could use the existing flash player, but I don't want to actually start a player with a UI, I basically need to program a player with no UI, because if I'm going to be running hundreds of them on one machine, I don't need the overhead of actually rendering all the graphics. I will probably have this running on multiple machines as a distributed application.
Any thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
服务器关心的只是请求的顺序,这就是您想要模拟的内容。
如果 SWF 使用 HTTP 进行内容请求,JMeter 或 siege 将是一些可以帮助实现这一点的免费工具。 另外还有很多商业负载测试工具。 我可以告诉你我的公司使用的那个成本“很多”,但是当我在交给 QA 之前进行测试时,我倾向于使用 JMeter 或 siege。
如果您正在测试流媒体,这会变得更加复杂,您可能必须将系统作为单独的组件进行验证。
我向所有尝试进行负载测试的人推荐 Allspaw 这本书。
http://my.safaribooksonline.com/9780596518578
All the server cares about is the sequence of requests, that's what you want to simulate.
If the SWF uses HTTP for its content requests, JMeter or siege would be some free tools that help with that. Otherwise there are many commercial load testing tools. I can tell you the one that my company uses costs "lots", but I tend to use JMeter or siege when I do my testing before handing off to QA.
If you are testing streaming media, that becomes a bit more complex and you will probably have to validate your system as individual components.
I suggest the Allspaw book to anyone trying to do load testing.
http://my.safaribooksonline.com/9780596518578
如果您需要真正的浏览器(都安装了 Flash 10),请查看我的公司 BrowserMob。 它有效地执行“Selenium 负载测试”。 我们的许多客户使用我们的服务进行 Flash 自动化,这比传统的协议级负载测试容易得多。
If you need real browsers (which all have Flash 10 installed), check out my company, BrowserMob. It effectively does "Selenium load testing". A lot of our customers do Flash automation using our service and it is a LOT easier than traditional protocol-level load testing.
如果您确信除了运行 Flash 影片之外什么都不起作用,请获取用于生成基于浏览器的屏幕截图(如 Thummer)的脚本之一。 这些将加载您在 Firefox 或 Safari 中提供的页面,您可以调整它们以疯狂循环并允许 Flash 影片运行。
UI 测试工具(例如 firefox 的 selenium)也可以让您编写想要执行的操作的脚本并启动自动序列。
我也同意 Ditto 的观点——JMeter 不仅会模拟请求,还会在完成后为您提供一些可用的指标。 如果你自己用一堆浏览器来做,你怎么知道瓶颈在哪里?
If you're convinced that nothing will work except running the flash movie, grab one of the scripts for generating browser-based screenshots like Thummer. These will load the page you give it in either Firefox or Safari, and you can tweak them to loop like crazy and allow the flash movie to run.
A UI testing tool like selenium for firefox may also work to let you script what you want to do and fire off an automated sequence.
I also agree with Ditto -- JMeter will not only simulate the requests, but give you some usable metrics when you're done. If you do it yourself with a bunch of browsers, how will you know where the bottlenecks are?