Apache JMeter是Apache组织开发的一款开源软件,是典型的纯Java开发的应用程序,可以在不同平台比如Windows、Linux或macOS系统上进行软件测试。JMeter主要用于应用程序的功能负载测试以度量软件的性能,也可以用于其他类型的测试比如接口测试,API测试等。

01测试计划

一个测试计划用来定义这次要测试的内容。

保存后的测试计划是一个.jmx文件。

可以导入已有的测试计划jmx文件;

可以在测试计划中添加其他各个组件,完成测试;

1.1配置

独立运行每个线程组勾选后,独立运行每个线程组,确保线程组1的执行一定在线程组2之前;不勾选,运行时测试计划下所有线程组同时执行;

主线程结束后运行tearDown:默认是从上到下执行;交替控制器、随机控制器、随机顺序控制器和循环控制器等可以改变取样器的执行顺序;

函数测试模式:如果选中此项,监听组件如“查看结果树”配置了保存到一个文件中,那么jmeter会将每次请求结果保存到文件中,不建议勾选;

添加目录或jar包到ClassPath:可以引入测试项目特有的jar等。

1.2操作

运行、清除

[启动]:执行测试计划下所有启用状态的节点。

[清除]:清除运行结果。

02线程组

【添加线程组】测试计划->添加->线程->线程组

线程组:模拟一定数量的并发用户发送请求,在线程组下配置用户要进行的操作(如添加http请求)

虽然有三个添加线程组的选项,名字不一样, 创建之后,其界面是完全一样的。

1) setup 线程组

可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。

2) teardown 线程组

可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。

3) 线程组

这个就常用添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。

配置信息

[线程属性]:相当于要模拟的虚拟用户数,以及启动线程的时间,循环的次数。

[线程数]:虚拟用户数。

[Ramp-Up 时间]:多长时间启动全部线程,单位秒。如配置为1,即表示在1秒结束前启动完所有线程。每个线程启动的延迟时间=线程数,如线程数是1,即表示每隔1秒启动1个线程。如果要模拟测试绝对并发,可以把Ramp-Up 时间配置为0。

[循环次数]:即每个线程发送请求的次数。勾选永远,即一直执行,直到强制停止。

[在取样器错误后要执行的动作]:默认选择继续、启动下一个进程循环、停止线程、停止测试、立刻停止测试。

[调度器]:勾选后可以配置线程组持续时间、启动延迟。

03取样器

取样器:模拟各种请求,如http请求等。

【添加取样器】线程组->添加->取样器

目前最常用的是HTTP请求

04断言

可以添加断言配置测试的期望值,执行时jmeter会判断请求响应的结果是否与期望值一致。

【添加断言】测试计划/线程组/请求->添加->断言(有多种断言方式)

断言中有很多类型,我们常用的是响应断言

4.1响应断言

响应断言编辑页面,可选择断言应用范围和要测试的响应字段,匹配规则等。

(1)Apply to(应用范围 ): Main sample and sub-samples,Main sample only , Sub-samples only ,Jmeter Variable 一共4种。

大多数勾选“,Main sample only” 就足够了,因为一个请求,实质上只有一个请求。

(2)响应字段:响应文本,响应代码,响应信息,响应头,请求头,URL样本,文档(文本),请求数据一共8种

  • 响应文本: 服务器响应文本,一般普通http响应,通常勾选这个

  • 响应代码:http响应代码,

例如:101,102,404,505等
  • 响应信息:http响应代码对应的响应信息

例如:OK, FoundHTTP/1.1 200 OkHTTP/1.1 302 Found
  • 头:响应头信息

例如:               Cache-Control:privateConnection:Keep-AliveContent-Encoding:gzipContent-Length:84 Content-Type:text/html;charset=utf-8Date:Sun, 27 Jul 2021 08:08:03 GMTExpires:Sun, 27 Jul 2021 08:08:03 GMTServer:BWS/1.0Vary:Accept-Encoding
  • 请求头:请求头信息

