如何为包含kafka,postgres和rest api docker容器的应用程序编写e2e测试自动化

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

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

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

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

rest apache-kafka docker-compose end-to-end
2个回答
1
投票

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

0
投票

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

1)将数据发布到端点

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

一个测试用例是将数据发布到端点。在数据中,有一个称为回调URL的字段。应用程序将解析数据并将数据发送到回调URL。

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

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