zoukankan      html  css  js  c++  java
  • 性能测试流程,瓶颈分析

    1.规范的性能测试流程

    获得测试需求→测试计划→测试环境搭建→测试用例设计→测试数据准备→测试脚本编写→测试脚本执行→瓶颈分析定位→测试结果反馈→测试报告

    2.流程节点解释

    ①获取测试需求:

    提出人:甲方/业务方+开发人员

    依据系统后期可能达到的访问量(甲方/业务方),以及系统架构、数据库,服务器等(开发人员)。确定“核心业务场景”以及“测试指标”。

    ②测试计划:

    需“项目经理,甲方/业务方,测试人员”沟通确认。

    ③测试环境搭建→测试用例设计→测试数据准备→测试脚本编写→测试脚本执行:

    这部分和功能测试流程大体一致。

    侧重点在于测试环境的搭建(压力机构建),测试数据准备,脚本编写。

    ④瓶颈分析:

    这是很重要的一个环节。

    性能测试不是一蹴而就的,要达到压测需求,需反复调优和压测。

    开始压测前,需要设置压力

    ulimit -n  //查看Linux操作系统连接数

    以下是我个人项目总结的几点:

    1.压力机性能需满足压测需求

    2.本地压测(脚本放在系统服务器上执行),排除网络因素,测试系统的健壮性。

    3.模拟真实的业务场景(eg:设备是连接手机热点上报数据,压力机的网络连接为手机热点)

    4.CPU上不去,脚本运行大量失败。(需经理和开发人员进行代码审核)

    5.低并发,CPU过高。(需代码调优)

    测试人员可以在服务器上,用top命令找出CPU占用率最大的线程。

    top   //找到CPU占用率最大进程的PID,或者是待测脚本的PID
    top -p [PID]     //只监控这个PID
    H     //查看当前进程的线程信息,找到CPU消耗最高的线程ID
    jstack 11567 [PID]     //做dump,输出整个进程信息

    这样查出来的线程编号是:

    线程ID转换为十六进制 = dump文件中的nid = 内存消耗最大的代码块,可以截取此部分给开发看

  • 相关阅读:
    记一次JVM Full GC (Metadata GC Threshold)调优经历
    非root用户启动nginx
    springboot项目报错解决:ERROR StatusLogger No Log4j 2 configuration file found
    分布式锁的常见实现思路
    虚拟机安装redis及宿主机连接测试
    使用console.log打印的内容不一定可信
    《数据库系统概论》第九章笔记
    《数据库系统概论》第六章笔记
    英文论文里的缩写:e.g. etc. et al. i.e.
    英文论文里的缩写:e.g. etc. et al. i.e.
  • 原文地址:https://www.cnblogs.com/bf-blackfish/p/11397767.html
Copyright © 2011-2022 走看看