Jmeter学习笔记十:简单的Jmeter压力测试

目录

1.设计压力测试场景

2.Jmeter请求元件之并发场景(线程数)设置

3.Jmeter执行压力测试

3.1.测试的前期准备

3.2.测试执行

4.Jmeter GUI模式和非GUI模式的查看

5.Jmeter常用命令的学习使用

6.Jmeter使用命令行生成html报告


1.设计压力测试场景

目标场景:前程贷的登录-投资-退出

核心业务:投资

并发用户数:目标100

脚本的录制,参照Jmeter学习笔记九:Jmeter录制WEB脚本

2.Jmeter请求元件之并发场景(线程数)设置

如何设置线程数?

Jmeter学习笔记十:简单的Jmeter压力测试_第1张图片

线程数:就是并发数,如果目标100,会采用叠加的方式进行添加;

Ramp-Up Period(in seconds):全部线程启动的时间,比如100个线程,20秒,则表示20秒内100个线程都要启动完成,每秒启动5个线程;策略:想要服务器压力大点就时间少点,想要服务器的压力慢慢增加就时间长点;

循环次数:每个线程发送的次数,如果值为3,100个线程,则会发送300次请求;可以勾选永远循环,跟下面的持续时间配合使用;

调度器:配合永远循环使用,去设置持续时间;

3.Jmeter执行压力测试

3.1.测试的前期准备

3.1.1.添加“响应断言”

我们可以给登录接口和投资接口添加一个“响应断言”,来判断我们的登录接口和投资接口是否请求成功,如下所示:

Jmeter学习笔记十:简单的Jmeter压力测试_第2张图片

3.1.2.添加“断言持续时间”

然后给登录接口,要投标的详情接口以及投资接口添加“断言持续时间”,并规定请求的响应时间不能超过2000毫秒;

对于响应时间的设置原则,参考性能测试二八原则,响应时间2/5/8原则

Jmeter学习笔记十:简单的Jmeter压力测试_第3张图片

3.2.测试执行

3.2.1.进行压力测试

由于此网站之前没有做过压力测试,所以并发数从1开始,往后10、20、30、40、50、60、70、80、90、100;

我们先设置线程数为1,循环次数为3,进行压力测试,然后查看聚合报告

Jmeter学习笔记十:简单的Jmeter压力测试_第4张图片Lable: Sampler的名称

Samples: 一共发出去多少请求,例如10个用户,循环10次,则是100

Average: 平均响应时间,默认情况下是单个Request的响应时间

Median: 中位数,也就是 50% 用户的响应时间

90% Line : 90% 用户的响应不会超过该时间 (90% of the samples took no more than this time. The remaining samples at least as long as this)

95% Line : 95% 用户的响应不会超过该时间

99% Line : 99% 用户的响应不会超过该时间

Min : 最小响应时间

Max : 最大响应时间

Error%:错误的请求的数量/请求的总数

Throughput: 吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps

Received KB/Sec: 每秒接收数据量

3.2.2.查看压力测试结果

打开保存到本地的压力测试结果,中文全部为乱码,解决方法,参考Jmeter聚合报告导出后,打开乱码的解决方法

Jmeter学习笔记十:简单的Jmeter压力测试_第5张图片

timeStamp:请求发出的绝对时间

elapsed:响应时间

label:Sampler的名称

responseCode:返回码

responseMessage:返回消息

threadName:请求所属的线程

dataType:数据类型

success:是否成功

failureMessage:失败消息

bytes:字节

Latency:响应时间

4.Jmeter GUI模式和非GUI模式的查看

4.1.Jmeter的GUI模式

做一般的接口测试/脚本调试/压力测试,在脚本录制编写初期,我们一般都会选用GUI模式,因为这里不会涉及到压力测试,只是调试脚本,我们本身关注的也是结果是否通过 。更加关心的是如下几项:

  • 察看结果树
  • Sampler的数据
  • 参数化是否成功
  • 断言结果
  • debug结果
  • 正则表达式提取器

