如何为包含 Kafka、Postgres 和 REST API Docker 容器的应用程序编写 E2E 测试自动化



我有一个由docker-compose设置的应用程序。该应用程序包含用于kafka,postgres,rest api端点的docker容器。

一个测试用例是将数据发布到终结点。在数据中,有一个名为callback URL的字段。该应用程序将解析数据并将数据发送到callback URL

我很好奇是否有针对类似测试用例的测试框架。 以及如何验证callback URL是否受到数据打击?

Docker compose 支持已被添加到 endly。在应用的管道工作流 (app.yaml) 中,可以添加"部署"任务,并通过调用 docker-compose up 来启动 docker 服务。

完成测试任务并调用回调 URL 后,在验证任务中,可以检查是否使用预期数据调用了它。为此,您可以利用endly的录制功能并重放它以验证回调请求。

下面是一个 ETL 应用程序 app.yaml 的示例,使用 docker-compose with endly 来启动 docker 服务。希望对您有所帮助。

tasks: $tasks
defaults:
app: $app
version: $version
sdk: $sdk
useRegistry: false
pipeline:
build:
name: Build GBQ ETL
description: Using a endly shared workflow to build
workflow: app/docker/build
origin:
URL: ./../../
credentials: localhost
buildPath: /tmp/go/src/etl/app
secrets:
github: git
commands:
- apt-get -y install git
- export GOPATH=/tmp/go
- export GIT_TERMINAL_PROMPT=1
- cd $buildPath
- go get -u .
- $output:/Username/? ${github.username}
- $output:/Password/? ${github.password}
- export CGO_ENABLED=0
- go build -o $app
- chmod +x $app
download:
/$buildPath/${app}: $releasePath
/$buildPath/startup.sh: $releasePath
/$buildPath/docker-entrypoint.sh: $releasePath
/$buildPath/VERSION: $releasePath
/$buildPath/docker-compose.yaml: $releasePath
deploy:
start:
action: docker:composeUp
target: $target
source:
URL: ${releasePath}docker-compose.yaml

在下面的问题中,卡夫卡涉及哪些方面?两者都听起来像HTTP调用。

1)将数据发布到终结点

2)反对将数据发送到回调 URL

一个测试用例是将数据发布到终结点。在数据中,有一个名为回调 URL 的字段。应用将分析数据并将数据发送到回调 URL。

假设回调 URL 是带有 POST/PUT API 的 HTTP 端点(例如 REST 或 SOAP),那么最好在同一资源上公开一个 GET 端点。在这种情况下,当调用回调 POST/PUT 时,服务器端状态/数据会发生变化,接下来,使用 GET API 验证数据是否正确。GET API 的输出是发送到回调 URL 的 Kafka 数据(这假设您的第一条帖子消息是针对 kafka 主题的)。

您可以使用传统的 JUnit 方式(使用一些代码)或通过声明式方式实现此目的,其中您可以完全绕过编码。

该示例已将 Kafka 容器 docker化,以在本地启动并运行测试

本节 Kafka 与 REST API 解释了将 REST API 测试与 Kafka 数据流相结合的自动测试方法。

例如

---
scenarioName: Kafka and REST api validation example
steps:
- name: produce_to_kafka
url: kafka-topic:people-address
operation: PRODUCE
request:
recordType: JSON
records:
- key: id-lon-123
value:
id: id-lon-123
postCode: UK-BA9
verify:
status: Ok
recordMetadata: "$NOT.NULL"
- name: verify_updated_address
url: "/api/v1/addresses/${$.produce_to_kafka.request.records[0].value.id}"
operation: GET
request:
headers:
X-GOVT-API-KEY: top-key-only-known-to-secu-cleared
verify:
status: 200
value:
id: "${$.produce_to_kafka.request.records[0].value.id}"
postCode: "${$.produce_to_kafka.request.records[0].value.postcode}"

Idaithalam 是一个低代码测试自动化框架,使用 Java 和 Cucumber 开发。它利用行为驱动开发 (BDD)。测试人员可以使用API规范在简单的Excel中创建测试用例/脚本。 Excel是在Idaithalam中创建基于Json的测试脚本的简化方法。可以快速创建测试用例,并在几分钟内进行测试。

作为测试人员,您需要创建Excel并将其传递给Idaithalam Framework。

首先,从Excel生成基于Json的测试脚本(Virtualan Collection)。在测试执行期间,可以直接使用此测试脚本集合。

然后,它从 Virtualan 集合及其执行中生成功能文件。

最后,它以BDD/黄瓜风格生成测试报告。

这为REST API、GraphQL、RDBMS DB 和 Kafka 事件消息提供了完整的测试支持

有关设置和执行的详细信息,请参阅以下链接。

https://tutorials.virtualan.io/#/Excel

如何使用 excel 创建测试脚本

相关内容

最新更新