Selenium Grid 多浏览器和多平台正确做法

     2023-02-16     275

关键词:

【中文标题】Selenium Grid 多浏览器和多平台正确做法【英文标题】:Selenium Grid multi browser and multi platform right approach 【发布时间】:2021-02-22 02:57:34 【问题描述】:

我的目标是在以下组合上并行运行测试用例,并为每个组合生成范围报告,总共 8 个组合

    Windows(Chrome、Firefox、IE) Linux(Chrome、Firefox) Mac(Safari、Chrome、Firefox)

在网上搜索后想出了这个。 这个<suite> 并行运行所有<test> 标签,每个<test> 代表再次并行运行测试类的操作系统和浏览器组合。每个测试类都有一个 RemoteWebDriver 实例。

    此解决方案是否正确或我需要进行任何更改? 一旦测试类开始增加,复杂性就会增加我想从所有 8 个测试标签中添加/删除测试类。 如果我只想运行一个组合(操作系统+浏览器),是否需要另一个 testng.xml 文件并编辑参数值? 如何获取每个组合的报告。由于所有测试都是并行和多线程运行的,如何跟踪每个测试?

TestNg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests">
    <test name="Windows_Chrome" parallel="classes" thread-count="3">
        <parameter name="os" value="windows" />
        <parameter name="browser" value="chrome" />
        <classes>
            <class name="com.mag.SeleniumGrid.Test_001" />
            <class name="com.mag.SeleniumGrid.Test_002" />
            <class name="com.mag.SeleniumGrid.Test_00N" />
            <!--Each class create RemoteWebDriver instance based on parameters-->
        </classes>
    </test>
    <!-- ..... all 8 combinations -->
    
    <test name="Linux_Chrome" parallel="classes" thread-count="3">
        <parameter name="os" value="linux" />
        <parameter name="browser" value="chrome" />
        <classes>
            <class name="com.mag.SeleniumGrid.Test_001" />
            <class name="com.mag.SeleniumGrid.Test_002" />
            <class name="com.mag.SeleniumGrid.Test_00N" />
        </classes>
    </test>
</suite> 

【问题讨论】:

【参考方案1】:

不能说我已经使用了这种方法,所以很抱歉,但我使用 maven 运行测试并发现它工作正常。您可以通过执行以下操作将测试添加到组:

@Test(groups = "WindowsChrome", "LinuxChrome")
public class Test123 

您可以使用 maven 运行测试,例如:

mvn test -Dgroups=WindowsChrome

如果您想在管道中运行它,那么我会检查代码并为每个环境克隆它。在管道中,您可以添加每个环境将使用的 .env 文件,其中包含“OS_TYPE”和“BROWSER_TYPE”等变量。现在你可以这样做了:

stage('Windows Chrome Tests') 
     steps 
          bat "mvn test -f WindowsChrome/pom.xml -Dgroups=WindowsChrome"
     

stage('Linux Chrome Tests') 
     steps 
          bat "mvn test -f LinuxChrome/pom.xml -Dgroups=LinuxChrome"
     

为了让日志对并行测试有意义,您需要将 ThreadLocal 与 Logger 一起使用,这将为每个线程创建一个唯一的实例。确保在完成后将其删除,否则使用同一线程的后续测试将继续使用同一实例。我会将操作系统/浏览器放在日志文件名中。

【讨论】:

我尝试了与您的方法类似的方法,但无法在网上看到任何答案来确认每个人都在使用网格。我尝试的是创建 1)jenkins 中的主药膏 2)像你一样创建管道作业,它将在所有 8 个组合中并行运行 3)Testng 将负责在每个组合中并行运行测试用例。我从未在这种方法中使用网格。 Jenkins 会负责将项目克隆到特定环境并在本地运行测试。运行后将归档该组合的报告和日志。 抱歉,到底是什么问题?

selenium笔记

