首页 > 其他分享 >性能测试:性能测试计划

性能测试:性能测试计划

时间:2024-07-15 16:07:54浏览次数:15  
标签:测试计划 grep log 性能 access 测试

简介

性能测试计划是在进行软件或系统的性能测试之前制定的详细计划和指导文件。它描述了所需性能测试的目标、范围、测试环境、资源需求、测试策略、测试用例、时间表等重要信息。

为什么要制定性能测试计划

制定性能测试计划的主要目的是确保性能测试的有效性和可靠性。以下是制定性能测试计划的重要原因:

  1. 明确测试目标:性能测试计划可以明确定义所需测试的性能目标,例如响应时间、吞吐量、并发用户数等。这有助于确保测试的准确性和一致性,并提供可评估的性能指标。
  2. 确定测试范围:通过性能测试计划,可以明确确定需要测试的系统或软件的范围,包括功能模块、关键业务流程等。这有助于确保测试覆盖的全面性,避免遗漏关键的性能热点。
  3. 提供测试环境和配置:性能测试计划可以指定测试所需的硬件、软件、操作系统和网络配置等。这有助于创建一个与实际生产环境相似的测试环境,并确保测试的真实性和准确性。
  4. 设定测试策略:性能测试计划定义了测试的方法、策略和技术。它确定了要使用的负载模型、测试用例设计方法、测试数据和性能统计指标,以确保测试具有可重现性和可测量性。
  5. 资源管理和规划:性能测试计划列出了执行测试所需的人员、工具、时间和预算等资源。这有助于合理规划和管理测试过程,确保资源的有效利用并避免测试中断或延误。
  6. 风险评估和应对措施:性能测试计划识别可能的风险和挑战,并提供相应的风险评估和应对措施。这有助于规避潜在的性能问题和系统崩溃,并确保测试的可靠性和稳定性。
  7. 结果分析和报告:通过性能测试计划,可以规定测试结果的分析方法和报告格式。这有助于准确分析和解释测试结果,向相关方提供清晰、可理解的性能测试报告。

总之,性能测试计划提供了一个全面的框架和指导,确保性能测试的有效性、可靠性和可重复性。它帮助测试团队、项目经理和相关方明确测试目标、范围和策略,最大程度地发现性能问题并提供优化建议。

性能测试计划的流程

  1. 需求分析与测试设计阶段
  2. 环境设计与搭建阶段
  3. 测试数据准备阶段
  4. 性能指标预期设定阶段
  5. 测试执行&监控阶段
  6. 测试报告输出阶段

需求分析与测试设计阶段

场景 1:对于已经在线上运行的业务或相似业务:

  1. 收集行为日志:获取业务运行时的行为日志,包括用户的访问请求、操作行为、响应时间等信息。这些日志可以帮助了解用户行为模式和业务负载情况。
  2. 分析当前业务数据:通过分析当前业务数据,例如每日活跃用户数(DAU)、每日页面浏览量(PV)、每天的订单量等,可以获得业务的基本性能指标,如每秒钟的请求量(QPS)或每秒钟的事务处理量(TPS)等。
  3. 建立业务模型:基于当前业务数据和行为日志的分析结果,建立业务模型,包括各个关键业务场景、用户行为流程、系统组件之间的交互等。
  4. 预估接口 TPS/QPS:根据业务模型和当前业务数据,预估出每个关键接口或服务的每秒钟的事务处理量(TPS)或每秒钟的请求量(QPS)。这可以帮助确定性能测试的目标和负载程度。

场景 2:对于新业务或新活动:

  1. 参考友商经验:如果有类似的业务已经在线上运行,可以参考其性能测试经验和结果,了解其业务模型、性能指标和测试场景,从而为新业务制定性能测试计划提供参考依据。
  2. 产品和运营共同梳理评估:产品和运营团队可以针对新业务梳理出核心场景路径、入口及对应的转化率、问题收敛页面等。然后,将这些信息转化为业务模型,进而确定相应的测试场景、数据量级和接口比例。

环境设计与搭建阶段

  • 设计:根据需求,结合线上机器部署情况,搭建线下测试环境,要求具有⼀定的参考价值,⼀般同比 1/2,1/4。

注意:测试环境无论怎么仿真和模拟,基本都不太可能达到 1 比 1 的效果。

  • 环境搭建
    • 起压环境:压测⼯具的安装与调试、机器参数记录;
    • 被压环境:基础服务的搭建、web 机代码部署及代码改造、机器参数记录。

  • 环境调试:查看接口是否正常。

测试数据准备阶段

  1. 接口请求参数:自己构造/日志获取/上下关联。
  2. 数据表的数据填充:部分业务数据信息可以直接从数据库或缓存数据库获取。
  3. 如果是多接口,则需结合业务场景设计请求⽐例。

