Как сделать, чтобы выбранный тестовый скрипт запускался в сетке селена - PullRequest
0 голосов
/ 15 апреля 2010

Мне нужна помощь .........

Я могу запустить дистанционное управление, используя: ant launch-remote-control

но я не знаю, как мой скрипт подключается к концентратору? Я настроил муравей, селен-сетку на том же компьютере. У меня есть grid.dll, который написан на C # и работает через NUnit. Данные теста считываются из файла xml (ValidData.xml) Пример кода ниже:

с использованием System.Collections.Generic; использование System.Linq; используя System.Text; используя Систему; использование System.Xml; использование System.Text.RegularExpressions; используя System.Threading; используя NUnit.Framework; с использованием селена;

namespace Grid { публичный класс Class1 { // Пользовательский

    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);
        }
    }
}    

}

Шаг я запускаю этот скрипт: 1. Я встраиваю этот скрипт в DLL 2. Я запускаю концентратор с помощью команды "ant lauch-hub" 3. Я запускаю 2 пульта дистанционного управления с помощью команды: ant -Dport = 5566 -Denvironment = "* chrome" запуск-дистанционное управление ant -Dport = 5577 -Denvironment = "* iexplore" запуск удаленного управления 4. Затем я открываю Nunit, загружаю DLL (код выше) и запускаю 5. NUNit ничего не отвечает.

Я думаю, что есть некоторые недостающие вещи, но я не знаю. Как тестовый скрипт (DLL) может узнать, какая последовательность удаленного управления выбрана для запуска теста ????

Пожалуйста, помогите мне! Большое вам спасибо

Юи.

1 Ответ

0 голосов
/ 24 апреля 2010

Я не вижу атрибута [TestFixture] для Class1. Может быть в этом проблема?

Я описал процедуру выполнения тестов на сетке селена здесь: http://slmoloch.blogspot.com/2009/12/design-of-selenium-tests-for-aspnet_19.html., и вы можете скачать источники тестов здесь: http://code.google.com/p/design-of-selenium-tests-for-asp-net/

...