jmeter的基本使用

一、安装JDK

首先安装JDK,并正确配置环境变量。
一、上传并解压jdk压缩包jdk-8u151-linux-x64.tar.gz,建议把软件都安装到/usr/local/下,如/usr/local/jdk1.8.0_151。

二、安装java环境

1、用vim编辑器打开/etc/profile文件,在文件尾部加入环境变量的定义

# JDK相关
export JAVA_HOME=/usr/local/java
export JAVA_BIN=/usr/local/java/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

2、重启电脑,或者输入如下命令使配置立即生效

source /etc/profile

3、查看java版本

java -version

二、安装Jmeter

1、将Jmeter的安装包(直接使用windows下的zip压缩包都行)apache-jmeter-3.1.zip上传至Linux的/usr/local/目录下,解压。
在这里插入图片描述

2、编辑/etc/profile文件,配置Jmeter的环境变量

#jmeter
export JMETER=/usr/local/apache-jmeter-3.1
export CLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH}
export PATH=${JMETER}/bin/:${PATH}

3、重启电脑,或者输入如下命令使配置立即生效

source /etc/profile

4、启动Jmeter
使用命令执行脚本,其中prt.jmx脚本可通过在Windows上操作Jmeter生成。

jmeter -n -t /usr/local/apache-jmeter-3.1/my_threads/prt.jmx -l /usr/local/apache-jmeter-3.1/test.jtl &

参数说明:

  • -h 帮助 -> 打印出有用的信息并退出
  • -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
  • -t 测试文件 -> 要运行的 JMeter 测试脚本文件
  • -l 日志文件 -> 记录结果的文件
  • -r 远程执行 -> 启动远程服务
  • -H 代理主机 -> 设置 JMeter 使用的代理主机
  • -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

注意:如果未设置Jmeter的环境变量则在执行脚本的时候需要检查当前目录是否是jmeter的bin目录下。

三、Windows上使用Jmeter

1、window上打开Jmeter,左上角-文件-可以保存测试计划生成.jmx文件。
2、参数信息

接口地址: /prtXX/get-transferXX
请求方式:POST
consumes:[“multipart/form-data”]
produces:["/"]
接口描述:PRTXX客户端 (10~60分钟随机) 数据上传开关,
请求的时候会在Head 里面加入 YXKH(标识优先上传), 接口明文:

  "taxCode": "3399019999XXXXX",
  "machine": "0",
  "areaCode": "3399XX"

请求参数:
在这里插入图片描述
响应数据:{ "code": 200, "data": {}, "msg": "请求成功", "success": true }

3、使用Jmeter部署环境

(1)首先打开Jmeter,在测试计划下添加线程组。
在这里插入图片描述
(2)在线程组下添加HTTP信息头管理器。
在这里插入图片描述
(3)在线程组下添加HTTP请求。
在这里插入图片描述
(4)在线程组下添加察看结果树。
在这里插入图片描述

(5)在线程组下添加聚合报告。
在这里插入图片描述

4、部署完成后,开始填入数据进行测试

(1)填写HTTP信息头管理器
Head 里面加入 YXKH(标识优先上传)
在这里插入图片描述
(2)填写HTTP请求,点击添加,把请求参数名称conTent和值${aesContent}填入进去(这里的值可看下文的加密操作)。

协议:http
请求方式: post
Content encoding:UTF-8
IP:192.168.XXX.XXX
端口号:XXXX
接口地址:/prt/get-transfer
其他:我这里勾选“Use multipart/form-data for POST”
在这里插入图片描述

(3)参数化设置

  1. 这里在线程组下添加CSV Data Set Config来设置。
    在这里插入图片描述
  2. 以下是CSV Data Set Config各个参数的简要说明:
  • FileName:csv文件的名称及路径
  • File Encoding: 文件编码----默认为空
  • Varible Names: 定义文本文件中的参数名,定义后可当变量的方式来引用
  • Ignore first line(only used if variable name is not empty):忽略第一行(仅使用变量名不是空的)----默认为false
  • Delimiter:分隔符—每个参数之间的分隔符号,一般默认使用逗号,
  • Allow Quoated data: 允许数据引—
  • Recycle on EOF: 文件结束循环----设置为True后,允许循环取值
  • Stop Thread on EOF: 文件结束后停止线程------默认为false,如果设置为True则会影响文件结束循环
  • Sharing Mode: 设置线程是否共享—默认设置为All threads
  1. 我们这里把请求明文参数taxCode、areaCode保存在E盘的prt.csv(文件格式另存为.csv)。
  • 这里定义了三个变量名为【aestaxCode,entName,areaCode】,各参数之间用,隔开,三个变量和.csv文件里的列名一一对应,此参数分享给所有的线程。
    在这里插入图片描述
  • 查看.csv文件格式,这里有1001个数据。
    在这里插入图片描述
    (4)参数加密
  1. 加解密的jar包放到Jmeter的lib\ext目录下。
  2. 测试计划–>Add directory or jar to classpath 添加需要的jar包。
    在这里插入图片描述
    (5)Jmeter调用加密后的参数
  • 在线程组下添加Bean Shell PreProcessor
    在这里插入图片描述
  • 编写脚本
    在这里插入图片描述
  • 代码如下,其中taxCode和areaCode参数调用.csv里的数据
