2010-04-15 5 views
0

je besoin d'une aide .........Comment faire le testcript sélectionné est exécuté dans la grille de sélénium

je peux lancer un certain contrôle à distance en utilisant: ant de lancement à distance le contrôle

mais je ne sais pas comment mon script se connecte au hub? J'ai mis en place ant, sélénium-grille sur le même ordinateur. J'ai un grid.dll qui est écrit par C# et exécuté par NUnit. Les données de test est lue à partir du fichier XML (ValidData.xml) Le code exemple ci-dessous:

utilisant System.Collections.Generic; en utilisant System.Linq; en utilisant System.Text; en utilisant le système; en utilisant System.Xml; en utilisant System.Text.RegularExpressions; en utilisant System.Threading; en utilisant NUnit.Framework; en utilisant du sélénium;

espace de noms Grille { public class Class1 { // utilisateur défini

private string strURL = "http://gmail.com/"; 
    private string[] strBrowser = new string[3] { "*iehta", "*firefox", "*safari" }; 
    string hubAddress = "192.168.20.131"; // IP of my computer 

    // System defined 
    private ISelenium selenium; 
    private StringBuilder verificationErrors; 

    [SetUp] 
    public void SetupTest() 
    { 

     selenium = new DefaultSelenium(hubAddress, 4444, this.strBrowser[1], this.strURL);// do i need to identify browser when I defined it when launching a remote control 
     selenium.Start(); 
     verificationErrors = new StringBuilder(); 
    } 

    [TearDown] 
    public void TeardownTest() 
    { 
     try 
     { 
      selenium.Stop(); 
     } 
     catch (Exception) 
     { 
      // Ignore errors if unable to close the browser 
     } 
     Assert.AreEqual("", verificationErrors.ToString()); 
    } 

    private string[] name; 

    [Test] 
    public void LoginPassedTest() 
    { 
     try 
     { 
      XmlDocument doc = new XmlDocument(); 
      XmlNode docNode; 

      doc.Load("ValidData.xml"); 
      docNode = doc["TestCase"]; 

      foreach (XmlNode node in docNode) 
      { 
       selenium.Open("/"); 
       selenium.WaitForPageToLoad("50000"); 
       selenium.Type("Email", node["username"].InnerText); 
       selenium.Type("Passwd", node["password"].InnerText); 
       selenium.Click("signIn"); 
       selenium.WaitForPageToLoad("100000"); 
       name = (selenium.GetText("//div[@id='guser']/nobr/b").Split('@')); 

       try 
       { 
        Assert.AreEqual(node["username"].InnerText, name[0]); 
        Assert.AreEqual("Sign out", selenium.GetText(":r6")); 
       } 
       catch (AssertionException e) 
       { 
        verificationErrors.Append(e.Message); 
       } 

       selenium.Click(":r6"); 
      } 
     } 
     catch (AssertionException e) 
     { 
      verificationErrors.Append(e.Message); 
     } 
    } 
}  

}

Étape I exécuter ce script: build 1.I que script dans DLL 2.I démarrer moyeu à l'aide de commande "ant lauch-hub" 3.J'ai démarrer 2 télécommandes en utilisant la commande: ant -Dport = 5566 -Denvironment = "* chrome" lance-commande à distance ant -Dport = 5577 -Denvironment = "* iexplore" lancement-télécommande 4.Ensuite J'ouvre Nunit et la charge DLL (code ci-dessus) et exécutez 5.Le nunit doesnot répondre quoi que ce soit.

Je pense qu'il ya des choses qui manquent, mais je ne sais pas. Comment le script de test (DLL) peut-il savoir quelle séquence de contrôle à distance est sélectionnée pour exécuter le test?

S'il vous plaît aidez-moi !! Merci beaucoup

Yui.

Répondre