从开发人员角度看待性能基准测试

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

 对一个开发人员来说,除了保质保量按时完成功能需求外,非功能也不可忽视。
  决定一个软件的成败往往是非功能性需求比如性能,若是用户体验不好那么必定是个失败的作品。
  那么一个开发人员如何去做关于自己模块又或者整体的基准性能测试呢?以下将从测试的切入点和具体测试的指标来说明。
  切入点:
  通常,基准性能测试有两个切入点,一方面可以通过从整体系统的角度做一个全栈式(即打通上下各层)的性能测试用于发现整体系统的性能瓶颈点,另一方面又可以具体到某个层或者模块进一步分析性能问题。
  测试目标:
  从定量工具的角度来说性能测试一般关注以下3点:
  1. 单位时间内系统处理请求、事务的次数:比如测试模块的接口性能,可以针对一个接口调用N次并求平均值。
  2. 响应时间(延迟):目的是求出最大响应时间和最小响应时间,并对响应性能做一个预估用百分法来表示。比如对一个接口或协议发起请求10次,若有一次响应时间大于10ms,其他都小于10ms,那么可以说针对该接口有90%的概率系统响应时间小于10ms,当然要求准确的话需要更多地测试。
  3. 吞吐量:这里的指标常有如IOPS,常见于测试存储系统的性能测试用于发现系统最大流量。
  从测试价值的角度来说性能测试还需要以下2点:
  1. 可伸缩性
  可伸缩性需要和单纯的性能测试区别开,当系统只有一个访问者无其他负载的情况下为单纯的性能测试,若有性能问题可从代码、设计上分析研究。而伸缩性指得是在整个系统负载变化的情况下(比如增加访问者并发量),要求系统保持一定的性能(响应时间、吞吐量)。测试过程中可以尝试对测试环境的硬件进行扩展(垂直、横向扩展都行),看性能是否能够在持续增压的条件下满足性能需求。在持续对系统增加并发访问量的情况下通过查看系统的持续响应时间基准测试结果发现系统的设计缺陷。从一定层度上来讲,系统的伸缩性在设计上就已决定。
  2. 并发性
  对于并发通常有各种理解,但是对于系统性能测试领域来说,更准确地评判服务器的并发性指得是高峰时期单位时间内的请求数。对我们来说更多应该关注的是工作的并发量,比如同时处理请求的线程数或连接数。并发测试更多地是以一种辅助的手段配合性能测试,比如通过并发的手段持续加压达到测试系统伸缩性的目的。

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
13天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
30 4
|
2月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
121 2
|
12天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
59 13
|
2月前
|
监控 测试技术 PHP
性能和压力测试
【10月更文挑战第10天】性能和压力测试
120 60
|
18天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
48 1
|
24天前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
31 4
|
24天前
|
监控 JavaScript 前端开发
如何在实际应用中测试和比较React和Vue的性能?
总之,通过多种方法的综合运用,可以相对客观地比较 React 和 Vue 在实际应用中的性能表现,为项目的选择和优化提供有力的依据。
31 1
|
3月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
114 10
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
2月前
|
测试技术 PHP 开发工具
php性能监测模块XHProf安装与测试
【10月更文挑战第13天】php性能监测模块XHProf安装与测试
33 0