0

我需要帮助......

我可以使用以下命令启动一些远程控制: ant launch-remote-control

但我不知道我的脚本如何连接到集线器?我在同一台计算机上设置了 ant、selenium-grid。我有一个由 C# 编写并通过 NUnit 运行的 grid.dll。测试数据从 xml 文件 (ValidData.xml) 中读取,示例代码如下:

使用 System.Collections.Generic;使用 System.Linq;使用 System.Text;使用系统;使用 System.Xml;使用 System.Text.RegularExpressions;使用 System.Threading;使用 NUnit.Framework;使用硒;

namespace Grid { public class 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 " launch-remote-control ant -Dport=5577 -Denvironment="*iexplore" launch-remote-control 4.然后我打开 Nunit 并加载 DLL(上面的代码)并运行 5.NUnit 没有任何响应。

我认为有一些遗漏的东西,但我不知道。测试脚本(DLL)如何知道选择了哪个远程控制序列来运行测试????

请帮我!!太感谢了

优。

4

1 回答 1

0

我没有看到 Class1 的 [TestFixture] 属性。可能是这个问题?

我在这里描述了在硒网格上执行测试的过程: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/

于 2010-04-24T18:31:04.750 回答