24

我想在多线程中测试一个网络,但是当我打开太多 chromedrivers 时,它们会占用太多内存。我可以在一个浏览器中使用多线程吗?

4

2 回答 2

27

WebDriver 不是线程安全的。线程安全的问题不在于您的代码,而在于实际的浏览器绑定。他们都假设一次只会有一个命令(例如,像一个真实的用户)。但是另一方面,您可以为每个线程实例化一个 WebDriver 实例,但它将启动多个浏览器,这将消耗更多内存。

于 2015-06-14T10:04:47.077 回答
18

多线程应该在 Webdriver 的不同实例上完成,因为 Webdriver 本身是一个单线程。

不同的线程可以在同一个 Webdriver 上运行,但是测试的结果不会是你所期望的。让我解释一下。

当您使用多线程在不同的选项卡上运行不同的测试时(这并非不可能,需要一点编码),您将执行的操作(例如单击或发送键)将转到当前关注的打开的选项卡,而不管测试如何跑步。这意味着所有测试都将在具有焦点的同一选项卡上同时运行,而不是在预期的选项卡上运行。

您可以在 Webdriver 中阅读有关多线程的信息

于 2015-06-14T12:34:33.220 回答