jmeter基础功能及认识
1、基础知识:
JMeter是免费开源的,纯java开发的性能测试工具,可以测试静态和动态的资源,例如:静态文件、java服务小程序、CGI脚本、java对象、数据库、FTP服务器、邮件服务器和PerlScript等
JMeter能够对应程序做功能测试和回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果,JMeter运行使用正则表达式来创建断言。
JMeter只需要java环境,本身不需要安装,运行JMeter之前需要先在机器上安装对应的JDK,安装完JDK之后需要配置环境变量
2、JMeter中的组件:
线程组:是用来设置性能测试的运行场景。(所有的常见请求相关组件必须是在线程组下面才能创建,不能直接在测试计划下面创建请求)
取样器错误后要执⾏的动作:这部分可以理解为当客户端向服务端发送请求后,以及发送请求的过程中出错后的异常处理⽅式。
继续:如果有⼀个请求错误,其他的请求会继续,不会因为有⼀个请求错误的导致其他请求终⽌。
启动下⼀个进程循环:如果请求出现问题,同⼀脚本中的其他请求就都不再执⾏,直接执⾏下⼀个进程的信息。如登录后下⼀个请求是查看个⼈主⻚,但是因为登录出错,下⼀个接
⼝查看个⼈主⻚就不会被执⾏。
停⽌线程:停⽌线程指的是如果请求失败,就停⽌当前线程执⾏,不再继续执⾏。如果线程数很多的,那么导致的结果是停⽌的线程就会很多,处于真正运⾏的线程会很少,最后导致
服务器的负载不够,⼀般不建议构选改选项。
停⽌测试:如果请求失败,那么停⽌所有线程执⾏,也就是说停⽌整个测试。
⽴即停⽌测试:如果请求失败,⽴即停⽌整个测试场景的执⾏。
线程属性:
线程数:⼀个线程可以理解为对应模拟⼀个⽤户,所以线程数越多,那么也就认为可以模拟的⽤户数越多。
Ramp-Up时间(秒):该属性指的是所有线程从启动到开始运⾏的时间间隔,单位是秒,也就是说所有线程在多⻓时间内开始执⾏,如线程数设置100,设置的时间为50秒,那么计算的
公式为:
每秒执⾏线程数=线程数/Ramp-Up
#如设置的线程数为100,Ramp-up的时间为50,那么也就是说开启执⾏后,每秒会启动2个线程,如果Ramp-Up设置为0,那么开始执⾏后,100个线程会⽴刻启动
循环次数:循环次数可以理解为,请求的重复次数。如果选择“永远”,那么请求将⼀直进⾏,不建议这样操作。
延迟创建线程直到需要:如50个线程数,Ramp-Up时间是10秒,执⾏后线程是全部就绪的,那么就是每隔1秒启动5个线程。
调度器:思维调度器可以理解为设置何时开始运⾏。
持续时间:测试计划持续多⻓时间 启动延迟 从当前时间延迟多⻓时间开始运⾏测试,也就是说点击执⾏后,仅仅是做初始化的场景,不会执⾏测试,等待延迟 到达后开始运⾏测试,执
⾏的时间为持续时间设置的时间。
取样器:就是发送请求的配置元件的选项,里面包含了常见的请求类型(HTTP/FTP文件/JDBC (java连接数据库)/SMTP邮件),BeanShell 取样器添加脚本代码
HTTP请求:就是常见的HTTP协议的请求元件
监听器:用来查看请求结果的一些元件(查看结果树)
聚合报告:是以表格的形式来显示取样器的结果信息,如果不同的取样器拥有相同的名字,那么在聚合报告会显示在 ⼀⾏⾥⾯,那么⼀般来说,聚合报告都是根据取样器来显示每个取样
器的执⾏结果信息。聚合报告的信息具体如下:
响应时间图:
断言:就是对脚本进行断言的
逻辑控制器:就是用来控制脚本运行逻辑的
前置处理器:就是在请求发送之前对请求进行处理
后置处理器:就是在请求之后对响应进行处理
定时器:设置思考时间的一些元件
配置元件:就是对请求做一些配置处理的元件,如:cookie管理、请求默认值等等
HTTP请求默认值:就是将线程组下面请求的重复参数放到请求默认值中,后续所有请求就不需要重复实现该参数设置, 会默认从该元件中获取所有参数值(将大家一样的部分分离出来,
相当于page层)。
HTTP Cookie管理器:jmeter不会自动关联cookie,需要添加cookie管理器来关联cookie。
非测试元件:
HTTP代理服务器:用来录制脚本,要打开浏览器的服务代理器,但是不太可靠。(脚本录制BlazeMeter谷歌插件)