标签: stress-testing

Web应用程序负载测试的最佳实践和文献

作为一名网络开发人员,我曾被问过(在我的职业生涯中有几次)关于我们构建的网站的性能.有时你会得到半模糊的问题,比如"即使在产品发布周期间网站会继续表现良好吗?","该网站能处理一百万用户吗?",甚至" 该网站如何运作? "

当然,这些问题是非常合理的,我总是尽力使用这些问题来回答这些问题

  • 历史数据(谷歌分析/ IIS日志)
  • 网络负载测试工具
  • 服务器性能计数器
  • 经验
  • 直觉
  • 常识
  • 我们的系统管理员提供了一些帮助
  • 我个人对有关软件架构的理解

我通常能够对这些问题给出合理的答案.但是,Web应用程序性能可能受到许多因素的影响(数据库依赖性,缓存策略,并发性问题,等等,用户行为).

我是程序员,而不是一个静态的人,我对这个问题的态度总是让人感到非常不科学.所以我做了一些研究......当我真的在寻找一种理解这些东西的方法时,我的所有谷歌搜索结果似乎都集中在工具,功能和指标(以及更多指标).

问题:有 什么好的资源(书籍?)可以阅读开发人员阅读Web负载测试主题的最佳实践,这将有助于我回答这些类型的问题?

testing performance stress-testing load-testing

15
推荐指数
1
解决办法
3248
查看次数

如何使用硒进行压力测试模拟重载

我有一个测试系统,这是一个视频广告发布技术.我需要像1-2分钟一样加载每个视频来投放广告.这些视频在Flash客户端中播放,并像YouTube一样以FLV流形式流式传输.

我之所以需要仅通过浏览器测试它 - 以及其他所有方法都无法正常工作 - 的原因是同时对视频流服务器和广告服务器进行压力测试并实时显示广告.

我使用过Selenium,W​​atiN,Automation Anywhere和许多其他自动化工具.但是,当我尝试在我的机器上启动10000个浏览器(32GB RAM,16核CPU)时,他们都无法完成这项工作.

使用Selenium,我能够启动目前为止最大的FireFox实例,但这仍然太低:一半实例不运行测试.

有关Selenium的任何建议吗?

selenium automated-tests browser-automation stress-testing

15
推荐指数
1
解决办法
8417
查看次数

在功能较少的硬件上测试Web应用程序

我的组织现在正在进行一场有趣的内部辩论,提出了一个我想向社会开放的问题.

手头的问题是我们的环境,我们在其中进行压力测试,容量测试,性能回归测试等.

争论的一方面是一些软件工程师希望这种环境尽可能地反映生产环境,以使结果尽可能有意义.虽然我们目前确实有这样的测试环境,但它的能力远远低于生产系统,而且这些软件工程师认为他们正在达到他们可以从中学到的极限.

争论的另一方面是一些网络工程师,他们既管理环境又控制钱包.虽然他们承认在能够更好地复制生产环境的环境中容量测试会更好,但他们认为 - 为了压力测试的目的 - 更温和的环境会产生放大性能瓶颈的影响,使它们更容易发现并修复

这最终将我们带到引起我兴趣的部分:一位软件工程师建议,虽然一个更温和的压力环境会增加你遇到一些瓶颈的可能性,但它并不一定意味着它可以帮助你找到你可能遇到的下一个瓶颈在生产中遇到.他认为,缩放效应可能不是线性的.

那个观点是否有价值?如果是,那为什么呢?这种非线性的来源是什么?

这里涉及许多活动部分:一组Java应用程序服务器,一组数据库服务器,为每个HTTP命中生成大量动态内容.


编辑:到目前为止,我很欣赏每个人的想法,但我真的希望有人能做的不仅仅是重新确认一方或另一方并实际解决"为什么"的问题.如果存在这种非线性,会产生什么?更好的是,如果原因表现在CPU,内存,带宽,延迟,子系统之间的交互,你有什么...... TerryE,你来的最近.如果没有其他人加强,您应该重新发布您的评论作为赏金的答案

architecture optimization stress-testing performance-testing

15
推荐指数
3
解决办法
633
查看次数

是否Nginx + php-fpm比Apache + mod-php快得多

我在Apache服务器上运行基于PHP的Web应用程序,后端有大量的php处理.由于整体性能较低,我致力于提高应用程序的性能.首先,我遵循了客户端缓存,gzip启用,js-css缩小等技术,这些技术可以很好地提高性能.

为了进一步提高性能,我想尝试服务器级别的改进.所以我尝试通过在Apache和Nginx服务器上托管它来比较应用程序性能.

  • Nginx版本 - 1.0.15;
  • Apache版本 - 2.2.15;
  • php版本 - 5.4.38;

在Apache I用户Apache + mod-php和Nginx中,我使用Nginx + php-fpm进行比较.正如大多数教程所解释的那样,我将Nginx工作者的数量配置为等于处理器中的核心数量.我用jmeter做了压力测试,下面是我可以用它生成的图表.

在所有这些图中,x轴是我发送的每个请求,y轴是获取每个请求的响应的毫秒数.

访问登录页面

在此输入图像描述

提交登录页面

在此输入图像描述

访问主页

在此输入图像描述

我只能在1秒内执行最多100个并发用户的测试,因为它在两个服务器设置之后开始丢弃请求.

Nginx的性能比Apache有所改善,但是将我的所有服务器架构从Apache更改为Nginx并不是一个主要的区别.当我观察服务器资源利用率时,我发现Nginx和Apache之间并没有太大区别

当我进行人们已经完成的其他比较时,我发现他们声称Nginx在并发访问中要快得多,如下图所示.

