导读 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一01JMeter主要组件介绍1.测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
2.线程组(Thread Group)代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
3.取样器(sampler)定义实际的请求内容,被线程组包含,我们主要用HTTP请求。
4.监听器(Listener)
5.逻辑控制器(Logic Controller)
6.断言(Assertions)
7.配置元件(Config Element)
8.前置处理器(Pre Processors)和后置处理器(Post Processors)
9.定时器(Timer)02JMeter主要组件介绍-测试计划1.测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
2.名称:你可以为你的测试计划取一个有意义的名字。
3.注释:对测试计划的注释。
4.用户定义的变量:用户可以自己定义变量,在用到此变量的时候直接用${变量名}引用即可。例:变量名=url,值=http://www.baidu.com,在需要http://www.baidu.com时直接用${url}即可。
5.Add directory or jar to classpath:向类路径即%JMETER-HOME%lib中添加目录及jar包。

03JMeter主要组件介绍-线程组1.名称:为线程组起名字。
3.线程属性-线程数:设置发送请求的用户数目 ,即并发数。
4.线程属性-Ramp-Up Period(in second):线程间的时间间隔,单位是秒。即所有线程在多少时间内启动。
5.线程属性-循环次数:请求的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数,如果输入1,那么请求将执行一次,如果是0,会出现问题。
6.调度器配置-持续时间:测试计划持续多长时间,会覆盖结束时间。
7.调度器配置-启动延迟:测试计划延迟多长时间启动,会覆盖启动时间。

04JMeter主要组件介绍-取样器(HTTP请求)1.名称:HTTP请求的名字。
2.Web服务器-服务器名称或IP、端口号,脚本录制时自动添加,也可以使用“用户自定义变量”。
3.HTTP请求:用默认值即可。
4.同请求一起发送参数:请求中的参数、值可以在此设置,需要用到参数化及动态数据关联,我们在后面专门介绍。
5.同请求一起发送文件:我可以制定同请求一起发送哪个文件。
6.其他任务包括:从HTML文件中获取所有内含的资源、用作监视器、Embedded URLs must match。

05JMeter主要组件介绍-监听器1.监听器(Listener)负责收集测试结果,同时也被告知了结果显示的方式。
我们常用的包括:聚合报告、查看结果树、用表格查看结果,都支持将结果数据写入文件。
其他的添加上去看看就行。聚合报告前面我们介绍过,后面是查看结果树和用表格查看结果的截图

06JMeter主要组件介绍-监听器(用表格查看结果)下图是用表格察看结果

07JMeter主要组件介绍-逻辑控制器

  1. 逻辑控制器(Logic Controller)可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
  2. 循环控制器可以设置请求的循环次数或永远循环(如果选中永远的话)。
  3. 事务控制器可以将多个请求放在同一个事务中。如果选中Gegerate parent sample,则聚合报告中只显示事务控制器的数据,而不会显示其中的各个请求的数据,反之则全部显示。

08JMeter主要组件介绍-断言1.断言(Assertions)可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。

09JMeter主要组件介绍-配置元件1.配置元件(Config Element)维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSV Data Set Config

10JMeter主要组件介绍-前置处理器和后置处理器1.前置处理器(Pre Processors)和后置处理器(Post Processors)负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。

11JMeter主要组件介绍-定时器1.定时器(Timer)负责定义请求之间的延迟间隔。

12参数化设置1.在我们的测试计划中我们使用的都是HTTP请求,在HTTP请求中常常会提交一些参数,我们为了不想在每一次请求中都使用相同的参数值,就要想办法让每一次请求的参数的值都是不一样的,我们就需要进行参数化设置,这里我们介绍两种参数化设置的方法。
一种是利用函数助手中的_Random函数进行参数化设置;
一种是利用配置元件中的CSV Data Set Config进行参数化设置
2.JMeter中有一个函数助手的功能,里面内置了多个函数,我们可以利用其中的_Random函数来进行请求中的参数化设置。
在JMeter中选择“选项-函数助手对话框”打开函数助手对话框。

