性能测试行业认知

性能测试行业认知

一.性能测试的分类

1.概念

  • 性能测试是一个非常广泛的概念,包括的很多方面的测试,也可称之为非功能测试
  • 自动化测试属于功能测试的范围,由于其测试方法要求测试人员拥有一定的代码能力,所以被单独分成一个测试模块

2.具体分类(测试范围)

  • 负载测试:通过逐步加压的方法,达到既定的性能阈值的目标。阈值的设定应是小于等于某个值,如cpu使用率小于某值
  • 压力测试:通过逐步加压的方法,使得系统的某些资源达到饱和,甚至失效的状态
  • 并发测试:同一时间内,多个虚拟用户同时访问统一模块、统一功能,通常的测试方法是设置集合点
  • 容量测试:通常指数据库层面,目标是获取数据库的最佳容量的能力,又称之为容量预估。具体测试方法为在一定的并发用户,不同的基础数据量下,观察数据库的处理能力,即获取数据库的各项性能指标。
  • 可靠性测试:又称为稳定性测试或疲劳测试,是指系统在高压情况下,长时间的运行系统是否稳定,如cpu使用率在80%以上,7*24小时运行,系统是否稳定
  • 异常测试:又称之为失败测试,是指系统架构方面的测试,如在负载均衡架构中,要测试宕机、节点挂掉等状况系统的反映

3.性能测试工具

对比维度 loadRunner JMeter
量级
易用性
是否开源
语言支持 C/java1.5 java
是否收费

二.测试工具:JMeter

1.JMeter组成

  • 测试计划
    • 线程组【控制多线程并发——虚拟并发】
      • 包含断言、定时器、监听器、配置元件、后置处理器、前置处理器
      • 逻辑控制器【当什么条件满足是要做什么】
      • Sampler【放置所有请求】
    • 断言【预期结果和实际结果的比对】
    • 定时器【设置多长时间,几点运行等】
    • 监听器【调试脚本是否成功,对资源进行监控】
    • 配置元件【先后信息,如进行请求的时候设置cookie等】
    • 后置处理器【并发完成之后要做的事,后一个请求用到前一个请求的结果】
    • 前置处理器【在请求发生之前要做什么】

2.JMeter实现多并发

  • 线程组:负载发生器,用多线程或多进程的方式来模拟用户的使用行为。JMeter是以线程的方式来进行模拟用户的并发访问。
    • 添加线程组:线程属性
      • 线程数:启动多少个线程(多少个虚拟用户)
      • Ramp-Up:表示多长时间内将线程数加载完毕
      • 循环测试:要循环的次数
      • 调度器【对什么时候执行脚本做设计】
  • JMeter实现逻辑分支控制
    • 逻辑控制器:用来控制测试脚本的逻辑判断,也可以理解为如何控制脚本的运行。例如:如果控制器【右击线程组 —> 添加 —> 逻辑控制器 —> 如果控制器】,就是当满足什么样的条件后执行哪一步操作。
    • 在如果控制器里面,添加Sampler的http请求,访问www.baidu.com
    • 还需要在线程组中添加监听器—>查看结果树,用于查看执行结果
    • 当如果控制器中的条件满足,才会执行内部的http请求
    • 在线程组中添加配置元件 —> 用户定义的变量,点击添加设置对应的变量名称、值和描述(放到逻辑控制器上面)[键:ifRun,值:1]
    • 在逻辑控制器中设置条件${ifRun}==1,则当满足条件为1时访问百度

3.JMeter实现配置管理

  • 配置元件:用来提供一些配置相关的信息,如http请求头、cookie管理,提供参数化数据。还可以进行用户自定义变量等,用以来定义常量等。
    性能测试行业认知