问题分析,瓶颈分析,场景设计,性能调优
关注:处理速度,响应速度,内存和磁盘的使用情况
分析:网络,应用服务器,数据库服务器,代码层包括线程,sql
1.性能测试类型
负载测试
压力
并发
内存泄露
基准
配置测试
数据容量测试
疲劳强度测试
性能测试流程?
需求分析,制定测试计划,
用例设计与脚本开发和数据准备,
测试执行,
测试分析,测试调优和回归测试,
生成测试报告
2.Jmeter常用函数
threadNum获取线程号,一般用于定位参数化策略问题
machineIP获取本地机器ip,一般用于定位负载机问题
time获取时间
log日志,一般用于定位接口请求应答问题
digest生成摘要,支持加密算法MD、SHA
Counter生成递增数
Random随机数
3.性能测试,响应时间过长,可能原因
4.性能测试,TPS低,可能原因
压力机本身
网络IO
中间件
java线程阻塞和等待
本系统的资源瓶颈(cpu、内存、磁盘、网络等)
其他外部系统响应时间过长
5.性能测试,如果进行瓶颈分析
4.常用性能指标
tps每秒事务数,低:可能是压力不够,系统性能不好如sql
响应时间,慢:分析整个系统链路
吞吐量:上行和下行流量总和,网络瓶颈
错误率。业务断言,断言适量,大部分是四个九
什么情况要做关联,怎么做
脚本上下存在关联时
思考时间
怎么选择性能测试工具?
需不需要支持分布式,会不会用
linux中buffer和cache,内存中占用大量buffer和cache是异常的吗
不是,buffer-cache都是linux中的缓存机制,cache一般缓存一些文件内容,buffer会缓存写入磁盘的数据
可以加快文件访问速度,若内存不足时,会释放buffer-cache所占内存
所以不是异常情况,但在windows系统中是异常现象
服务器中的cpu使用率和load的关系
通常,是正比关系
特殊情况,也会cpu使用率不高,但load值较高
通常load是cpu的二倍,超出系统繁忙
怎么根据线下环境评估线上环境
1>首先要专门的性能测试环境,避免相互干扰如开发变更接口,测试更改数据等
2>线下单台机器配置与线上不能相差很大,否则无法推算预估
3>线下机器配置很差,只能测出程序有无性能问题,测试出的数据对线上没有太大参考意义
4>最好做线上的性能测试,避测免污染生产数据可以先测试查询类的,选择非高频的访问时段,对于非查询类的
只有需求,需求调研内容不清楚
没有任何途径进行需求调研的情况下,直接开始压测
压测后,就压测数据展开讨论,共同决定是否满足性能需求。敲定内容后发送邮件悉知
根据行业内的通用指标规范:如竞品分析,写入测试报告
以目的为导向,先压测,压测数据开会讨论,敲定需满足的性能需求。如果条件允许的话,我希望按性能测试流程推进
alpha、beta测试,有何区别?
alpha测试:开发场地,即内部测试
beta测试:潜在客户自己场地,即公测