如何为包含kafka、postgres和RESTAPI docker容器的应用程序编写e2e测试自动化
我有一个应用程序是由docker compose设置的。该应用程序包含用于kafka、postgres和RESTAPI端点的docker容器 一个测试用例是将数据发布到端点。在数据中,有一个名为如何为包含kafka、postgres和RESTAPI docker容器的应用程序编写e2e测试自动化,rest,apache-kafka,docker-compose,end-to-end,Rest,Apache Kafka,Docker Compose,End To End,我有一个应用程序是由docker compose设置的。该应用程序包含用于kafka、postgres和RESTAPI端点的docker容器 一个测试用例是将数据发布到端点。在数据中,有一个名为回调URL的字段。应用程序将解析数据并将数据发送到回调URL 我很好奇是否有类似测试用例的测试框架。如何验证回调URL中是否有数据?Docker compose支持已添加到。在应用程序(app.yaml)的管道工作流中,您可以添加“部署”任务,并通过调用docker compose up启动docker服
回调URL
的字段。应用程序将解析数据并将数据发送到回调URL
我很好奇是否有类似测试用例的测试框架。如何验证
回调URL
中是否有数据?Docker compose支持已添加到。在应用程序(app.yaml)的管道工作流中,您可以添加“部署”任务,并通过调用docker compose up启动docker服务
测试任务完成并调用回调url后,在验证任务中,可以检查是否使用预期数据调用了回调url。为此,您可以利用endly的it来验证回调请求
下面是使用docker compose with endly启动docker服务的ETL应用程序app.yaml的示例。希望能有帮助
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时,服务器端状态/数据将发生更改,接下来,使用GETAPI验证数据是否正确。GET API的输出是发送到回调URL的Kafka数据(这假设您的第一条帖子是发送到Kafka主题的)。您可以使用传统的JUnit方式(使用代码位)或通过声明式方式(您可以完全绕过编码)来实现这一点 该示例已停靠Kafka容器,以便在本地启动并运行测试 本节介绍REST api测试与Kafka数据流组合的自动化测试方法 e、 g
---
scenarioName:Kafka和RESTAPI验证示例
步骤:
-名称:制作卡夫卡
url:kafka主题:人物地址
操作:生产
请求:
记录类型:JSON
记录:
-密钥:id-lon-123
价值:
id:id-lon-123
邮政编码:UK-BA9
核实:
状态:Ok
recordMetadata:“$NOT.NULL”
-名称:验证\u更新的\u地址
url:“/api/v1/addresses/${$.product\u to\u kafka.request.records[0].value.id}”
操作:获取
请求:
标题:
X-GOVT-API-KEY:只有secu知道的顶级密钥已清除
核实:
现状:200
价值:
id:“${$.product\u to\u kafka.request.records[0].value.id}”
邮政编码:“${$.product\u to\u kafka.request.records[0].value.postCode}”