性能指标预期设定阶段

  1. 每秒请求数(QPS):基于业务进行拆分,比如业务会提出需要再双十一的时候支持每分钟两万的订单。根据这个需求,再去拆分具体有哪一些接口的请求。
  2. 请求响应时间(最小、最大、平均):需要考虑到用户体验,即使后面能够正常响应,但是请求响应时间不能太长。(通常 C 端不超过 1s,尽量在 200 毫秒内)
  3. 错误率:基于在性能测试过程中,每个请求不可能百分百成功,但是也要有一个上限的阈值,那么这个阈值是多少。
  4. 机器性能:cpu memory 无剧烈抖动或者飙升。
  5. 压测过程接口功能是否正常:不要只关注响应状态码 200,还需要从业务角度来看响应信息是否符合业务需求。

注意:不同性能测试方式下指标预期会有差异。

发压工具配置及脚本编写阶段

  1. 选择发压工具:根据需求和系统特点选择适合的发压工具。常用的性能测试工具包括 JMeter、LoadRunner、Gatling 等。考虑到测试目标、可支持的协议和工具的易用性。
  2. 安装和配置发压工具:根据工具的官方文档,下载和安装所选发压工具。然后,根据具体情况进行配置。配置项可能包括服务器地址、并发用户数、请求协议和频率等。确保工具和测试环境的通信设置正确。
  3. 编写性能测试脚本:根据需要和测试场景,编写性能测试脚本。性能测试脚本用于定义测试场景,包括模拟并发用户行为、设定请求参数和验证响应等。脚本可以使用工具提供的图形界面或编程语言来编写。

测试执行&监控阶段

  1. 测试前环境检查:记录机器参数。
  2. 起压:根据被压情况,调节并发量到适合的情况。
  3. 查看记录各项性能指标。
    • nginx 日志查看每秒请求数。
    • 查看 nginx 错误请求。
    • 查看机器参数:cpu idle、mem 等。
    • 查看 db、cache 等数据是否写⼊正常。
    • 访问接口,查看功能是否正常。
性能测试中的常用命令
  1. 查看 nginx 每秒请求数

命令:tail -f access.log | awk '{print $4}' | uniq -c

  • tail -f access.log:用于实时监视 access.log 日志文件的内容。
  • awk '{print $4}':使用 awk 命令提取出每行的第 4 列内容。
  • uniq -c:对提取出的内容进行去重计数,即统计每个不重复的值出现的次数。
  1. 查看某个接口每秒请求数

命令:tail -f access.log | grep p_getorderstatus |awk '{print $4}' | uniq -c

  • tail -f access.log:用于实时监视 access.log 日志文件的内容变化。
  • grep p_getorderstatus:使用 grep 命令过滤出包含"p_getorderstatus"的行。
  • awk '{print $4}':使用 awk 命令提取出过滤结果中的第四列内容。
  • uniq -c:对提取出的第四列内容进行去重统计,并显示出现次数。
  1. 查看 cpu idle

命令:vmstat 1

  1. 查看内存

命令:free -m

  1. 查看 nginx 日志是否有错误请求

命令:tail -f access.log |cut -d ' ' -f 10 |grep -v 200

  • tail -f access.log:用于实时监视 access.log 日志文件的内容变化。
  • cut -d ' ' -f 10:使用 cut 命令以空格作为分隔符,提取出日志行中的第十列内容。
  • grep -v 200:使用 grep 命令过滤出不包含 200 的行,即排除掉一切含有状态码为 200 的行。
  1. 查看进程

命令:- top - ps aux|grep xxx

  1. 查看 nginx 日志某接口访问数量

命令:cat access.log.xxxx|grep p_getorderstatus |wc -l

  • cat access.log.xxxx:用于查看 access.log.xxxx 文件的内容。xxxx 是日志文件的后缀,可以是日期或其他标识符。
  • grep p_getorderstatus:通过 grep 命令过滤出包含关键字"p_getorderstatus"的行。
  • wc -l:统计行数,即统计包含关键字"p_getorderstatus"的行数。
  1. 杀进程
  • 指定进程号:kill xxx
  • 指定部分进程名:pkill xxx
  • ⾃定义特征:
for i in ps aux | grep xxxx | awk '{print $2}';do kill $i ;done

或者 kill pgrep -f xxxx

  • ps aux:显示当前系统中所有的进程信息。
  • grep xxxx:通过 grep 命令过滤出包含特定关键字(xxxx)的进程行。
  • awk '{print $2}':使用 awk 命令提取出进程 ID(PID)这一列。
  • for i in...; do kill $i; done:通过循环遍历进程 ID(PID),逐个使用 kill 命令杀死进程。
  • pgrep -f xxxx:通过-f 参数搜索包含特定关键字(xxxx)的进程名,并显示对应的进程 ID(PID)。
  • kill ...:使用 kill 命令杀死搜索到的进程 ID(PID)。
  1. 查看 TIME_WAIT 数量
  • ss -s
  • netstat -tnlp |grep TIME_WAIT|wc -l

