全栈性能测试修炼宝典JMeter实战---初体验(一)

性能测试是利用工具模拟大量用户操作,验证系统负载情况、找出性能问题并解决。企业发展到一定阶段需重视性能。典型系统性能涉及多工种协作。文中还介绍了负载工具选择原则及性能测试相关术语,如负载、性能测试、TPS等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决;找出系统性能变化趋势,为后续的扩展提供参考。

  一般公司在做出确定可盈利的产品后,会对产品进行再次开发,来达到这个性能要求。所以第一个产品的性能要求和真正的推广产品的性能要求不是一个量级,企业发展到一定程度就得关注性能,重视性能。

典型的系统性能涉及的方面,需要多个工种,如图所示(架构师、开发、系统管理员、DBA、测试等),需要一起协调才能完成工作,每个环节都可能是瓶颈,造成阻塞。

1、黑盒测试只关心应用程序的单步响应时间,性能好坏就看应用时间多少,也就是数据流经过服务器/服务器集群经过网络传输后往返的时间总和

2、开发角度,架构合理性、数据库设计合理性、代码、内存使用方式、线程使用方式、系统资源是否有恶性不合理竞争。

3、系统管理员,硬件资源利用率,JVM,DB,哪些硬件提供性能,能否支持7*24小时服务,扩展,兼容,最大容量。 运维一般关注服务器的硬件资源利用率情况,如内存是否有可用空间,CPU是否超过70%,网络是否通畅,I/O是否存在瓶颈。

4、性能测试角度,服务器硬件性能,建立性能通过模型,对开发代码啊框架和硬件框架进行性能分析,生产环境的配置和优化,制定性能目标,特定的性能分析。

 

负载工具是帮助我们来模拟负载的,对于性能测试来说,工具并不是核心,分析、评估、找出性能问题才是核心,这些是主观因素;工具是可挂按因素。大家本着简单,稳定,专业,省钱的原则来选择工具。

性能测试术语:

1、负载:模拟业务操作对服务器造成压力的过程,比如模拟100个用户进行发帖。

2、性能测试:模拟用户负载来测试系统在负载情况下,系统的响应时间,吞吐量等指标是否满足性能要求。

3、负载测试:在一定软硬件环境下,通过不断加大负载来确定在满足性能指标情况下能够承受的最大用户数。找出系统性能的拐点,给予生产环境规划建议。这里的性能指标包括TPS(每秒事务数)、RT(事务平均响应时间)、CPU Using(CPU利用率)、Mem Using(内存使用率)等软硬件指标。

4、配置测试:为了合理的调配资源,提高系统运行效率,通过测试手段来获取,验证,调整配置信息的过程。通过不同配置反应不同性能,从而为设备选择,设备配置提供参考。

5、压力/强度测试:通过高负载的手段来使服务器资源处于极限状态,测试系统在极限状态下长时间运行是否稳定,确定是否稳定的指标包括TPS,RT,CPU Using,MemUsing等

6、稳定性测试:在一定软硬件环境下,长时间运行一定负载,确定系统在满足性能指标的前提下是否运行稳定。一般我们会在满足性能要求的负载情况下加大1.5到2倍的负载量进行测试。

7、TPS:每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。一个事务是一个业务度量单位,有时一个事务会包含多个子操作,但为了方便统计,我们会把这多个子操作计为一个事务。

8、RT/ART:响应时间/平均响应时间,指一个事务花费多长时间完成,为了使这个响应时间更具有代表性,会统计更多的响应时间然后获取平均值,即得到了事务平均响应时间,为了方便大家通常会直接用RT来代替ART.

9、PV:每秒用户访问页面的次数,此参数用来分析平均每秒有多少用户访问页面。

10、Vuser虚拟用户:模拟真实业务逻辑步骤的虚拟用户,虚拟用户模拟的操作步骤都被记录在虚拟用户脚本里。

11、Concurreny并发:并发分为狭义和广义。狭义的并发,即所有的用户在同一时刻做同一件事情或操作,这种操作一般针对同一类型的业务,或者所有用户进行完全一样的操作,目的是测试数据库和程序对并发操作的处理。广义的并发,即多个用户对系统发出了请求或者进行了操作,但是这些请求或操作可以是不同的。狭义强调对系统的请求操作是完全相同的,多适用于性能测试,负责测试,压力测试,稳定性测试场景;广义并发不限制对系统的请求操作,多适用于混合场景,稳定性测试场景。

12、场景:性能测试过程中为了模拟真实用户的业务处理过程,在loadrunner中构建的基于事务,脚本,虚拟用户,运行设置,运行计划,监控,分析等的一系列动作的集合,称之为性能测试场景。

13、思考时间:模拟正式用户在实际操作时的停顿时间间隔。

14、标准差:该标准差根据数理统计的概念得来,标准差越小,说明波动越小,系统越稳定,反之越大。波动大,说明系统不稳定。响应时间标准差,TPS标准差等。

 

 

 

 

