jmeter基础
一.Jmeter主要元件
1、测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器
2、线程组:代表一定数量的用户,它可以用来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
3、配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。
4、前置处理器:负责在请求之前工作,常用来修改请求的设置
5、定时器:负责定义请求之间的延迟间隔。
6、取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。
7、后置处理器:负责在请求之后工作,常用获取返回的值。
8、断言:用来判断请求响应的结果是否如用户所期望的。
9、监听器:负责收集测试结果,同时确定结果显示的方式。
10、逻辑控制器:可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
二、Jmeter元件的作用域和执行顺序
1.元件作用域
配置元件:影响其作用范围内的所有元件。
前置处理器:在其作用范围内的每一个sampler元件之前执行。
定时器:在其作用范围内的每一个sampler有效
后置处理器:在其作用范围内的每一个sampler元件之后执行。
断言:在其作用范围内的对每一个sampler元件执行后的结果进行校验。
监听器:在其作用范围内对每一个sampler元件的信息收集并呈现。
总结:从各个元件的层次结构判断每个元件的作用域。
2.元件执行顺序:
配置元件->前置处理器->定时器->取样器->后置处理程序->断言->监听器
注意事项:
1.前置处理器、后置处理器和断言等组件只能对取样器起作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。
2.如果在同一作用域内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序依次执行。
三、Jmeter进行接口测试流程
使用Jmeter进行接口测试的基本步骤如下:
1.测试计划
2.线程组
3.HTTP Cookie管理器
4.Http请求默认值
5.Sampler(HTTP请求)
6.断言
7.监听器(查看结果树、图形结果、聚合报告等)
四、Jmeter命令行方式执行
jmeter -n -t test1.jmx -l logfile1.jtl -e -o [Path to output folder]
--? 打印命令行选项并退出 -h, --help 打印使用信息并退出 -v, --version 打印版本信息并退出 -p, --propfile <参数> 要使用的 jmeter 属性文件 -q, --addprop <参数> 额外的 JMeter 属性文件 -t, --testfile <参数> 要运行的 jmeter 测试(.jmx)文件 -l, --logfile <参数> 将样本记录到的文件 -i, --jmeterlogconf <参数> jmeter 日志配置文件(log4j2.xml) -j, --jmeterlogfile <参数> jmeter 运行日志文件 (jmeter.log) -n, --nongui 在 nongui 模式下运行 JMeter -s, --server 运行 JMeter 服务器 -H, --proxyHost <参数> 为 JMeter 设置代理服务器以使用 -P, --proxyPort <参数> 设置 JMeter 使用的代理服务器端口 -N, --nonProxyHosts <参数> 设置非代理主机列表(例如 *.apache.org|localhost) -u, --username <参数> 为 JMeter 使用的代理服务器设置用户名 -a, --password <参数> 为 JMeter 使用的代理服务器设置密码 -J, --jmeterproperty <参数>=<值> 定义额外的 JMeter 属性 -G, --globalproperty <参数>=<值> 定义全局属性(发送到服务器) 例如 -Gport = 123 或 -Gglobal.properties -D, --systemproperty <参数>=<值> 定义附加系统属性 -S, --systemPropertyFile <参数> 附加系统属性文件 -f, --forceDeleteResultFile 在开始测试之前强制删除现有的结果文件和网络报告文件夹(如果存在) -L, --loglevel <参数>=<值> [category=]level 例如 jorphan=INFO、jmeter.util=DEBUG 或 com.example.foo=WARN -r, --runremote 启动远程服务器(在 remote_hosts 中定义) -R, --remotestart <参数> 启动这些远程服务器(覆盖 remote_hosts) -d, --homedir <参数> 要使用的 jmeter 主目录 -X, --remoteexit 在测试结束时退出远程服务器(CLI 模式) -g, --reportonly <参数> 仅从测试结果文件生成报告仪表板 -e, --reportatendofloadtests 负载测试后生成报告仪表板 -o, --reportoutputfolder <参数> 报表仪表板的输出文件夹