2015-06-12 1 views
12

Ich möchte ein Web im Multithreading testen, aber wenn ich zu viele Chromtreiber öffne, verbrauchen sie zu viel Speicher. Kann ich Multi Threading in einem Browser verwenden?Kann Selenium Multi Threading in einem Browser verwenden?

+1

Hi ... meinst du wollen Sie Tests gleichzeitig in verschiedenen Registerkarten aber in einem einzigen Browser (Instanz) Fenster – Vicky

+1

Ja, und jede Registerkarte kann als Threading ausgeführt werden, dann kann ich die URL in der gleichen Zeit öffnen .Wie kann ich tun.Thx. – Roy

Antwort

11

WebDriver ist nicht thread-safe. Das Problem der Thread-Sicherheit ist nicht in Ihrem Code, sondern in der tatsächlichen Browser-Bindungen. Sie alle nehmen an, dass es immer nur einen Befehl gleichzeitig gibt (zB wie ein echter Benutzer). Aber Sie können auf der anderen Seite eine WebDriver-Instanz für jeden Thread instanziieren, aber es werden mehrere Browser gestartet, die mehr Speicher verbrauchen ...

Hoffe, das hilft Ihnen .... Bitte zurück, wenn Sie Fragen haben

9

Das Multithreading sollte auf verschiedenen Instanzen von Webdriver erfolgen, da Webdriver selbst ein einzelner Thread ist.

Verschiedene Threads können auf demselben Webdriver ausgeführt werden, aber dann sind die Ergebnisse der Tests nicht das, was Sie erwartet haben. Lass es mich erklären.

Wenn Sie Multithreading verwenden, um verschiedene Tests auf verschiedenen Tabs auszuführen (das ist nicht unmöglich, ein wenig Coding ist erforderlich), werden die Aktionen, die Sie ausführen, wie Klick- oder Send-Keys, zum geöffneten Tab, das gerade fokussiert ist, gehen unabhängig vom Testlauf. Das bedeutet, dass alle Tests gleichzeitig auf der gleichen Registerkarte ausgeführt werden, auf die der Fokus und nicht auf der gewünschten Registerkarte festgelegt ist.

Sie können über multithreading in Webdriver lesen.