首页 > 其他分享 >性能测试

性能测试

时间:2023-05-06 15:33:44浏览次数:30  
标签:性能 用户 并发 测试 服务器 用户数

性能测试的目的:

测算系统的性能指标,
查看系统的性能瓶颈,
给出适合的软硬件配置方案,
检验硬件配置能否满足客户的要求。

性能测试的策略:

基准测试:
  狭义上讲:也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。(进行基础的数据采集)
  广义上讲:是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。

压力和负载测试的定义和区别:
先做负载测试后做压力测试。
负载测试关注的是不同负载水平的系统的性能指标,说穿了就是找到系统的最大用户数和最佳用户数。

压力测试是关注在超高负载(超过系统最大用户数)的情况下,系统是否还能稳定处理,如果不能,系统可以顶住多久,以便于指定系统正式上线后的风险控制措施。

稳定性测试:

  是指:在CPU不超过60%,内存也不超过60%的情况下,进行性能测试。
  目的:验证服务器在稳定运行时,会不会出现性能问题。
  稳定测试需要在服务器稳定运行的状况下,来产生未来需要的数据量,来验证服务器产生未来的数据量后,会不会产生的问题。

容量测试:
  容量测试,主要是对服务器的能够容纳的用户数、连接数等容量数据指标数据进行测试。
  例如:假如服务器能够支撑10000个用户在线活跃,那么我们需要,模拟10000个用户在线验证是否支持10000个用户。或者如果不知道最大用户数是多少,那么不断增加用户数,来查看最大的用户数容量。

性能测试的指标:

  1)响应时间:指客户端发送请求,处理内部处理后,并把数据返回给客户端,一直到客户端接受到响应数据的时间
  2)吞吐量(TPS):服务器处理事务的能力,接口请求就是一个事务,所以TPS就是描述服务器在单位时间内,处理请求数据的能力。

  3)服务器资源使用率:是指系统各种资源(CPU,硬盘,内存,网络,虚拟资源)的使用情况,一般用“资源的使用量/总的资源可用量×100%”形成资源利用率的数据

  4)错误率:主要是用来描述服务器处理接口请求时,产生错误的请求,错误率=错误请求数/总请求数。一般分为代码逻辑错误,和响应超时错误。(如果产生的错误是代码逻辑错误导致的,那么一定要修复)

  5)运营指标:在性能测试中,性能分析人员,需要根据PV和UV,来统计用户活跃情况和用户访问页面的情况,在根据这些数据,得出测试环境所需要的目标TPS是多少。也就是计算需求TPS的过程
    PV:Page View 页面浏览数。就是指用户访问每个页面的次数
    UV:Unique View 唯一访问量(用户访问量:用户的IP地址,用户的名,用户的唯一标识符)
  6)并发数:服务器每秒最大能并发处理的请求数量,就是并发数

性能测试流程: 

  性能测试需求分析
  性能测试计划及方案
  性能测试用例
  建立测试环境
  测试脚本编写/录制
  执行测试脚本
  性能测试监控
  性能分析和调优
  性能测试报告总结
  简单来说和其他测试流程一致:(圈定测试范围,明确测试指标[tps,响应时间,错误率,并发量,服务器资源利用率],执行测试和结果分析)

 性能测试工具jmeter:

常见的性能测试场景所需的工具:
        a:(普通场景)并发逐步增压:jmeter的阶梯增压工具:Custom Thread Groups==》可以让目标并发量在一定时间内分段逐步增压到指定并发  
        b:(限时秒杀,抢购场.景)需要断崖式上升==》同步定时器
        c:不用接口的调用程度不同:吞吐量控制器(调控每个接口被调用的比例)
        d:登录接口不同请求参数如何设置:CSV Data Set Config 选择本地创建好的文件,设置变量名。
        
    如何监控服务器资源?
    linux的监控服务器的命令(top,vmstat,iostat,free,sar)
        top:是linux上的任务管理器,查看内存、cpu、进程等信息 在top命令执行后,输入大写M可按进程的内存使用率排序,大写P按进程的cpu使用率排序
        vmstat:看到整个机器的CPU,内存,IO的使用情况。 常用 vmstat 2 1:表示2表示每个两秒采集一次服务器状态,1表示只采集一次。
        iostat:查看io磁盘
        free:查看内存
        sar:查看网络
    jmeter的监控:jmeter添加PrefMon监听器,然后服务器运行server_agent插件
    docker部署实时监控:docker部署InfluxDB(开源分布式指标数据库),和Grafana(开源数据可视化工具,可以做数据监控和数据统计)

 

 

 

