Jmeter压力测试Http reqest与JDBC request

Jmeter概述

使用场景

  • Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
  • Database via JDBC
  • SOAP / REST Webservices
  • FTP
  • LDAP 轻量目录访问协议
  • Message-oriented middleware (MOM) via JMS
  • Mail - SMTP(S), POP3(S) and IMAP(S)
  • TCP等等

安装

  • http://jmeter.apache.org/download_jmeter.cgi(win下载zip、linux下载tgz)
  • 建议安装JDK环境,虽然JRE也可以,但是压测https需要JDK里面的 keytool工具

Jmeter目录文件

  • bin:核心可执行文件,包含配置

    • jmeter.bat: windows启动文件:
    • jmeter: mac或者linux启动文件:
    • jmeter-server:mac或者Liunx分布式压测使用的启动文件
    • jmeter-server.bat:mac或者Liunx分布式压测使用的启动文件
    • jmeter.properties: 核心配置文件
  • extras:插件拓展的包

  • lib:核心的依赖包

  • ext:核心包

  • junit:单元测试包

Jmeter语言版本中英文切换

  • 控制台修改
    • menu -> options -> choose language
  • 配置文件修改
    • bin目录 -> jmeter.properties
    • 默认 #language=en 改为 language=zh_CN

Jmeter常用功能

线程组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Http请求常用组件
在这里插入图片描述
在这里插入图片描述
JDBC请求
在这里插入图片描述
在这里插入图片描述

Jmeter测试Http请求

  • 步骤一:添加->threads->线程组(控制总体并发)

    • 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程
    • 准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,比如100个线程,20秒,则表示20秒内100个线程都要启动完成,每秒启动5个线程
    • 循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环
  • 步骤二:线程组->添加-> Sampler(采样器) -> Http请求 (一个线程组下面可以增加几个Sampler)

    • 名称:采样器名称

    • 注释:对这个采样器的描述

    • web服务器:

      • 默认协议是http
      • 默认端口是80
      • 服务器名称或IP :请求的目标服务器名称或IP地址
    • http请求:

      • 路径:服务器URL(相对路径,例如 /user)
    • 要发送请求体时

      在这里插入图片描述

  • 步骤三:线程组->添加->监听器->察看结果树(查看每条测试结果)

  • 步骤四:线程组->添加->监听器->聚合报告(查看统计的测试结果)

    lable: sampler的名称
    Samples: 一共发出去多少请求,例如10个用户,循环10次,则是 100
    Average: 平均响应时间
    Median: 中位数,也就是 50% 用户的响应时间
    90% Line : 90% 用户的响应不会超过该时间 (90% of the samples took no more than this time. The remaining samples at least as long as this)
    95% Line : 95% 用户的响应不会超过该时间
    99% Line : 99% 用户的响应不会超过该时间
    min : 最小响应时间
    max : 最大响应时间			
    Error%:错误的请求的数量/请求的总数
    Throughput: 吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps
    KB/Sec: 每秒接收数据量
    

使用断言

  • 增加断言: Http请求 -> 添加 -> 断言 -> 响应断言

    • apply to(应用范围):
      • Main sample only: 仅当前父取样器 进行断言,一般一个请求,如果发一个请求会触发多个,则就有sub sample(比较少用)
    • 要测试的响应字段:
      • 响应文本:即响应的数据,比如json等文本
      • 响应代码:http的响应状态码,比如200,302,404这些
      • 响应信息:http响应代码对应的响应信息,例如:OK, Found
      • Response Header: 响应头
    • 模式匹配规则:
      • 包括:包含在里面就成功
      • 匹配:响应内容完全匹配,不区分大小写
      • equals:完全匹配,区分大小写
  • 断言结果监听器: Http请求-> 添加 -> 监听器 -> 断言结果

    • 里面的内容是sampler采样器的名称
    • 断言失败,查看结果树任务结果颜色标红(通过结果数里面双击不通过的记录,可以看到错误信息)
  • 每个sample下面可以加单独的结果树,然后同时加多个断言,最外层可以加个结果树进行汇总

自定义变量

  • 定义变量:线程组->add -> Config Element(配置原件)-> User Definde Variable(用户定义的变量)

  • 引用方式 ${XXX},在接口中变量中使用

CSV可变参数

  • 添加csv文件:线程组->add -> Config Element(配置原件)-> CSV data set config (CSV数据文件设置)

    • 也可以时txt文件,但必须把分割符设置好
    • 如果是多个参数需要同时引用,则在CSV数据文件里面设置加多个字段
      Variabled names(comma-delitited): csv_name,csv_pwd
  • 引用方式 ${XXX},在接口中变量中使用

数据库压测

  • 步骤一:Thread Group -> add -> sampler -> jdbc request

  • 步骤二:在测试计划添加mysql-connector-java-5.1.30.jar(jar包添加)
    在这里插入图片描述

  • 步骤三:线程组->添加->监听器->察看结果树(查看每条测试结果)

  • 步骤四:线程组->添加->监听器->聚合报告(查看统计的测试结果)

  • 步骤五:线程组->添加->取样器->调试取样器(查看自定的结果集)

  • 步骤五:JDBC request -> add -> Config Element -> JDBC connection Configuration(配置数据库连接)

    • 核心配置
      1、Max Number of connections : 最大连接数
      2、MAX wait :最大等待时间
      3、Auto Commit: 是否自动提交事务
      4、DataBase URL : 数据库连接地址 jdbc:mysql://127.0.0.1:3306/blog
      5、JDBC Driver Class : 数据库驱动,选择对应的mysql
      6、username:数据库用户名
      7、password:数据库密码
  • 步骤:配置JDBC request

    • 参数说明:
      1、variable name of pool declared in JDBC connection configuration(和配置文件同名才能表明配套)
      2、Query Type: 查询类型
      3、parameter values: 参数值(当Query Type为Perpared …)
      4、parameter types: 参数类型(和parameter values对应)
      5、variable names: sql执行结果要封装为结果集的变量名
      6、result variable name: 所有结果当做一个对象存储的名字
      7、query timeouts: 查询超时时间
      8、 handle results: 处理结果集
    • 注意
      • sql结尾不要加";"
      • variable names、result variable names、 handle results 要通过调试取样器查看结果
发布了109 篇原创文章 · 获赞 47 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43934607/article/details/104228883
今日推荐