测试报告输出阶段

  1. 根据测试过程中记录的各项参数,结合压测⼯具产生的⽇志,对测试结果进行分析,并产出测试报告。
  2. 测试完成后,及时与相关人员沟通,确认是否满⾜需求。
  3. 发送测试报告邮件。

总结

  • 为什么要制定性能测试计划。
  • 性能测试计划的流程。
  • 性能测试中的常用命令。

标签:测试计划,grep,log,性能,access,测试
From: https://www.cnblogs.com/hogwarts/p/18303362

相关文章

  • 全志科技官方Ubuntu16.04根文件系统镜像的替换和测试方法
    本文主要基于全志A40i开发板——TLA40i-EVM,一款基于全志科技A40i处理器设计的4核ARMCortex-A7高性能低功耗国产评估板,演示Ubuntu根文件系统镜像的替换和测试方法。创龙科技TLA40i-EVM评估板接口资源丰富,引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetooth、WIFI......
  • 开发板测试手册——系统启动、文件传送操作步骤详解(1)
    前言本文适用开发环境:Windows开发环境:Windows764bit、Windows1064bitLinux开发环境:Ubuntu14.04.364bit虚拟机:VMware15.1.0U-Boot:U-Boot-2017.01Kernel:Linux-4.9.0、Linux-RT-4.9.0进行本文档操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装......
  • 开发板测试手册——SPI FLASH 读写、USB WIFI 模块(2)
    前言本文适用开发环境:Windows开发环境:Windows764bit、Windows1064bitLinux开发环境:Ubuntu14.04.364bit虚拟机:VMware15.1.0U-Boot:U-Boot-2017.01Kernel:Linux-4.9.0、Linux-RT-4.9.0进行本文档操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装......
  • 开发板测试手册——USB 4G 模块、GPS 定位功能操作步骤详解(3)
    前言本文适用开发环境:Windows开发环境:Windows764bit、Windows1064bitLinux开发环境:Ubuntu14.04.364bit虚拟机:VMware15.1.0U-Boot:U-Boot-2017.01Kernel:Linux-4.9.0、Linux-RT-4.9.0进行本文档操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装......
  • RaftKeeper v2.1.0版本发布,性能大幅提升!
    RaftKeeper是一款高新能分布式共识服务,完全兼容Zookeeper但性能更出色,更多关于RaftKeeer参考Github,我们将RaftKeeper大规模应用到ClickHouse场景中,用于解决ZooKeeper的性能瓶颈问题,同时RaftKeeper也可以用于其它大数据组件比如HBase。v2.1.0作为v2.0.0后的重要版本,引入了一系列新......
  • 安全可信 | 通过双项测试!TeleDB实力亮剑!
    近日,天翼云TeleDB数据库在中国信通院“可信数据库”系列测试的赛道上,一次性跨越“分布式事务型数据库基础能力测试”与“性能测试”的双重大关,以云服务国家队的卓越实力为数据库领域树立了新标杆。中国信通院开展的“可信数据库”系列测试是国内面向数据库产品及周边工具、数据......
  • 深度解读昇腾CANN模型下沉技术,提升模型调度性能
    本文分享自华为云社区《深度解读昇腾CANN模型下沉技术,提升模型调度性能》,作者:昇腾CANN。AI模型的运行通常情况下需要CPU和NPU(昇腾AI处理器)等AI专用处理器协同工作,CPU所在位置称为主机端(Host),而NPU所在位置称为设备端(Device)。对于采用Host调度的AI模型来说,Host下发Task的时序和Devi......
  • Linux 性能优化:轻松入门
    文章目录前言一、磁盘性能优化1、磁盘RAID模式选择2、文件系统优化二、优化CPU1、性能监控:2、进程优先级调整:3、进程与CPU绑定:三、优化内存四、网络性能优化1、调整TCP缓冲区大小2、修改系统级别的文件描述符的数量3、调整TCP时间等待(TIME-WAIT)套接字的......
  • 第七天学习笔记(经验测试,白盒测试)
    经验测试法错误推测法基于经验的测试技术之错误推测法错误推测法也叫错误猜测法,就是根据经验猜想,已有的缺陷,测试经验和失败数据等可能有什么问题并依此设计测试用例.异常分析法基于经验的测试技术之异常分析法系统异常分析法就是针对系统有可能存在的异常操作、软硬件缺陷......
  • 免费下载Windows11 23H2专业工作站版:性能飙升!
    Windows1123H2专业工作站版系统非常适合需要高级安全功能、高性能计算能力和专业级应用程序支持的用户,全面优化升级,系统性能更优秀,能够轻松满足用户在复杂任务和大数据处理等需求,让用户获得更好的响应速度和工作效率。以下系统之家小编给大家带来全新的Windows1123H2专业......