ich eine Testklasse haben testng verwenden, mit 4 Prüfverfahren, Prüfung einer Website für 4 verschiedenen Browsern, wie dem folgenden Code:Stabilisierende Prüfverfahren in einer Testklasse
public class MyTest {
@Test
public void acceptanceFFTest()
{
}
@Test
public void acceptanceChromeTest()
{
}
@Test
public void acceptanceIETest()
{
}
@Test
public void acceptanceSafariTest()
{
}
@AfterMethod
public void tearDown()
{
webDriver.quit();
}
}
Nach einem Testverfahren beendet die Der Webdriver für diesen Browser wird in @AfterMethod gelöscht, der nächste Browser startet mit dem neuen Webdriver und so weiter.
Mein Problem ist: Wenn ich diese Testmethoden einzeln ausführen, werden sie immer bestanden. Aber wenn ich von der Testklassenstufe als Testsuite mit 4 Testmethoden komme, dann sind manchmal ein oder zwei von ihnen mit NoElementException gescheitert, aber die Ausnahme ist nicht immer auf einer Seite oder einem Element, manchmal hier, manchmal dort. Wenn ich die fehlgeschlagenen Tests erneut alleine ausführe, werden sie bestanden.
Ich denke für die Testklasse Ebene, vielleicht ist das HTTP-Signal manchmal schnell und manchmal ist langsam, die Test-Klasse ist nicht stabil als einzelne Testmethode, ich bin mir nicht sicher.
Gibt es trotzdem eine Stabilisierung? Vielen Dank.
Wie wird die Ausnahme ausgelöst, wenn sie fehlschlägt? Außerdem ist es schwer zu sagen, warum, wenn Sie die Tests nicht teilen. – RemcoW
@RemcoW: Es ist NoElement Ausnahme. Aber es ist nicht immer eine Seite oder ein Element, manchmal hier, manchmal dort. Und wie gesagt, wenn ich gescheiterte Tests wieder alleine mache, sind sie bestanden. Also kann ich nicht wirklich an etwas denken, um sie zu stabilisieren. – Ragnarsson
Sie müssen mehr Code bereitstellen. Ihr Entwurf ist gut und sollte funktionieren, aber ich denke, das Problem ist Ihre Implementierung. – kotoj