热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

性能测试怎么做?性能测试步骤指标(全解)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用




目录:导读


    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)






前言

性能测试的目的是发现系统处理能力的瓶颈而系统调优才是最终的目的,如果能进一步提高各业务服务器、数据库服务器的调优技能,对性能测试工作来说是如虎添翼。

相信我们进行性能测试的时候,都遇到过这样的问题:
1、你的性能测试方案是什么样的?
2、我们现在系统整体性能状况如何?
3、为什么你会设计这样的方案(如并发、迭代、思考时间、各项指标)
4、你设计的这个方案假使过了,能保证生产环境不出问题吗?

准备阶段
必要性分析
分析是否有必要进行性能测试;

被测对象分析
确认被测对象,并根据被测对象性质确认测试方案;

测试技术准备
根据被测对象准备测试技术不同协议测试工具、测试重点及方案是有区别的,例如http接口、rpc、websocket、udp测试技术不同,应根据不同的测试对象准备不同的测试方案

目标评估
评估被测服务性能指标预期结果

峰值QPS
已上线的需求可以按目前线上状态评估,这样最准未上线的需求一种方式可以找类似其它功能,没有相似功能的话可以找类似其它产品无法参照的话可按全量工具评估总请求,平均到秒后再按“帕累托法则(八二法则)”乘以对应系数估算

QPS
大部分单一接口的QPS=HPS,一条请求就是一次query,有少部分需求可能一次Hit有多次Query,需了解具体业务实现

TPS
复杂业务评估指标可使用TPS(每秒处理事务数),常见的情况像一次转账业务可能包含查询、转账、核对等几个连续动作,这种连续动作可称为一次T,TPS经常用来评估逻辑处理的能力和用时;

响应时间
不同产品对响应时间的要求是不相同的,内存处理一般请求的响应时间应该在10ms以内,有数据库读写的情况可能稍长(redis一般是十毫秒级别,mongo稍长,mysql最长,但一般大小的数据也应该在百毫秒级别)超过百毫秒的情况需要确认具体需求,及这类情况占比,响应时间指标一般有下面几种级别;

平均响应时间
总时间/总请求数
TP50:所有请求中处理最快的前50%请求中的最长耗时
TP90:所有请求中处理最快的前90%请求中的最长耗时
TP95:所有请求中处理最快的前95%请求中的最长耗时
TP99:所有请求中处理最快的前99%请求中的最长耗时
TP999:所有请求中处理最快的前99.9%请求中的最长耗时

错误响应数占比
所有请求中非200返回码的请求数占比

超时率
所有请求中超时的请求数占比需在压测工具中定义一个超时时间

被测服务资源占用指标预期
服务器cpu预期
程序有大量运算的情况下cpu可能成为瓶颈,例如dsa加密、大量检索运算;

服务器内存预期
1、程序启动时需要load大量数据到内存;
2、程序运行时需要使用大量内存以增加处理速度(空间换时间)的情况;

存储预期
绝大多数的web服务存储开销都在log等功能需求上,且一般情况log文件会定时传走&清理,这里要注意清理过程是否会存在log积压;

带宽预期
一般过大的静态资源应放在专用的资源服务器上,带宽问题常见于大量数据资讯返回或流媒体服务中;

端口数预期
端口问题常见于长连接服务,和需要作为client端向子服务请求的需求;
常见问题:1、time_wait过多;2、服务阻塞导致端口无法释放;

磁盘io预期
磁盘io问题常见于写log的功能,业务逻辑中需要做磁盘io的需求已经不多了,因为数据在程序启动时会被加载到内存中以提升读写速度;

相关依赖预期评估
依赖后端子服务
处理一个请求时需要向一个或多个后端服务请求资源;

依赖后端DB
处理一个请求时需要做db读写操作;

依赖运行环境,例如K8S集群等
服务运行的环境可能导致性能不满足预期,例如当服务部署在虚机时,需要评估虚机处理能力;如果部署在k8s集群时,需评估宿主机和集群前端proxy处理能力;如请求流包含多个环节时,每个环节都有压力存在;

依赖外部资源,例如CDN服务等
场景:业务逻辑回返回cdn地址,客户端收到地址后直接去cdn获取数据;
这类场景需要对cdn服务的处理能力和带宽预期做评估;

依赖磁盘空间,例如log存储
评估服务日志量大小;


下面是我整理的2022年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述


二、接口自动化项目实战

请添加图片描述


三、Web自动化项目实战

请添加图片描述


四、App自动化项目实战

请添加图片描述


五、一线大厂简历

请添加图片描述


六、测试开发DevOps体系

请添加图片描述


七、常用自动化测试工具

请添加图片描述


八、JMeter性能测试

请添加图片描述


九、总结(尾部小惊喜)

我们现在经历的那些,无论好的坏的,全部都是微不足道的小事。度过那些摇摇晃晃的日子,所有艰辛也会内化成为力量,留下闪光又珍贵的回忆和一路上坚韧不拔的勇气。

一句“算了吧”告诉自己,凡事努力但不可执着;一句“不要紧”告诉自己,凡事努力了就无怨悔;一句“会过去”告诉自己,明媚阳光总在风雨后。

在一切变好之前,我们总要经历一些不开心的日子,这段日子也许很长,也许只是一觉醒来,所以耐心点,给好运一点时间。







推荐阅读
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 目录RPC是什么RPC的优点RPC的缺点RPC是什么RPC(RemoteProcedureCall)isaprotocolthatoneprogramcanusetorequest ... [详细]
  • 参考地址:https:www.jianshu.comp37f7ee7ead65第一步:1.引入mosquitto仓库并更新#注意这一步不能忽略s ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 本文详细介绍了 Node.js 中 OS 模块的 arch 方法,包括其功能、语法、参数以及返回值,并提供了具体的使用示例。 ... [详细]
  • D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】
    一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细]
  • 本文介绍了如何使用Node.js通过两种不同的方法连接MongoDB数据库,包括使用MongoClient对象和连接字符串的方法。每种方法都有其特点和适用场景,适合不同需求的开发者。 ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • h5调用本地摄像头和麦克风一
    h5调用本地摄像头和麦克风一,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
author-avatar
O臭煊儿O
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有