zoukankan      html  css  js  c++  java
  • 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)等也是可以参数化的,这里就不一 一举例了。大家在使用过程中可以互相交流。

  • 相关阅读:
    ADB命令大全
    Backup your Android without root or custom recovery -- adb backup
    Content portal for Pocketables Tasker articles
    Is there a way to detect if call is in progress? Phone Event
    Tasker to proximity screen off
    Tasker to detect application running in background
    Tasker to create toggle widget for ES ftp service -- Send Intent
    Tasker to proximity screen on
    Tasker to answer incoming call by pressing power button
    Tasker to stop Poweramp control for the headset while there is an incoming SMS
  • 原文地址:https://www.cnblogs.com/maxforb/p/11635157.html
Copyright © 2011-2022 走看看