http://www.eschrade.com/wp-content/uploads/2014/01/event-mpm-nginx.gif

但我无法观察到Nginx在Apache上的性能有任何重大差异,即使在1秒内有100个并发访问.

以下是我的问题.

  1. 由于有效使用内存和其他资源,Nginx + php-fpm是否比Apache + mod-php更快地进行服务器操作?
  2. Nginx是否仅建议服务器静态竞争而不是重型服务器操作站点?
  3. 有没有更好的方法来配置Nginx以获得更多的性能提升?

php apache performance nginx stress-testing

15
推荐指数
3
解决办法
2万
查看次数

JMeter Scheduler中的开始时间和结束时间

我正在研究JMeter 2.5.1版,我想为我的Thread Group设置一个Scheduler.

我为调度程序字段设置了以下值:

Start Time = 2011/12/13 11:30:00
End Time = 2011/12/13 11:32:00
Duration (seconds) = 3
Startup delay (seconds) = 5
Run Code Online (Sandbox Code Playgroud)

我的线程在延迟5秒后开始并持续运行3秒.但我看不到开始时间和结束时间对我的线程有什么影响.

请告诉我这些字段在运行线程的过程中做了什么.

java testing jmeter stress-testing

13
推荐指数
1
解决办法
2万
查看次数

为什么我无法在jmeter中保存测试计划?

关于测试计划不保存。我右键单击测试计划 - >选择将选择保存为.. - >任何窗口/弹出框都应该打开但没有响应..我正在使用“jdk-16.0.1_windows-x64_bin”和“apache-jmeter-5.4”。 1" 如该屏幕截图所示,我单击了但什么也没得到

testing jmeter stress-testing load-testing performance-testing

13
推荐指数
2
解决办法
1万
查看次数

我应该如何强调测试/加载测试客户端服务器应用程序?

我开发了一个客户端 - 服务器风格,基于数据库的系统,我需要设计一种压力/负载测试系统的方法.客户不可避免地想要了解以下内容:

•服务器可以支持多少客户端?
•服务器支持多少并发搜索?
•我们可以在数据库中存储多少数据?
•等

所有这些问题的关键是响应时间.我们需要能够测量响应时间和性能如何随着新负载的引入而降低,这样我们就可以生成一些我们可以抛给客户端的漂亮图表,让他们知道给定的性能是什么样的.硬件配置.

现在我们只是把手指放在空中,并根据我们从经验中已经了解的系统做出有根据的猜测.由于产品处于更苛刻的条件下,这证明不足以满足我们未来的需求.

我被赋予了设计方法以有意义的方式获得这些答案的任务.我意识到这不是任何人都可以肯定地回答的问题,但我正在寻找有关人们如何在自己的系统上进行此类工作的建议.

需要注意的一点是,我们可以通过Python语言(SWIG提供)完全访问我们的客户端API,这比使用C++更容易使用这种工作.

所以我们去了,我把它扔到了地板上:真的很有兴趣看看你们有什么想法可以想出来!

python database client-server stress-testing load-testing

12
推荐指数
3
解决办法
9349
查看次数

如何为网站设置负载/压力测试?

我的任务是对公司网站进行压力/负载测试,并且不知道这样做.我在google上为"如何加载测试网站"进行的每次搜索都会回来与各种公司和软件进行物理负载测试.

现在我对如何设置负载测试更感兴趣,比如在负载测试之前我应该​​考虑的内容,我的网站中哪些页面应该测试负载以及我想要的东西在进行测试时监控.我们的网站位于一个多层系统上,配有一个单独的数据库服务器(IIS 7 Web服务器,SQL Server 2000 db).我想我想监视Web服务器和数据库服务器以测试负载,但是在设置方案来加载测试Web服务器时我必须使用查询数据库的页面来查看数据库服务器上的任何负载.同一时间.

Web服务器和数据库服务器通常是同时测试还是作为单独的测试完成?

正如你所看到的,我对整个操作一无所知,所以任何关于如何解决这个问题的煽动都会非常有帮助.

仅供参考我一直在修补Pylot并且能够针对我们的网站创建和运行场景,但我不确定在结果中我应该寻找什么,或者我创建的场景甚至是一个值得我们网站测量的场景.

提前致谢.

performance load stress-testing load-testing

12
推荐指数
1
解决办法
8798
查看次数

如何为浏览器测试模拟低CPU处理器机器

我们有一些用户正在使用低CPU供电的机器,他们使用我们的Web应用程序遇到响应时间慢的问题.我有什么方法可以进行测试,以便模拟较低的CPU速率吗?

例如,我有2.3 Ghz的计算能力,我可以降低到1.6 Ghz或更低,以便我可以测试它吗?

顺便说一句,我们的客户正在使用Windows.我必须在Internet Explorer上模拟低计算能力作为浏览器.

testing stress-testing

12
推荐指数
2
解决办法
1万
查看次数

如何在apache基准测试工具中限制每秒请求数

我正在尝试强调测试我的Spring Boot应用程序,但是当我运行以下命令时,ab正在做的是试图给出结果我的应用程序可以保持的最大值.但我需要检查我的应用程序是否可以按每秒特定请求保留.

ab -p req.json -T application/json -k -c 1000 -n 500000 http://myapp.com/customerTrack/v1/send
Run Code Online (Sandbox Code Playgroud)

从上面的命令给出的每秒请求数是4000,但实际上,我的应用程序中缓存了很多记录,这意味着它无法容纳那么多的rps.谁能告诉我如何在 ab 工具中设置每秒的特定请求?谢谢!

spring qa stress-testing

12
推荐指数
1
解决办法
1593
查看次数