现在我有一个关于 Web GUI TA 的要求
我想模拟一些用户(20-30)同时点击一个按钮并评估当时Web GUI的性能。
我以前使用 RobotFrameWork + Selenium 库来做 Web Gui TA,但据我所知。selenium 库一次只能处理一个浏览器,所以我现在不知道该怎么做。
你能给我一些建议吗?需要使用另一个库或框架?
现在我有一个关于 Web GUI TA 的要求
我想模拟一些用户(20-30)同时点击一个按钮并评估当时Web GUI的性能。
我以前使用 RobotFrameWork + Selenium 库来做 Web Gui TA,但据我所知。selenium 库一次只能处理一个浏览器,所以我现在不知道该怎么做。
你能给我一些建议吗?需要使用另一个库或框架?
就像其他人提到的那样,在这种情况下您想要做的不是 UI 测试,而是压力/负载测试。您应该可以轻松尝试Gatling。首先,您记录与单击按钮相关联的 http 请求。然后,您编写一个简单的场景,一次启动此请求 20 次。就像是:
setUp(scn.inject(atOnce(20 个用户))) .protocols(httpConf)
Selenium 有一个“网格”选项,您可以使用它来配置运行许多浏览器的许多实例。
http://www.seleniumhq.org/projects/grid/ http://www.seleniumhq.org/docs/07_selenium_grid.jsp
网格允许您:
通过在多台机器上分布测试(并行执行)来扩展从一个中心点管理多个环境,从而可以轻松地针对浏览器/操作系统的大量组合运行测试。例如,允许您实施自定义挂钩以利用虚拟基础架构,从而最大限度地减少网格的维护时间。
简而言之,您创建一个管理事物的“集线器”,然后每个“节点”可以根据集线器的要求执行测试。
然而,考虑一下,这可能不是最好的下降路线。像 multi-mechanize 这样的东西可能更有用:http ://testutils.org/multi-mechanize/
这将允许您让许多用户“单击”该按钮,但不是通过浏览器,而是通过直接 HTTP 调用。这可能更适合多用户同时“无头”负载测试,这是我认为您正在尝试做的事情。
我对这个问题有点困惑:
您想测试 GUI 吗?如果它类似于“此按钮使下拉菜单出现”,那么无论有多少用户同时执行此操作,它要么总是有效,要么永远无效。
您想在负载下测试服务器吗?如果是这样,那么 Selenium 将起作用,但有更好的工具。我已经成功使用了 JMeter,但是这里有一个非常好的列表:http: //performance-testing.org/
最后,你想在同一个浏览器的同一个页面上同时按下 20 个不同的按钮吗?如果是这样,这对于 selenium 是不可能的,也不是标准用例。