使用网站模拟多个用户

时间:2013-10-10 07:52:56

标签: web simulation multiple-users

我正在开发一个网站(基本上是面向公众的网站)。 如何模拟多个用户浏览我的网站并进行各种活动,以便了解我的网站在实时环境中的行为?

我正在使用Apache服务器和PHP。

8 个答案:

答案 0 :(得分:5)

如前几篇文章所述,您需要一个负载测试工具。好消息是这个领域有很多工具和服务:像JMeter和Gatling这样的开源负载测试,像Loadrunner和Neoload这样的商业用途,坏消息是你必须回答一些问题并做出一些决定。

您需要做出的一个关键决定是,是在实验室还是在云中测试您的应用程序。

  • 基于云的测试:Blazemeter,soasta,neustar ......
  • 实验室内测试:JMeter,Gatling,Neoload,loadrunner,webperformer ....

此外,您需要回答以下问题:

  • 您要模拟多少个虚拟客户端以强调服务器

  • 你有多少预算

  • Web应用程序的复杂程度

  • 测试人员有多少技能。

如果您有高预算,复杂的Web应用程序和具有良好技能的测试人员(如开发人员),您可以考虑使用Loadrunner,NeoLoad。

如果你的预算很低但你的测试人员有很好的技能,你可以考虑Jmeter和Gating。

如果您需要模拟大量虚拟客户端(比如10000)来强调您的复杂网站而您的测试人员没有开发人员/程序员的技能,您可能需要考虑NetGend 。有一个blog站点,您可以在其中找到复杂的性能测试(如填写HTML表单,从JSON消息中提取值等)以及它在NetGend平台上的容易程度。顺便说一句,你不需要NetGend的高预算。

您的负载/性能测试非常幸运!

答案 1 :(得分:2)

你想要的是一个负载测试工具,有几个但是id检出Neoload。您还可以使用Selenium以及各种方式自动运行selenium测试

答案 2 :(得分:1)

我建议加载测试。它基于scala,但提供了一个记录器来生成工作负载测试用例。

=> http://gatling-tool.org/

答案 3 :(得分:1)

为测试工具评估设置一些维度以模拟用户流量非常重要:

  • SLA详细信息(性能目标,如每秒页数(PPS),每秒http请求数(HPS),吞吐量,CPU使用率等)。
  • 要模拟的虚拟用户大小(您需要此信息来决定数量 奴隶PC / VM,换句话说,根据虚拟用户号称为负载生成器 范围)
  • 脚本相对于更改的维护成本
  • 努力开发和执行测试脚本
  • 测试场景数
  • 调度需求(您可能希望定期或安排工具) 如果需要,按需执行测试)
  • 测试工具许可和ROI(投资回报)​​计算的预算(价格,工具 专业成本,在其他Web应用程序上使用测试工具等)
  • 测试工具提供的指标
  • 监控网络,服务器和客户端的要求
  • 与当前测试基础架构集成(如果HP ALM存在,您可能对Loadrunner感兴趣)

如果您赶时间并且没有时间评估选择哪种工具,您可以从JMeter开始。

Selenium可以用于回归测试的测试自动化,我想强调它由于其API而对性能测试无效。 Sahi是测试自动化的另一种选择。

答案 4 :(得分:1)

由于这是您第一次参与此任务,因此建议您找到一位曾经去过那里的人,并通过此活动开发出战斗伤痕。对一块软件进行性能测试并不是一项微不足道的工作。如果你听传统的软件供应商,他们会告诉你,任何商业分析师都可以使用这个工具并且有效。好像该工具具有85-95%的技能,您需要能够成功地对应用程序或站点进行性能测试。这是消除销售障碍的营销方式。

实际上,您选择的工具占您需要成功的总技能组合的5-15%。此外,如果失败的财务风险足以保证性能测试,那么几乎不重要的是您选择哪种工具,因为工具的成本和专业知识将因您没有扩展的财务风险而相形见绌。

如果您没有时间开发技能或有足够的时间来获得可靠的性能测试人员,那么您可能需要考虑市场上的一些托管服务产品,例如SOASTA,它可以提供专业知识和交易中捆绑的工具。以下是您希望在任何测试(常见问题)之前查看的一些内容

  • 负载均衡器配置错误导致一个节点的负载失真
  • 未正确管理静态资源(.jpg,.css,...)的缓存期限,导致负载高于预期
  • 对数据库的所有查询查询都应进行索引优化。使用数据库分析器检查此
  • 持有资源太久了。如果您的第95百分位页面到页面请求延迟是五分钟,那么不要将您的超时设置为30分钟或90分钟的HTTP会话。这将为死亡会议留下太久的资源。我使用第95百分位值乘以1.5的经验法则。
  • 如果这是一个购物网站,那么就不要向出现的每个人分发一个默认购物车。确保它们在您购物车之前处于收益路径上,例如查看购物车或在购物车中放置物品。否则,您刚刚与每个客户以及从Web服务器到应用服务器到创建和管理购物车的数据库服务器的每个架构建立了1:1的关系。
  • 同样在购物车前面,实施100x100规则。如果有人在购物车中有100件物品,请拿起电话并打电话给他们个性化销售。如果您拥有永不过期的永久性推车,那么请考虑实施100天规则,以便从该年龄段的购物车中撤离或完全杀死那段时间内没有触及的购物车。这些人显然不在收入的道路上。
  • 考虑一下您的电子商务设计。添加到购物车和结帐之间的每一步都是放弃销售的机会。步骤越少,转换率越高:这是亚马逊单击结账后面的天才。最大限度地减少步骤数量,您将看到更高的收入流量。

答案 5 :(得分:1)

我认为您肯定在寻找像Blazemeter这样的负载测试工具。我最近发现了this网络研讨会,它向您展示了如何使用PaaS提供程序作为开发和运行时环境对您的应用程序进行负载测试,您可以在其中部署应用程序以运行负载测试。在这种情况下,他们将Blazemeter与监控工具New Relic相结合,以查看您在网站上搜索新用户的方式。它非常酷且非常有趣,因为您可以了解具有特定基础架构的应用程序的性能。

答案 6 :(得分:1)

简单。

  1. 设置服务器/应用程序监控 - New Relic是最简单,最强大的。免费14天。
  2. 记录典型用户的活动 - 使用JMeter在笔记本电脑上设置代理,并通过它来路由Web请求,移动应用程序使用等。听起来很难但很容易。 JMeter可以充当中间人,并捕获浏览器/应用程序发送给服务器的所有请求。
  3. 现在你"克隆"以上用户根据您的需要/可能多次爆炸服务器。最初,您从开发机器运行负载测试。在cpu / ram耗尽之前,我的最多可能需要80个并发用户。超越这个级别探索BlazeMeter(免费50个并发用户),jmeter-ec2脚本(免费),flood.io等。上传你的脚本并在你的服务器上爆炸。理想情况下,您应该在服务器上运行增量压力测试。 10个用户,50个用户,100个用户,200个用户等。
  4. 分析,修复问题&增加压力 - 在每次压力爆炸之间,重新审视你的新遗物。应用程序如何?服务器执行?什么失败了?警报如何工作?

答案 7 :(得分:0)

如果您还在搜索UI测试,您应该查看Sahi Pro 6自动测试工具,它也可以与Jenkins集成。

==> http://sahipro.com/

在任何浏览器上记录用户操作并只回放录制的脚本非常容易。 您可以在多个浏览器上同时运行脚本,从而模拟浏览页面的多个用户:

https://sahipro.com/docs/using-sahi/playback-desktop.html#Distributed%20Runs%20-%20More%20Information