//导入加密类,在测试计划中已经导入jar包
import com.XXX;

//加密的key值
String KEY = "sMdqF9H%tQPuU5U*";

//${aestaxCode}${areaCode}参数化调用.csv里的数据
String json_str = "{\"taxCode\":\"${aestaxCode}\",\"machine\":\"0\",\"areaCode\":\"${areaCode}\"}";
//System.out.println("============"+json_str);

//调用加密方法
String json_aes = CipherUtils.aesEncrypt(json_str,KEY);
//System.out.println("============"+json_aes);

//将加密后的参数放入aesContent中,aesContent可以在jmeter中通过${}方式直接引用
vars.put("aesContent",json_aes);
  • 如图jmeter中通过${}方式直接引用加密后的aesContent
    在这里插入图片描述

  • 其他类似的,用户名和密码加密如下

//导入加密类,在测试计划中已经导入jar包
import AES.AESUtil;  
 
//获取登陆接口的用户名参数,我之前将username和password存放在用户变量中,在此要拿出用户变量分别赋值给name和password
String name = vars.get("username");
String password = vars.get("password");
 
//将name和password进行加密后分别赋值给aesName和aesPassword
String aesName = AESUtil.encrypt(name);
String aesPassword = AESUtil.encrypt(password);
 
//将加密后的用户名和密码分别放入aesname和aespwd中,aesname和aespwd可以在jmeter中通过${}方式直接引用
vars.put("aesusername",aesName);
vars.put("aespwd",aesPassword);

5、运行结果

(1)设置线程组,根据测试需求来设置。我们这里设置的是1001个虚拟用户,时间是60s,循环1次。
在这里插入图片描述
(2)全部都设置好了就可以点击绿色箭头运行了,或者点击“运行”菜单栏的“启动”列表。运行完成后,我们来看看查看结果数。点击响应数据查看返回数据是否和研发部编写的一致。

  • 请求参数
    在这里插入图片描述
  • 相应数据
    在这里插入图片描述
    (3)我们再来检查一下请求的参数是否正确。由于我们请求参数加密处理过,可以看相应数据里的taxNum是否在对应.csv文件中。

四、在Jmeter中远程调用启动Linux服务器

1、服务端配置

(1)Linux上安装Jmeter,配置好环境路径,本文上面有写。
最好与客户端保持同版本,jdk最好也保持同版本,无法满足时至少保证服务器上的jmeter能正常运行(如jmeter3.0以后需要jdk1.7及以上版本)。

(2)在服务器的%JMETER_HOME%bin目录下执行./jmeter-server命令启动jmeter服务就可以,启动成功如下图:
在这里插入图片描述
(3)注意:上图红框中的ip为服务器的ip地址,当服务器有多网卡时它会随机挑选一个网卡使用,红框中的端口号port为启动jmeter服务监听的port,一般会有个默认端口号1099,但最好自定义,确保端口号不冲突。修改方法在下文介绍。

2、客户端配置

(1)在本地安装Jmeter的bin目录下,找到jmeter.properties打开,添加远程服务器ip+服务监听的port,保存后重新打开Jmeter。多个机器的配置可通过逗号分隔。
在这里插入图片描述
(2)左上角-运行-可以看到刚刚添加的服务器地址,运行。
在这里插入图片描述
(3)在客户端通过监听器-聚合报告或察看结果数可看到执行结果。
在这里插入图片描述
在这里插入图片描述

3、自定义端口号配置

(1)在服务器的%JMETER_HOME%bin目录下找到jmeter.properties,修改如下两项配置,即可自定义端口号:

server_port=1029server.rmi.localport=1029

(2)修改后执行服务端的jmeter-server即可看到控制台消息中修改是否生效;修改生效后需在客户端修改相应的jmeter.properties下的remote_hosts。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值