0

我被要求在我目前工作的公司加载测试网页。到目前为止,一切都很好。

但是.....项目经理希望以真实用户的身份运行测试,生成请求/与网站交互。

在我看来,这是要实现的真实场景:计算机模拟用户与网站实例交互记录、导航、购买等。因此,为了实现这个目标,我开始寻找一些负载测试工具。

自上周以来,我一直在检查其中的两个:Visual Studio Ultimate 2012 负载测试工具和 JMeter。它们似乎都是执行负载测试的好选择。我已经成功地使用它们创建、运行和配置了测试。

我的问题:我无法用他们模拟真实用户。他们都不运行 JS,也不渲染 HTML(据我所知),以及其他类似浏览器的任务。

所以,我的问题是:我可以使用一些其他工具执行这样的负载测试吗?或者也许以我从未听说过的方式与他们在一起?有没有人遇到过这些问题并有经验可以分享?

我考虑过创建一个脚本来启动多个线程中的测试,每个测试都可能运行一个 Selenium Web Driver 测试。但我不相信这可以适当地扩展,也不相信我至少可以达到令人满意的测试性能。我们的目的是模拟从几百到几千(可能是 2-3k)同时与网站交互的用户。

感谢您的时间。

4

3 回答 3

1

我不知道您如何在这里定义“真实用户”。我对 JMeter 有一些经验,我做过的最接近的“真正的类似用户”的案例是制作一个包含用户将执行的典型请求列表的脚本。例如:

  1. 用户 X 登录网站。
  2. 用户 X 请求一个页面来查看他的个人资料
  3. 用户 X 更新他的信息
  4. 用户 X 通过点击一个随机朋友的名字来请求他朋友的页面
  5. 用户 X 退出

然后我们在 100 秒内生成大约 100 个线程,模拟 100 个用户 X 在高时间做同样的事情。通过这种方式,结合一个好的分析器,我们可以估计当有 100 个用户同时在线时系统的性能(例如,平均响应率、最大响应率......)以及哪个函数是瓶颈我们必须考虑优化。

于 2013-03-28T06:56:16.557 回答
0

使用 Visual Studio,您可以记录与 UI 的交互,然后将这些记录加载到负载测试中并运行这些负载测试。您可以记录任何类型的 UI 交互。所以我不知道为什么您的操作无法与真实用户匹配。我的 asp.net mvc 3 站点正在大量使用淘汰赛、json、JS,我能够在使用 VS Ultimate 2012 进行负载测试时成功运行所有性能测试而没有任何问题,所以我不确定你为什么会遇到问题。

有关创建 UI 记录测试和负载测试的详细信息 - http://msdn.microsoft.com/en-us/library/vstudio/dd293540.aspx

如果有人需要有关负载测试策略的一些信息- 您可以构建各种策略,例如 40% 的用户将购买产品,而 60% 的用户将只是导航。您可以使用各种策略来查看您的机器在不同负载下的表现,并找出资源的阈值是多少,然后您需要扩大或扩大规模。只要系统响应线性,它应该没问题,但是当您看到平均峰值时。响应时间,平均 页面时间(秒),这是您需要采取一些行动的时间。

有关构建负载测试策略的详细信息 - http://msdn.microsoft.com/en-us/magazine/cc188783.aspx

于 2013-09-20T18:57:00.233 回答
0

你说:

我考虑过创建一个脚本来启动多个线程中的测试,每个测试都可能运行一个 Selenium Web Driver 测试。

您可以使用NeuStar 网络性能(以前称为 BrowserMob)做到这一点。您上传几个 Selenium 脚本并基于这些脚本配置测试。然后 NeuStar 配置 Amazon 云机器来运行您的场景、监控它们并提供漂亮的报告。

它不是免费的。对于涉及多达 25 个用户的测试来说,它非常便宜(几美元),而您需要的虚拟用户越多,它的价格就越高。也就是说,它背后的引擎叫做BrowserMob Proxy,它是开源的,所以你可以自己做一些努力。

于 2013-03-28T18:40:11.760 回答