例如:               Accept:text/plain, */*; q=0.01Accept-Encoding:gzip, deflate, sdchAccept-Language:zh-CN,zh;q=0.8Connection:keep-aliveCookie:XXXHost:www.baidu.comReferer:https://www.baidu.com/X-Requested-With:XMLHttpRequest

(3)模式匹配规则:包括、匹配、相等、字符串、否、或者

  • 包括:返回结果包括指定的内容,支持正则匹配

例如:响应字段为:响应文本模式匹配规则:匹配断言为:1、success    2、[a-z]+当返回值为:{"msg":"login success."} , 这两个断言都是ok的,返回true
  • 匹配:   

(1) 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同

   (2) 正则匹配 。用正则表达式匹配返回结果,但必须全部匹配。即正则表达式 必须能匹配整个返回值,而不是返回值的一部分。

  例如:响应字段为:响应文本模式匹配规则:匹配断言为:1、{"msg":"login success."},2、\{"msg":"[a-z]+ success\."\} ,3、[a-z]+当返回值为:{"msg":"login success."}   ,断言1 2 是ok的, 断言3是false,原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。
  • 相等 : 返回结果与指定断言完全一致

  • 字符串:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串

例如:响应字段为:响应文本模式匹配规则:匹配断言为:1、success    2、[a-z]+当返回值为:{"msg":"login success."} , 断言1返回true, 但断言2返回false
  • 否:就相当于取反。如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true


JMeter使用教程(一)相关推荐

  1. 压力测试-Jmeter自动化测试教程

    目录 Jmeter目录 1.Jmeter的安装与部署 1.1 环境要求 1.2 安装Jmeter 1.3 配置Jmeter环境变量 1.4 Jmeter的使用 手写自动化测试脚本(不建议用) 通过录制 ...

  2. 【教程分享】Jmeter入门教程

    好!回归学长每周的教程分享! PART2 >今天又来分享Jmter 因为最近好像有相关工作内容 提前准备资修一下 分享仅供参考- JMeter的作用对软件做压力测试 1.能够对HTTP和FTP服 ...

  3. Windows10安装Jmeter(图文教程)

    Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文 ...

  4. jmeter菜鸟教程(jmeter安装教程)

    哪里有单反的教程菜鸟入门级 建议还是不要看视频学习摄影,这个还是实际操作比较好 今天安装了Jmeter,如何测试Jmeter是否安装成功呢?? linux环境还是windows环境?如果是linux环 ...

  5. JMeter入门教程(自己做测试了)

    本文版权归xmeter.net所有.欢迎转载,转载请注明出处. 简介 本文由xmeter君写给想了解性能测试和JMeter的小白,适合对这两者了解很少的同学们,如果已经有使用经验的请绕道,别浪费时间: ...

  6. Jmeter 新手教程

    官网: https://jmeter.apache.org/download_jmeter.cgi Jemeter安装 安装jemeter之前,需要先安装JDK. 下载完毕,直接解压缩即可. Wind ...

  7. jmeter安装 java,Windows下安装jmeter图文教程

    JMeter是Apache软件基金会的产品,用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java 对象,数据库和查询,FTP服务器等等)的性能进行测试.是一款很方便的测试软件. 系统 ...

  8. Jmeter入门教程之配置原件(二)

    常用的配置原件 1.HTTP请求默认值 配置我们需要进行测试的程序协议.地址,端口号 当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可 2.HTT ...

  9. 一款适合小白的jmeter入门文档,性能测试工具-jmeter使用教程

    文章目录 jmeter介绍 jmeter安装及环境配置 录制jmeter脚本 jmeter工具使用 JMeter梯度加压之jp@gc - Stepping Thread Group JMeter监控工 ...

  10. JMeter入门教程详解

    简介 这边文章是一菲专门写给想了解性能测试和JMeter的小白,适合对这两者了解很少的朋友们,如果已经有使用经验的请绕道,别浪费时间. 下面我们将介绍JMeter的使用场景,如何安装.运行JMeter ...

最新文章

  1. Springboot集成netty实例
  2. mysql 去重求总数_Mysql获取去重后的总数
  3. jquery实现回车键触发事件
  4. linux常用命令 打开文件,【Linux】常用命令 lsof查看打开的文件
  5. Ubuntu 16.04 使用useradd添加用户后没有家目录的解决方法
  6. python爬虫 selenium模块的学习
  7. python求解分支定界(branch-and-bound)问题使用pybnb基本架构
  8. python linux 命令_Python Linux 命令行 sudo
  9. Stanford CoreNLP服务器
  10. 怎样用自己电脑搭建网络服务器!不花一分钱
  11. 程序员的那些事儿 -- 高级程序员买衣服
  12. soul显示服务器异常,soul账号状态异常是什么意思?soul账号异常操作多久解封
  13. oracle 12c创建归档,oracle 12c 数据归档 即Using In-Database Archiving feature
  14. 一级计算机字处理步骤,计算机一级B文字处理操作步骤
  15. sort按vector元素排序
  16. 如何解决Mac电脑浏览器网页自动放大的问题?
  17. 全志Tina Linux 系统裁剪 boot0裁剪 uboot裁剪 内核裁剪 文件系统裁剪 C库裁剪 文件系统压缩
  18. “微信之父”张小龙:我没去过龙泉寺!
  19. linux性能监控工具Netdata安装和卸载教程
  20. sex 无需下载_elipse FTP插件 - Sexftp 支持FTP上传、下载、比较等功能

热门文章

  1. 微软王码五笔86版 for win95/98/me 官网
  2. .NET单元测试(四):用例设计
  3. 高数:第三章(同济大学第七版)
  4. vijos 1002
  5. Unix网络编程卷1源代码使用
  6. 由jar文件生成jad文件
  7. SketchUp Pro 2017 简体中文版的安装与破解
  8. Johnson算法寻找图中的所有简单环路
  9. 一二线城市有哪些值得加入的互联网公司?
  10. CSRF和SSRF漏洞