![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Jmeter高级性能测试实战
文章平均质量分 85
第一阶段为JMETER 5.4.1 (最新版本)工具使用篇,Jmeter 介绍和安装、http 取样器、JDBC 取样器、JMETER 组件详细讲解、配置元件、三种参数化方式教你玩转JMETER 参数化、工作过程中间所需的常用函数、聚合报告、察看结果树、汇总报告等监听器知识,后置处理器
传说三哥
15年软件测试、软件开发、运维等项目实战工作经验,多年自动化测试框架经验,服务器运维、系统架构经验丰富,顺丰科技性能测试资深专家,工作期间获取PMP项目管理资格认证,ACP 项目管理认证等项目管理证书
5年+互联网线上和线下培训经验,51cto学院特级讲师,51cto学院、CSDN 学院、腾讯课堂、网易云课堂等平台全网学员突破50W+,学员好评高达99%,教学模式得到学员高度认可
展开
-
软件性能测试之测试指标
本文介绍性能测试的各种测试指标。原创 2023-07-03 18:44:26 · 123 阅读 · 0 评论 -
软件测试之性能测试技术指南
本文从技术角度制定性能测试实施过程中关键的技术规范。这些规范可以帮助PTS的用户更好地从技术上来规避系统上线后的风险、评估线上系统的真实能力、根据业务模型摸底线上能力以提前应对。原创 2023-07-03 18:34:22 · 156 阅读 · 0 评论 -
性能测试:一个完整的性能测试完整过程
以上就是一个较简单,完整的性能测试过程,当然其中很有很多值得分析和探讨的内容,限于篇幅和时间问题,这里不一一赘述,以后会慢慢对性能测试执行、瓶颈分析、优化的内容不断。测试环境测试数据,可以根据系统的运行预期来确定,比如需要测试的业务场景,数据多久执行一次备份转移,该业务场景涉及哪些表,每次操作数据怎样写入,写入几条,需要多少的。按照之前已经设计好的测试环境,部署对应的环境,由运维或开发人员进行部署,检查,并仔细调整,同时保持测试环境的干净和稳定,不受外来因素影响。原创 2023-07-03 18:16:16 · 98 阅读 · 0 评论 -
软件测试之常见的性能测试
可以这样理解,压力测试和负载测试不同的是,压力测试的预期结果就是系统出现问题,而我们要考察的是系统处理问题的方式。一般是和服务器端建立大量的并发连接,通过客户端的响应时间和服务器端的性能监测情况来判断系统是否达到了既定的并发能力指标。负载测试指的是最常见的验证一般性能需求而进行的性能测试,因此负载测试主要是考察软件系统在既定负载下的性能表现。负载测试 Load test:在一定的『工作负荷』下,给系统造成的负荷及系统响应的时间。负载测试关心的是用户规则和需求,压力测试关心的是软件系统本身。原创 2023-07-03 18:05:23 · 68 阅读 · 0 评论 -
终于把性能测试这事儿讲清楚了
中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。被测试系统的相关技术信息如:架构、平台、协议等?首先需要明确性能需求分析是整个性能测试工作开展的基础,如果连性能的需求都没弄清楚,后面的性能测试执行其实是没有任何意义的,而且性能需求分析做的好不好直接影响到性能测试的结果。a)系统运行环境:这个通常指的是我们的测试环境,有些时候需求比较多,做性能测试担心把环境搞了影响其它的功能测试,可能需要重新搭建一套专门用来做性能测试的环境。原创 2023-07-03 17:43:32 · 55 阅读 · 0 评论 -
软件测试之性能测试入门级操作分享
具体操作如下:进入安装路径下bin文件夹,用文本文档打开jmeter.properties,全文搜索“GUI language”,取消“language=en”的注释,并改为“language=zh_CN”,保存文件,重启Jmeter即可永久生效。(注意:安装Jmeter前,电脑应装有JDK,对应的jdk版本不可太低,一般jmeter3.0的对应jdk1.7,jmeter4.0对应jdk1.8以上,否则启用jmeter会报错)它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。原创 2023-07-03 17:30:53 · 95 阅读 · 0 评论 -
软件测试之什么是性能测试
面试中多体现:工作亮点,突出能干,效率高,学习能力强,沟通能力强,管理能力强,善于带人,良好广泛的知识面。补充:对于一个系统而言,执行效率tps,资源占用 CPU 内存硬盘,兼容性测试: IEtest,各浏览器点一下,是其中之一;进行不下去了某一时刻很慢,服务。经被测试到了系统极限(系统的某些资源已经耗尽,cpu,句柄、内。新上线的测试系统没有明确的数字标准比对情况下,被测试系统已。有以往测试结果进行比对,只要证明类似的测试条件下,此次的结。分析系统瓶颈,对系统进行优化,系统中导致系统性能大幅下。原创 2023-07-03 17:04:13 · 64 阅读 · 0 评论 -
JMETER目录结构详解
JMETER目录结构详解 JMETER安装完成之后会有很多目录文件,我们对JMETER 目录文件的介绍。bin目录jmeter.bat windows的启动文件jmeter.log jmeter日志记录文件jmete...原创 2020-03-27 14:53:29 · 6550 阅读 · 0 评论 -
玩转JMETER参数化
JMETER 参数化JMETER 跟LoadRunner 一样也有参数,一般在项目性能测试过程中间,不允许相同用户名和密码进行登录,这个时候就需要用到参数化,使每个虚...原创 2020-04-24 10:11:42 · 406 阅读 · 0 评论 -
JMETER 简介
(1)初识JMETER Apache JMeter是Apache组织开发的基于Java的开源压力测试工具、接口以及自动化测试。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大...原创 2020-03-27 14:14:01 · 6954 阅读 · 0 评论 -
JMETER 各组件执行顺序与作用域
JMETER 各组件执行顺序与作用域配置元件:配置元件的作用主要为了初始化默认值和变量,以便后续采样器引用。相对于JAVA 语言中间定义一些常量和静态变量。配置元件作用域是最初始阶段处理,配置元件仅对其所在的测试树分支有效,在同一个作用域的任何采样器前,同时,线程组A中间定义了配置元件中间的用户定义变量,线程组同样可以引用该变量,所以,配置元件的作用域是可以跨线程组的。2)前置处理器:...原创 2020-03-27 14:45:47 · 7342 阅读 · 1 评论 -
JMETER 第一个实践例子
JMETER 第一个实践例子第一步:先建一个线程组,测试计划右键选择“Threads(Users)”-->”线程组”设置并发用户数,循环次数Ramp-Up Period:线程启动的时间,下图的线程配置,1个线程,1秒启动时间,每个线程执行1次循环。那么每秒会启动一个线程,每次循环执行一个请求。取样器错误:当线程执行取样器失败的时候,要执行的策略选项:...原创 2020-03-27 14:26:26 · 6588 阅读 · 0 评论 -
对JMETER组件的认知
JMETER 组件初步认识JMETER 所有的组件(元素)都是基于测试计划的,先有测试计划然后才有JMETER 组件。JMETER 核心组件JMETER中的Threads JMETER 中的sampler JMETER 中的计时器 JMETER 中的前置处理器和后置处理器 JMETER 中的断言 JMETER 中的Controller JMETER 中的Listener ...原创 2020-03-27 15:42:40 · 6531 阅读 · 0 评论 -
JMETER 主界面工具栏介绍
JMETER 主界面工具栏介绍JMETER 启动完成,进入JMETER主界面,下面对JMETER 工具栏各菜单项进行简单介绍。左边文件菜单,打开之前保存JMX 文件,关闭是关闭当前测试计划中间内容,关闭之后回到默认界面。文件中间的“Template” 功能相当于是创建一套模版操作Create 自动创建了 http Request Defaults Thread...原创 2020-03-27 15:35:07 · 7463 阅读 · 0 评论 -
JMETER 线程组
JMETER 线程组性能测试过程中间需要模拟虚拟用户进行并发操作,JMETER中间的线程组就相当于虚拟用户,同一个测试计划中间可以有多个线程组,线程组是JMETER 起点。下面对线程组各属性进行讲解。线程组名称可以根据自己...原创 2020-03-27 15:26:07 · 6934 阅读 · 0 评论 -
JMETER 用户自定义的变量
JMETER 用户自定义的变量下面介绍配置元件中间的另外一个组件用户自定义的变量组件。用户自定义一些常用以及公共的变量以便性能测试过程中间引用该变量。 名称 用户定义变量的描述性名称 注释 用户定义变量的注释信息,可以不填 变量名称 定义变量名称,后续引用该变量的名称,比...原创 2020-03-27 15:46:56 · 7127 阅读 · 0 评论 -
jmeter JDBC Request
在工作的过程中,有时候需要对数据库发起请求或者对数据库压力测试,这个时候就需要用到JMETER JDBC Request,今天这一堂课我们重点介绍JMETER JDBC Request,一个取样器通常进行三部分的工作:向服务器发送请求,记录服务器的响应数据和记录响应时间信息jmeter中取样器(Sampler)是与服务器进行交互的单元。JMETER JDBC RequestJDBC R...原创 2020-04-27 19:42:11 · 508 阅读 · 0 评论 -
JMETER badboy 下载及安装
JMETER 自带录制脚本,这一节课我们介绍第三方工具badbay 进行录制脚本,首先,介绍一下badboy 下载以及安装badboy 下载地址:http://www.badboy.com.au浏览器中间输入:http://www.badboy.com.au 地址Download操作Continue 跳转到下载列表界面,...原创 2020-04-28 20:07:57 · 6015 阅读 · 0 评论 -
JMETER 断言
在JMETER 性能测试过程中间,为了检查测试中得到的响应内容是否跟预期一致,所以,今天讲解一个新的组件断言,英文名称(Assertion),它的作用和loadrunner中的检查点类似.使用断言的目的:在request的返回层面增加一层判断机制,有时候request成功了,但是并不代表结果一定正确。使用断言的方法:在选择的Sampler下添加对应的断言,配置好响应的检查内容。添...原创 2020-04-27 20:06:16 · 396 阅读 · 0 评论 -
JMETER HTTP 请求
JMETER Debug SamplerJMETER 中间sample 是真正干活的家伙,性能测试过程中间通过sample 中间的组件向服务器发送请求,同时,从服务器端返回响应。由于sample 中间组件较多,不会对所有的sample 中间的所有组件进行讲解,只会讲解比较常用的,比如:HTTP请求、JDBC Request等等。线程组右键-->添加--->Sampler...原创 2020-04-27 19:58:42 · 488 阅读 · 0 评论 -
JMETER Debug Sampler
在前面的课程中间已经提到过Debug Sampler 组件,今天中间介绍一下Debug Sampler 组件,JMETER 在场景设计和脚本调试的过程中间少不了需要调试,Debug Samopler 可以用来调试请求中间参数是否正确。线程组右键-->添加--->Sampler -->Debug Sampler参数说明 名称 根据需求定义...原创 2020-04-27 19:51:40 · 1054 阅读 · 0 评论 -
JMETER badboy 录制脚本
JMETER badboy 录制脚本我们介绍第三方工具badbay 进行录制脚本,同时把录制的脚本导入JMETER.启动badboy 进入badboy 的主界面输入需要录制脚本的地址,比如输入:www.baidu.com输入地址之后,工具栏中间红色的圆圈表示录制。按回车或者绿色箭头开始录制百度中间输入“JMETER”按回车,badboy 录制相对应的请求...原创 2020-04-28 09:01:58 · 436 阅读 · 0 评论 -
安装Jmeter插件管理器
meter 插件管理器的使用方法非常简单:不要手动安装各种插件,他提供了友好的用户界面来完成:安装、升级、卸载等操作。Jmeter 插件管理器所管理的插件包括:http://Jmeter-plugins.org上面常用的插件和各种第三方插件,甚至核心Jmeter插件。安装JMeter 插件管理器,步骤如下:刚安装好的Jmeter 中,是没有插件管理器的,这需要我们手动进行安装。查看插件管理器,点击 Options (选项),在显示出来的菜单的最下面就能够看到安装Jmeter 插.原创 2021-10-05 13:15:42 · 799 阅读 · 0 评论 -
Jmeter如何进行http接口测试
前言: Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。一、开发接口测试案例的整体方案:第一步:我们要分析出测试并拿到开发提供的接口说明文档;第二步:从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点。第三步:和开发一起对接口测试案例进行评审。第四步:结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。第五原创 2021-10-05 13:04:24 · 251 阅读 · 0 评论 -
JMeter集合点功能的使用
1、集合点介绍“性能测试”一般思路是“多用户并发测试”,但真正的并发其实是不存在的,为了更真实、更接近的实现并发,在需要压力的地方设置集合点,等所有用户都到位的时候,然后一起访问,从而实现并发。举个例子,要测试100个用户同时登录,每到输入用户名和密码登录的地方,所有的虚拟用户都相互等待,等100个用户都输入完毕,相当于集结在一起了 ,然后再一起访问。(1)集合点含义集合点可以简单得理解为一种控制虚拟用户行为的机制,该机制可以达到效果是:在一定时间范围内,将一定数量的虚拟用户,阻挡在一个操作原创 2021-11-18 15:06:17 · 1596 阅读 · 2 评论 -
性能测试基础之JMeter聚合报告详解
提示:聚合报告组件的使用和察看结果树组件的使用方式相同。本篇文章主要是详细的介绍一下聚合报告组件内容,不做示例演示。1、聚合报告介绍在使用JMeter进行性能测试时,聚合报告(Aggregate Report)可以说是必用的监听器。(1)聚合报告的生成方式聚合报告有2中生成方式:在已有.jtl文件的情况下,直接选择加载文件即可生成聚合报告。 在运行JMeter的过程中,动态生成聚合报告。提示:我们一直使用GUI模式操作JMeter,所以看到的聚合报告组件中的内容,是第二种生成方.原创 2021-11-21 18:25:59 · 1970 阅读 · 0 评论 -
Jmeter基础之JMeter中如果(If)控制器详解
1、什么是逻辑控制器JMeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”。意思是说,逻辑控制器可以控制采样器(Samplers)的执行顺序。由此可知,控制器需要和采样器一起使用,否则控制器就没有什么意义了。放在控制器下面的所有采样器,都会当做一个整体,执行时也会一起被执行。JMeter提供了多种逻辑控制器,它们各个功能都不相同,大概可以分为两种使用类型:控制测原创 2021-11-21 18:39:03 · 8853 阅读 · 8 评论 -
JMeter中如何实现跨线程组关联
在做压力测试的时候常常会遇见一个场景,想要测试的接口需要登录接口返回的token做参数,或者需要其它接口的认证信息,通常能想到的就是正则表达式提取器,把需要的参数提取出来,传递到另一个HTTP请求中。如果有多个线程组的情况下,需要每个线程组中都要有登陆请求,这不符合我们的规范,最理想状态就是获取token的接口只请求一次。然后登陆的认证信息,在JMeter测试脚本中的所有接口请求中都可以使用。这样就实现了跨线程组传递参数,这使得接口之间的关联更加灵活。所以:什么是跨线程组关联呢?就是在不同线程原创 2021-11-21 17:51:27 · 1618 阅读 · 0 评论 -
如何使用JMeter发送Post请求
1、Post请求参数类型说明在Post请求中,更重要的是参数类型。不同请求的参数形式是不一样的,在JMeter中的存在形式也是不一样的。Post请求的数据类型包括:form-data:以键值对的方式提交数据。 对于一段utf8编码的字节的数据,直接将utf8编码字节的拼接到请求体中,在本地有多少字节实际就发送多少字节,极大提高了效率,适合传输长字节。 因此在传很长的字节(如文件)时应用multipart/form-data格式。 总结: 不对提交的表单数据进行字符编码。 在使用包含文原创 2021-11-19 17:29:33 · 3891 阅读 · 0 评论 -
性能测试之JMeter中JSON断言详解
JMeter中有个元件叫做断言(Assertion),它的作用和LoadRunner中的检查点类似。用于检查测试中得到的响应数据是否符合预期,用以保证性能测试过程中的数据交互与预期一致。若接口的返回的Response Body为JSON格式数据,使用JSON断言组件来判断测试结果是较好的选择,判定也更灵活一些。1、JSON断言组件界面详解添加JSON断言组件操作:选中“取样器”右键 —> 添加 —> 断言 —> JSON断言。界面如下图所示:JSON断言组件的详细说原创 2021-11-21 18:45:15 · 10834 阅读 · 0 评论 -
JMeter中如何实现参数化(CSV)
1、参数化的定义参数化是自动化测试脚本的一种常用技巧,可将脚本中的某些参数使用变量来代替。例如登录操作时,利用GET/POST请求方式传递参数的场景,可在脚本运行时指定参数的取值范围和规则。脚本在运行时,根据需要选取不同的参数值作为输入,该方式称为数据驱动测试(Data Driven Test),而参数的取值范围被称为数据池(Data Pool)。2、什么情况下需要用到参数化测试数据的准备阶段我们需要用到参数化。使用场景:若需求每次访问某一个接口的数据不一样时,需要用到参数化,更好地原创 2021-11-21 18:04:02 · 16756 阅读 · 0 评论 -
Jmeter HTTP Cookie管理器的使用
我们使用一个电商项目进行演示,在调用登录接口完成登录之后,通过查看购物车接口获取该用户购物车中的信息。也就是说如果需要查看到购物车中的信息,则我们先要是登陆状态,这样的情况下,就需要有Cookie信息的存在了。提示:要获取购物车接口中的信息,需要使用登录后的Cookie保持登录状态。1、在HTTP信息头管理器组件中添加Cookie信息实现步骤:前提我们手动登陆电商网站,地址:http://www.testingedu.com.cn:8000/index.php/Home/user/log原创 2021-11-19 17:18:04 · 14977 阅读 · 5 评论 -
使用JMeter如何实现上传文件
1、用于演示的项目说明Httpbin是一个使用Python + Flask编写的HTTP Request & Response Service项目,该服务主要用于测试 HTTP库,你可以向他发送请求,然后他会按照指定的规则将你的请求返回(查看你所发送请求中的信息)。Httpbin支持HTTP/HTTPS请求,支持所有的HTTP动词,能测试HTTP请求和响应的各种信息,比如cookie、ip、headers和登录验证等。Httpbin接口地址:httpbin.org提示:按照规则..原创 2021-11-19 17:23:21 · 13077 阅读 · 0 评论 -
JMeter配置元件【HTTP请求默认值】
1、HTTP请求默认值介绍我们在JMeter中编辑测试计划时,如果有多个Sampler(取样器)请求中,参数和设置都是相同的,例如请求服务的IP地址、协议、端口号等,这些信息重复的配置在每个Sampler中,就会增加重复工作量和冗余度,如果以后项目服务器地址发生改变,修改起来也是非常麻烦的。HTTP请求默认值(Http Request Defaults)这个配置元件,可以将这些重复的配置都放在一起,其他的Sampler请求元件就不需要再配置这些重复的内容,那么只要将这些信息留空,这个字段将自动继承H原创 2021-11-19 17:34:17 · 3898 阅读 · 0 评论 -
JMeter中使用“用户自定义变量”实现参数化
1、用户自定义变量介绍我们可以看到前面一篇文章的例子中,数据文件login_data.csv的后三个参数都是一样的,我们可以把这些变量提取出来,放在一个公共的位置,方便我们随时提取。(凡是可以输入的位置,都可以使用参数化变量)在JMeter中,有两个地方可以设置这种公共的变量:一种是在“测试计划”界面中设置“用户自定义变量”。 一种是在配置元件中的“用户自定义变量”组件中添加变量。之前我们介绍过,JMeter中常用的参数化方式有四种,CSV数据文件设置(CSV Data Set Conf原创 2021-11-19 18:19:02 · 4097 阅读 · 0 评论 -
如何使用JMeter发送Post请求
1、Post请求参数类型说明在Post请求中,更重要的是参数类型。不同请求的参数形式是不一样的,在JMeter中的存在形式也是不一样的。Post请求的数据类型包括:form-data:以键值对的方式提交数据。 对于一段utf8编码的字节的数据,直接将utf8编码字节的拼接到请求体中,在本地有多少字节实际就发送多少字节,极大提高了效率,适合传输长字节。 因此在传很长的字节(如文件)时应用multipart/form-data格式。 总结: 不对提交的表单数据进行字符编码。 在使用包含文原创 2021-11-19 18:24:50 · 13352 阅读 · 5 评论 -
性能测试之JMeter中ForEach控制器详解
1、什么是逻辑控制器JMeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”。意思是说,逻辑控制器可以控制采样器(Samplers)的执行顺序。由此可知,控制器需要和采样器一起使用,否则控制器就没有什么意义了。放在控制器下面的所有采样器,都会当做一个整体,执行时也会一起被执行。JMeter提供了多种逻辑控制器,它们各个功能都不相同,大概可以分为两种使用类型:控制测原创 2021-11-21 18:16:43 · 2814 阅读 · 0 评论 -
JMeter性能测试中如何使用“用户参数”实现参数化
1、用户参数组件介绍用户参数(User Parameter)组件在前置处理器元件中添加,前置处理器的作用是在取样器发出请求之前,执行一些操作。即:如果将前置处理器附加到取样器元件中,则它将在该取样器元件运行之前执行。常用操作如:取样器参数设置、环境变量设置、脚本预处理等。之前我们介绍过,JMeter中常用的参数化方式有四种:CSV数据文件设置(CSV Data Set Config):这种方式是通常所指的参数化。数据存储在文件中,该种参数化方式取值范围大,灵活性强,适用于大量测试数据时的使用原创 2021-11-18 16:36:06 · 3832 阅读 · 0 评论 -
性能测试之JMeter取样器详解:sampler
1、取样器介绍取样器是用来模拟用户操作的,向服务器发送请求以及接收服务器的响应数据。取样器是在线程组内部的元件,也就是说取样器只能在线程组中添加。取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元。(取样器通常要进行这三个工作)2、JMeter自带的取样器HTTP Request:HTTP请求 Flow Control Action:测试活动 Debug Sampler:Debug取样器 JSR223 Sampler:JSR223取样器...原创 2021-11-22 14:02:16 · 5641 阅读 · 2 评论 -
性能测试之实现接口关联的两种方式:正则表达式提取器和json提取器
关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用。示例: 1.用户密码进行登录,登录后生成authentication 2.需要将登录接口响应结果中authentication的作为一个参数,传给下一个接口 如下图,需要提取登录接口返回的authentication传递给下一个预约订单列表接口header中一、使用正则表达式提取器实现接口关联1.添加方式:在需要获取数据的请求上(该场景中为登录接口) 右键-->后置处理器.原创 2021-11-22 16:27:16 · 3238 阅读 · 0 评论