前言

通过测试基础(三) Jmeter安装 - 大风北吹 - 博客园 (cnblogs.com)安装完成Jmeter后,就可以使用Jmeter进行性能测试。

一、线程组

(1)、线程组分类

  Jmeter线程组主要分为3类分别为线程组、setUp线程组、tearDown线程组

  ①线程组

    这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。

  ②setUp线程组

    一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行;类似LoadRunner的init,测试开始时进行初始化的工作。

  ③tearDown线程组

    一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组;类似LoadRunnner的end,测试结束时进行回收工作。

(2)、线程组参数

三种不同线程组的参数设置页面都一致

①在取样器错误后执行的操作

  1、继续:继续执行接下来的操作。

  2、启动下一次循环:开始下一次循环。

  3、停止线程:退出该线程(不再执行此线程的操作)。

  4、停止测试:等待当前执行的采样器结束后,结束整个测试。

  5、立即停止测试:马上停止测试。

②线程属性

  1、线程数:相当于模拟的用户数量。

  2、Ramp-up 时间(秒):达到指定线程需要的时间,例如线程数为100,时间设定为10s,那么就是10s加载    100个线程,每秒启动的线程数=100/10=10。

  3、循环次数:如果填具体的数值,就是循环对应的次数;如果选择“Forever”,则一直执行下去,直到手动停止。

  4、same user on each iteration:每次迭代都有相同的用户,此功勾选为默认勾选。如果只是做接口测试则无需管这个参数,如果是要做模拟多线程的情况则需要取消勾选。

  5、延迟创建线程直到需要:延迟线程创建,直到需要才创建。

(三)、调度器

  1、持续时间(秒):测试计划持续多长时间

  2、启动延迟(秒):测试计划延迟多长时间启动

二、Http请求

可在线程组-取样器中添加HTTP请求

协议:向目标服务器发送http请求时的协议,http/https,大小写不敏感,默认http

服务器名称或IP:需要调用的服务器或IP

端口号:目标服务器的端口号,默认值为80,可为空

HTTP请求:可以根据实际需要请求的接口,选择请求的类型get/post...

路径:目标的URL路径(不包括服务器地址和端口)

内容编码:请求内容的编码,一般使用UTF-8

自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。

跟随重定向:Http Request取样器的默认选项,当响应Code是3XX时,自动跳转到目标地址。与自动重定向不同,jmeter会记录重定向过程中的所有请求,在查看结果树可以查看服务器返回的内容,可以对响应的内容进行关联。

使用keepalive:该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。

对POST使用multipart/form-data:当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。

参数:可手动添加请求参数,会放到请求数据中,格式为参数名=参数。无法与消息体数据共同使用。

消息体数据:此数据会与请求一起发出,发出的格式为手动设置的格式。无法与参数选项共同使用。

文件上传:文件上传的接口在进行测试的时候需要在文件上传页面设置上传文件的属性。由文件名称、参数名称、MIME类型构成。

三、Jar包导入

Jar包导入分为三种方法

1、在测试计划直接导入jar包

2、lib目前导入

可以把需要的jar包放入lib目前下,重启后此jar包即可在Jmeter模块中使用

3、其余目录导入

通过修改bin目录下的jmeter.properties文件中的plugin_dependency_paths,可以引用其余目录下的jar包。

四、HttpInvoker请求

HTTPInvoker是spring框架中的一个远程调用模型,它的执行基于HTTP的远程调用,并使用JAVA的序列化机制在网络间传递对象。
在Spring配置文件中创建一个类HttpInvokerProxyFactoryBean的Bean,指定serviceUrl属性为服务器端的服务提供的URL,serviceInterface属性为服务器端配置的服务类型。
需要调用对应接口,便需要把接口配置到xml配置文件中,并通过调用bean来完成远程方法的调用。

①在jmeter文件中新建xml文件并把对应的xml文件放入文件中

② 新建线程组并在线程组中增加BeanShell 取样器

③在Beanshell中导入接口调用需要的jar包,并通过xml配置文件获取相应的Bean,参数组装后即可调用相应的接口方法

五、正则表达式提取器

在一个线程组中,B请求如果需要使用A请求返回的数据,将上一个请求的响应数据作为下一个请求的参数,则需要对A请求的响应报文使用后置处理器,其中最方便常用的就是正则表达式提取器

引用名称:Jmeter变量的名称,存储提前出的结果。

模板:表示使用提取到的第几个值,$N$使用提取到的第N个值

匹配数字:正则表达式匹配数据的结果可以看成一个数值,0表示随机取,正数N表示取第N个值。

缺省值:匹配失败时候的默认值

正则表达式:

():表示提取字符串的部分值,前后是提取的边界内容
?:出现在该符号之前的项目是可选的,最多匹配一次
*:匹配出现0次或多次的项目
+:匹配一次或多次之前的项目
$:匹配行末的空字符串
{N}:精确匹配N次的先前项目