...Web自动化测试工具(也可以当做爬虫工具它可以模拟N多浏览器行为,而且支持多平台(windows、linux、MAC),多语言(C、 java、ruby、python、c#),多浏览器就不说啦。 准备工作: python2.7Selenium2.53.5Chrome浏览器(其实其... 查看详情

NAudio WaveStream 和多通道

】NAudioWaveStream和多通道【英文标题】:NAudioWaveStreamandmultiplechannels【发布时间】:2012-07-1007:02:01【问题描述】:我有一个WaveStream,我可以读取WaveFormat来获取通道数。当我从那个WaveStream读取数据时,我是在读取第一个通道还是从... 查看详情

java示例代码_与Selenium Grid同时运行浏览器,搜索部分字符串列表(Java)

java示例代码_与Selenium Grid同时运行浏览器,搜索部分字符串列表(Java) 查看详情

selenium介绍

...是selenium2.0,主要是加入了WebDriver的技术,可以更好的控制浏览器,selenium具有如下一些特点:开源免费多浏览器支持:FireFoxChromeIE多平台支持:linuxwindowsMAC多语言支持:javapython ubypht等API简单,较为完善 环境 查看详情

selenium_grid(代码片段)

...代点来执行。针对验证不同的测试环境比如(操作系统、浏览器),得到不同环境下执行结果。可在主机上配置搭建多台 查看详情

selenium使用chromeoptions启动参数(代码片段)

Selenium是一个支持多平台+多浏览器+多版本的浏览器自动化测试框。Selenium在启动浏览器时可以通过desired_capbilities参数来指定需要启动的平台、浏览器、版本及浏览器启动参数。ChromeOptions是chromedriver支持的浏览器启动选项。fromsel... 查看详情

无法删除由于 Selenium Grid 而创建的 %temp% 文件

...题描述】:我有一个网格配置,其中节点是配置为运行IE9浏览器的Windows7机器。测试用例运行良好,但一段时间后浏览器变慢。在搜索时我发现这是由于SeleniumGridNODE创建的临时文件。清除NODE创建 查看详情

来自同一浏览器的 laravel 和多会话

】来自同一浏览器的laravel和多会话【英文标题】:laravelandmulti-sessionsfromthesamebrowser【发布时间】:2016-01-2313:07:20【问题描述】:在我们的网络应用程序中,如果我使用单个浏览器,以用户A身份登录我们的应用程序,打开另一个... 查看详情

Selenium Grid Docker-通过 Jenkins 实现自动化

...】:我在ubuntu16.04服务器上使用docker-compose为Firefox和chrome浏览器实现selenium网格自动化,并且正在使用PuTTY终端进行访问。它是一个git存储库上的 查看详情

使用 Selenium / Geb 测试 Kendo UI Grid

...,同时为单元格中包含的输入字段分配一个值。我可以在浏览器中“手动”执行此操作,并且没有问题。但是 查看详情

4 小时浏览观看、证书性能和多应用测试

】4小时浏览观看、证书性能和多应用测试【英文标题】:4hourbrowsewatch,certperformanceandmultiapptest【发布时间】:2019-09-1909:11:54【问题描述】:最近观察到4小时浏览观看,多应用性能和证书性能测试只是导航而不播放任何内容。直... 查看详情

seleniumhub/node配置以及webdriver.io集成selenium

...de节点计算机会告之Hub自己的相关信息。例如,Node节点的浏览器相关信息、最多并发数等。Hub计算机可以给自己分配执行测试用例的任务。Hub计算机分发的测试用例任务会在各个Node节点计算机执行。在分布式测试模式中,可以... 查看详情

selenium-grid分布式自动化测试

 Selenium Grid是一个分布式测试平台,它可以通过一个server端的hub服务来控制多个用于提供Selenium脚本运行环境的client端,起到并发在多台机器上运行的作用。整个结构是由一个hub节点和若干个代理节点组成的。hub用于管理... 查看详情

自动化工具selenium(代码片段)

...用中的基于UI的自动化测试框架,支持多平台,多浏览器,多语言选择它一定是有原因的1)支 查看详情

Selenium Grid 中不同 PC 上不同大小的屏幕截图

...我正在使用SeleniumGrid在不同的PC上执行GWTWeb应用程序的跨浏览器测试。我面临的问题是生成的屏幕截图(在测试期间拍摄)的大小对于不同的PC是不同的,我想让我的代码通用,即设 查看详情

Silverlight 中的多任务和多线程

】Silverlight中的多任务和多线程【英文标题】:MultitaskingandMultithreadinginsilverlight【发布时间】:2011-01-2823:05:15【问题描述】:我有一个Silverlight应用程序,其中我有多个发送到服务器的请求。我希望所有这些请求都同步,即通过... 查看详情

页面有很多链接,如何用selenium进行自动化测试,验证每个链接的正确性

...一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaFirefox,Safari,GoogleChrome,Opera等。Selenium的主要功能包括:测试与浏览器的兼容性——测试... 查看详情

selenium工作原理

...用的自动化测试工具,支持多平台(Windows、Lniux等)、多浏览器(Chrome、Firefox、IE等)、多语言(Python、Java、C#等),目前使用越来越广泛Selenium到底是怎么工作的?实际上在Selenium工作的过程中有三个角色,其一便是跟我们最... 查看详情