首先只是用码头工人一个快字:
凡泊坞窗照是,当你用它来构建基础架构不变即容器不会改变。为此,Docker支持Dockerfile,它允许您通过许多不同的步骤构建容器,例如安装Gatling并设置启动时在容器中运行的默认命令。
通过使用Dockerfile方法,您可以构建一个用于测试的Gatling容器,并且每当您的管道在Jenkins中运行时,就可以让您免费运行docker exec gatlingAG apt-get -qq update
类型的语句。只是需要考虑。
现在转入您通过Jenkins管道归档Gatling输出的问题。有迹象表明,你可以接近这个方式有两种:
- 使用
docker cp
将结果复制回从容器到詹金斯工作区,您的管道
- 安装工作区到加特林容器,这样的结果将写入直接到工作区,并可以很容易地存档
1:使用泊坞窗CP
你已经使用docker cp
复制东西进入容器,所以你可以使用它在Gatling运行后再次将事物复制出来。你可以做这样的事情:
sh '''docker run -i -d --net=host --name gatlingAG ubuntu
docker cp gatling gatlingAG:/
docker exec gatlingAG apt-get -qq update
docker exec gatlingAG apt-get -qq install default-jdk
docker exec gatlingAG /bin/bash -c "./gatling/bin/gatling.sh -m"'''
docker cp gatlingAG:/gatling/[name_of_run] .
这会从容器文件系统的输出复制到您的工作空间的文件系统,在那里你可以进行归档(一看便知的底部)。
2:挂载詹金斯工作区到容器
泊坞支持安装从主机文件系统到运行其上的任何容器。通过这样做,容器中的进程可以将文件写入到更加可靠的存储或存储中,从而延长容器的寿命(只要您销毁容器,其文件系统就会永久丢失)
再次,您可以使用类似的方法您的管道定义:
sh '''docker run -i -d --net=host -v $(pwd)/gatling:/gatling --name gatlingAG ubuntu
docker exec gatlingAG apt-get -qq update
docker exec gatlingAG apt-get -qq install default-jdk
docker exec gatlingAG /bin/bash -c "./gatling/bin/gatling.sh -m"'''
你会发现运行容器告诉码头工人在你的容器/加特林装入加特林目录时,我使用了-v
选项。这意味着您不需要复制它。另外,当Gatling运行时,结果将直接写入您的工作区,这意味着您可以轻松地将一个Gatling完成的归档。在再次运行管道之前,可能需要确保先前的Gatling运行结果已从工作区中清除。
归档结果
最后,一旦你有加特林的输出在您的工作空间运行,你可以简单地使用archive詹金斯流水线指令归档。这将意味着詹金斯将HTML存储为工作的人工产物。然后您可以通过浏览器直接访问HTML,例如
https://jenkins-url/job/gatlin-job/1/artifact/TestResults/[name_of_simulation]/index.html