前言

最近在看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/

 
有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。 
技术债不能欠,健康债更不能欠, 求道之路,与君同行。

Jmeter压测快速体验的更多相关文章

  1. 性能工具之Jmeter压测Hprose RPC服务

    概述 Hprose(High Performance Remote Object Service Engine),国人开发的一个远程方法调用的开源框架.它是一个先进的轻量级的跨语言跨平台面向对象的高性 ...

  2. jmeter压测app

    使用代理的方式,录制app端脚本,之后用jmeter压测就没啥好说的了 1.电脑端谷歌设置本地代理(端口号为8888) 2.jmeter设置HTTP代理服务器(端口号为8888) 3.手机端wifi设 ...

  3. JMeter压测基础(三)——Mysql数据库

    JMeter压测基础(三)——Mysql数据库 环境准备 mysql驱动 JMeter jdbc配置 JMeter jdbc请求 1.下载mysql驱动:mysql-connector-java.ja ...

  4. jmeter压测参数设定(转)

    jmeter压测参数设定 一.基本公式 线程数 = QPS * time: 注:QPS--每秒完成请求的个数:time--每个请求响应完成平均需要时间: 故QPS * time就是所有请求完成响应所需 ...

  5. jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包

    一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...

  6. jmeter压测之添加负载机

    jmeter压测基本介绍一般基准测试(基准测试时间一般为5分钟)后压测的时间是10-15分钟: 实施测试之前要拿到测试指标 例如:tps要达到多少响应时间要达到多少并发数要达到多少TPS :服务端每秒 ...

  7. jmeter 压测duobbo接口,施压客户端自己把自己压死了

    jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始 ...

  8. jmeter压测-负载配置

    jmeter 压测 一般压测的时间是10-15分钟 TPS:服务端每秒钟处理的请求数  越大越好 响应时间 :越短越好 并发用户数  也就是多少并发 指标给你:tps要达到多少 响应时间要达到多少 并 ...

  9. JMeter压测“java.net.BindException: Address already in use: connect”解决方法

    之前在windows机上用JMeter压测,50并发下出现大量接口报“java.net.BindException: Address already in use: connect”错误. 从字面的意 ...

随机推荐

  1. 前台处理ajax:axios

    """ 1.安装axios cnpm install axios --save 2.src/main.js配置 // 允许ajax发送请求时附带cookie axios. ...

  2. mvn eclipse:eclipse

    pom.xml 在哪个文件夹, 你就在哪里按shift 右键,,[在此处打开命令窗口]  执行那个命令. mvn eclipse:eclipse

  3. 第48章 MDK的编译过程及文件类型全解

    Frm: http://www.cnblogs.com/firege/p/5806134.html 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教 ...

  4. ubuntu 搭建嵌入式开发环境tftp的方法

    网上很多安装的时候都要安装tftpd-hpa tftp-hpa xinetd三个安装包,经我测试,xinetd无需安装,安装好前两个后,修改tftpd-hpa的配置文件即可:etc/default/t ...

  5. java-day21

    # DQL:查询语句     1. 排序查询         * 语法:order by 子句             * order by 排序字段1 排序方式1 ,  排序字段2 排序方式2... ...

  6. kibana 7.* 设置中文 汉化

    原文:kibana 7.* 设置中文 汉化 个人博客:forever121.cn kibana 一直是 日志分析 中得力的助手 由于 kibana5.* 6.* 官方并没有支持中文,需要另外下载补丁包 ...

  7. pytest--fixture之参数化

    场景:测试用例执行时,有的用例需要登陆才能执行,有些用例 不需要登陆.setup和teardown无法满足.fixture可以.默认 scope(范围)function • 步骤: 1. 导入pyte ...

  8. EtherCat开源主站SOEM在windows下工程配置

    截至2019年1月,虽然github上有1.3.3的更新,但是用的人估计还不多,而且1.3.2被官方认为bug严重弃用.所以还是学习1.3.1. 1.拷贝osal.oshw.soem.lib(已生成l ...

  9. 12_通过 CR3 切换_读取指定进程数据

    注意: cr3 切换 ,导致eip 指向的页面,改变为对应cr3 的页面:所以代码也变了:这里需要将这部分代码放入公共区域. 解决: 使用 类似前面 山寨 systemfastcallentry 的方 ...

  10. map方法的简单使用

    假设有一个数组a,将a中的数值以2倍的形式放到b数组中 <!DOCTYPE html> <html lang="en"> <head> < ...