性能测试修炼宝典 JMeter实战》是软件测试领域里程碑式的重要著作,由多位培养出经理级乃至总监级性能高手的大师联手创作,本书深入讲解了性能测试实践操作过程中诸多难题的调优心法,实现从理论到实操的升华。列出自学所需的性能技能目录树,助力测试小白迅速成长为技术大牛。从脚本到运维、公式到指标的运用掌握应有尽有,手把手教你性能测试技巧。此书在手,助你走出迷茫。   内容推荐   “基础篇”:欲练神功,不必自宫。打我基础,从此坦途。   “工具篇”:欲善其事,先利其器。神剑在手,天下任走。   “实践篇”:练武无功,到老皆空。有武有功,江湖轻松。   “提升篇”:江湖之大,无奇不有。融会贯通,相忘江湖   首部分:基础篇   帮助初学者或想踏入这个行业的工程师迅速了解除工具以外的性能测试的真实本质。去伪求真,使读者能够把握性能测试要点和难点及职业规划有进步的认识。不管你是内行还是外行,读完后必有所获。   第二部分:工具篇   可当JMeter工具书来进行查阅,是市面上目前为止比较面的JMeter讲解工具。学会热门的负载工具JMeter,对各种常见协议的性能测试工作(包括自动化测试) 测试脚本不用愁。   第三部分:实践篇   可学到Linux、Windows平台的性能监控、诊断分析;炼就火眼金睛,见微知著的技能;性能问题快速定位。   适合中高级性能测试工程师阅读,掌握性能分析方法,学会如何调优,了解当前的性能调优手法。   可跟书中实例操作,掌握性能测试整个过程,包括需求分析、测试计划、脚本开发、测试数据制作、测试执行、测试结果诊断分析、性能调优整个过程,真正能够开始进行性能测试工作。   第四部分:提升篇   性能测试自动化(Jenkins+Ant+JMeter),能够很方便的实现性能测试回归。提高产率,更少的人力,更低的功耗,更高的生产率;老板怎么爱你都不算多。   另外,前端的性能表现会直接影响到客户体验,前端性能测试也将成为新的性能点,读者可以更深层的了解此方面的知识。
性能测试修炼宝典 JMeter实战》是软件测试领域里程碑式的重要著作,由多位培养出经理级乃至总监级性能高手的大师联手创作,本书深入讲解了性能测试实践操作过程中诸多难题的调优心法,实现从理论到实操的升华。列出自学所需的性能技能目录树,助力测试小白迅速成长为技术大牛。从脚本到运维、公式到指标的运用掌握应有尽有,手把手教你性能测试技巧。此书在手,助你走出迷茫。   内容推荐   “基础篇”:欲练神功,不必自宫。打我基础,从此坦途。   “工具篇”:欲善其事,先利其器。神剑在手,天下任走。   “实践篇”:练武无功,到老皆空。有武有功,江湖轻松。   “提升篇”:江湖之大,无奇不有。融会贯通,相忘江湖   首部分:基础篇   帮助初学者或想踏入这个行业的工程师迅速了解除工具以外的性能测试的真实本质。去伪求真,使读者能够把握性能测试要点和难点及职业规划有进步的认识。不管你是内行还是外行,读完后必有所获。   第二部分:工具篇   可当JMeter工具书来进行查阅,是市面上目前为止比较面的JMeter讲解工具。学会热门的负载工具JMeter,对各种常见协议的性能测试工作(包括自动化测试) 测试脚本不用愁。   第三部分:实践篇   可学到Linux、Windows平台的性能监控、诊断分析;炼就火眼金睛,见微知著的技能;性能问题快速定位。   适合中高级性能测试工程师阅读,掌握性能分析方法,学会如何调优,了解当前的性能调优手法。   可跟书中实例操作,掌握性能测试整个过程,包括需求分析、测试计划、脚本开发、测试数据制作、测试执行、测试结果诊断分析、性能调优整个过程,真正能够开始进行性能测试工作。   第四部分:提升篇   性能测试自动化(Jenkins+Ant+JMeter),能够很方便的实现性能测试回归。提高产率,更少的人力,更低的功耗,更高的生产率;老板怎么爱你都不算多。   另外,前端的性能表现会直接影响到客户体验,前端性能测试也将成为新的性能点,读者可以更深层的了解此方面的知识。
### 使用JMeter进行性能测试实战教程 #### 关于JMeter的核心优势 JMeter款开源的性能测试工具,具备强大的负载模拟能力,可模拟多种负载场景来精确评估系统性能。此工具还拥有丰富的插件支持体系,使得其能适应更多样的协议和复杂的测试需求;同时提供灵活的脚本开发环境,兼容多种编程语言供使用者依据具体情况进行定制化操作[^2]。 #### 主流性能测试工具对比 在众多性能测试解决方案之中,《性能测试修炼宝典JMeter实战》提及了两个主要的选择——LoadRunner 和 JMeter。这两款软件不仅适用于执行传统的性能评测工作,而且同样胜任功能性的自动化回归检验、应用程序接口(API) 测试乃至用户界面(UI) 的验证流程[^3]。 #### JDBC协议下的数据库交互实践 针对基于Java Database Connectivity (JDBC) 协议构建的应用程序,JMeter提供了专门的支持用于直接同关系型数据库建立连接并发送SQL查询请求。为了实现这点, 用户需先获取目标数据库对应的JDBC驱动文件(.jar), 将该文件放置到JMeter安装目录下`/lib/ext` 文件夹内完成集成设置。之后,在测试计划(Test Plan) 中添加个新的线程组(Thread Group),接着引入个或多个采样器(Sampler) 来定义具体的SQL命令文本及其参数配置[^4]。 ```java // 示例:创建个简单的 SQL 查询以测量响应时间 String query = "SELECT * FROM users WHERE id = ?"; PreparedStatement pstmt = connection.prepareStatement(query); pstmt.setInt(1, userId); ResultSet rs = pstmt.executeQuery(); while(rs.next()){ // 处理每行数据... } rs.close(); pstmt.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值