• JMeter之non-GUI 模式执行


    【转载】JMeter之non-GUI 模式执行

    转载https://www.cnblogs.com/fengpingfan/p/5586711.html和http://blog.csdn.net/musen518/article/details/50251031

    由于Jmeter是一个纯JAVA的应用,用GUI模式运行压力测试时,对客户端的资源消耗是相当惊人的,所以在进行正式的压测时一定要使用non-gui模式运行,如果并发数很高或者客户端的硬件资源比较一般的话,还可以以server模式用多个client进行分布式测试。

    一、应用场景

    1、无需交互界面或受环境限制(linux text model)

    2、远程或分布式执行

    3、持续集成,通过shell脚本或批处理命令均可执行,生成的测试结果可被报表生成模块直接使用,便于生成报告

    二、命令行模式优点

    1、节约系统资源:无需启动界面,节约系统资源

    2、便捷快速:仅需启动命令行,输入命令便可执行,是为命令达人最爱

    3、易于持续集成:可通过shell脚本命令执行

    或者

     

    1. 适用于Windows和linux执行机,与os无关
    2. 命令行容易扩展,比如上集成到jenkins平台,用命令行更加容易
    3. 适用于高并发测试,测试开始时,console定期打印统计数据(默认30秒一次),减少cpu消耗,提高执行机并发能力

    三、参数详解

    四、non-GUI命令执行

    了解以上参数后,就可以开始我们的Non-GUI模式的测试了。

    1. 在 jmeter.properities文件中把#jmeter.save.saveservice.output_format=xml注释掉
    2. 开始—运行—cmd,进入到命令行模式;
    3. cd到JMeter的bin目录下,(如果配置过JMeter的环境变量,在任意目录下都可以执行); 
    4. 执行命令:
    cd /d D:XXXXXapache-jmeter-3.1in
    jmeter -n -t D:XXXXscriptstest.jmx -l D:XXXXjmeter-Non-GUI-resultscsvhtml.csv -e -o D:XXXXjmeter-Non-GUI-resultshtml -j D:XXXXjmeter-Non-GUI-resultslog1-log.log

    summary + 是增量报告

    summary =  是总量报告

    然后到对应的jmeter-Non-GUI-results文件夹下面查看,发现文件都保存成功。

    以上,是不是很简单呢? 

    那么现在有这样一个问题:那如果要使用10个线程,执行10s,怎么操作呢?是不是需要修改脚本,然后再执行呢?如果还有更多场景,是不是每次都要修改脚本呢? 

    (如果没有集成到Jenkins上,可以通过下面设置参数的方法又或者直接修改脚本;如果一旦集成到Jenkins上,Jenkins只能对接口集成化测试,不支持压力测试,所以请勿使用参数化)

    其实没这么麻烦,参数中有个 -J 参数【Non_GUI模式时传入参数使用】,我们可以使用这个参数来传参,详细步骤如下: 
    1. 参数化脚本中的Number of Threads(users)【线程数】和Durations(seconds)【持续时间()秒】。 
    2. 我们在测试计划中添加如下参数:
    1.  
      参数说明: ${__P(threads,1)} ,threads为执行脚本时传参的名称,1为默认值,如果threads
    2.  
      为空的时候,取值1。格式一定是:${__P(参数名,默认值)},注意中间是两个下划线。

    这里写图片描述

    1. 执行脚本的时候传入参数,用 -J 参数名=value 的形式传入。
    jmeter -n -t .scripts	est.jmx -J threads=10 -J duration=10  -l .jtl	est001.jtl -j .jtl	est001.log
    • 1

    4.执行结果: 
    这里写图片描述

    以上,是不是再多的场景也不怕麻烦了?直接通过传参就可以实现不同线程数和持续时间的场景测试了! 

    上面只写了两个参数,其它Ramp-Up Period(in second) 和Startup delay(seconds)等也是可以参数化的,这里就不一 一举例了。大家在使用过程中可以互相交流。

  • 相关阅读:
    Java实现找出数组中重复次数最多的元素以及个数
    java经典小算法
    java将数组中的零放到末尾
    BP神经网络
    Centos配置Caffe详解
    JAVA面试题之实现字符串的倒序输出
    Android 发送短信与接收短信
    java 选择排序法
    java数组获取最值
    spring kafka consumer原理解析二
  • 原文地址:https://www.cnblogs.com/maxforb/p/11635157.html
Copyright © 2020-2023  润新知