选择一个功能_Random。
设定最小值为1。
设定最大值为100。
函数名称设为func1。
点击生成将生成一个引用字符串${_Random(1,100,func1},在需要的请求参数中拷贝该字符串即可。
v其中函数名称用来在引用中作区别,即我们可以设定不同的名称在不同的地方引用同一个函数的功能。

例如:我们生成了两个串${_Random(1,100,func1)}、 ${_Random(1,100,func2)},在添加图书的请求中,我们在bookName的参数值中引用${_Random(1,100,func1)},在bookConcern的参数值中应用${_Random(1,100,func2)},见截图,这样测试运行时不同的线程将产生不同的bookName和bookConcern。

13参数化设置-CSV Data Set Config在线程组上点击右键选择添加-配置元件-CSV Data Set Config,打开CSV Data Set Config。
Filename文件名:即参数化要引用的文件名。这里是d:number.txt
File encoding文件编码:可以不填。
Variable Names(comma-delimited)变量名(用逗号分割):多个变量可以引用同一个文件,用逗号分割。这里是num1,num2
Delimiter(use ‘t’ for tab):参数文件中多个变量值的分隔符,t表示用tab键分割,默认是逗号。
Recycle on EOF?:结束后是否循环?默认是True.
Number.txt文件内容见截图。

在添加图书的请求中,我们在bookName的参数值中引用${num1},在bookConcern的参数值中应用${num2},见截图,这样测试运行时不同的线程将产生不同的bookName和bookConcern

14动态数据关联1.在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据,这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受,在JMeter中采用正则表达式提取器来获取这些动态的数据。
2.正则表达式允许用户从服务器响应中获取数据,作为一个后置处理器,正则表达式提取器会在每一个请求执行后再执行,正则表达式提取请求的参数值,产生模板字符串,并将结果保存到给出的变量中。15动态数据关联(1)-正则表达式提取器1.在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据,这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受,在JMeter中采用正则表达式提取器来获取这些动态的数据。比如我们想要获得从服务器相应的TOKEN,就可以使用下面的正则表达式提取器。

16动态数据关联(2)使用时就可以使用${token_g1}来表示获取到的TOKEN值。如下图:

17使用命令行运行JMeter脚本JMeter -n -t my_test.jmx -l log.jtl
-n告知JMeter采用非图形化运行JMeter脚本
-t指定要运行的脚本文件
-l指定保存执行结果的文件名
执行命令前要检查当前目录是否是%JMeter_Home%bin 目录;
如果 JMeter 脚本不在当前目录,需要指定完整的路径;如果要把执行的结果保存在其他地方也要指定完整的路径。18利用XSLT分析JMeter结果文件(1)1.将结果文件的扩展名改为xml,例:将log.jtl改为log.xml。
2.在log.xml的文件头
<?xml version="1.0" encoding="UTF-8"?>
<testResults version="1.2">
中添加
<?xml-stylesheet type=“text/xsl” href=“jmeter-results-report.xsl” ?>
使之变成
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="jmeter-results-report.xsl" ?>
<testResults version="1.2">
其中href指定xsl文件的路径,如果与xml文件在同一目录,则只写文件名即可,否则要写明详细路径。19利用XSLT分析JMeter结果文件(2)1.将修改后的xml文件用浏览器打开即可得到统计结果:

20JMeter中进行分布式测试作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。不过,JMeter也可以像 LoadRunner 一样通过使用多台机器运行所谓的代理来分担负载产生器自身的压力,并借此来获取更大的并发用户数,我们只需手动配置一下即可。
1.在所有期望运行JMeter作为 负载产生器的机器上安装JMeter,并确定其中一台机器作为 控制器,其他的机器作为 代理。然后运行所有 代理 机器上的JMeter-server.bat文件—假定我们使用两台机器172.20.80.47和172.20.80.68作为 代理;
2.在Controller 机器的JMeter安装目录找到bin 目录,再找到 jmeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它;
3.在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其中的127.0..0.1表示运行JMeter代理的机器,这里需要修改为“remote_hosts=172.20.80.47,172.20.80.68”;
4.保存文件,并重新启动控制器机器上的JMeter,并进入启动 ->远程启动菜单项。就会看到我们刚才添加的两个代理的地址,选中即可运行,如果想同时启动所有代理,选择远程全部启动即可。
要进行分布式测试代理机器上需要添加环境变量,即添加用户变量JMETER_HOME=d:jmeter,系统变量中的path中添加d:jmeterbin(假设jmeter放在d盘根目录下)。21运行Jmeter进行测试-聚合报告详解Label:每个JMeter的element(例如HTTP Request )都有一个 Name 属性,这里显示的就是Name属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100
Average:平均响应时间—默认情况下是单个Request的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间
Median:中位数,也就是50%用户的响应时间
90% Line:90%用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数
Throughput:吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second )
KB/Sec:每秒从服务器端接收到的数据量

