首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium4+Junit5 :在运行与Selenium 4并行的脚本时,无限浏览器正在启动

Selenium4+Junit5 :在运行与Selenium 4并行的脚本时,无限浏览器正在启动
EN

Stack Overflow用户
提问于 2022-02-08 03:46:35
回答 1查看 224关注 0票数 1

我使用webdrivermanager = '5.0.3'( Selenium3.141.5,)+ Junit 5+ junit-platform.properties文件配置和设计了一个很好的框架,可以并行地运行测试脚本,没有任何问题。我能够运行基于标签和包的脚本。

现在,我将selenium版本升级到4.1.2,当我运行单个脚本时,它是非常好的,但是当在并行无限浏览器中运行脚本时,即使junit-platform.properties文件中的线程计数被限制为5,也会启动。

代码语言:javascript
复制
       junit.jupiter.execution.parallel.enabled=false
       junit.jupiter.execution.parallel.mode.default=same_thread
       junit.jupiter.execution.parallel.mode.classes.default=concurrent
       junit.jupiter.execution.parallel.config.strategy=fixed
       junit.jupiter.execution.parallel.config.fixed.parallelism=5

我在构建gradle文件中使用下面提到的依赖项。

代码语言:javascript
复制
            repositories {
                jcenter()
                mavenCentral()
            }

            ext {
            //    selenium = '3.141.59'
                webdrivermanager = '5.0.3'

            //    junitJupiterVersion = '5.8.2'
                selenium = '4.1.2'
                seleniumJupiterVersion  = '4.0.1'
                junitJupiterVersion = '5.7.0'
            }
            dependencies {


                compile("org.junit.jupiter:junit-jupiter:${junitJupiterVersion}")
                compile("org.seleniumhq.selenium:selenium-java:${selenium}")
            //    compile("io.github.bonigarcia:selenium-jupiter:${seleniumJupiterVersion}")

            //    compile("org.seleniumhq.selenium:selenium-java:${selenium}")
            //    compile("io.github.bonigarcia:webdrivermanager:${webdrivermanager}")
            //    testImplementation "org.seleniumhq.selenium:selenium-chrome-driver:${selenium}"
            //    testImplementation "org.seleniumhq.selenium:selenium-firefox-driver:${selenium}"
            //    testImplementation "org.seleniumhq.selenium:selenium-ie-driver:${selenium}"
            //    testImplementation "org.seleniumhq.selenium:selenium-edge-driver:${selenium}"
            //    testImplementation "org.seleniumhq.selenium:selenium-safari-driver:${selenium}"
            //    testImplementation "org.seleniumhq.selenium:selenium-remote-driver:${selenium}"
            //    testImplementation "org.seleniumhq.selenium:selenium-support:${selenium}"
            //    testImplementation('org.junit.jupiter:junit-jupiter:5.5.1')
            //    testImplementation 'org.hamcrest:hamcrest:2.1'
            //    testImplementation 'org.hamcrest:hamcrest-library:2.1'
            //    testCompile("org.junit.jupiter:junit-jupiter-api:5.6.2")
            //    testRuntime 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
            //    testRuntime("org.junit.platform:junit-platform-launcher:1.4.2")
            //    testCompile('io.github.bonigarcia:selenium-jupiter:4.0.1')
                compile group: 'io.qameta.allure', name: 'allure-junit5', version: '2.11.0'
                compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.16'
                implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1'
            //    implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.17.1'
                compile group: 'io.qameta.allure', name: 'allure-gradle', version: '2.7.0'
                compile 'org.apache.maven.plugins:maven-surefire-plugin:2.21.0'
            //    compile('com.assertthat:selenium-shutterbug:1.5')
                compile 'org.slf4j:slf4j-nop:1.7.25'
                implementation group: 'javax.mail', name: 'mail', version: '1.4.7'
            //    implementation group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2'
            //    runtimeClasspath group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2'
            //    compile group: 'net.lightbody.bmp', name: 'browsermob-core', version: '2.1.4'
            //    compile group: 'org.postgresql', name: 'postgresql', version: '42.2.14'
                compile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.12.4'
                compile group: 'ru.yandex.qatools.ashot', name: 'ashot', version: '1.5.4'
            //    implementation group: 'org.json', name: 'json', version: '20201115'
                implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
            //    testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.7.2'
            //    testImplementation group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.7.2'
            //    testImplementation group: 'org.junit.platform', name: 'junit-platform-surefire-provider', version: '1.3.2'

            }

项目组件: Selenium 4+junit 5 +junit-platform属性文件

对解决这一问题的任何帮助都将受到高度赞赏。

EN

回答 1

Stack Overflow用户

发布于 2022-05-26 15:39:46

对不起,如果问题仍然相关的话,当然。首先,您可以使用@ResourceLock("SYSTEM_OUT")注释标记所有测试类。关于同步化的详见此处及以下内容。然而,这可能没有帮助。然后,您可以另外实现ParrallelExecutionConfiguration和ParallelExecutionConfigurationStrategy,并在junit-platform.properties文件中编写该实现。

junit.juipiter.execution.parallel.config.custom.class=base.ParallelStrategy

其中"base“- package和"ParallelStrategy”-实现上述接口(我只返回线程值的数目)。此外,您还必须明确说明自定义策略:

junit.juipiter.execution.parallel.config.strategy=custom

为什么它对Selenium3+有效,但在第四个方面却停止了--我不知道。但这些步骤为我解决了和你一样的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71028355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档