4.2.Jmeter的非GUI模式

我们在启动Jmeter时,会看到下面的信息:

Jmeter学习笔记十:简单的Jmeter压力测试_第6张图片

提示我们如果是做load testing,就不要使用GUI模式,而是要用非GUI模式。

GUI模式:界面模式

非GUI模式:命令模式

接下来我们来学习命令模式,如果是做压力测试,那么Jmeter脚本里的Debug Sampler,察看结果树以及聚合报告这些元件都要屏蔽掉,否则会影响性能测试结果。

5.Jmeter常用命令的学习使用

Jmeter学习笔记十:简单的Jmeter压力测试_第7张图片

如果在Jmeter GUI模式的聚合报告中指定了测试结果的保存路径,那么用命令执行测试脚本的时候,便不需要再次指定! 

Jmeter学习笔记十:简单的Jmeter压力测试_第8张图片

指定测试结果文件及日志路径的命令如下:

F:\apache-jmeter-3.3\bin>jmeter -n -t D:\develop\软件测试\软件测试练习\jmeter\day04\Jmeter压力测试.jmx -l D:\develop\软件测试\软件测试练习\jmeter\day04\聚合报告_线程数1循环次数3.csv -j D:\develop\软件测试\软件测试练习\jmeter\day04\log_01.log

6.Jmeter使用命令行生成html报告

Jmeter提供了一个用于生成HTML页面格式图形化报告的扩展模块,该模块支持通过两种方式生成多维度图形化测试报告:

  • 在Jmeter性能测试结束时,自动生成本次测试的HTML图形化报告
  • 使用一个已有的结果文件(jtl或csv文件)来生成HTML图形化报告

通常情况下,我们使用第一种方式生成html报告!

6.1.基本配置

首先,需要在jmeter.properties或者user.properties确认如下配置项:

jmeter.save.saveservice.bytes = true
jmeter.save.saveservice.label = true
jmeter.save.saveservice.latency = true
jmeter.save.saveservice.response_code = true
jmeter.save.saveservice.response_message = true
jmeter.save.saveservice.successful = true
jmeter.save.saveservice.thread_counts = true
jmeter.save.saveservice.thread_name = true
jmeter.save.saveservice.time = true
# the timestamp format must include the time and should include the date.
# For example the default, which is milliseconds since the epoch: 
jmeter.save.saveservice.timestamp_format = ms
# Or the following would also be suitable
jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss

如果希望在Errors报告中展示更详细数据,需要确保如下配置

jmeter.save.saveservice.assertion_results_failure_message = true

如果使用了事务控制器(Transaction Controller),确认Generate parent sample为未勾选状态

6.2.生成html测试报告

a.在压力测试结束时同时自动生成报告

  • 基本命令格式:

 jmeter -n -t -l -e -o

  • 样例:
jmeter -n -t D:\develop\软件测试\软件测试练习\jmeter\day04\Jmeter压力测试.jmx -l D:\develop\软件测试\软件测试练习\jmeter\day04\聚合报告_线程数1循环次数3.csv -e -o ./output

参数:
-n :以非GUI形式运行Jmeter
-t :脚本路径
-l :指定结果文件路径(jtl或csv)
-e :在脚本运行结束后生成html报告
-o :保存html报告的路径, 此文件夹必须为空或者不存在

b. 使用已有的压力测试结果日志文件生成报告

  • 基本命令格式:

 jmeter -g -o

  • 样例:
jmeter -g D:\develop\软件测试\软件测试练习\jmeter\day04\聚合报告_线程数1循环次数3.csv -o ./output

参数:

-g :specifies the existing result file   指定已存在的结果文件

以上两个样例都会在\apache-jmeter-3.0\bin\output目录下生成html测试报告!

Jmeter学习笔记十:简单的Jmeter压力测试_第9张图片

 

你可能感兴趣的:(jmeter学习笔记)