2016-08-12 6 views
0

Ich brauche eine gute Übung, um mit meinem Problem umzugehen.Wie wird die Umgebung konfiguriert, bevor automatisierte Tests ausgeführt werden?

Das Problem ist: Ich muss automatische Tests für eine Website ausführen. Die Website hat verschiedene Konfigurationen, die das Design (auf einigen Seiten) komplett ändern. Zum Beispiel kann ich 2 verschiedene Login-Seiten konfigurieren. Und ich muss beide testen.

Zuerst Ich muss sicherstellen, dass ein korrekter Test gegen eine korrekte Konfiguration ausgeführt wird. Also muss ich vor jedem Test die Konfiguration der Seite ändern. Es ist nicht gut, wenn ich tausend Tests habe.

Also eine Lösung, die mir in den Sinn kommt ist nicht die Seite jedes Mal neu konfigurieren, aber tun Sie es einmal und führen Sie alle Tests, die dieser Konfiguration entsprechen. Aber diese Lösung scheint mir nicht leicht zu machen.

Für jetzt, was ich tat ist: Ich erstellte eine Methode, die einmal vor allen anderen Tests ausgeführt wird, und in dieser Methode konfiguriere ich die Website zu Config, die in den meisten Tests verwendet werden. Alle anderen Tests ändern die Konfiguration vor der Ausführung und ändern sie nach der Ausführung wieder. Es ist überhaupt nicht gut.

Dazu verwendete ich NUnit3 SetUpFixture und OneTimeSetUp Attribute:

/// <summary> 
    /// Runs once before all the test in order to config the environment 
    /// </summary> 
    [SetUpFixture] 
    public class ConfigTests 
    { 
     [OneTimeSetUp] 
     public void RunBeforeAnyTests() 
     { 
      IWebDriver driver = new ChromeDriver(); 
      try 
      { 
       //Here I config the stie 
       CommonActions actions = new CommonActions(driver); 
       actions.SwitchOffCombinedPaymentPage(); 
       driver.Dispose(); 
      } 
      catch (Exception) 
      { 
       driver.Dispose(); 
      } 
     } 
    } 

Was ich danach gedacht ist, dass ich in der Lage sein werden Parameter SetUpFixture zu senden, aber vor allem ist es unmöglich, und Zweitens wird das Problem nicht gelöst, da diese Funktion nur zweimal ausgeführt wird und die Tests mit der letzten Konfiguration ausgeführt werden.

Also Jungs, wie man mit einer Website testen, die viele Konfigurationen hat?

Antwort

1

würde ich einen Testlauf Parameter in der Befehlszeile (oder in den .runsettings-Datei, wenn Sie die VS-Adapter verwenden) verwenden Ihre SetUpFixture diesen Parameter greifen und die Initialisierung und alle einzelnen Vorrichtungen tun, die es brauchen kann es auch greifen.

Die Option --params für die Konsole nitit3 und die Eigenschaft TestContext.TestParameters für den Zugriff auf die Werte anzeigen.

Dies beantwortet Ihre "vor allem ist es unmöglich" Teil. Ich habe nicht "zweitens" geantwortet, weil ich es nicht verstehe. Ich werde mehr hinzufügen, wenn Sie klären können.

Verwandte Themen