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