0

现在我有一个关于 Web GUI TA 的要求

我想模拟一些用户(20-30)同时点击一个按钮并评估当时Web GUI的性能。

我以前使用 RobotFrameWork + Selenium 库来做 Web Gui TA,但据我所知。selenium 库一次只能处理一个浏览器,所以我现在不知道该怎么做。

你能给我一些建议吗?需要使用另一个库或框架?

4

3 回答 3

2

就像其他人提到的那样,在这种情况下您想要做的不是 UI 测试,而是压力/负载测试。您应该可以轻松尝试Gatling。首先,您记录与单击按钮相关联的 http 请求。然后,您编写一个简单的场景,一次启动此请求 20 次。就像是:

setUp(scn.inject(atOnce(20 个用户))) .protocols(httpConf)

于 2013-10-21T08:02:59.877 回答
0

Selenium 有一个“网格”选项,您可以使用它来配置运行许多浏览器的许多实例。

http://www.seleniumhq.org/projects/grid/ http://www.seleniumhq.org/docs/07_selenium_grid.jsp

网格允许您:

通过在多台机器上分布测试(并行执行)来扩展从一个中心点管理多个环境,从而可以轻松地针对浏览器/操作系统的大量组合运行测试。例如,允许您实施自定义挂钩以利用虚拟基础架构,从而最大限度地减少网格的维护时间。

简而言之,您创建一个管理事物的“集线器”,然后每个“节点”可以根据集线器的要求执行测试。

然而,考虑一下,这可能不是最好的下降路线。像 multi-mechanize 这样的东西可能更有用:http ://testutils.org/multi-mechanize/

这将允许您让许多用户“单击”该按钮,但不是通过浏览器,而是通过直接 HTTP 调用。这可能更适合多用户同时“无头”负载测试,这是我认为您正在尝试做的事情。

于 2013-10-20T11:49:06.370 回答
0

我对这个问题有点困惑:

您想测试 GUI 吗?如果它类似于“此按钮使下拉菜单出现”,那么无论有多少用户同时执行此操作,它要么总是有效,要么永远无效。

您想在负载下测试服务器吗?如果是这样,那么 Selenium 将起作用,但有更好的工具。我已经成功使用了 JMeter,但是这里有一个非常好的列表:http: //performance-testing.org/

最后,你想在同一个浏览器的同一个页面上同时按下 20 个不同的按钮吗?如果是这样,这对于 selenium 是不可能的,也不是标准用例。

于 2013-10-20T18:11:00.607 回答