性能测试之思

最近工作之余,对以往的性能测试相关知识做了整理和复盘,发现了很多之前没认真思考过的小细节,整理出来,以供参考。。。

1、如何理解性能指标?

在性能测试中,涉及的性能指标有很多,强行记忆理解可能是一件很吃力的事情。对性能指标进行分层划分,这样有助于记忆和理解。

在体育运动中,我们都知道提倡“更高、更快、更强”,其实对于系统的性能,我们也可以这么理解,大概分层如下:

分层

说明

更高

资源:CPU%、Memery%、I/O

更快

速度:TPS、RT/ART

更强

容量、PV、Hit

2、层层分析性能瓶颈

软件应用是一个很复杂的东西,影响性能表现的因素更多,直接影响OR间接影响,在分析过程中都是需要注意的。下面是一些比较常用的分析方法:

①、分层梳理

梳理层次

举例说明

业务梳理

业务配比、依赖关系角度

数据梳理

真实数据统计准确性、测试数据失效过期、数据污染

架构梳理

缓存、集群、负载均衡、分布式、微服务、异步通信、网关

参数梳理

最大连接数、最大线程数、JVM内存分配、timeout、异常/失败重试次数

场景梳理

异常场景、容量场景、基准场景、并发场景、稳定性场景、多节点场景、容灾恢复场景

②、模块梳理

组成模块

举例说明

负载机

高并发下,负载机可能成为限制性能提升的瓶颈

网络

高吞吐量下,网络带宽的不足会成为性能提升的瓶颈

中间件

缓存策略、代理分发策略、服务通信策略

服务器

CPU、Memory

数据库

索引、锁、分库分表、视图、实例等

操作系统

文件I/O、buffer、cached等

3、性能测试的方法论

①、性能测试场景一定要基于真实环境来模拟;

②、性能测试场景一定要基于具体清晰的指标来构建;

③、场景建模是分析的结果,性能需求分析是场景建模的前提;

④、开展性能测试之前,要设定统一的目标、分析方法、条理分明的流程以及高度的团队协作和任务分配;

⑤、性能测试,执行监控分析是核心;

4、什么时候需要关联

①、服务端value动态返回;

②、数据在后续执行中需要引用;

③、业务场景有前后依赖关系;

5、如何理解ThinkTime?

①、要不要添加ThinkTime?

②、什么时候用到ThinkTime?

③、用ThinkTime会有什么效果?

④、ThinkTime是否匹配真实业务场景?

⑤、ThinkTime是否会影响到服务器资源?

6、你真的了解测试目的么?

①、在什么环境/条件下执行测试?(硬件配置、软件版本/参数、测试环境)

②、被测试的系统业务场景是什么?是否要剔除不必要的业务?

③、如果保证数据的真实性、有效性?如何避免数据污染带来的影响?

④、测试策略真的符合预期的目的么?

⑤、系统的性能表现真的符合实际的生产场景么?如何量化?

以上就是一些最近思考整理的问题,仅供参考,后续如有新的思考点,会更新,就酱。。。

本文分享自微信公众号 - 工程师的自我修养之路(Engineer_Way)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沉默王二

@程序员,请掌握这些核心生存技能

以上是一个读者流年似水的提问。我把他的问题置顶了,但一直没想好怎么回答,因为问题太过笼统了。后来,他也可能意识到了这一点,就又给我发了一条微信:

7130
来自专栏源哥的专栏

Phoenix使用ROW_TIMESTAMP字段导致无法从null更新数据的故障描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

7520
来自专栏陶士涵的菜地

[日常] git版本回退

先克隆一个空的测试仓库,这是我自己在gitlab里创建的空仓库 git clone http://192.168.1.114:8090/admintsh/blo...

6610
来自专栏华章科技

Gartner 2020年十大技术趋势之一:超级自动化

前不久,Gartner立足于“以人为本的智慧空间”,发布了2020年十大战略性技术趋势,分为两类:

11120
来自专栏web前端技术分享

js中clientWidth, scrollWidth, innerWidth, outerWidth和offsetWidth属性的区别

一、测试1:无滚动条时,dom对象的offsetWidth、clientWidth和scrollWidth

8910
来自专栏软件测试testclass

Jmeter体系结构-线程组

Jmeter体系结构我们可以简单分层为:测试计划-->线程组-->元件-->组件。

7620
来自专栏Nicky's blog

SpringBoot系列之Spring容器添加组件方式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

7420
来自专栏Python数据科学

码如其人,同学你能写一手漂亮的Python函数吗

在机器学习中,我们经常需要使用类和函数定义模型的各个部分,例如定义读取数据的函数、预处理数据的函数、模型架构和训练过程的函数等等。那么什么样的函数才是漂亮的、赏...

7120
来自专栏测试一般不一般

Android之APP安全测试篇

反编译 apk 文件,在AndroidManifest.xml 中查找Activity组件

16130
来自专栏Nicky's blog

SpringBoot系列之profles配置多环境(篇二)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

8120

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励