使用与黄瓜集成的柑橘框架的并行集成测试执行

Posted

技术标签:

【中文标题】使用与黄瓜集成的柑橘框架的并行集成测试执行【英文标题】:Parallel integration test execution using citrus framework integrated with cucumber 【发布时间】:2017-07-11 13:50:31 【问题描述】:

我正在使用与 Cucumber 集成的 citrus 框架进行集成测试(具有不同的 Cucumber 功能文件)。

我在 citrus 中配置了不同的 HTTP 休息服务。

您能否建议我如何并行执行集成测试。

集成测试正在使用这些 citrus 服务。我需要使用一些(上下文)变量来验证 Cucumber 功能文件中定义的所有场景的一些测试结果。

或者您能否建议我柑橘框架是否支持多线程,以便多个黄瓜场景可以同时调用 HTTP 服务。

【问题讨论】:

【参考方案1】:

Citrus 测试由 TestNG 或 JUnit 运行,因此您需要使用这些框架的并行执行技术。

我正在使用 Maven 的故障安全插件(使用 TestNG)执行我的集成测试。您可以将其配置为使用如下配置文件并行运行测试(另请参阅maven-failsafe-plugin documentation)。

<profiles>
    <profile>
        <id>parallel</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <configuration>
                        <parallel>methods</parallel>
                        <threadCount>10</threadCount>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

这适用于 TestNG,但我不确定它是否适用于 JUnit。

通常,并行 HTTP 请求对 Citrus 来说应该不是问题,因为它会自动关联同一测试用例中的 HTTP 发送和接收操作。但是,您需要注意,这不适用于 JMS 消息,您需要在发送时手动设置关联 ID,并在接收时为此关联 ID 使用选择器。

试一试,看看并行测试是否适合您。

【讨论】:

以上是关于使用与黄瓜集成的柑橘框架的并行集成测试执行的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义测试框架与 IDE 集成?

持续集成测试思路

我应该如何设置我的集成测试以使用带有实体框架的测试数据库?

集成测试应该包含多少内容?在哪里测试副作用?

优化 Spring 集成测试的执行时间

Moco 框架以及其在 Web 集成测试的应用