标签:性能,用户,并发,测试,服务器,用户数
From: https://www.cnblogs.com/lwcx/p/17377407.html

相关文章

  • 谈谈测试核心竞争力
    博主分享的思考:https://mp.weixin.qq.com/s/QnBxP5iZGh8r86QhiH8wRQ刚参加完职级晋升,看到这个话题觉得博主分析的很有道理;思路更加清晰知道自己在哪些方面要发力,哪些环节更薄弱;拥抱学习才是未来。才不会被行业淘汰   ......
  • 用最低成本实现高性能写入、查询、存储,揭秘 TDengine 技术实现逻辑
    从《写入性能:TDengine最高达到InfluxDB的10.3倍,TimeScaleDB的6.74倍》、《查询性能:TDengine最高达到了InfluxDB的37倍、TimescaleDB的28.6倍》两篇文章中,我们发现,TDengine(TimeSeriesDatabase)不仅在写入和查询性能上超越了InfluxDB和TimescaleDB,在数据处理过......
  • 华为OD机试 微服务的集成测试
    最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单 https://dream.blog.csdn.net/article/details/128980730华为OD机试真题大全,用Python解华为机试题|机试宝典 https://dream.blog.csdn.net/article/details/129221789【华为OD机试】全流程解析......
  • Windows11 无法显示卓越性能以及仅有平衡模式一条计划的解决方案
    如果你用的是专业工作站版,且使用了如下命令:Powercfg/DUPLICATESCHEMEe9a42b02-d5df-448d-aa00-03f14749eb61还是无法显示任何多余计划,那么就证明你用的系统版本已经实施了新式待机:ModernStandbyonWindows该模式只可以通过设置-电池电源中设置最佳性能,而无法在控制面板......
  • mock框架与测试(用mock工具模拟后端与前端对接调试)
    mock简介应用在前后端分离的开发模式中敏捷管理中需要测试左移模拟后端与前端对接调试。实现满足接口逻辑通路,保证基本接口功能。mock开源框架只需配置request和response就可以满足要求支持http/https/socket协议支持在request中配置header、cookie、StatusCode对GET/POST/PUT/......
  • (原创第一篇,踩坑无数得来的,对Ai自动化测试框架很有帮助)appium自动化测试时遇到不能使用
     现在开发的前端界面使用vue或者更牛逼技术,导致使用appium或者uiautomator2做自动化测试时不能识别到元素,无法使用传统的id,name或者xpath,这时我们需要使用坐标点击文本框。有获取坐标方法,下期写一篇文章,可以在评论区提醒瑞克。fromappiumimportwebdriverimporttimeimport......
  • python测试
    当你在写Python代码的时候,你希望确保它能够正常运行并返回正确的结果。这就是测试的重要性。在Python中,常用的测试框架是unittest。使用unittest,你可以写测试用例,这些测试用例可以测试你的代码是否按照预期方式工作。以下是一个简单的Python测试教程:1.导入unittest模块import......
  • sonarqube1 C# 单元测试覆盖率一栏总是0%解决办法
    一、什么叫单元测试(unittesting)?是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测......
  • 测试过程中一些特殊问题的处理方式
    问题1:在测试发现问题时,是先跟研发沟通还是先提Bug?解决:(1)在测试项目的初期,对程序不熟悉的情况下,可以先沟通,再提Bug;(2)后续对项目熟悉了,理论上是先提Bug,必要时再沟通(偶现或可能是偶现的问题;录像回放的问题)原因:(1)对于测试人员来说,是站在用户的角度去测试,认为不可接......
  • go测试库之apitest
    前言使用go语言做开发差不多快一年了,主要用来写后端Web服务,从一开始吐槽他的结构体,比如创建个复杂的JSON格式数据,那是相当的痛苦。还有err处理写的巨麻烦。当然,go也有爽的地方,创建个线协程简直太简单了。到后来慢慢接受,觉得效率还行,因为是静态强类型语言,在修改完项目代码之......