问题 如何对需要javascript的Web App进行压力测试


已经提出类似的问题( 在Web应用程序上执行压力测试?),但我想测试一个防止双提交并采取一些反XSRF操作的Web应用程序,因此需要评估JavaScripts。

有没有人用需要(和使用)JS和任何经验分享的网络应用程序进行压力测试?

jMeter无法工作我猜...

谢谢!


11179
2017-10-18 22:32


起源



答案:


的Watir

Watir是一个用于自动化Web浏览器的简单开源库。   Watir以与人们相同的方式驱动浏览器。它点击链接,填写表格,按下按钮。 Watir还会检查结果,例如页面上是否显示预期文本。

它驱动Internet Explorer,但也可以在Firefox(以及某种程度上的Safari)中运行。


3
2017-10-19 00:44





Watir和Selenium RC或任何其他完整浏览器解决方案的问题在于它们需要一个完整的浏览器:P

浏览器运行起来非常昂贵,通常需要300MB或更多的RAM。将这些要求乘以100即可,您需要大量硬件。幸运的是,有一个解决方案:我最近创办了一家公司,完全满足您的需求。

查看 http://browsermob.com 并且您可以运行有限的测试(最多25个用户)来感受应用程序。如果您有任何问题,请随时与我们联系!


3
2018-01-02 15:00



Patricky,您的网站在HTTPS实施方面存在问题 - shanabus
我们可以使用Lynx或其他一些低内存浏览器吗? - Jonathan


答案:


的Watir

Watir是一个用于自动化Web浏览器的简单开源库。   Watir以与人们相同的方式驱动浏览器。它点击链接,填写表格,按下按钮。 Watir还会检查结果,例如页面上是否显示预期文本。

它驱动Internet Explorer,但也可以在Firefox(以及某种程度上的Safari)中运行。


3
2017-10-19 00:44





Watir和Selenium RC或任何其他完整浏览器解决方案的问题在于它们需要一个完整的浏览器:P

浏览器运行起来非常昂贵,通常需要300MB或更多的RAM。将这些要求乘以100即可,您需要大量硬件。幸运的是,有一个解决方案:我最近创办了一家公司,完全满足您的需求。

查看 http://browsermob.com 并且您可以运行有限的测试(最多25个用户)来感受应用程序。如果您有任何问题,请随时与我们联系!


3
2018-01-02 15:00



Patricky,您的网站在HTTPS实施方面存在问题 - shanabus
我们可以使用Lynx或其他一些低内存浏览器吗? - Jonathan


可能值得追求的一个解决方案是在Amazon EC2上运行Selenium以提供您所需的可扩展性。有一个 教程 使用Selenium网格附带的样本在Selenium上空。对于小型机器,Windows机器每小时12.5美分,这意味着500机器测试每小时的成本为62.50美元。

优点:

  • Selenium在真实的浏览器中运行,这意味着您的Javascript正在客户端执行
  • 低成本 - 尝试在您自己的硬件上执行此操作会花费更多

缺点:

  • 您必须建立从Amazon到您的应用程序的网络连接

3
2018-01-21 03:26



链接坏了,请更新? - shanabus


我使用的测试人员使用 坏小子 用于负载测试。我相当肯定你可以测试使用javascript的交互,所以你应该能够测试双提交之类的东西。


2
2017-10-18 22:47





就你的后端而言,无论是什么触发请求都无关紧要,无论是来自JavaScript还是负载测试工具,只要请求是 有效

您可以创建一堆虚假请求,这些请求可以执行许多不同的操作(希望能够代表实际的使用模式),并使用负载测试工具来抨击您的Web服务器。

那里有一堆:

  • JMeter的
  • http_load
  • 磨床
  • httpperf

2
2017-10-18 22:48





因为JMeter不是浏览器,所以它不会解释您GETting页面上的JavaScript代码:

JMeter不处理嵌入在HTML页面中的Javascript或applet。   [JMeter Wiki]

所以,你可以做什么?您可以 将WebDriver添加到JMeter测试 并由此评估网页。

Web Driver Sampler自动执行和收集   浏览器(客户端)上的性能指标。很大一部分   到目前为止,性能测试一直在服务器端   的东西。但是,随着技术的进步,HTML5,JS和CSS   改进,越来越多的逻辑和行为被推倒   给客户。这增加了整体感知的表现   网站/ webapp,但此指标在JMeter中不可用。事情   添加到整个浏览器执行时间可能包括:

  1. 客户端Javascript执行 - 例如。 AJAX,JS模板
  2. CSS转换 - 例如。 3D矩阵变换,动画
  3. 第三方插件 - 例如。 Facebook喜欢,双击广告,网站分析等

所有这些都增加了整个浏览器的执行时间,而这一点   项目旨在衡量完成全部渲染所需的时间   这个内容。

官方指南: https://jmeter-plugins.org/wiki/WebDriverTutorial/


1
2017-10-25 14:55





我试过Badboy,这没关系。 SilkTest是一款又重又重的大型工具。它需要大量的编程来启动和运行,但你可以得到一些非常可靠的东西!

如果你只需要从例如压力测试请求IIS日志文件,我有一个自定义构建工具。我很快就会在CodePlex上发布它。


0
2017-10-18 22:51



嗯,SilkTest是专门用于功能测试的工具,对于负载测试,您可能希望使用SilkPerformer的浏览器驱动负载测试。 - tehlexx


硒RC 是另一种选择。


0
2017-10-19 01:05



鉴于每个客户都需要运行浏览器导致可伸缩性问题,我不认为使用Selenium进行压力测试是切实可行的。但它会很好地测试Javascript - Peter Kelley
如果您在AWS上运行测试,则不会出现可伸缩性问题... - Hejazzman


还有相关内容,请查看我最近关于Ajaxian的文章。我认为它很好地解释了为什么真正的浏览器很重要以及为什么执行JavaScript对于负载测试变得越来越重要。

http://ajaxian.com/archives/why-load-testing-ajax-is-hard


0
2018-01-02 15:08





这个领域有一个新工具 叫做k6

它有一种访问DOM的方法,我打算尝试一下 一个专案。

背景故事:

你可以拜访 这个 和 这个博客。

也许它会有所帮助。


0
2018-02-28 05:40