# 在无GUI界面的Linux服务器上执行jmeter

#### 准备工作

首先在有GUI的电脑，例如windows上将测试计划参数配置好，先使用一个并发运行一次，保证测试计划可以成功运行，将测试计划保存为**jmx**

#### 在服务器上运行

**jmeter**是使用java编写的，需要安装jdk，将**apache-jmeter-5.6.3.zip** 复制到服务器并解压缩，将前面保存的**jmx**也上传到服务器，进入到 **/apache-jmeter-5.6.3/bin** 目录

```shell

# cd /apache-jmeter-5.6.3/bin

./jmeter -n -f -t /data/test.jmx -l /data/test.jtl -e -o /data/report

# -n 无GUI界面
# -t  /data/test.jmx 测试计划文件
# -l /data/test.jtl  执行结果路径
# -e 测试完成后生成报告
# -o 测试报告生成路径
# -f 强制删除现有结果，默认情况是追加到已有结果，可能造成数据干扰

```

然后把测试报告打包下载回来查看，

```shell

tar -cvf report.tar ./report/

```


#### 使用docker-compose运行，不推荐，但是可以快速验证，内置一个nginx,可以使用浏览器查看测试报告


```

version: "3"
services:
  jmeter:
    image: harbor.iovhm.com/hub/openjdk:17
    container_name: jmeter
    privileged: true
    volumes:
      - ./apache-jmeter-5.6.3:/apache-jmeter-5.6.3
      - ./data:/data
    command: "tail -f /dev/null"
  jmeter-nginx:
    image: harbor.iovhm.com/hub/nginx:1.21.3
    container_name: jmeter-nginx
    ports:
      - "5500:80"
    volumes:
      - ./data:/usr/share/nginx/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf

# 进入到容器
# docker exec -it jmeter /bin/bash
# 增加ll别名
# alias ll='ls -l --color=auto'
# 进入到jmeter的bin目录
# cd /apache-jmeter-5.6.3/bin
# 执行jmeter
# ./jmeter -n -f -t /data/test.jmx -l /data/test.jtl -e -o /data/report

```

- 开启nginx目录浏览

```
server {
    listen       80;
    #listen 443 ssl;
    server_name  localhost;

    root /usr/share/nginx/html;
    index index.html;

    location / {
        autoindex on;           # 开启目录浏览功能
        autoindex_localtime on; # 可选，显示文件修改时间为服务器本地时间
    }

}


```

#### 查看测试报告二

如果你不想使用浏览器查看结果，可以将生成的jtl文件下载回来，在有界面的jmeter查看

[![](https://iovhm.com/book/uploads/images/gallery/2025-01/scaled-1680-/EFWzeLRvnssnD8e4-image-1737119279341.png)](https://iovhm.com/book/uploads/images/gallery/2025-01/EFWzeLRvnssnD8e4-image-1737119279341.png)