性能测试的目的:
测算系统的性能指标,
查看系统的性能瓶颈,
给出适合的软硬件配置方案,
检验硬件配置能否满足客户的要求。
性能测试的策略:
基准测试:
狭义上讲:也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。(进行基础的数据采集)
广义上讲:是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。
压力和负载测试的定义和区别:
先做负载测试后做压力测试。
负载测试关注的是不同负载水平的系统的性能指标,说穿了就是找到系统的最大用户数和最佳用户数。
压力测试是关注在超高负载(超过系统最大用户数)的情况下,系统是否还能稳定处理,如果不能,系统可以顶住多久,以便于指定系统正式上线后的风险控制措施。
稳定性测试:
是指:在CPU不超过60%,内存也不超过60%的情况下,进行性能测试。
目的:验证服务器在稳定运行时,会不会出现性能问题。
稳定测试需要在服务器稳定运行的状况下,来产生未来需要的数据量,来验证服务器产生未来的数据量后,会不会产生的问题。
容量测试:
容量测试,主要是对服务器的能够容纳的用户数、连接数等容量数据指标数据进行测试。
例如:假如服务器能够支撑10000个用户在线活跃,那么我们需要,模拟10000个用户在线验证是否支持10000个用户。或者如果不知道最大用户数是多少,那么不断增加用户数,来查看最大的用户数容量。
性能测试的指标:
1)响应时间:指客户端发送请求,处理内部处理后,并把数据返回给客户端,一直到客户端接受到响应数据的时间
2)吞吐量(TPS):服务器处理事务的能力,接口请求就是一个事务,所以TPS就是描述服务器在单位时间内,处理请求数据的能力。
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