热门标签 | 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性能测试

请添加图片描述


九、总结(尾部小惊喜)

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

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

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







推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
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社区 版权所有