Testing 如何在Web GUI测试自动化中模拟20个用户同时单击一个按钮

Testing 如何在Web GUI测试自动化中模拟20个用户同时单击一个按钮,testing,selenium,web,robotframework,Testing,Selenium,Web,Robotframework,现在我有一个关于Web GUI TA的要求 我想模拟一些用户(20-30岁)同时单击一个按钮,并评估当时Web GUI的性能 我以前使用RobotFrameWork+Selenium库来做Web Gui TA,但据我所知。selenium库一次只能处理一个broswer,所以我现在不知道怎么做 你能给我一些建议吗?需要使用其他库或框架吗?Selenium有一个“网格”选项,可用于配置运行多个浏览器的多个实例 网格允许您: 通过在多台机器上分布测试进行扩展(并行执行) 从一个中心点管理多个环境

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

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

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

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

Selenium有一个“网格”选项,可用于配置运行多个浏览器的多个实例

网格允许您:

通过在多台机器上分布测试进行扩展(并行执行) 从一个中心点管理多个环境,使 针对大量浏览器/操作系统组合运行测试。减少 通过允许您实现自定义 例如,挂钩可以利用虚拟基础设施

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

然而,考虑一下,这可能不是最好的下山路线。类似于multi-mechanize的功能可能更有用:


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

我对这个问题有点困惑:

您想测试GUI吗?如果它像“这个按钮使一个下拉菜单出现”,那么不管有多少用户同时这么做,它要么总是工作,要么永远不工作

是否要在负载下测试服务器?如果是这样,那么Selenium将起作用,但有更好的工具。我已经成功地使用了JMeter,但是这里有一个非常好的列表:


最后,您是否希望在同一浏览器的同一页面上同时按下20个不同的按钮?如果是这样,selenium就不可能做到这一点,它也不是一个标准用例。

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

设置(scn.inject(共20个用户))) .协议(httpConf)


我不确定这是否能解决他的问题,因为他希望点击同时进行。没有证据表明它们会同时发生,因为我不太明白这个问题。另一种方法是向页面添加javascript,在设定的时间单击按钮,然后加载30个选项卡。我不确定这个问题到底需要测试什么。是的,我也不确定。听起来好像他想要负载测试。这不应该来自硒,而不是20个不同的按钮。同时在20个不同浏览器的同一页面上按一个按钮。为什么?是为了给服务器加载吗?如果是这样,我建议使用不同的工具。