如何使用Karate框架进行SOAP GET api调用?

问题描述 投票:0回答:1

如何使用 Karate 框架进行 SOAP GET api 调用?

我正在尝试寻找 KARATE 框架的示例来进行 GET SOAP api 调用。特征文件和步骤定义。

(我没有写那么多,除非我输入这么多,否则不允许我发帖。正文需要220个字符)

soap karate karate-call-single
1个回答
0
投票

我想为自己发表一篇文章。

要使用 Karate 框架进行 SOAP GET API 调用,您可以按照以下步骤操作。首先,确保您的项目依赖项中包含空手道。如果您使用 Maven,请将以下依赖项添加到您的 pom.xml 中:

<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-apache</artifactId>
    <version>1.2.0</version>
    <scope>test</scope>
</dependency>

现在,您可以创建空手道功能文件来定义 SOAP GET API 调用。这是一个例子:

特点

功能:示例 SOAP GET API 测试

背景:

  • url 'http://example.com/soap_endpoint'

场景:进行 SOAP GET API 调用 给定路径“yourSOAPRequest” 当方法得到 然后状态200 并匹配响应 /expected-response-body/

在此功能文件中:

Background 设置 SOAP API 端点的基本 URL。

场景描述了测试场景。

给定路径指定端点路径。

当方法 get 向指定端点发出 GET 请求时。

然后状态 200 确保响应状态为 200(OK)。

匹配响应检查响应正文是否与预期模式匹配。

您需要将“http://example.com/soap_endpoint”替换为 SOAP API 端点的实际 URL,并将 /expected-response-body/ 替换为您想要匹配的预期响应内容模式。

现在,让我们在单独的 .java 文件中创建相应的步骤定义:

package com.example;

import com.intuit.karate.junit5.Karate;

class SoapGetApiTest {

    @Karate.Test
    Karate testGet() {
        return Karate.run("soap-get api.feature").relativeTo(getClass());
    }
}

确保包名称 (com.example) 和功能文件名称 (soap-get-api.feature) 与您的项目结构匹配。

现在,让我们解释一下步骤定义:

@Karate.Test 注解表示该方法是由 Karate 执行的测试。 在方法内部,我们使用 Karate.run() 来指定要执行的功能文件。我们提供文件名(soap-get-api.feature)并使用relativeTo(getClass())来确保Karate知道在哪里可以找到相对于此类包的功能文件。 通过此设置,Karate 将使用 SoapGetApiTest 类中提供的步骤定义执行soap-get-api.feature 中定义的场景。

确保将“http://example.com/soap_endpoint”替换为 SOAP API 端点的实际 URL,并将 /expected-response-body/ 替换为您想要在功能文件中匹配的预期响应内容模式。

然后,您可以像运行项目中的任何其他 JUnit 测试类一样运行此测试类。空手道将执行场景并提供结果。

要运行此测试,您可以使用空手道测试运行器来执行它。如果您使用 Maven,您可以从命令行运行测试:

mvn test -Dtest=MySoapTest

假设您的功能文件名为 MySoapTest.feature,并且您已将其放置在适当的目录结构中(按照惯例 src/test/resources),Karate 将执行测试并提供结果。确保将 MySoapTest 替换为测试文件的实际名称。

© www.soinside.com 2019 - 2024. All rights reserved.