jmeter constant timer 如何添加_JMeter性能测试入门篇相关推荐

  1. jmeter constant timer 如何添加_阿里巴巴在开源压测工具 JMeter 上的实践和优化

    Apache JMeter 是 Apache 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史.JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一. 性能测试通 ...

  2. jmeter constant timer 如何添加_基于jmeter+perfmon的稳定性测试记录

    谢谢打开这篇文章的每个你关注我们 点击右上角 ··· 设为星标最近承接了项目中一些性能测试的任务,因此决定记录一下,将测试的过程和一些心得收录下来.说起来性能测试算是软件测试行业内,有些特殊的部分.这 ...

  3. jmeter web监听结果_JMeter 性能测试基本过程及示例

    jmeter 为性能测试提供了一下特色: jmeter 可以对测试静态资源(例如 js.html 等)以及动态资源(例如 php.jsp.ajax 等等)进行性能测试jmeter 可以挖掘出系统最大能 ...

  4. jmeter web监听结果_Jmeter性能测试

    Jmeter性能测试,Jmeter简介 1.1 概述 JMeter,每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的事 ...

  5. 编写jmeter测试用例_Jmeter性能测试系列篇(十)--批量用例执行结果检查设置

    1.在jmeter图形界面中,所有用例的执行可以通过"监听器"中的[察看结果树]来汇总每个接口的测试用例的执行结果.同时可以设置将执行的结果保存到指定的目录上. 2.因为结合ANT ...

  6. jmeter 线程组与参数_jmeter接口测试基础篇之初步认识及参数化请求

    jmeter如何进行接口测试,首先添加线程组,添加http请求,填写接口请求地址,方式,请求类型,请求头,参数等,查看返回结果. 首先打开jmeter软件: 我们可以选择语言为中文 首先添加一个线程 ...

  7. highcharts如何把图多余的空白页面_如何进行前端性能测试入门篇

    前端性能测试:工具使用和分析 1.   参考地址: http://www.genshuixue.com/i-cxy/p/7682961 2.    工具: Yslow , pagespeed  web ...

  8. 堪比JMeter的.Net压测工具 - Crank 入门篇

    1. 前言 Crank 是.NET 团队用来运行基准测试的基准测试基础架构,包括(但不限于)来自TechEmpower Web 框架基准测试的场景,是2021年.NET Conf 大会上介绍的一项新的 ...

  9. Jmeter之Constant Timer与constant throughput timer的区别

    当放置Constant Timer于两个http请求之间,那么它代表的含义是:在上一个请求发出至完成后, 开始Contant Timer指定的时间,最后再发出第二个请求.它并不是代表两个请求之间的发送 ...

最新文章

  1. 给模型加装饰器Java,装饰器设计模式
  2. 如何在Eclipse中添加新建包,java文件,工程工具栏按钮
  3. ifix如何设画面大小_ifix5.1环境下的ifix服务器、客户端配置
  4. java直线函数_java实现顺序结构线性列表的函数代码
  5. 空字符是什么类型_Redis是什么?看这一篇就够了!
  6. 使用Netty编写一个简单的群聊系统
  7. Java中正则表达式替换字符串
  8. javascript调用alert()
  9. Jmeter+badboy
  10. 中兴f477v2超级管理员_[求助] 联通光猫 ZXHN F477V2 桥接问题
  11. bzoj-4816,P3704 [SDOI2017]数字表格
  12. Kafka SASL 安全认证
  13. 【正点原子MP157连载】第四十章 Linux I2C驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  14. 法人和其他组织统一社会信用代码编码规则,附有源代码
  15. win11怎么设置电脑字体大小
  16. python自学-class20-爬取东方财富网股票数据(爬虫)
  17. 辐射76 服务器离线维护,如果能有离线模式 完善《辐射76》的9种方法
  18. 如果长期玩手机用计算机打字,长期玩手机带来的危害!来看看你中了几个
  19. 华为推出首款折叠屏5G手机;微信“上车”时间已定;社区团购暗潮涌动...
  20. 大數據環境搭建,數據採集,數倉環境準備(hive on spark) 01

热门文章

  1. 我以订披萨为例,给朋友详细讲了Java设计模式的3种工厂模式
  2. 【5G科普】华为码chine姐姐聊5G 第1期:5G究竟是个啥?
  3. 【Python成长之路】从零学GUI -- 制作智能聊天机器人
  4. Web安全测试实战之测试HTTP方法
  5. Python正则表达式,看完这篇文章就够了...#华为云·寻找黑马程序员#
  6. 华为张顺茂:华为工业互联网平台FusionPlant助力国家电网打造泛在电力物联网
  7. 【技术角度看问题之一】ARM到底是个啥?
  8. 华侨大学计算机学院2019,华侨大学计算机科学与技术学院2019年非全日制研究生复试成绩(第四批)...
  9. leetcode-深度优先搜索
  10. hsf 架构_HSF源码剖析 - 汪兴的个人空间 - OSCHINA - 中文开源技术交流社区