加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用.NET和Jenkins的Selenium性能 – 如何分析和改进

发布时间:2020-12-16 07:39:56 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET网站,我想用Selenium测试.我想在“临时”虚拟机上设置Jenkins实例,以自动运行测试. 问题是测试运行速度非常慢 – 比我的开发机器慢几倍.单个简单的测试可能需要2-3分钟. 我想知道这是否是预期的,如果像我这样的测试设置有任何明显的缺陷,并且
我有一个ASP.NET网站,我想用Selenium测试.我想在“临时”虚拟机上设置Jenkins实例,以自动运行测试.

问题是测试运行速度非常慢 – 比我的开发机器慢几倍.单个简单的测试可能需要2-3分钟.

我想知道这是否是预期的,如果像我这样的测试设置有任何明显的缺陷,并且我可以做什么来分析和改进测试套件的性能.

信息:

测试在配备Windows 7 64位的2.7GHz 2GB Ram虚拟机上运行.
我的开发机器类似,但安装了32位Win.

以下是Jenkins完成的:

>该网站从源代码管理中签出,并使用自定义web.config进行配置.主要区别在于它在发布模式下编译,并且它连接到不同计算机(也是同一服务器上的虚拟机)上的数据库.
> IIS正在监视网站的目录并自动重新加载更改.
>运行以下命令(目录已清理):nunit-console Selenium-Project-Dir / labels
>测试在Chrome webdriver上运行.

selenium项目使用NUnit和WebRunner.
驱动程序实例在所有测试之前创建一次,在[SetUpFixture]类中的[SetUp]属性中创建.它们在类的[TearDown]属性中被删除一次.

示例测试如下所示:

[Test,Combinatorial]
public void AnExistingUserCanLogin(
    [ValueSource(typeof(Drivers),"Good")] 
    IWebDriver driver)
{
    // This function clicks on some buttons and fills in some forms.
    LoginUser(driver); 

    // Make sure the user is now logged in
    Assert.IsTrue(driver.ElementIsPresent(By.ClassName("imgUserAvatar")));
    Assert.IsTrue(driver.ElementIsPresent(By.CssSelector("a.my-profile")));
    Assert.IsTrue(driver.ElementIsPresent(By.CssSelector("a.logout")));
}

(“Drivers”类包含FF,IE,Chrome的lazily-instances webdriver实例.你可以猜出类实例的“好”静态属性)

解决方法

它是一个虚拟机的事实不应该是一个问题,RAM听起来像是好的.什么操作系统正在运行?某些Windows操作系统在不同位版本之间存在显着的速度差异(因为对硬件的要求).这在Vista中尤为明显,但我注意到Windows 7和Server 2003之间存在差异.

我发现运行64位虚拟机的机器是32位机器时存在很大问题.它似乎经常运行一段时间,然后继续运行测试将减慢.哪个应该是duh但主要的是可能有太多的VM从同一个地方运行.其他程序将受此影响,如果您的VM位于公司服务器场,则可以帮助您进行故障排除.

另一个产生重大影响的因素是,如果您针对不同的浏览器运行测试. IE8和IE9将采用相同的selenium命令并以不同的速度运行它们.我不知道为什么会这样,我只知道我已经看过了.确保登台机器具有当前版本的Chrome(或至少与您的开发机器相同).

登台机如何与数据库联网可能会产生重大影响.这似乎是一个非常小的机会,但如果两个VM之间存在可能对时间产生重大影响的防火墙垃圾.

我能想到的另一件事可能是改变时间长度,如果同时在登台机器上执行其他程序.检查CPU使用率可能会有所帮助.就个人而言,我注意到我的VM使用的CPU比我的个人机器多得多.如果是这种情况,我到目前为止找到的唯一解决方案是为VM提供更多的处理能力,或仅运行测试而不是其他任何东西.

祝好运!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读