zoukankan      html  css  js  c++  java
  • 从零开始做一个Jmeter性能测试

    安装Jmeter

    1、下载地址http://jmeter.apache.org/download_jmeter.cgi

    2、解压下载文件,然后将bin目录添加到系统环境变量PATH里。

    3、确保已安装java 8

    4、点击jmeter bin目录下的ApacheJMeter.jar文件或者在打开本机终端或输入jmeter启动jmeter客户端

    Jmeter相关介绍

    1、测试计划(TestPlan),运行jmeter测试的一个基本单位

    2、线程组(ThreadGroup),类似于loadrunner里的groups

    3、逻辑控制器(LogicController),用来定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列

    4、 配置元件(ConfigElment),维护Sampler需要的配置信息

    5、定时器(Timer),负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求

    6、前置处理器(Pre Processors),前置处理器常常用来修改请求的设置

    7、后置处理器(Post Processors),后置处理器则常常用来处理响应的数据

    8、取样器(Sampler),模拟各种请求

    9、断言(Assertions),用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。

    10、监听器(Listener),负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

    11、工作台WorkBench,可以用来暂存,但是保存后会消失

    Jmeter实例(餐饮系统批量上传和批量下载为例)

    1、添加一个线程组,这里我们用默认参数

    Number of Threads 设置并发数

    Ramp-Up Period 设置什么时候启动完

    Loop Count 设置迭代次数

    2、添加两个Sampler,批量上传和批量下载

    配置服务器IP,方法,路径,请求参数

    3、由于批量上传的请求数据timemapStr会用到批量下载返回数据中的list,添加一个后置处理器–正则表达式处理器

    引用名称:设置正则返回的变量名

    正则表达式:()的数据是需要返回的数据

    模板:上面如果有多个括号,N>0,$N$代表提取第几个括号里的内容;N=0表示提取所有提取表达式的内容

    匹配数组:0代表数据;-1代表所有;N代表第N个匹配到的

    缺省值:假如没有匹配到,设置的默认值

    4、设置响应断言

    支持正则匹配和多个匹配模式

    5、添加配置元件和定时器

    随机数:上传请求参数里的订单id每次随机生成

    固定定时器:每个线程每次迭代时会延迟5000毫秒

    CSV Data Set Config:设置终端名称的取值

    6、添加监听器,并运行测试:

    查看结果树:可以取样器的结果、请求参数、响应数据

    聚合报告:主要展示接口名、迭代次数、响应时间参数,错误率,吞吐量,发送的数据量和接收到的数据量

    图形结果:显示数据、平均值、中值、偏离、吞吐量

    用表格查看结果:显示开始时间,线程名字,接口名,取样器响应时间,请求状态,收到的Bytes,发送的Bytes,延迟,连接时间

    概要报表:

    与聚合报告报表展示类似

    Response Time Graph:响应时间曲线图

    Aggregate Graph:聚合曲线图

    no GUI 方式运行(建议运行方式)

    jmeter -n -t <test JMX file> -l <test log file> -e -o <Path to output folder>
    <test log file> 指生成的原生jtl文件

    会生成如下图所示的文件

     

    打开index.html,会看到一个html版的测试报告

  • 相关阅读:
    面向对象-------------------------------面向对象的零散小知识
    面向对象------------------------------反射(面向对象的又一个思路)
    面向对象-------------------------对象和类的属性
    面向对象------------------一些双下方法
    装饰器搞一下
    字符串切片取值规则
    On The Way—Step 2 Python入门之Python内容初始
    socket对于recv函数的理解
    Socket通信原理学习
    [SUCTF 2019]Pythonginx
  • 原文地址:https://www.cnblogs.com/caiwenjing/p/7235098.html
Copyright © 2011-2022 走看看