Jmeter

一、Jmeter概述

1、是什么?

jmeter是Apache公司使用java开发的一款测试工具

2、为什么?

高效、功能强大

模拟一些高并发或多次循环等特殊测试场景

3、怎么用?

  • 下载jmeter解压缩
  • 安装java环境(jemter和java环境的关系,类似于mp3文件和播放器的关系)
  • 简单了解jmeter的目录结构
  • bin:存储了jmeter的可执行程序,比如启动程序
  • lib:存储了jmeter整合的功能(一些.jar文件的小程序)
  • 启动jmeter
  • 启动方式1:bin/Apachejmeter.jar 双击
  • 启动方式2:jmeter.bat windows下的启动程序 | jmeter.sh linux下的启动程序
  • 编写一个jmeter版本的测试案例

4、jmeter的作用优点和缺点

作用:

  1. 接口测试
  2. 性能测试:内在的东西 ---- 如程序的算法
  3. 压力测试:外在的东西 ---- 如外在负载
  4. web自动化测试
  5. 数据库测试:测试数据库
  6. java程序测试

优点:

  1. 开源、免费
  2. 支持多协议:http https ftp ftps
  3. 小巧
  4. 功能强大

缺点:

  1. 不支持IP欺骗
  2. 不支持前端测试

 

二、 Jmeter组件:线程组

1、是什么?

  • 进程:一个正在执行的程序对应一个进程
  • 线程:进程中的执行线索(一个进程可以有多个线程)
  • 线程组:按照线程性质对线程进行分组
  • 并发执行:多个线程同时执行,特点:执行结束的顺序和线程的启动顺序不一定一致
  • 顺序执行:按照线程的启动顺序挨个执行

2、为什么?

  • 方便管理

3、怎么用?

3.1、三者关系:进程有多个线程组,线程组可以有多个线程

  • 进程 --- 测试计划
  • 线程组 --- 线程组
  • 线程 --- 线程组属性的线程数

3.2、默认情况下,线程组中的线程是并发执行的

每一个线程都要执行组内的http请求

3.3、怎样设置线程组顺序执行?

勾选测试计划的第一个复选框(独立运行每个线程组)

3.4、使用http请求默认值抽取共同的ip、端口号、协议、编码集 等信息

测试计划 ---> 右击 ---> 添加 ---> 配置元件 ---> http请求默认值

作用:通过复用属性简化实现,提高测试效率

4、线程组高级应用

4.1、线程组属性

  • 属性1:线程数 --- 模拟用户数
  • 属性2:时间值 --- 在指定时间内启动所有线程
  • 属性3:循环数 --- 单个用户访问的次数

4.2、调度器

  • 循环次数设置为永远
  • 设置启动延迟x和持续时间y,在x秒后访问服务器,并持续y秒
  • 设置启动时间M和结束时间N,在M时开始访问服务器,在N时结束
  • 注意:第2和第3点不能同时使用,否则会冲突

 

三、Jmeter组件:参数化

1、是什么?

  • 参数化就是动态的获取并设置数据

2、为什么?

  • 比如执行批量操作时,批量插入或批量删除,之前数据都是手写的,每执行完都需要修改一次,效率太低
  • 参数化就是可以以程序代替人工获取并设置数据:安全+高效

 

 

四、Jmeter组件:参数化实现之CSV Data Set Config

1、是什么?

  • jmeter参数化实现组件之一

2、为什么?

  • 通过这个组件可以动态获取并设置数据,实现类似批量添加操作(执行一次,将多条数据插入到数据库)

3、怎么用?

3.1、实现思想

  • 绑定添加框架,设置循环次数;JSON数据格式固定,值先不写
  • 编写一个外部文本文档,存储要添加的数据(循环次数是多少,数据就有多少条)
  • Jmeter添加一个参数化组件CSV Data Set Config,每次循环时都读取外部文档的一行数据,再将JSON格式的字段分别设置进提交的JSON数据中

3.2、实现流程

1、创建线程组,并设置循环次数(有多少条数据就设置多少次循环次数)

 

2、编写外部文本文档(标准的CSV格式)

 

 

 

 3、添加CSV组件

 

 4、要将CSV解析的数据设置进HTTP请求中JSON格式的请求报文中

语法:${变量名}

 

4、其他

  • CSV Date Set Config --- CSV数据配置
  • CSV --- 逗号分隔值文件格式

 

 

五、Jmeter组件:线程组实现高级

  • Set Up 线程组:最先执行的线程组,加载程序主体执行所需的资源
  • Tear Down 线程组:最后执行的线程组,程序正式关闭之前,可以将数据保存进内存

 

 

 

 

 

posted @ 2020-06-09 15:22  南啾  阅读(182)  评论(0编辑  收藏  举报