你还在用Jmeter的GUI模式进行性能测试吗?(二)
上节描述了通过Non GUI模式运行Jmeter脚本执行压力测试,举了例子如:
Jmeter –n –t test.jmx –l test_result.jtl –e–o ./report
就是以非界面模式执行test.jmx这个脚本,生成结果文件为test_resutl.jtl,运行结束后创建图形仪表报告,放在当前目录的report文件夹下。
编者写第一节的时候就觉得在GUI模式下设置线程数、持续时间、运行次数等其实不是很方便,太依赖GUI设置。于是发现还有一个更好用的功能没有介绍给大家,这节就主要给大家介绍如何更灵活地在命令行设置这几个参数。
一、首先我们先在GUI模式下把线程组、持续时间设成全局变量。
${__P(u_threadNum,)} 获取线程组属性
${__P(u_time,)} 获取时间属性
二、还是执行上节写好的脚本,加上两个全局变量
Jmeter -n -t baidu_tel_local.jmx -lbaidu_test_result7.jtl -e -o ./report7 -Ju_threadNum=100 -Ju_time=180
即增加了设置并发线程数为100,持续时间为180秒
执行180秒的过程中,执行机CPU达到60%。
三、我们再查看Jmeter报告
响应时间:百度验证手机归属地接口并发测试场景中,并发量=100时,有响应的请求基本为<500ms,99%的值平均响应时间为144ms。
业务成功率:并发量=100时,业务成功率=20%,不符合预期目标。还需要降低并发数来测试95%以上成功时候的指标。
RPS:线程组设置100个线程,RPS峰值可以达到1219个每秒。还需多测试不同并发线程数的指标验证该峰值。
Apdex:APDEX性能指数(Application Performance Index),是一个国际通用标准,Apdex是用户对应用程序性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终的用户体验和应用性能作为一个完整的指标进行统一度量。下图表示通用用户满意度区域,0
表示没有满意的用户,1
代表所有用户都满意。实际业务系统开发过程中,1
是团队所追求的目标。本次压测获得的值为0.181,明显是不符合要求的。还需要多测几组数据查找最佳的指标。
反之如果Apdex值比较大,表示用户满意度比较大,则说明此时服务器响应速度较快。
大家看完有什么看法可以随时留言,笔者继续研究和大家探讨。
- chmod: changing permissions of `/usr/local/bin/...
- a windows service with the name MYSQL already e...
- NameError: name 'admin' is not defined(彻底解决方案)
- Error: No module named blog
- ubuntu中的django安装配置与操作
- IOS开发之-搜索栏UISearchController详解
- java归并排序(最精简代码)
- java希尔排序(最精简代码)
- java插入排序(最精简代码)
- java快速排序(最精简代码)
- java选择排序(最精简代码)
- java冒泡排序(最精简代码)
- column 'id' in field list is ambiguous
- mysql中limit使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 为何IntelliJ IDEA比Eclipse好在哪里?
- 五分钟C语言数据结构 之 二叉树中序遍历
- Django 安全之跨站点请求伪造(CSRF)保护
- 五分钟C语言数据结构 之 二叉树先序遍历
- Java 语言基础(常用设计原则和设计模式,常用 Java 8~11 新特性)
- 五分钟C语言数据结构 之 二叉树后序遍历(非递归很重要)
- 5分钟Flink - 自定义Source源
- 9.深入k8s:调度器及其源码分析
- 5分钟Flink - 自定义Data Sink
- 5分钟Flink - 流处理API转换算子集合
- 视频上云/网络穿透/网络映射服务EasyNTS前端组织添加页面出现Vue冲突怎么解决?
- Pinpoint 一款强大的APM工具
- 1. Pandas系列 - 基本数据结构
- 6 年前,只会 JSP 和 Servlet 就可以找到工作
- Python文件处理实用指南