Jmeter使用笔记001

Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。

jmeter也可以用来做接口自动化

一、jmeter基础

1.1 jmeter的执行顺序

1,执行配置元件
2,前置处理器
3,定时器
4,取样器
5,后置处理程序
6,断言
7,监听器

1.2 jmeter的支持的请求类型

1.http请求

2.java请求

 

3.数据库请求

把jdbc的包放到jmeter的lib文件夹下

 

4.webservice请求

在jmeter3.2版本之后,就不支持这种方式,但是可以用http请求实现

5.tcp请求

等等。。。

1.3 jmeter的检查点

1.4 jmeter的if判断

1.5 jmeter的集合点

二、jmeter参数化

2.1 文本参数化

1.jmeter文本值传递,直接就是值,没有字段名。
线程数是指用户数
线程中的循环次数是指迭代次数
循环控制器的循环次数是相当于action中的for循环
2.参数化取值策略
All threads 唯一+每次迭代
Current threads 顺序+每次迭代
Current threads group 线程组内用唯一,线程组外用顺序。
区别
All threads 每个用户,每次取值都不一样。
3.参数编码格式
请求的编码格式在HTTP请求中配置
服务器返回的编码格式在jmeter.properties文件中配置

 

2.2 用户定义的参数

1.时间参数

${__time(yyyyMMddHHmmss,)}

2.随机参数

${__Random(100000000000001,999999999999999)}

三、jmeter关联

jmeter关联是用正则表达式来实现

1.元字符

.

2.限定符

代表/语法 说明
* 重复0次或者更多次
+ 重复1次或者更多次
重复0次或1次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n次到m次

四、jmeter结果查看

4.1 查看结果树

4.2 聚合报告

4.3 保存结果到文件

用beanshell编写脚本实现

 1 import java.io.*;
 2 
 3 String fileName = "D:/xiaolin/jmetertest/data3/orderId1.txt";
 4 String result = "${orderId}";
 5 
 6 BufferedWriter out = null;
 7 
 8 try {
 9     File file = new File(fileName);
10 if(!file.exists()){ 11 file.createNewFile(); 12 } 13 14 out = new BufferedWriter(new FileWriter(file,true)); 15 16 out.write(result+ ",\n"); 17 18 out.flush(); 19 } catch (Exception e) { 20 e.printStackTrace(); 21 } finally { 22 try { 23 out.close(); 24 } catch (IOException e) { 25 e.printStackTrace(); 26 } 27 }

 

五、jmeter非GUI执行命令

jmeter.bat -n -t G:\jmTest\Baidu.jmx -l G:\jmTest\01-reslut.jtl 

六、jmeter无页面分布式压测

1.将脚本和参数文件放在各个终端相同目录下

2.将每台终端的jmeter-server.bat打开,等待主机发起压测

3.在主机命令窗口输入如下命令:

jmeter.bat -n -t G:\jmTest\Baidu.jmx -R 192.168.1.23:1100,192.168.1.25:1200 -l G:\jmTest\01-result.jtl

命令中-R代表远程 remote ,后面跟随的是每台终端机jmeter-server窗口显示的 ip 和端口,同样,多台终端之间由逗号隔开,其他都与单机命令一样。于是可以看到各台终端机的jmeter-server窗口有关运行和阶段性summary的信息直至运行结束。总体的报告都在你主机保存的那个.jtl文件里。

posted @ 2020-05-01 09:21  cjxxl1213  阅读(127)  评论(0编辑  收藏  举报