我被要求在我目前工作的公司加载测试网页。 到目前为止,非常好。
但是......项目经理希望测试运行为真实用户生成请求/与网站交互。
在我看来,这就像真正的真实场景:计算机模拟用户与网站实例进行交互记录,导航,购买等等。因此,为了实现这一目标,我开始寻找一些负载测试工具。
自上周以来,我一直在检查其中的两个:Visual Studio Ultimate 2012负载测试工具和JMeter。它们似乎都是执行负载测试的好选择。我已成功创建,运行和配置了两个测试。
我的问题:我无法用它们模仿真实用户。它们都没有运行JS,也没有呈现HTML(据我所知),以及其他类似浏览器的任务。
所以,我的问题是:我可以使用一些oder工具执行此类负载测试吗?或者以 以我还没有听说过的方式?有没有人越过这些问题并有经验分享?
我考虑过创建一个脚本来在线程中启动多个测试,每个测试都运行一次Selenium Web Driver测试。但我不相信这可以适当地扩展,也不能说我至少可以达到令人满意的测试性能。我们的目的是模拟从几个hundread到几千(可能2-3k)同时与网站交互的用户。
感谢您的时间。
答案 0 :(得分:1)
我不知道你如何在这里定义“真实用户”。我对JMeter有一些经验,而我所做的最接近的“真实用户”案例是制作一个脚本,其中包含用户将要执行的典型请求列表。例如:
然后我们在100秒内生成大约100个线程,模仿100个用户X在高时间做同样的事情。通过这种方式,除了一个好的剖析器,我们可以估计当有100个用户同时在线时系统如何执行(例如,平均响应率,最大响应率......)以及哪个功能是瓶颈我们必须考虑优化。
答案 1 :(得分:0)
你说:
我考虑过创建一个脚本来在线程中启动多个测试, 每次运行都可能是Selenium Web Driver测试。
您可以使用NeuStar web performance(以前称为BrowserMob)完成此操作。您上传了几个Selenium脚本并根据这些脚本配置测试。然后NeuStar提供亚马逊云计算机来运行您的场景,监控它们并提供很好的报告。
这不是免费的。对于涉及多达25个用户的测试而言,它非常便宜(几美元),而且您需要的虚拟用户越多,价格就越高。也就是说,它背后的引擎被称为BrowserMob Proxy,它是开源的,所以通过一些努力你可以自己完成。
答案 2 :(得分:0)
使用Visual Studio,您可以记录与UI的交互,然后将这些记录加载到负载测试并运行这些负载测试。您可以记录任何类型的UI交互。因此,我不知道为什么您的行为无法与真实用户匹配。我的asp.net mvc 3网站正在大量使用knockout,json,JS,并且我能够在使用VS ultimate 2012进行负载测试时成功运行我的所有性能测试而没有任何问题,所以我不确定你为什么会遇到问题。 / p>
有关创建UI录制测试和加载测试的详细信息 - http://msdn.microsoft.com/en-us/library/vstudio/dd293540.aspx
如果有人需要有关负载测试策略的一些信息 - 您可以制定各种策略,例如40%的用户将购买产品,60%将只是导航。您可以使用各种策略来查看机器在不同负载下的行为,并找出资源的阈值,然后您需要向上或向外扩展。只要系统响应线性,它应该没问题但是当你看到平均峰值时。响应时间,平均页面时间(秒),这是您需要采取某些行动的时间。
有关构建负载测试策略的详细信息 - http://msdn.microsoft.com/en-us/magazine/cc188783.aspx