藏兵谷Java

Jmeter接口测试

2019-04-26  本文已影响183人  瘦不下去了

一.概述

  1. Apache公司使用JAVA开发的一款测试工具
  2. 高效,功能强大;模拟一些高并发或者多次循环等特殊场景
  3. bin:存储了Jmeter的可执行程序,比如启动程序;lib:存储了Jmeter整合的功能
    启动方式1:bin/ApacheJmeter .jar 双击
    启动方式2:jmeter.bat windows下的启动程序
    启动方式3:jmeter.sh linux下的启动程序
  4. 作用:
    接口测试,性能测试(内在 --- 程序的算法,比如程序响应时间),压力测试(外在 --- 外在负载,比如高并发人数),web自动化测试,数据库测试,Java程序测试
    优点:1.开源,免费;2.支持多协议 --- http,https,ftp,ftps;3.小巧;4.功能强大
    缺点:1.不支持IP欺骗;2.不支持前端测试;

二、组件:线程组

A.是什么
进程:一个正在运行的程序就是一个进程
线程:进程中的执行线索(一个进程有多个执行线索)
线程组:按照线程性质对线程进行分组

并发执行:多个线程同时执行,线程结束的顺序和线程启动的顺序不一定一致
顺序执行:按照线程的启动顺序挨个执行

B.为什么
方便管理

C.怎么用(基本使用)
C-1.三者关系:进程有多个线程组,线程组可以有多个线程
   ---进程:测试计划
   ---线程组:线程组
   ---线程:线程组属性的线程数
C-2.默认情况下,线程组中的线程是并发执行的,每一个线程都要执行组内的http请求
C-3.顺序执行:在测试计划中选择独立运行每个线程组

D.线程组优化
可以使用http请求默认值抽取线程组共同的IP,端口,协议,编码集等信息
1.测试计划 ——> 配置元件 ——> http请求默认值
作用:通过复用属性简化实现,提高效率

E.线程组高级(初始化与销毁线程组)
E-1.线程组属性
属性1:线程数 ---- 模拟用户数
属性2:时间值 ---- 在指定时间内启动所有线程
属性3:循环数 ---- 单个用户访问次数

E-2.调度器
1.循环次数设置为永远
2.设置启动延迟X和持续时间Y:在X秒后访问服务器,并且持续Y秒
3.设置启动时间M和结束时间N:在M时间开始访问,在N时间结束
--------2和3不能同时使用---------

组件:参数化概述

A.是什么
动态地获取并设置数据
B.为什么
执行批量操作的时候,每执行一次都需要修改一次,效率低,参数化就是以程序代替人工获取并设置数据:安全+高效

参数化实现之CSV Date Set Config

A.是什么
Jmeter参数化实现组件之一
B.为什么
通过这个组件可以动态获取并设置数据,实现类似批量添加操作(执行一次,将多条数据插入到数据库)
C.怎么用
C-1、实现思想

  1. 编写添加框架,设置循环次数,JSON数据格式固定,值先不写;
  2. 编写一个外部的文本文档,存储要添加的数据;
  3. Jmeter添加一个参数化组件CSV Date Set Config,每次循环时都读取外部文档的一行数据,再将字段分别设置进要提交的JSON数据中

C-2、实现方法

  1. 线程组设置循环次数,线程组下插入的HTTP请求负责插入数据
  2. 创建一个文本文档,标准的CSV格式文件,每一行数据对应文档一条记录,不用字段之间使用英文 , 分隔
  3. 创建一个CSV元件,声明数据源以及编码集以及解析格式
    Filename:文件路径
    File encoding:编码集
    Variable Names:变量名
    Delimiter:分隔符
  4. 要将CSV中解析的数据设置进JSON格式的数据报文,语法${变量名}

  BodyDate中:''键'':"${变量名}"

Jmeter组件:线程组实现高级

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

上一篇 下一篇

猜你喜欢

热点阅读