
性能测试
文章平均质量分 95
smooth00
近二十年软件开发及测试工作经验,以及多年技术管理和测试架构师经验,主要研究方向是性能测试和自动化测试,擅长工具的集成化应用和二次开发,对性能监控和性能分析、以及测试开发方面有多年的实战经验(热衷做小兵的老人)。
展开
-
利用Arthas+APM监控进行Java性能深度定位
大家可能都用过APM监控,包括开源的Skywalking、商用的卓豪(ZOHO)ManageEngine APM应用性能监控、以及云监控产品如听云(Server监控),这些APM监控产品大大方便了我们实时监控应用性能,并实现性能深度透视监控。但是这些监控手段离真正能够定位性能问题还是有一段距离,有时候可能就差这最后1米的距离,只能找资深开发人员介入定位分析,有些开发人员还真没这水平。原创 2023-08-07 15:11:51 · 1385 阅读 · 0 评论 -
JMeter分布式架构和端口知识
Jmeter的分布式调用是通过Java的RMI(Remote Method Invocation)技术实现的,RMI支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。RMI 用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。......原创 2022-08-22 13:57:37 · 744 阅读 · 0 评论 -
Metersphere相较于JMeter的优势解读
目前JMeter在接口测试和性能测试的市场占用率是很高的,最大的原因是其开源性、易扩展和轻量级(这是Loadrunner不具备的),并且也能满足多种协议的接口和性能测试。而Metersphere是一款基于JMeter引擎技术的软件测试平台,目前在接口测试和性能测试方面,不考虑轻量级因素,基本是可以替代JMeter,并且更易于开展线上测试工作(在线管理用例、在线编辑脚本和调试脚本,在线压测和在线分析报告)。............原创 2022-04-07 14:46:23 · 15181 阅读 · 9 评论 -
Jmeter动态吞吐量实现
在容量测试时,“控量”是非常重要的,JMeter 是根据线程数大小来控制压力强弱的,但我们制定的压测目标中的指标往往是吞吐量(QPS/TPS),这就给测试人员带来了不便之处,必须一边调整线程数,一边观察 QPS/TPS 达到什么量级了,为了解决这个问题,JMeter 提供了吞吐量控制器的插件,我们可以通过设定吞吐量上限来限制 QPS/TPS,达到控量的效果。原创 2021-12-02 16:03:24 · 8842 阅读 · 0 评论 -
前端性能测试工具Lighthouse
在前端开发中,对于自己开发的app或者web page性能的好坏,一直是让前端开发很在意的话题。我们需要专业的网站测试工具,让我们知道自己的网页还有哪些需要更为优化的方面,我自己尝试了一款工具:Lighthouse,感觉还不错,记录下来,也顺便分享给用得着的伙伴。Lighthouse分析web应用程序和web页面,收集关于开发人员最佳实践的现代性能指标和见解,让开发人员根据生成的评估页面,来进行网站优化和完善,提高用户体验...转载 2021-06-02 08:46:43 · 8280 阅读 · 0 评论 -
Jmeter的端口使用问题解析
Jmeter的端口是通过Java的RMI技术实现的,我们默认端口是1099,RMI就是远程方法调用(Remote Method Invocation),它支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。Java RMI 用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。RMI的交互图: RMI由3个部分构成...原创 2021-03-31 13:25:17 · 13236 阅读 · 1 评论 -
关于MeterSphere的性能测试架构理解
MeterSphere的定位为一个“一站式的开源持续测试平台”。它主要涵盖测试跟踪、接口测试、性能测试、团队协作等功能,同时兼容JMeter等主流的开源标准,可以有效地助力开发和测试团队充分利用云的弹性,进行高度可扩展的自动化测试。由于自己做性能测试,就比较关联性能测试这块的实现。以下是官方描述的架构:可以看出来,这个平台是基于Docker的集群部署架构,而且通过NodeController实现了分布式压测部署,性能测试任务会被下发到NodeController,一个NodeController就是原创 2020-09-24 09:13:31 · 25229 阅读 · 11 评论 -
关于Arthas如何远程监视Java程序
在使用 Arthas 之前,当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用 Arthas 轻松定位,迅速解决,及时止损,准时下班,关键是你还可以在局域网内通过浏览器用URL远程监视。1. Arthas 介绍Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持原创 2020-06-12 13:43:46 · 11415 阅读 · 0 评论 -
Mysql性能瓶颈深度定位分析
我们在性能测试过程中,经常会遇到Mysql出现性能瓶颈的情况,对于数据库来说,所谓的性能瓶颈无非是慢SQL、CPU高、IO高(有人会说内存高也算,说的对,比如发生比较严重的swap,由于我没遇到过,没有案例来说明),这次我就举这三方面的例子来进行性能分析:首先我们要保证没有数据库配置方面的性能问题,毕竟在性能测试前,需要对基本配置撸一遍,避免犯低级错误。一、慢SQL分析首先业务系统慢,肯定是体现在响应时间上,所以在性能测试中,如果发现慢我们就从响应时间上进行拆分,如果拆到mysql,那就是分析慢原创 2020-06-10 10:22:37 · 15424 阅读 · 3 评论 -
Java程序性能基础定位分析
1. 背景在做性能测试中不断思考java应用,性能怎么观察,怎么通过方法定位到代码,是否有通用步骤,通过查找资料与参考前人的知识总结,才有如下文章,话说知道不等于会,会不等于能运用,只有不断有意识的去练习才能掌握。总之,这属于基础技能,有了这层基础,再去使用高级版的工具(如阿里的Arthas),也就顺风顺水,水到渠成。本次定位的是Jmeter性能压测平台,对这个平台的介绍可以见:https://smooth.blog.youkuaiyun.com/article/details/83380879,为了让JAVA原创 2020-06-01 10:44:03 · 6071 阅读 · 0 评论 -
性能测试知识问题整理(三)
续上一篇《性能测试知识问题整理(二)》二十一、Ramp-up 配置有什么作用?为什么说压力工具中 TPS 和响应时间曲线抖动过大不易于分析?问题一:Jmeter中Ramp-up 配置有什么样的作用? Ramp-up 配置的时间是指启动所有配置的线程总数所用的时间,例如设置的线程总数为500,Ramp-up设置的时间为50s,意为:启动500个线程数需要50s,平均为每一秒启动10个线程。 另外整个压力持续时间Duration是包括Ramp-up的时间,很多人理解为是t...原创 2020-05-22 13:30:58 · 8308 阅读 · 2 评论 -
倾囊相授之性能分析思路
我还年轻的时候,经常听一些大会或者演讲。有些人说,思路逻辑非常重要。我那时就想,你肯定是瞎忽悠的,因为我怎么就没听懂你说的思路呢?而现在轮到自己来写或者讲一些东西的时候,才发现他们说得很对,而我之所以不理解,也是有原因的。性能分析思路和具体的实现之间,有一道鸿沟,那就是操作的能力。之前我为什么听不懂那些人的思路,其实是因为我没有操作的功底。而有了操作的功底之后,还有一个大的鸿沟要越过去,那就是从操作到对监控计数器的理解。这一步可以说让很多性能测试人员都望而却步了。但是这还不算完,这一步迈过去转载 2020-05-18 10:35:36 · 6631 阅读 · 3 评论 -
性能测试知识问题整理(二)
续上一篇《性能测试知识问题整理(一)》十一、响应时间的258原则和业务模型的二八原则为什么不合理?问题一:为什么响应时间的258原则不合理? 这个命题争论的问题在于「快、好」的定义上,响应时间是否合理是要进行对比的。做为不同业务下的性能水平,快的定义是不一样的,比如在数据处理业务中,常分OLAP(联机分析处理)、OLTP(联机事务处理),比如一个简单的 OLTP 查询有大厂是要求微妙级别的,OLAP 统计报表类的业务查询几分钟也是可以接受啊,例如现在的大数据技术测试,在不同的条件...翻译 2020-05-14 15:10:50 · 7186 阅读 · 0 评论 -
性能测试知识问题整理(一)
参考高楼的《性能测试实战30讲之问题问答整理》,觉得他写的好,但是看原文一问一答的方式,比较散乱,我就重新按自己的想法整理一下,主要是抽取核心的内容方便自己查阅:一、性能测试的概念到底是什么?性能项目分为如下几类: 新系统性能测试类:这样的项目一般都会要求测试出系统的最大容量,不然上线心里没底。 旧系统新版本性能测试类:这样的项目一般都是和旧版本对比,只要性能不下降就可以根...翻译 2020-05-09 14:19:02 · 13248 阅读 · 1 评论 -
2020~2022年软件测试的五大趋势
今天是1月22日,公司正式开始放假了,为了安心过个春节(一年不容易,怎么也得找个理由放松放松),我也要开始两耳不闻窗外事了,但为了以示对新一年的关注,在这里转载一篇文章(凑数一下,已经没有心情写博客): 随着数字化技术应用的广泛普及,业界对于软件测试的要求也在持续迭代与增加。当前,越来越多的企业和组织都相继采用了Agile (敏捷)和DevOps之类的软件开发方法,以...转载 2020-01-22 14:07:51 · 9022 阅读 · 2 评论 -
Jmeter函数分类及自定义开发
Jmeter强大之处是其开源性和可扩展性,所以Jmeter拥有大量丰富的插件和元件,还有各种好用的函数,如果能巧妙应用函数助手里的函数,就能让性能测试脚本插上翅膀,实现各种复杂的计算和逻辑应用场景。 以下是我整理的各个版本所启用的函数(可能也会有一点出入,欢迎大家指正),这些函数在不同的jmeter版本中启用,所以jmx脚本的兼容性一定要考虑到这些因素(如果函数一但不...原创 2019-11-26 17:26:14 · 8370 阅读 · 0 评论 -
性能测试工具操作数据库(七)-Loadrunner与SQL Server
性能测试工具操作数据库连载七,本章节以loadrunner操作SQL Server为例,调取loadrunner函数实现SQL Server数据库的连接、查询和插入操作。原创 2017-03-30 14:06:16 · 11809 阅读 · 0 评论 -
一系列自动化测试的开源项目介绍
在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来一点帮助。一、性能自动化测试1、项目名称:基于Jmeter实现的在线压测平台和在线管理Jmeter脚本系统项目简介:本项目基于renren-f...原创 2018-11-21 14:14:22 · 23972 阅读 · 7 评论 -
关于Jmeter参数化的编码问题
大家用jmeter最常遇到的是请求参数中文乱码问题(至于返回值乱码问题由于处理简单也不影响测试,就不在这里说了),而对于这个问题,很多人不能从根本上去分析和理解,所以就无法从根本上去回避和解决,以下我就通过几种情况来分别说明:在这之前,先做好测试案例:(1)准备CSV数据文件,内容只有三列:1,test,测试注意:这里的文件名含路径,linux下必须是csvData/ID2.csv...原创 2018-08-15 11:25:51 · 9698 阅读 · 0 评论 -
JMeter测试WebSocket的经验总结
最近有一个微信聊天系统的项目需要性能测试,既然是测试微信聊天,肯定绕不开websocket接口的测试,首选工具是Jmeter,网上能搜到现成的方法,但是网上提供的jar包往往不是最新的,既然是用最新版本的Jmeter4.0,那么所依赖的插件jar包也应该追求新的。所以提供了以下链接供大家下载(甚至连源码都提供):(1)Jmeter工具(2)websocket请求模板JMet...原创 2018-08-03 10:06:29 · 51806 阅读 · 30 评论 -
WMI监控碰到错误号53的问题定位
Spotlight On Oracle这款监控工具可以用来监控Windows操作系统,监控的原理是通过WMI远程访问协议,有时候监控会出现连接报错,比如报"错误号53,找不到网络路径”,或者是报别的错误,只要我们遵循以下的分析思路就能找到问题的根源:1、运行wbemtest测试通过在监控端,在Windows操作系统中,开始->运行->wbemtest,点击连接输入命令空间:\\{IP}...原创 2018-07-06 09:04:04 · 4468 阅读 · 0 评论 -
听云监控.NET Core的配置误区
听云算是较早推出.Net Core应用性能监控的(2017年11月推出),和听云其他语言的监控工具一样,也是无需开发人员介入即可实现在无需修改代码、无需重新编译应用,就能深入代码级别的应用监控。工具虽好,但也满满的是坑呀,特别是按照听云的使用说明进行基于IIS+.Net Core的应用部署配置,发现问题还不少。 在这里我们只讨论IIS发布部署的方式(Windows环境),因为就这...原创 2018-05-02 08:34:39 · 5055 阅读 · 3 评论 -
搭建Jmeter容器集群平台
基于大量虚拟机的Jmeter集群有个缺点,就是不方便管理,比如需要重启Jmeter服务,还需要一个个的连接到虚拟机上进行操作,而且安装部署不方便(无法一键部署),也不方便将集群封装成整体应用对外提供服务。这些缺点通过Rancher部署的容器云平台就能够解决。一、给各个节点的虚拟机安装Docker可以让创建虚拟机时就自动带上统一版本的Docker,就可以省掉这一步操作,网上还推荐使用DaoC...原创 2018-05-03 11:11:49 · 12277 阅读 · 17 评论 -
针对性能测试工具Gatling与Jmeter的比较及看法
我是一个用惯Loadrunner的人,由于Loadrunner过于重量级,不方便在云端部署和使用,所以平常在这方面只能选择Jmeter,Jmeter的开源性和轻量化是我最喜欢的地方,但是Jmeter的脚本开发模式是我最不喜欢的地方:jmx脚本对应的XML格式太不直观,不方便维护和管理,代码调试也不方便(对于我们这些不愿意依赖于脚本录制的人来说,这点很重要),另外不喜欢的就是Jmeter的性能和稳定...原创 2018-04-20 10:44:09 · 17779 阅读 · 6 评论 -
常用测试工具整理
平常测试过程中会用到不少测试工具,有些工具的使用频率还非常的高,以下做个简单的梳理,以供参考:原创 2018-04-20 10:00:37 · 26275 阅读 · 6 评论 -
六款开源java应用性能监控工具
如果你正在寻找性能监控工具,不妨看看以下推荐的这六款开源工具,这些工具目前已经可以替代付费工具了,你可以看看是否是你的最佳选择。本文推荐的六款开源工具目前是开源社区中最受欢迎的,在https://github.com上都能直接搜到。原文来自:http://tech.it168.com/a2017/0120/3093/000003093435.shtml1.SkyWalking ...原创 2018-12-14 13:28:34 · 30165 阅读 · 0 评论 -
开源APM监控Pinpoint的快速部署和使用
Pinpoint是用于大规模分布式系统的APM工具。它是在Dapper(一个由Google构建的分布式系统跟踪基础架构)之后构建的,为开发人员提供有关复杂分布式系统行为的更多信息。开源地址:https://github.com/naver/pinpoint Pinpoint作为一款非常优秀的开源APM监控平台,和其他开源系统一样,最繁琐的应该是部署,但是如果你能通...原创 2018-12-20 15:21:36 · 6329 阅读 · 0 评论 -
开源运维监控open-falcon的快速部署
在目前流行的三大开源运维监控工具Zabbix、Nagios、Open-Falcon当中,Open-Falcon属于后起之秀,由小米团队提供,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过端口进行日志上报),对服务器、操作系统、中间件、应用进行全面的监控,及报警,对我们的系统正常运行的作用非常重要。由于公司有意采用这款监控,我也专门花时间简单研究了一下,在这就提供一下如何进行快速部署(...原创 2019-01-09 17:27:08 · 5947 阅读 · 1 评论 -
Jmeter的Html报告汉化及解析
经常有人提出Jmeter生成的html报告都是英文的看不懂,能不能给解释一下,一般提出这种问题的人要么是懒,要么是对性能测试不是很了解(隔行如隔山嘛,可以理解)。所以我专门整理了Jmeter报告的汉化模板,有兴趣的可以下载。当然不可能所有的内容都汉化,所以以下我会对各项指标再做一下说明。一、html模板汉化 专门准备了Jmeter 4.x 和Jmeter5.x 两套汉化模板:h...原创 2019-09-12 17:13:30 · 18189 阅读 · 17 评论 -
Skywalking的存储配置与调优
作为一款APM和全链路监控平台,Skywalking算是挺出色的。Skywalking是APM监控平台的后起之秀,大有超越其他开源APM监控平台的趋势。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行相应的指标统计。 目前Skywalking支持h2、mysql、Elastic...原创 2019-07-19 15:51:44 · 36393 阅读 · 14 评论 -
Skywalking vs Pinpoint
来源:阿飞的博客说明:本次对比基于skywalking-6.0.0-GA和Pinpoint-1.8.2(截止2019-02-19最新版本)。另外,我们这次技术选型直接否定了Zipkin,其最大原因是它对代码有侵入性,CAT也是一样。这是我们所完全无法接受的。这应该是目前最优秀的两款开源APM产品了,而且两款产品都通过字节码注入的方式,实现了对代码完全无任何侵入,他们的对比信息如下:...转载 2019-06-11 16:20:56 · 6003 阅读 · 0 评论 -
全链路压测方案梳理
全链路压测的概念挺火的,想做成却没有机会(毕竟不是互联网巨头类的公司),所以在这里也不想纸上谈兵,可能过段时间它就会被更新更高大上的概念给替换了,但是我们可以收集一下相关资料(目前可以开展全链路压测的公司真的很少,所以资料有限),将来对自己的性能测试项目可能也会有帮助:相关链接:阿里全链路压测 全链路压测3.0 智能全链路压测有赞全链路压测实战 全链路压...原创 2019-06-10 15:13:43 · 11140 阅读 · 6 评论 -
用Jmxtrans自定义收集Java监控指标
使用Jmxtrans的理由:JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。利用JMX可以对外暴露jvm内部的一些指标,但是要获取那些jvm的内部信息,就还需要自己写java程序调用jmx接口去获取数...原创 2019-05-21 10:00:56 · 10823 阅读 · 0 评论 -
说说性能测试的几个概念
性能测试(Performance Test)通过测试工具和测试手段,监测和收集测试过程中的软件系统运行数据,度量系统与预定义目标的差距。而预定义目标就是通过性能需求来表示。怎样才能更有效的获得性能需求?以便更好设计、执行性能测试。可以按以下步骤:1. 收集,根据项目历史数据,或者根据经验2. 分析,比如业务人员很多,底层到中层、再到高层。分析历史数据、竞品、业务。业务需要分析业...翻译 2019-04-27 12:21:03 · 4860 阅读 · 2 评论 -
基于Jmeter的性能压测平台实现
很早就想要一套属于自己的性能压测平台,原因是使用了阿里云的性能测试PTS,就挺羡慕能有一个这样的性能测试平台,但毕竟人家的东西我们高攀不起(要钱的),而且阿里云的性能测试平台是不支持多种协议的(比如我有一个项目要用websocket测试,结果人家就支持http压测)。 说到开发自己的性能测试平台,肯定想到的是Jmeter,因为开源的性能测试工具没有比它更强大的了,所以第一个想到的是...原创 2018-10-25 17:33:25 · 43476 阅读 · 40 评论 -
关于Jmeter长时间压测的可视化监控报告
最近有个测试项目,是针对云平台的数据库连接稳定性测试,一般做稳定性测试想到的工具是Loadrunner,因为“成熟稳定”,但是这么重量级的工具不适合搬到云平台上开展测试。于是就想到了Jmeter,Jmeter是优秀的开源测试工具,但是其稳定性还有待验证。 首先将Jmeter轻量包(免安装)上传到云平台,这次肯定是要分布式测试了(因为要测试20台虚拟机与阿里Mysql连接的稳定性),...原创 2018-04-13 14:16:54 · 18922 阅读 · 10 评论 -
关于Loadrunner并发组函数web_concurrent的注意事项
web_concurrent_start函数是并发组开始的标记。组中所有的函数是并发执行的,并发组的结束符为web_concurrent_end 函数。在并发组中,可以包含的函数有:web_url、web_submit_data、web_custom_request、web_create_html_param、web_create_html_param_ex、web_reg_save_param、...原创 2018-03-14 17:22:46 · 5179 阅读 · 0 评论 -
如何让Loadrunner或Jmeter发送邮件报告
Loadrunner支持Java Vuser,而Jmeter本身就是基于Java开发的,所以两者都可以通过JMail组件实现邮件发送。本人使用的是mail-1.4.7.jar,可以通过下载获得:http://download.youkuaiyun.com/download/smooth00/10256343 发送邮件除了需要在Loadrunner或Jmeter做好以上Jar包的引用,...原创 2018-02-24 09:18:23 · 4919 阅读 · 1 评论 -
性能测试工具操作数据库(八)-Jmeter与SQL Server
性能测试工具操作数据库连载八,本节在上一节Loadrunner操作Sql Server的基础上,改成用Jmeter工具连接操作,具体包括JDBC连接、查询、插入数据操作,涉及到的操作过程和注意事项对新人绝对有帮助。原创 2017-03-31 10:14:03 · 11397 阅读 · 2 评论 -
如何在Loadrunner11中解决HTTP BASIC认证登录报401的问题
在对Carte+kettle的性能测试过程中,通过在loadrunner中用web_set_user("cluster", "cluster","172.17.2.89:8080");可以登录carte服务页面,但是压力测试过程中发现报告中产生了大量的HTTP 401请求。虽然这个错误不影响最终的测试,但是让追求完美的我,感觉不舒服,总觉得哪里有个重要事情我没搞明白。原创 2017-03-24 13:41:04 · 15216 阅读 · 3 评论