005 jmeter分布式、逻辑控制器及性能测试
1、jmeter分布式
定义:由多台电脑共同完成一个任务(请求)部署,我们称这种部署为分布式部署。
为什么要使用分布式:①由于一台电脑的cpu、内存有限,无法满足更高的测试要求 ②需要对服务器进行性能或压力测试时





2、jmeter命令行运行 非GUI模式运行
使用GUI方式启动jmeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死。所以正确的打开凡是是在GUI模式下调整测试脚本,再用命令行模式执行。命令行方式支持在多个环境下使用,Windows的dos环境下,也可以在linux环境上执行。
*执行路径:执行命令前要检查当前目录是否是%JMeter_Home%\bin目录;如果Jmeter脚本不在当前目录,需要指定完整的路径;如果要把执行的结果保存在其他地方有人要指定完整的路径。命令中不指定测试计划与测试结果的路径时,默认都是在该目录下。
*指定脚本路径和结果文件路径的命令:jmeter -n -t <脚本路径+名称.jmx> -l <测试结果路径+名称.jtl>
*生成测试报表的命令:jmeter -n -t <脚本路径+名称.jmx> -l <测试结果路径+名称.jtl> -e -o <测试报告名称>
tips:默认目录是jmeter下的bin,如果要用其他目录下的脚本或者是将结果和测试报告保存到其他目录下那么需要指定完整的路径。



3、jmeter逻辑控制器
jmeter逻辑控制器是可以控制采样器的执行顺序,它由多个逻辑控制语句封装成不同功能的组件组成。只对其子节点的sampler有效。
jmeter提供了多种逻辑控制器,大概分为两种使用类型:
①控制测试计划执行过程中节点的逻辑执行顺序,如Loop Controller(循环控制器)、If Controller(如果if控制器)等
②对测试计划中的脚本进行分组,方便jmeter统计执行结果以及进行脚本的运行时控制等,如Throuhghput Controller(吞吐量控制器)、Transaction Controller(事务控制器)等。
3.1 if控制器
作用:条件成真,则执行控制器下所有取样器
不勾选将条件解释为变量表达式:【在线程组上右键-添加-逻辑控制器-如果(if)控制器-->在如果(if)控制器里加http请求,在线程组上右键添加察看结果树】

勾选将条件解释为变量表达式:借助函数_jexl3或_groovy直接输出true/false
( 如果有一个无法使用变量表达式解释器执行的复杂条件,则最好使用Groovy和JEXL解释器,即使用_jexl3或_groovy函数)
全部勾选:借助${JMeterThread.last_sample_ok}
返回的是上一个取样器的执行结果,如果执行通过,返回true那么下一个取样器才可以正常执行;反之,下一个取样器就不执行
3.2 foreach控制器
foreach控制器一般和用户定义的变量一起使用,在用户自定义变量中读取一系列相关的变量
【在测试计划上添加-线程组,线程组右键上添加-配置元件-用户定义的变量、线程组右键上添加-逻辑控制器-foreach控制器,在foreach控制器中添加-http请求,在测试计划上添加察看结果树】


3.3 循环控制器
作用:指定循环控制器内取样器的执行次数
【在测试计划上添加-线程组,线程组右键上添加-逻辑控制器-循环控制器,在循环控制器中添加-http请求,在测试计划上添加察看结果树】

3.4 元件和组件

4、jmeter性能测试




接口测试--功能测试--性能测试
插件下载地址:https://jmeter-plugins.org/downloads/old/
jp@gc - Stepping Thread Group 负载、压力、稳定性


响应时间

并发用户数

吞吐量

QPS(TPS)--服务器每秒处理的请求数量

点击量、点击率、pv页面访问量、uv用户访问


性能测试硬件指标:CPU、内存(Memory),磁盘I/O(Disk I/O),网络(Network I/O)。这四个统一叫资源利用率

最佳并发用户数,最大并发用户数

浙公网安备 33010602011771号