加快C#/Selenium测试

本文关键字:测试 Selenium 加快 | 更新日期: 2023-09-27 18:25:00

我们使用与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#通过Visual Studio>调试,仅限测试
  • 0:20--Selenium WD+C#通过Visual Studio>调试,全部运行
  • 0:25-硒WD+C#+NUnit,仅测试
  • 0:35--Selenium WD+C#+NUnit,总运行
  • 0:37——Selenium WD+C#+NUnit通过Jenkins,仅测试
  • 0:56--Selenium WD+C#+NUnit通过Jenkins,总运行

我该怎么看才能让这件事不那么慢呢?

加快C#/Selenium测试

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

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

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

您可能会看到Selenium运行非常缓慢(C#)。

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

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

headless选项在后台系统中运行驱动程序,不显示GUI

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

这里有很多因素在起作用,但根据我的经验,c#+硒是我使用过的最快的之一。

这里有一些你可以尝试的东西:

  • 如果您正在对测试进行并行化,请减少一次运行的测试数量。它确实限制了性能,有时还会影响测试的完整性
  • 代码清理。我得到了一个测试暴力登录的工具,但它几乎无法达到阈值(在X秒内20次)。我重新安排、重新使用、重新集中了一些功能,我们在不到30秒内就达到了门槛。这也帮助我运行了更多的并行测试
  • 如果您在RDC上运行它,请检查网络性能、安全性等