六、查看结果树

用来监控请求执行的结果,主要分为查看结果树、汇总报告、聚合报告等。
也可以下载第三方监听器。

测试基础(四)Jmeter基础使用的更多相关文章

  1. Jmeter基础之---jmeter基础概念

    Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...

  2. web基础 (四) JavaScript基础

    JavaScript 简史略过…… 一.Javascript结构   ECMAScript  ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标 ...

  3. node.js(基础四)_express基础

    一.前言                                                           本次内容主要包括: 1.express的基本用法 2.express中的静 ...

  4. 【转】Jmeter基础之——jmeter基础概念

    JMeter 介绍:一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工具包含 ...

  5. JMeter基础之--元件的作用域与执行顺序

    前面有介绍过jmeter的元件类别,对于新手来说,jmeter的元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了 ...

  6. 转 JMeter基础之--元件的作用域与执行顺序

    前面有介绍过jmeter的元件类别,对于新手来说,jmeter的元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了 ...

  7. 性能测试工具JMeter 基础(六)—— 测试元件: 线程组

    线程组的定义: 线程组是测试计划执行的入口,所有的逻辑控制器和取样器都必须在线程组下,其他的元件根据位置的不同作用域是不同的. 线程组是每个线程都是独立运行测试脚本,一个线程组就等于一个用户,通过多个 ...

  8. Django基础四之测试环境和ORM查询

    Django基础四之测试环境和ORM查询 目录 Django基础四之测试环境和ORM查询 1. 搭建测试环境 1.1 测试环境搭建方法: 1.2 使用测试环境对数据库进行CURD 1.3 返回Quer ...

  9. JMeter基础之一 一个简单的性能测试

    JMeter基础之一 一个简单的性能测试 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测 ...

  10. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

随机推荐

  1. MIPS指令的CPU实现:ALU设计

    设计CPU的第一步,设计一个简单的逻辑运算单元ALU.同时对Verilog语言也有一定要求. 一.实验内容 如图,ALU接受两个N位的输入,得到N位的输出,通过控制信号F决定运算功能. 将ALU的输出 ...

  2. webpack(2)--webapck自身的配置

    上一记介绍了webpack的安装和基本配置,本记将描述webpack自身的配置 一:指定webpack入口以及出口目录以及输出文件 相信读者在看完上一记后会有一点疑惑:为什么运行webpack要配置s ...

  3. 文字闪烁效果 CSS + HTML

    文字闪烁效果 CSS 写在前面 好好学习,天天向上! 效果图 绝美的效果 实现过程 先给没字体添加一些普通的样式,颜色设置为透明 给文字设置一个动画效果,通过text-shadow属性来实现变亮的效果 ...

  4. Navigation 在fragment之间用bundel传递数据

    使用 Bundle 对象在目的地之间传递参数 如果您不使用 Gradle,仍然可以使用 Bundle 对象在目的地之间传递参数.创建 Bundle 对象并使用 navigate() 将它传递给目的地, ...

  5. 西门子S7200/300/400以太网通讯处理器选型分类

    北京华科远创科技有限研发的远创智控转以太网模块适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控840D.840DSL.合信.亿维PLC的PPI/MPI/PRO ...

  6. 使用 Flux+Flagger+Istio+Kubernetes 实战 GitOps 云原生渐进式(金丝雀)交付

    在这篇指南中,你将获得使用 Kubernetes 和 Istio 使用 GitOps 进行渐进式交付(Progressive Delivery)的实际经验. 介绍 gitops-istio GitOp ...

  7. wxPython使用指导

    一.wxPython简介 这是Python一个非常不错的GUI开发库,免费.开源.跨平台,可用组件众多,借助这些组件,程序员可以快速创建完整.功能全面的用户界面,因此应用非常广泛 二.安装方式: pi ...

  8. 【排除解决】System.Runtime.InteropServices.ExternalException (0x80004005): GDI+ 中发生一般性错误

    前言: 今天项目发布上线,发布到正式环境验证功能的时候忽然方向之前做的一个图片合成的功能报错了提示:System.Runtime.InteropServices.ExternalException ( ...

  9. [leetcode] 45. 跳跃游戏 II(Java)(动态规划)

    45. 跳跃游戏 II 动态规划 此题可以倒着想. 看示例: [2,3,1,1,4] 我们从后往前推,对于第4个数1,跳一次 对于第3个数1,显然只能跳到第4个数上,那么从第3个数开始跳到最后需要两次 ...

  10. Linux基础服务——Bind DNS服务 Part1

    Linux基础服务--Bind DNS服务 Part1 DNS正向解析 实验环境: CentOS8.3.2011 IP地址:192.168.100.50 VMware虚拟环境 NAT网段 需要解析的区 ...