【问题标题】:Selenium Webriver test using for load test ,recognize only first instance of the test and rest are giving errorSelenium Webdriver 测试用于负载测试,只识别测试的第一个实例,其余的都给出错误
【发布时间】:2018-06-21 21:37:49
【问题描述】:

我在 Windows 10 上使用 selenium C# webdriver chorme 进行了测试。当我一次运行此测试时,它工作正常。我在 Visual Studio 2017 中对 loadtest 使用相同的测试。我正在尝试运行同一测试的多个实例。第一个实例总是得到完美执行,但其余所有实例都无法识别 Web 元素并抛出下面提到的错误。

测试方法 LoadWebTestPOC.WebTestM.LoginWithCredentials 抛出 异常:OpenQA.Selenium.WebDriverException:意外错误。 System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接 因为目标机器在 127.0.0.1:54049 处主动拒绝了它 System.Net.Sockets.Socket.DoConnect(端点 endPointSnapshot, SocketAddress 套接字地址)在 System.Net.ServicePoint.ConnectSocketInternal(布尔连接失败, Socket s4, Socket s6, Socket&socket, IPAddress&地址, ConnectSocketState 状态、IAsyncResult asyncResult、Exception& 异常)---内部异常堆栈跟踪结束---在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& 上下文) 在 System.Net.HttpWebRequest.GetRequestStream() 在

有人可以帮帮我吗?提前致谢。

我在这里看到过类似的问题Selenium web driver fails after the first test run and TestFixtureTearDown happens

这是我如何初始化测试的代码

namespace LoadWebTestPOC
{
    [TestClass]
    public class WebTestM
    { 



    public string user = "Administrator";
    public string password = "*******";


    [TestInitialize]
    public void SetupTest()
    {
        Installer.SetUpEnv();
    }

    [TestCleanup]

    public void TeardownTest()
    {
        Base.QuitDriver();
    }

    [TestMethod]
    public void LoginWithCredentials()
    {
        LoginModule.NavigateTo();
        LoginModule.LoginWithCredentials(user,password);
        NUnit.Framework.Assert.AreEqual(user, CoreOperation.GetAttributeValue(LoginModuleLocators.iconLogedUser, "title")); 
    }
}
}


public static void SetUpEnv()
    {

     string _driver = CHROME;
     public static void SetupLocal(_driver)
    {
        switch (_driver)
                {
                    case "CHROME":
                        Base.Driver = Base.StartDriver(AvDriver.Chrome);
                        Base.ChosenDriverName = "chrome";
                        break;
                    case "FIREFOX":
                        Base.Driver = Base.StartDriver(AvDriver.Firefox);
                        Base.ChosenDriverName = "firefox";
                        break;
                    case "EDGE":
                        Base.Driver = Base.StartDriver(AvDriver.Edge);
                        Base.ChosenDriverName = "edge";
                        break;
                    case "SAFARI":
                        Base.Driver = Base.StartDriver(AvDriver.Safari);
                        Base.ChosenDriverName = "safari";
                        break;
                    default:
                        Base.Driver = Base.StartDriver(AvDriver.Chrome);
                        Base.ChosenDriverName = "chrome";
                        break;
                }
        }
    }


 public static IWebDriver StartDriver(AvDriver chosenDriver)
    {
        switch (chosenDriver)
        {
            case AvDriver.Chrome:
                Driver = new ChromeDriver(_driversPath);
                break;
            case AvDriver.Firefox:
                Driver = new FirefoxDriver(FirefoxDriverService.CreateDefaultService(_driversPath));
                break;
            case AvDriver.Edge:
                Driver = new EdgeDriver(_driversPath);
                break;
            case AvDriver.Safari:
                Driver = new SafariDriver();
                break;
        }

        Driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
        Driver.Manage().Window.Maximize();
        return Driver;
    }

【问题讨论】:

    标签: c# selenium webdriver load-testing


    【解决方案1】:

    如果您使用 nunit,您可以使用 RepeatAttribute 多次运行测试,但是,如果您想同时执行此操作,您应该真正考虑运行 Selenium-Grid 以将测试分布到多个实例您选择的浏览器。

    【讨论】:

      猜你喜欢
      • 2017-02-11
      • 2015-09-03
      • 2014-07-24
      • 1970-01-01
      • 2013-02-27
      • 2020-02-29
      • 2021-09-05
      • 1970-01-01
      • 2017-05-13
      相关资源
      最近更新 更多