1

我们使用与 C# 集成的 Selenium 来进行 Web 应用程序测试。我注意到的问题是,与其他 Selenium + [代码] 组合相比,Selenium + C#非常慢。

这只是一个简单的“登录,然后退出我们的网络应用程序”测试。

  • 0:04 -- Firefox 中的 Selenium IDE
  • 0:05 -- Selenium WD + Python,仅测试
  • 0:09 -- Selenium WD + Python,总运行
  • 0:11 -- Selenium WD + C# via Visual Studio > 调试,仅测试
  • 0:20 -- Selenium WD + C# via Visual Studio > 调试,总运行
  • 0:25 -- Selenium WD + C# + NUnit,仅测试
  • 0:35 -- Selenium WD + C# + NUnit,总运行
  • 0:37 -- Selenium WD + C# + NUnit 通过 Jenkins,仅测试
  • 0:56 -- Selenium WD + C# + NUnit 通过 Jenkins,总运行

我能看到什么来让这个速度变得不那么慢?

4

4 回答 4

0

您可以在 ChromeDriver 上设置一个选项来加快您的测试。

 var options = new ChromeOptions();
 options.AddArguments("headless");
 var driver = new ChromeDriver("path", options);

无头选项在后台系统中运行驱动程序并且不显示 GUI

这个链接给你更多关于无头的描述。

于 2021-09-07T11:10:25.320 回答
0

可能您正在 x64 系统上运行测试。如果是这样,您应该使用 x64 WebDriver。

于 2016-02-11T09:32:06.480 回答
0

如果您正在运行 .NET Core,那么您遇到了一个已知的错误

切换到127.0.0.1IISExpress 和测试 uri 可以缓解这些问题。

你可以看看Selenium running very slow (C#)

于 2019-03-11T16:25:12.817 回答
-2

There are a lot of factors that come into play here, but from my experience c#+Selenium is one of the fastest I've used.

Here are a couple things you could try:

  • If you're parrallelizing tests, lower the amount of tests that run at once. It really bottle necks performance and can sometimes mess with the test integrity.
  • Code Cleanup. I was given a tool to test brute force logins and it could barely make the threshold (20 times in under X seconds). I re-arranged, re-used, re-centralized some functions and we were reaching the threshold in under 30 seconds. This also helped me get more parallelized tests running
  • If you're running it over an RDC, check network performance, securities, etc.
于 2017-10-13T13:01:03.013 回答