首页 > 解决方案 > Docker 中的 Jenkins 和 Jmetere

问题描述

我是码头工人世界的新手。我正在尝试通过 Jenkins 运行 JMeter 脚本。我在本地机器上成功了,但现在我想在 docker 中做同样的事情。我在本地机器上使用的命令:

jmeter -n -t sample-test/sample-test.jmx -l results/test.csv -e -o results/test.html

我创建了一个 docker-compose.yml 文件,看起来像

version: '3.3'
    services:
        jmeter_master:
            container_name: jmeter_master
            build: 
              context: ./jmeter_master
              dockerfile: Dockerfile
            tty: true
            hostname: master
            networks:
              - vins
            volumes:
                - ./sample_test:/results
        jmeter_slave01:
            container_name: jmeter_slave01
            build: 
              context: ./jmeter_slave
              dockerfile: Dockerfile
            tty: true
            hostname: master
            networks:
              - vins
    networks:
        vins:
           driver: bridge

这里的想法是使用 JMeter 从站进行“分布式测试”。我出于测试目的运行它并得到了预期的结果(HTML 报告)。我使用过的命令:

docker-compose up
docker exec -it jmeter_master /bin/bash
jmeter -n -t sample-test/sample-test.jmx -l sample-test/test.csv  -e -o sample-test/test.html  -R172.21.0.3,172.21.0.4

现在我不知道如何继续工作。我想在 Jenkins 中运行 JMeter 命令,该命令也应该在 docker 容器中,但我不确定如何实现。我应该在 docker-compose.yml 中再添加一项 Jenkins 服务吗?如何访问其他容器并运行命令或我走错路了?谢谢大家。

标签: dockerjenkinsdocker-composejmeter

解决方案


到目前为止,我没有看到 Jenkins 和 JMeter 之间有任何连接(除非您在Dockerfiles中指定了某些内容)

如果您想使用 Jenkins 编排 JMeter 构建,您需要:

  1. 创建一个将启动 JMeter 测试的作业,有关详细信息,请参阅持续集成 101:如何使用 Jenkins 运行 JMeter
  2. 添加 Jenkins 容器作为构建代理
  3. 您可以使用Jenkins 远程访问 API开始工作并获得基本结果
  4. 如果您需要高级报告,请查看Jenkins Performance Plugin

推荐阅读