前言
最近在看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还是非常不错的,开发人员掌握这个以后,如虎添翼,随时随刻都能对自己的服务进行一个压力评测。
官网链接:
有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。
技术债不能欠,健康债更不能欠, 求道之路,与君同行。
分享到:
相关推荐
4. 执行压测:启动压测任务,阿里云会根据配置分配资源,执行JMeter测试脚本,模拟用户行为。 四、HTML可视化压测报告 1. JMeter内置报告:JMeter自身可以生成HTML格式的测试结果报告,包含聚合报告、响应时间图、...
- 压测工具:选择适合的压测工具至关重要,例如JMeter、LoadRunner、 Gatling等,这些工具能够模拟用户行为,产生压力并分析系统响应。 - 环境类型:压测环境可以是线上真实环境或线下模拟环境。线上环境直接反映...
在极端情况下,可采取降级策略,牺牲部分用户体验以保证核心业务的稳定。 9. **异常处理与回滚**:确保系统在出现问题时能快速恢复,使用事务管理保证数据一致性,并做好日志记录便于问题排查。 10. **灰度发布与...
1. 预防线上问题:全链路压测能够模拟真实用户负载,提前发现系统的瓶颈和潜在问题,避免因系统崩溃或响应缓慢导致的用户体验下降。 2. 系统优化:通过压测数据,可以分析出系统在高负载下的性能表现,指导进行性能...
在Java领域,性能压测对于优化应用性能、提升用户体验以及保障系统稳定性具有重大意义。本文将详细讨论性能压测环境的设计与搭建,以及阿里巴巴在这方面的一些实践经验。 首先,性能压测环境的设计需考虑以下几个...
常见的压测工具有Apache JMeter、LoadRunner、Gatling和 Locust等。这些工具能够设置不同的压力场景,如并发用户数、请求频率、会话持续时间等,以便真实模拟实际使用环境。 Apache JMeter是一款开源的Java应用,...
《JMeter5.x在Springboot后端接口性能测试中的应用详解》 ...通过对接口进行详尽的压力和负载测试,我们可以确保应用程序在高并发环境下能够稳定运行,提升用户体验,同时也为系统的持续优化提供了有力的数据支持。
4. **压测执行**:使用压力测试工具(如JMeter、LoadRunner等)进行测试,并实时监控系统性能指标。 5. **结果分析**:收集并分析测试结果,找出性能瓶颈和异常现象。 6. **优化改进**:根据测试结果调整系统配置,...
这可能包括利用开源压测工具(如JMeter、LoadRunner等)、云服务资源的弹性扩展、智能调度策略(如按需分配测试资源)以及复用现有脚本等方法。通过这些方法,开发者可以快速地对系统进行压力测试,找出性能瓶颈。 ...
3. **测试工具选择**:常见的压力测试工具有Apache JMeter、LoadRunner、 Gatling等。这些工具可以模拟大量并发用户,分析服务器性能,并提供详细的性能报告。 4. **容量规划**:通过对历史数据的分析,预测在大促...
综合这两份文档,我们可以深入学习电商平台在面对大规模促销活动时,如何通过科学的压测手段来保障系统的稳定性和用户体验,这对于任何大型互联网公司都具有很高的参考价值。同时,这也反映了IT行业中对性能优化和...
- **JMeter**:Apache JMeter是一款开源的压力测试工具,适用于Web应用,支持多种协议。 - **LoadRunner**:由HP(现为Micro Focus)开发,是一款功能强大的企业级压力测试工具,支持多种协议和应用。 - **iperf*...
6. **用户体验**:测试在高并发情况下,游戏客户端的体验是否受到影响,如延迟、掉线等问题。 在"hotel.cpp"的上下文中,可能包含了一些处理用户请求、数据存储、游戏逻辑等功能的代码。为了进行压力测试,我们需要...
总之,WebBench是一个轻量级但实用的压力测试工具,对于开发者和运维人员来说,它提供了一种快速评估Web服务器性能的方法,有助于提升服务质量和用户体验。通过深入理解和熟练使用WebBench,你可以更好地理解服务器...
在"reboot压测20180725"中,测试用例可能包括正常重启、连续快速重启、在重启过程中插入其他操作等。同时,我们还需要记录和分析测试结果,以便于问题定位和性能优化。 总结来说,自动化测试通过ADT工具可以实现对...
压力测试是预防性能瓶颈的重要手段,包括单机压测、集群压测、机房间压测等,利用jmeter、webbench、tcpcopy等工具模拟真实流量,找出系统潜在的问题。同时,交易监控系统(如交易红绿灯监控)持续监测性能、可用率...
在IT领域,有许多知名的压力测试工具,如Ixia的Chariot、iperf、JMeter、LoadRunner等。这些工具提供丰富的功能,支持自定义测试脚本,可以针对特定需求进行定制化压力测试。 五、测试过程与结果分析 测试过程通常...
**AB压力测试工具详解** 在IT行业中,性能测试是评估系统稳定性和承载能力的重要环节,而`ab`(ApacheBench)就是一个广泛使用的轻量级压力...了解并熟练掌握`ab`,对于优化服务器性能和提升用户体验具有重要意义。
1. **初步测试**:首先,我们使用JMeter工具对系统进行压测,模拟数千名用户同时登录和浏览商品页面的情况,观察服务器的响应时间和吞吐量变化。 2. **性能监控**:在压测过程中,使用Prometheus和Grafana等工具实时...
以一当十:高效引流自动Diff助力业务快速迭代 图像匹配方法在app界面自动化测试中的应用 云原生应用全自动化渐进式交付的gitops实践分享 中通科技信息安全质量保障实践 机器学习平台的测试实践 面向异构数据源的实时...