Jmeter场景设置与启动方式
性能测试场景是用来模拟模拟真实用户操做的工做单元,因此场景设计必定要切合用户的操做逻辑,jmeter主要是经过线程组配合其余组件来一块儿完成场景的设置。html
线程组设置
Jmeter线程组其实是简历一个线程池,而后根据用户的设置完成线程池的初始化,在运行时作各类逻辑处理java
上图是一个线程组的配置界面,下面咱们对具体的参数进行说明shell
name和comments
是名称和注释的配置,这里根据本身要测试的场景设置就好,最好是见名知意服务器
Action to be taken after a sampler error
在取样器错误后要执行的操做,也就是说在某一个请求出错后的异常处理方式,有5中方式并发
-
Continue, 继续,取样器模拟的请求出错后,继续运行oop
在大量用户并发请求时,服务器可能会出现错误响应,这属于正常现象,此时要把错误记录下来,继续后面的请求性能
-
start next Thread Loop 若是出错,则统一脚本中的剩下的请求将不在执行,直接从新开始,好比有个场景,须要先登陆后发文,这个时候若是登陆失败了,那么发帖就不会成功,因此不必继续执行,直接开始下一轮测试就好,此时就能够设置这个错误处理方式。测试
-
stop thread 中止线程,若是遇到取样器模拟的某个请求失败,则中止当前线程,再也不执行,好比配置了40个线程,某个线程的请求失败,则中止当前线程,剩余的线程继续执行,若是失败的越多,则中止的越多,运行状态的线程就会愈来愈少,那服务器的负载就会不够,测试结果也不具有参考性了,所通常不设置这个。命令行
-
stop test 中止测试,若是某一个线程的一个请求失败了,则中止掉全部线程,也就是说测试要中止,可是每一个线程任然会执行完当前场景,好比当前场景为登录发文,有个线程登录失败,其余线程也执行到了登录,错误发生后,其余线程仍是会继续执行发文操做。线程
-
stop test Now 当即中止测试,若是有线程请求失败,则当即中止全部线程,再也不继续执行
Thread Properties 线程属性设置
-
线程数 Number of Threads(users)
运行的线程数设置,一个线程对应一个用户
-
Ramp-up period(seconds)线程启动开始运行的时间间隔,单位是秒,全部线程在多长时间内开始运行
好比说设置了50个线程,Ramp-up period设置10秒,那么每秒就会启动5个线程,若是设置0秒,那么50线程就会当即启动。
-
Loop count 请求的重复次数,若是选择infinite,那么请求将会一直执行下去,除非中止或者崩溃,若是选择填入具体次数,那就能够控制循序的次数了。
-
sam user on each iteration 每次迭代有使用相同的用户,这个配置是5.2版本之后新加的,以前的版本没有这个选项,因此会有一个问题,模拟的用户并非和真实场景同样是相互独立的,他默认在每一个线程中是复用用户,给你们推荐一篇文章https://www.cnblogs.com/nmb123/p/12266697.html
-
Delay Thread creation until needed
JMeter 全部的线程是一开始就建立完成的,只是递增的时候会按照上面的规则递增。若是选择了这个选项,则不会在一开始建立全部线程,只有在须要时才会建立。
若是不选择,在启动场景时,JMeter 会用更多的 CPU 来建立线程,它会影响前面的一些请求的响应时间,由于压力机的 CPU 在作其余事情嘛。若是选择了的话,就会在使用时再建立,CPU 消耗会平均一些,可是这时会有另外一个隐患,就是会稍微影响正在跑的线程
-
Specify Thread lifetime 线程运行时间,这个配置只有Loop count 请求的重复次数,配置了infinite,才会生效,不然仍是Loop count 控制线程的执行
- Duration(seconds)设置线程组运行多长时间,单位是秒
- StartUp delay(seconds)设置线程启动延时时间,单位是秒
场景运行
Jmeter的运行方式分为两种,一种是GUI可视化界面运行,另外一种是命令行运行,这两种都支持本地化运行即单体运行和远程运行。这里咱们主要介绍远程执行和jmeter命令行运行。
远程运行配置
-
远程配置
远程运行节点端口配置:
server_port=1099 server.rmi.localport=1099
运行:
./jmeter-server -Djava.rmi.server.hostname=本机ip
-
本地配置
remote_hosts配置
remote_hosts=ip:port,ip:prot,... ip和port都是远程执行机的ip和server的运行端口
运行:
java -jar ApacheJMeter.jar -n -t Thread\ Group.jmx -r -l result.jtl -R ip
-R 指定要哪台机器运行测试脚本
命令行
命令行执行./jmeter -?能够输出命令行参数选项,这里只介绍一些比较经常使用的,更多用法看官方文档
- -l 记录测试结果到文件,指定文件地址和名称,可使相对路径也能够是绝对路径
- -d 指定jmeter home路径
- -R 开启远程负载机,指定负载机的ip
- -n 指定非GUI方式运行
- -t 指定jmeter脚本文件路径
- -L 指定日志级别
欢迎你们去 个人博客 瞅瞅,里面有更多关于测试实战的内容哦!!