首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运行功能测试?

如何运行功能测试?
EN

Stack Overflow用户
提问于 2016-06-20 10:19:56
回答 3查看 4.8K关注 0票数 7

我们正处于从Jenkins迁移到汇合CI的过程中,到目前为止,一切都非常顺利。但现在我有一个问题,我不知道如何解决。我想听听社会人士的意见。

我想做的是一项可以使用Selenium运行集成或功能(web)测试的工作。对我们来说几乎没有什么问题:

  1. 要运行web测试,我需要设置数据库(还有可选的搜索引擎、代理等)代理尽可能模拟生产环境。理想情况下,它应该由docker-compose.设置。
  2. 此数据库服务应该与我的测试并行运行。
  3. 此数据库服务不应返回任何内容,也不应返回错误或成功,因为它只启动数据库,而不返回其他任何内容。
  4. 在数据库准备就绪之前,不应该启动我的web测试。
  5. 此数据库服务应在所有web测试完成后停止。

正如你所看到的,这是一个相当重要的任务。当然,我可以创建一个包含我所需要的一切的大型uber容器,但是这是一个糟糕的解决方案。另一种选择是为此创建一个shell脚本,但这不够灵活。

有什么例子可以说明我如何在这个问题上实施这种做法或良好做法吗?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-28 19:57:16

从1.3.0版本开始,您似乎可以在一个任务:https://github.com/concourse/concourse/issues/324中运行Docker

这似乎是可行的:

代码语言:javascript
复制
jobs:
  - name: docker-compose
    public: true
    serial: true
    plan:
      - do:
        - task: docker-compose
          timeout: 20m
          privileged: true
          config:
            platform: linux
            image_resource:
              type: docker-image
              source: {repository: "mumoshu/dcind", tag: "latest"}
            run:
              path: sh
              args:
                - -exc
                - |
                  source /docker-lib.sh
                  start_docker
                  docker ps
                  docker-compose version
票数 9
EN

Stack Overflow用户

发布于 2017-03-09 10:14:11

这是Concourse作者的评论:

主机上没有Docker二进制文件或套接字--它们只是运行一个Garden后端(可能是监护人)。Concourse在Docker之上的抽象层运行,因此提供任何魔法都没有意义。 有一件事缺少后1.3是码头要求你建立自己的cgroup。我忘了这有多烦人。我希望他们做了卫报所做的,并自动配置它,但你能做什么。 所以,完整的一套指令是: 使用或构建一个包含停靠者的图像,例如,docker:dind。在您的任务开始时运行以下命令:https://github.com/concourse/docker-image-resource/blob/master/assets/common.sh#L1-L40用Docker守护进程旋转docker &。 然后你就可以像往常一样做码头工和朋友了。 这样做的缺点是每次都会获取图像。230号将解决这一问题。 从长远来看,#324 (评论)是我想要走的方向。

见这里https://github.com/concourse/concourse/issues/324

与接受的答案一样,Slack归档数据被删除(由于Slack限制)

专用于使用酶的对接者图像:https://github.com/meAmidos/dcind

票数 3
EN

Stack Overflow用户

发布于 2016-12-26 21:46:10

我听起来没那么复杂。我写了一篇关于如何获得类似的东西并运行这里的文章。我使用了一些不同的容器,用于堆栈和测试运行程序,并启动所有从正式码头:dind映像与码头组成安装在它.

除了通常的汇合内容(获取资源等)之外,执行测试运行的内容包括:

  1. 使用docker启动web、rest和其他服务-编写。
  2. 启动Testrunner服务,并在与rest层通信的网页上启动测试套件,而rest层则依赖于其他服务进行响应。
  3. 在测试运行程序完成时执行坞-编写,并根据测试套件的返回代码决定任务的返回代码(0=fail,1=success)。

为了清晰地设置和拆卸堆栈和测试运行程序,您可以执行如下操作(如果在测试开始时服务没有启动,那么您可以使用取决于,对我来说,它没有工作)

代码语言:javascript
复制
# Setup the SUT stack:
docker-compose up -d
‌‌
# Run the test-runner container outside of the SUT to be able to teardown the SUT when testing is completed:
docker-compose run --rm test-runner --entrypoint '/entrypoint.sh /protractor/project/conf-dev.js --baseUrl=http://web:9000/dist/ --suite=my_suite'
‌‌
# Store the return-code from the tests and teardown:
rc=$?
docker-compose down
echo "exit code = $rc "
kill %1
exit $rc
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37919989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档