This is my personal blog where I share a lot of stuffs about my life and work
everything i do in between.

11 May 2017

记jmeter常用功能

前段时间,哦,不,应该说是前几个月,研究了下测试工具jmeter的使用。时隔已久,今天临时需要测试一批接口的返回码,自然想起了用jmeter啊,但是发现有些用法不太记得了。。。故翻以前的笔记整理一下,记之。

关于jmeter的介绍就不多说了(其实是我也没有很熟悉它),安装很简单,依赖java环境,蒽,自然可以跨平台使用。jmeter操作步骤基本是:创建一个测试计划,配置,执行测试计划,然后分析结果。

  1. 1. 添加测试计划

    这里设置的是全局变量,能在整个测试plan访问到。

  2. 2. 添加线程组
    • 线程数:执行测试计划的线程数。
    • ramp-up period:启动所有线程的耗时,如线程数是100,启动时长设置10,则1s启动10个线程。
    • 循环次数:单线程发送请求的次数,如线程数是100,循环10次,则总请求数等于1000。
  3. 3. 添加配置元件

    http请求默认值:默认所有请求都自动带上所设置的参数。

  4. 4. 后置处理器
    • 正则提取器:
      提取返回结果作为下一个请求的入参。

      如果提取结果是一个数组,需要自动循环下个请求,这时候就要配合forEach控制器使用。

      loop start index: 1

      loop end index: ${id_arr_matchNr}

      loop variable: id

      其中result为上个请求的返回结果集,下个请求通过${id}引用单个结果。

  5. 5. 监听器
    • 察看结果树:
      查看每个请求的详细情况。
    • PerfMon Metrics Collectot:
      监控server的CPU、内存等指标,指定端口监听:
      java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 8080 --tcp-port 8080
    • 聚合报告:

      - Label: 展示测试过程中所有执行的请求和控制器的聚合

      - # Samples: 样例执行数量

      - Average: 平均时间,单位: ms

      - Median:中位数,50%用户的响应时间,单位: ms

      - Min: 最小时间,单位: ms

      - Max: 最大时间,单位: ms

      - Error %: 错误率

      - Throughput: 服务每秒处理的请求数据量

以上是使用过程中一些主要点的总结,我用到的功能还只是jmeter的一小部分,jmeter支持的测试类型不只HTTP请求,还有DB,junit等。本文只是介绍了一个完整测试计划的配置过程,作为一个非专业人员自己摸索,有错漏的地方,谢谢指正。