我有一个由docker-compose设置的应用程序。该应用程序包含kafka,postgres,rest api端点的docker容器。
一个测试用例是将数据发布到端点。在数据中,有一个名为callback URL
的字段。该应用程序将解析数据并将数据发送到callback URL
。
我很好奇是否有类似测试用例的测试框架。以及如何验证callback URL
被数据击中?
Docker组合支持已添加到endly。在应用程序的管道工作流程(app.yaml)中,您可以添加“部署”任务并通过调用docker-compose来启动docker服务。
完成测试任务并调用回调网址后,在验证任务中,您可以检查是否使用预期数据调用了它。为此你可以利用endly的recording feature and replay来验证回调请求。
下面是一个ETL应用程序app.yaml的示例,它使用docker-compose和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主题)。