Jmeter压测快速体验
前言
最近在看neo4j相关的官网文档以及一些调优参数,同时也学了下Jmeter,为了测试下neo4j服务的性能,虽然不是专业搞测试的,但是我觉得每个优秀的开发者都应该学会主动压测自己服务和代码的性能,并非写完代码之后直接扔给测试就完事了,兵法云:知彼知己,才能百胜不殆嘛。
jmeter是什么
jmeter是一款开源的测试工具,源码100%基于Java并开源,最初的设计目的是用来测试Web应用的,由于其非常轻量级和免费,后来又扩展到其他测试领域。
jmeter的一些特点:
1.能够对HTTP,FTP,TCP,JDBC等服务器进行压力和性能测试,
2.完全的可移植性和100% 纯java。
3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
5.精心的GUI设计允许快速操作和更精确的计时。
6.缓存和离线分析/回放测试结果。
jmeter的高可扩展性:
1.可链接的取样器允许无限制的测试能力。
2.各种负载统计表和可链接的计时器可供选择。
3.数据分析和可视化插件提供了很好的可扩展性以及个性化。
4.具有提供动态输入到测试的功能(包括JavaScript)。
5.支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。
jmeter一些指标的意义
Samples:样本数
Average:平均响应时间
Median:中位数,50%响应时间小于此值
90%line:90%响应时间小于此值
Min:最短响应时间
Max:最大响应时间
Error:未命中数/比率
Throughput:吞吐量——每秒完成请求事务数【可以理解成tps或者qps,一般100用户压15min左右,其值会在800左右——很多地方并没有严格去计较,就像tps和qps概念是不一样的,可是很多时候可以混为一谈】
Kb/sec:每秒接收数据量
jmeter的安装
下载地址: http://ftp.kddilabs.jp/infosystems/apache/jmeter/binaries/apache-jmeter-3.1.tgz
jmeter是java写的,所以要求你的电脑上需要先提前安装JDK,在windows上直接解压下载后的压缩包,然后进入
apache-jmeter-3.1\bin目录
双击jmeter.bat启动,看到下面的一个UI
注意,jmeter已经有多语言支持,如果是英文语言版本的我们可以在上图的设置选项里面改为中文设置。
快速体验例子(一)
如何对百度首页url进行一次性能测试? (GET请求)
(1)右击 测试计划=>添加=>Threads (Users)=>线程组 注意名称我已经改成百度首页测试
(2)右击 百度首页测试=>添加=>Sampler=>HTTP请求
(3) 添加结果集展示或聚合报告
上图里面有很多的结果集报告,大家可以根据情况添加
我这里添加了三个
(一)右击 百度首页测试=>添加=>监听器=>察看结果树(非常重要,类似debug,有详细的请求响应体,初学者建议一定要添加,否则出了问题,你根本看不到提示)
(二)右击 百度首页测试=>添加=>监听器=>用表格察看结果(单次请求详细报告)
(三)右击 百度首页测试=>添加=>监听器=>聚合报告(所有的请求报告额外加入汇总聚合报告)
快速体验例子(二)
对neo4j的一个rest接口进行一次批量测试,(post请求+用户名密码认证+http header参数设置)
注意例子一不用的时候,可以禁用,不影响另一个测试,jmeter里面的所有子组件都可以禁用,然后测试的时候,会忽略这个组件,这个功能,非常实用,建议大家尝试一下:
(1)线程组里面配置1000次样本压测:
(2)HTTP请求的一些参数设置: 注意这次HTTP请求下面多了两个组件:
(A) HTTP请求=>添加=>配置元件=>HTTP授权管理器(管理post的用户名和密码)
(B) HTTP请求=>添加=>配置元件=>HTTP信息头管理器(管理请求头携带参数)
(3)这次结果里面多加了图形结果,这个结果是以图表的方式展示,适合大批量的测试 时候观察性能的:
总结:
从上图可以非常漂亮的看出压测结果,底部有平均响应时间,非常方便,此外 整个配置项最后可以保存成一个jmx文件,以后再次启动jmeter依然存在。从整体体验来说 jmeter还是非常不错的,开发人员掌握这个以后,如虎添翼,随时随刻都能对自己的服务进行一个压力评测。
官网链接:http://jmeter.apache.org/
技术债不能欠,健康债更不能欠, 求道之路,与君同行。
Jmeter压测快速体验的更多相关文章
- 性能工具之Jmeter压测Hprose RPC服务
概述 Hprose(High Performance Remote Object Service Engine),国人开发的一个远程方法调用的开源框架.它是一个先进的轻量级的跨语言跨平台面向对象的高性 ...
- jmeter压测app
使用代理的方式,录制app端脚本,之后用jmeter压测就没啥好说的了 1.电脑端谷歌设置本地代理(端口号为8888) 2.jmeter设置HTTP代理服务器(端口号为8888) 3.手机端wifi设 ...
- JMeter压测基础(三)——Mysql数据库
JMeter压测基础(三)——Mysql数据库 环境准备 mysql驱动 JMeter jdbc配置 JMeter jdbc请求 1.下载mysql驱动:mysql-connector-java.ja ...
- jmeter压测参数设定(转)
jmeter压测参数设定 一.基本公式 线程数 = QPS * time: 注:QPS--每秒完成请求的个数:time--每个请求响应完成平均需要时间: 故QPS * time就是所有请求完成响应所需 ...
- jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包
一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...
- jmeter压测之添加负载机
jmeter压测基本介绍一般基准测试(基准测试时间一般为5分钟)后压测的时间是10-15分钟: 实施测试之前要拿到测试指标 例如:tps要达到多少响应时间要达到多少并发数要达到多少TPS :服务端每秒 ...
- jmeter 压测duobbo接口,施压客户端自己把自己压死了
jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始 ...
- jmeter压测-负载配置
jmeter 压测 一般压测的时间是10-15分钟 TPS:服务端每秒钟处理的请求数 越大越好 响应时间 :越短越好 并发用户数 也就是多少并发 指标给你:tps要达到多少 响应时间要达到多少 并 ...
- JMeter压测“java.net.BindException: Address already in use: connect”解决方法
之前在windows机上用JMeter压测,50并发下出现大量接口报“java.net.BindException: Address already in use: connect”错误. 从字面的意 ...
随机推荐
- 如何在Python中让两个print()函数的输出打印在一行内?
1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用‘,’代替空格,且默认末尾加 ...
- ffs, fls
linux内核中的宏ffs(x) linux内核中ffs(x)宏是平台相关的宏,在arm平台,该宏定义在 arch/arm/include/asm/bitops.h #define ffs(x) ...
- 卷积神经网络学习笔记(CNN)
看了很多关于卷积神经网络的论文和资料 可是我发现一个问题,就是pooling会出现一个问题 我能找到的代码里面都是用的均值子采样,如果改成最大或最小,或P范数都会在学习训练的时候遇到不知道怎么处理的问 ...
- 记录阿里云ECS搭建Wordpress(Centos7+LAMP)
占位 改变wordpress文件夹属主属组 cd /var/www/html chown -R apache:apache wordpress <VirtualHost *:> Docum ...
- java-Day01
什么是java语言 1995由美国SUN公司推出的高级编程语言(后2009年甲骨文公司收购SUN公司) 常用的DOS命令 盘符切换命令:盘符: 查看当前文件夹:dir 进入文件命令:cd 文件夹名 退 ...
- 一.Python特点
python第一节 简介 Python介绍 什么样的语言? 解释性语言:开发中没有编译的环节 交互式语言:在命令提示行执行python引擎,直接执行代码 面向对象语言:支持面向对象 优点 a.易学 b ...
- <%#Eval() %>的常用方法
<%# %>用于数据绑定,通常是用在数据源控件里,比如GridView,Repeater等. 1.绑定Repeater 基础用法 <%# Eval("DriverName& ...
- 新学MyBatis
今天学习了Mybatis入门,将知识归纳一下: 创建一个java项目之后,想使用myBatis需要完成一下几个步骤: 1.先导jar包 2.写model文件 () 3.写全局配置文件 SqlMapCo ...
- 从零开始搭建系统1.1——CentOs安装
本篇主要是记录安装CentOs的过程,为什么会选择CentOs,没有过多的原因,主要是出于CentOs相对来说安装的人比较多, 以后有问题了方便查资料.本次安装是安装在一台笔记本上,WIN7+Cent ...
- js求100以内的素数
//打印2~100之间的数 ; i< ; i++){ var a = true; ; j < i; j++){ //判断i能否被j整除 ){ //能被整除则说明不是素数,修改布尔值为fal ...