面试常问问题——怎么做性能测试?
性能测试的步骤:
1、明确性能测试的目的
2、明确测试场景和参与测试的接口、接口的指标
3、制定测试计划
4、配置测试环境、准备测试数据
5、编写测试脚本
6、执行测试、收集和监控数据
7、分析和解读测试结果
8、根据测试结果优化调整系统,如:修改代码、调整配置、增加硬件资源
9、回归测试
10、生成性能测试报告
常用性能指标:
响应时间:某个请求或操作从发出到接收到反馈所消耗的时间
并发量:在同一时期内进行相同的事务处理或操作的请求数
点击率:网站上某一内容被点击的次数与整个网站内容被显示次数之比
吞吐量: 指系统处理客户请求数量的总和
吞吐率:指单位时间内系统处理客户请求的数量
tps(Transaction Per Second): 指单位时间系统处理的事务量
qps(Query Per Second): 单位时间内查询或访问服务器的次数
pv(Page View): 页面的浏览量或点击量
uv(Unique Vistor): 系统或者网站的独立访客
举例单接口压测:
xx接口压测:
xx场景下,线程数为x的时候对应接口的响应时间 或 xx时间内支持的最大并发用户数
压测过程中如果出现报错,查看服务日志,定位到对应代码,分析原因,修改后再次压测;
举例链路压测:
XX业务,接口1+接口2+...+接口7 总共7个接口,给一定的并发数,查看压测结果
数据库监控看到有慢sql, 分析出原因有:
1)sql未使用索引
2)存在慢sql(全表扫描)
3)数据库压力有点大,有的sql根据主键id查很慢等
优化详情:
1) 未使用索引的sql添加了索引
再次加压测试,xx并发的时候cpu利用率超过了75%已接近服务器的瓶颈;
优化建议:
1)建议扩容应用服务器来降低CPU的利用率,提升整体性能;