• jmeter命令行执行测试并对测试报表进行初步分析


    本文首发于:行者AI

    jmeter可以通过命令行生成比较完善的可视化测试数据记录报告,为了能够更精确的得出性能测试瓶颈数据,需要我们对测试数据记录报告进行分析。

    1. 性能测试方案的设计

    性能测试需要根据不同测试目的设计不同的测试方案,因为不是本文的主题这里不过多的描述。

    假设我们的测试目的为:找出系统API最大吞吐量,我们采用根据每秒增加线程数量的方式来探索最大吞吐量。

    (1) 根据项目业务需求编jmeter测试脚本。

    (2) 如下进行线程组设置。

    1-4场景设置为300个线程,启动时间为600s,相当于每个场景每秒启动0.5个线程 。

    1-4场景设置

    第5个场景设置为600个线程,启动时间为600s,相当于每秒启动1个线程。

    5场景设置

    综上所有场景,相当于每秒启动3个线程。

    (3) 将脚本保存并命名为test001.jmx,放在D:jmeter_script下。

    (4) 为了测试结果更准确,可多次测试求平均值,我们选择在深夜多次自动运行。

    2. 执行性能测试

    2.1 执行性能测试的命令

    jmeter -n -t D: est0420.jmx -l D:jmeter_script eport.csv -e -o D:jmeter_script eport

    (1)-n 设置命令行模式。

    (2)-t 执行运行脚本路径。

    (3)-l 指定结果文件路径。

    (4)-e 设置测试完成后生成报表。

    (5)-o 指定生成的报表文件夹路径,文件夹必须为空或者不存在。

    2.2 如何让其自动执行测试

    为了减少外部环境的干扰,选择在深夜多次压测取平均值作为结果,使用windows的定时任务功能定时启动bat脚本调用jmeter命令。

    (1) 写一个bat脚本

    不仅仅是要运行命令,还需要保存测试报告,保存为run.bat放在D盘下。

    脚本如下参考:

    @echo off
    if %time:~0,2% GTR 9 (SET curtime=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%) else (SET curtime=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~1,1%-%time:~3,2%)
    D:
    cd D:jmeter_script
    mkdir report%curtime%
    cd D:softapache-jmeter-5.2.1in
    jmeter -n -t D:jmeter_script	est001.jmx  -l D:jmeter_script
    eport%curtime%
    eport.csv  -e -o D:jmeter_script
    eport%curtime%
    eport > D:jmeter_script
    eport%curtime%OutputLog%curtime%.txt
    

    (2) 在windows中可以设置定时任务

    win7 在控制面板-管理工具

    win10 在电脑右键-管理

    定时任务位置

    以下设置

    名称:自己取名。

    触发器配置如下:会在晚上10点启动,每隔两小时启动一次。

    触发器设置

    操作配置如下:会在触发时去启动bat文件。

    操作配置

    3. 执行完成后的结果

    3.1 执行完成后的测试报告

    这里拿的之前的测试报告做示例。

    报告示例

    3.2 测试报告分析

    (1) Apdex(应用性能指标)

    Apdex定义:性能指数Apdex(Application Performance Index)是一个国际通用标准,Apdex 是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量。Apdex标准从用户的角度出发,将对应用响应时间的表现,转为用户对于应用性能的可量化范围为0-1的满意度评价。

    Apdex阈值

    如何计算Apdex:

    Apdex 对应用中发生的任务进行采样,并且按其响应时间把采样划分到相应的满意度区间,计数,再用一个公式计算 Apdex 指数:

    Apdex指数

    在测试报告中Apdex的位置如下:

    Apdex示例

    (2) 最大吞吐量分析

    Throughput-Total Transactions Per Second每秒事物总数:

    每秒事物总数

    OverTime-Active Threads Over Time全程活跃的线程数量:

    活跃的线程数量

    OverTime-Response Times Over Time响应时间:

    响应时间

    根据上面三个图得知线程数在152个时,响应时间集中在0.2-0.6之间,此时吞吐量达到最大在364TPS左右,之后再增加线程,出现报错,且响应时间增加,吞吐量下降 。

    4. 将测试结论汇总

    总共测试了五次,我们将五次测试报告分别做分析,然后汇总到如下表格,便可以得出测试结论。


    PS:更多技术干货,快关注【公众号 | xingzhe_ai】,与行者一起讨论吧!

  • 相关阅读:
    POJ1001 Exponentiation
    centos 在安装YouCompleteMe时提示 Fatal : pyconfig.h No such file or directory
    VMware12上安装CentOS无法上网问题
    mysql报错:/usr/sbin/mysqld:unknown variable 'default-character-set=utf8'
    centos7 python3.5安装mysqlclient1.3.9
    DirectDraw创建Windows窗口
    二进制移位溢出
    格式化时间 与 时间戳的转换
    ADO 读取 ACCESS
    Windows DOS 窗口设置字体颜色
  • 原文地址:https://www.cnblogs.com/xingzheai/p/14754739.html
Copyright © 2020-2023  润新知