当前位置: 首页 > 知识库问答 >
问题:

如何为硒测试创建可运行的罐子

汪明德
2023-03-14

我使用JUnit5和Selenium进行测试。我需要创建一个jar文件,当执行该文件时,它将打开浏览器并执行测试用例。

我从这个视频中发现:如何从Selenium项目创建可运行的Jar文件,使用TestNG您可以创建一个对象,设置所需的测试类并运行测试类,但我还没有找到使用JUnit5执行此操作的等效方法

我知道使用JUnit platform launcher,您可以使用下面的代码来运行测试,但是在执行jar文件时这是行不通的,因为JUnit任务本身并不执行测试,只捕获输出。至少这是我从JUnit Launcher Task上读到的

public class TestExecutor {
    public static void main(String args[]) {
          final LauncherDiscoveryRequest request =
                LauncherDiscoveryRequestBuilder.request()
                        .selectors(selectClass(MyTest.class))
                        .build();
        final Launcher launcher = LauncherFactory.create();
        launcher.execute(request);
    }
}

有没有办法创建一个可执行的jar文件来打开浏览器并执行selenium测试?

共有1个答案

刘阳荣
2023-03-14

1.实现任务定时器。(无代码,可能使用quaze)

2.实现web到手动触发。(使用springboot webmvc)

import org.junit.platform.launcher.Launcher;
import org.junit.platform.launcher.LauncherDiscoveryRequest;
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder;
import org.junit.platform.launcher.core.LauncherFactory;
import org.junit.platform.launcher.listeners.SummaryGeneratingListener;
import org.junit.platform.launcher.listeners.TestExecutionSummary;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.FileNotFoundException;

import static org.junit.platform.engine.discovery.ClassNameFilter.includeClassNamePatterns;
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectPackage;

@RestController
@RequestMapping("/excutor")
public class ExcutorContrller {

    @GetMapping("/")
    public String excute(String packageName, String className) throws FileNotFoundException {
        new Thread(() -> {
            System.out.println(packageName + "======" + className);
            LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder
                    .request()
                    .selectors(
                            selectPackage(packageName)
//                        selectClass(com.wusuiwei.cases.JunitTest.class)
                    )
                    .filters(
                            includeClassNamePatterns(".*Test")
                    )
                    .build();
            Launcher launcher = LauncherFactory.create();
            // Register a listener of your choice
            SummaryGeneratingListener listener = new SummaryGeneratingListener();
            launcher.registerTestExecutionListeners(listener);
            launcher.execute(request);

            TestExecutionSummary summary = listener.getSummary();
            System.out.println(summary);
            // Do something with the TestExecutionSummary.
        });

        return "excuting....";
    }
}
 类似资料:
  • 我想在Jenkins中运行Selenium Webdriver Maven测试。我遵循了教程:https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html和https://www.safaribooksonline.com/library/view/jenkins-the-definitive/978144931

  • 问题内容: 我在运行Ubuntu的本地计算机上设置Jenkins,将其指向我的jdk,然后进行maven,创建了一个作业来运行我的Selenium测试,并为它提供了项目中pom.xml的路径,但是当我尝试运行该作业时,它立即失败。控制台输出显示 在工作区中构建/ var / lib / jenkins / workspace / new job [new job] $ / usr / share

  • 我是硒的新手,也是毛茸茸的测试。我看到Selenium IDE只允许固定的测试用例。但是模糊测试似乎是有帮助的。 如有任何帮助,我们将不胜感激。

  • 我们正在运行使用mspec编写的selenium webdriver测试。 我们使用内置的mspec runner从team city启动这些测试。 这是在服务器上本地使用火狐来运行测试。 我们似乎通过不同数量的成功和失败测试得到随机结果,我们相信这取决于执行速度。我们的测试套件有等待元素,但这些似乎并不总是达到预期效果。 我们有没有办法减缓整个测试套件的执行速度,以尝试缓解这个问题? 还是有更好

  • 我正在使用shadowJar插件构建/创建我的fatJar。在我的身材里。格雷德尔我有这个 使用gradle shadowJar创建我的胖罐子。然而,创建的胖罐子的名称是一个简单的名称。全部是r100。罐子我想把它改成样本快照。r100部署。罐子如何使用ShadowJar覆盖jar名称。

  • 假设我有一个测试来断言系统中新用户的注册是否真的成功: 现在,这将在实际数据库中创建一个新的测试用户,因为我希望这个测试在实际环境中运行。这意味着测试不能一直运行,对吗?我应该如何进行此类测试?那些使用系统的实际环境并操纵真实数据的人?