Ich habe zwei Methoden wie unten gezeigt. Ich führe die Suite unter Verwendung testng.xml
durch thread-count="2" parallel="methods"
halten, so dass alle @Test
Methoden parallel ausgeführt werden.Wie synchronisiert man den Zeilen-zu-Zeilen-Fluss von zwei Methoden beim Testen der parallelen Ausführung?
@Test
//this method will be executed in firefox
public void method1(){
WebDriver driver=new FirefoxDriver();
driver.get("https://google.co.in");
line2;
line3;
}
@Test
//this method will be executed other window of firefox
public void method2(){
WebDriver driver=new FirefoxDriver();
driver.get("https:gmail.com"); //has to be executed only after the opening of google in method1
line2; //has to be executed after the line2 of method1
line3; //has to be executed after the line3 of method1
}
Zwei Methoden werden parallel ausgeführt, ohne voneinander abhängig zu sein. Aber gemäß meiner Anforderung (erwähnt in den Code-Kommentaren) ist es möglich, die Ausführung von method2 von der Ausführung von method1 abhängig zu machen?
..here dependsOnMethods wird die zweite Methode erst nach der vollständigen Ausführung von method1 laufen. Aber ich möchte eine Synchronisation zwischen Zeile 1 von Methode 1 zu Zeile 1 von Methode 2 und so weiter, d. H. Zeile 1 von Methode 2 sollte nur nach der Ausführung von Zeile 1 von Methode 1 ausgeführt werden. Bitte kommentieren Sie noch einmal für eine Klarstellung. – Toothless
Wenn dies der Fall ist, müssen Sie in beiden Methoden Ihre eigene Synchronisationslogik schreiben. Erwerben Sie in Methode 1 eine Sperre und führen Sie die Logik aus, und geben Sie die Sperre frei. Bis Sie die Lock-Methode loslassen, wartet 2 auf eine Sperre. – CARE