性能测试新手误区(五):如何提出一个好的性能问题

简介:

性能测试新手误区(一):找不到测试点,不知为何而测

  性能测试新手误区(二):为什么我模拟的百万测试数据是无效的?

  性能测试新手误区(三):用户数与压力

  性能测试新手误区(四):一切来自录制

  经常会见到新人提出这样的性能问题:

  “100用户时,A操作响应时间达到了XX秒,请修改。”

  面对这样的问题,开发人员一定会觉得很无助,他们甚至不知道问题是什么。

  即使从测试人员的角度来看,这也算不上是一个合格的问题。

  那么一个好的性能问题应该是什么样呢?

  好问题要描述清晰

  100个用户,是指绝对并发操作么?还是什么样的场景?

  是只测这一个A操作?还是有多个操作在同时进行?

  如果有多个操作,是只有这一个操作变慢?还是普遍变慢?

  测试环境是什么样的?测试数据量是多少?

  也许开发人员理解了详细的测试场景后,会告诉你,这个场景在业务中是不可能的,或者测试数据量是不合理的。

  好问题要有尽量准确的定位

  只是描述清晰还不够,要明白什么是表面现象,什么才是问题。

  问题是需要定位才能发现的。

  “100个用户操作时,A事务的响应时间过长”,这只是一个现象,问题是什么呢?

  响应慢是慢在哪?是中间件还是数据库?这是最基本的分层定位。

  是服务器达到了硬件瓶颈么?如果硬件或操作系统上没有瓶颈,那么瓶颈在哪?

  是不是由于一些基本配置问题导致了排队呢?比如中间件的HTTP线程数和数据库的连接数。

  如果基本配置没有问题,那么再深入一些,是内部的哪些资源产生了争用和等待么?

  是哪些SQL引起了数据库内部资源的争用呢?应用程序上又是哪个方法在占用资源呢?

  ……

  定位的越深入,需要的技术能力也就越高。

  好问题应该用最简单的手段复现

  比如上面的100个用户,导致了数据库的一张表的争用,因此产生了大量锁等待现象,最终导致了外部的A响应时间过长。但是通过之前的分析和定位,我们发现也许引发问题的那些SQL语句,只来自100用户中的10个特殊类型的用户。那么这个问题就完全可以简化成用10个用户去复现,其他90个用户都是干扰。这样问题被简化了,开发人员也就更容易理解问题,对于测试的复测也更加方便。

  不过还是要记住,最终的用户场景模拟才是决定性的验证。

  最后再总结一下,性能问题到底应该如何提呢?其实只有一个标准,那就是能让开发理解问题、找到根本原因并进行修正的就够了(假设开发人员无所不能)。再进一步深入的分析,可能是为了减轻开发的一些负担,也可能是为了锻炼自己的能力,这就不是每个测试人员都会去做的了。








====================================分割线================================



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

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
3天前
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
|
1月前
|
测试技术
性能场景之压测策略设计
【2月更文挑战第19天】性能场景之压测策略设计
295 4
性能场景之压测策略设计
|
1月前
|
安全 测试技术
BOSHIDA DC电源模块的安全性能评估与测试方法
BOSHIDA DC电源模块的安全性能评估与测试方法
 BOSHIDA DC电源模块的安全性能评估与测试方法
|
1月前
|
安全
DC电源模块的安全性能评估与测试方法
DC电源模块的安全性能评估与测试方法 DC电源模块的安全性能评估与测试方法应包括以下几个方面: 1. 输入安全性测试:包括输入电压范围、输入电压稳定性、输入电流范围、输入电流保护等方面的测试。测试方法可以是逐步增加输入电压或输入电流,观察模块的工作状态和保护功能。
DC电源模块的安全性能评估与测试方法
|
4月前
|
存储 测试技术 Linux
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
68 0
|
4月前
|
存储 测试技术 区块链
阿里云、百度云及移动云对象存储横向性能对比测试
在企业的数字化转型进程中,我们观察到越来越多的公司将其IT基础设施迁移到云端。随着企业业务的持续运营,无论是储存、处理、分享还是删除,都会产生大量的数据,这就要求有一个既可靠又高效的系统来管理和存储这些信息。对象存储产品在这个场景中扮演了至关重要的角色。它们以一种可扩展、安全、持久的方式,有效地满足了对大规模非结构化数据存储的需求。 尽管市场上云计算提供商众多,各自都有自己独特的对象存储产品,面对这样的丰富选择,如何寻找最符合企业需求的产品呢?这正是企业今天寻求解答的问题。 在本篇文章中,我们将深入进行一项横向对比测试,专门对阿里云OSS、百度云BOS和移动云EOS这三大云服务提供商的对象
1363 0
|
5月前
|
监控 NoSQL 测试技术
Cassandra 性能压测
Cassandra 性能压测
|
17天前
|
测试技术
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第6天】 在软件开发的生命周期中,确保代码质量和性能始终是至关重要的环节。白盒测试作为一种深入代码内部的测试方法,提供了对程序结构、逻辑路径和内部功能的全面评估。本文将探讨白盒测试的核心概念、技术及其在提升软件质量与性能方面的应用。通过分析控制流测试、数据流测试和静态代码分析等关键技术,我们揭示了白盒测试如何有效发现潜在缺陷,优化代码效率,并增强系统稳定性。
|
1月前
|
消息中间件 弹性计算 测试技术
如何快速实现 Kafka 性能压测
如何快速实现 Kafka 性能压测
89806 1
|
1月前
|
算法 Java 测试技术
性能工具之代码级性能测试工具ContiPerf
【2月更文挑战第23天】性能工具之代码级性能测试工具ContiPerf
267 1
性能工具之代码级性能测试工具ContiPerf