性能测试+JMeter--定时器
一、概述
- 概念:模拟各种正常的、峰值的测试环境,检测程序的各种性能指标是否能够达标。
- 作用
- 技术选型<用java或php编写相同的功能,去做性能测试,选择错误率和性能更好的技术来实现 >
- 测试当前程序所能支持的最大负载
- 发现程序中性能瓶颈,提高资源利用率
- 提升用户体验
- 实现
二、定时器
1. 同步定时器
- 模拟高并发情况下的平均响应时间和错误率
- 实现步骤
- 搭框架:测试计划,线程组(设置用户数),取样器(查看结果树+聚合报告)
- 添加同步定时器Synchronization timer(集合点组件)
- 属性1:模拟用户组的数量
- 属性2:超时时间以毫秒为单位
- 当用户数不能整除集合点组件的一组用户数时,超时时间为0,会导致程序挂起--->修改超时时间,即使一组用户数填充不满,超时也会执行。
2. 常量吞吐定时器
- 模拟频繁访问服务器,某一时间段内统计服务器的平均响应时间
- QPS(Query per Seconds):每秒查询数(查询率),每秒访问多少次服务器
- 循环次数=访问频率*持续时间
- 实现步骤
- 搭框架:测试计划,线程组(设置循环次数),取样器(查看结果树+聚合报告)
- 添加QPS访问频率控制的相关组件
三、分布式
- 概念:多台机器协作,以集群的方式完成测试任务
- 作用:性能测试时,需要模拟多用户,JMeter中使用线程模拟用户,而线程的创建和管理比较耗费资源,对操作系统而言,创建的线程是有限的,当模拟的用户量较大时-----需要分布式来实现
- 实现
- 控制机--负责任务分配和收集测试结果
- 执行机--负责任务实现和返回测试结果
- 工作流程
- 控制机需要制定测试任务,并下发到执行机
- 执行机执行任务并将结果返回控制机
- 控制及做结果汇总
- 操作步骤
- 启动控制机(ApacheJmeter.jar)和执行机(Jmeter-server.bat)
- 编写测试计划(线程数=总线程数/执行机台数)
- 将测试计划下发到执行机(执行机会将结果返回给控制机)
- 分布式环境搭建
- 不同的测试机上配置基础环境(统一操作系统、JDK、Jmeter)
- 控制机如何与执行机通信---==端口号==
- 为执行机设置端口号(--bin/jmerter.properties--->server_port=xxx)
- 控制机中设置执行机的IP和端口号(--bin/jmerter.properties--->remote_hosts=执行机A的IP:Port,执行机B的IP:Port)
- 控制机和执行机都得设置远程访问相关属性(server.rmi.ssl.disable=True)