Jmeter使用笔记1】的更多相关文章

前言 Jmeter的断言方式有很多种,由于在工作中经常做的是API接口测试,所以这篇文章主要介绍如何对接口的字段进行解析,如何对解析出来的字段的值断言 了解API接口 Restful API 规范 协议:采用http或者https协议 数据传输格式:采用json,而不用xml url链接:url链接中,不能有动词,只能有名词,而且对于一些名词,如果出现复数,那么应该后面加上s.例如:获取文章列表,使用/articles/,而不使用/get_article/ http请求的方法: GET:从服务器…
使用非GUI模式运行Jmeter脚本并自动生成测试报告 命令:jmeter -n -t tougu.jmx -l result.jtl -e -o /tmp/ResultReport 这个命令是用于执行jmeter脚本并且生成测试报告的,每次运行之前,要确保之前没有运行过(即result.jtl不存在以及 /tmp/ResultReport文件夹目录下是空的),要不然会提示如下错误 1.tougu.jmx就是所要运行的测试脚本 2.result.jtl 是运行脚本之后生成的结果,默认存放在bin…
最近想学一些关于性能测试方面的知识,其实之前已经初步了解了Jmeter工具,它是一个轻量级的性能测试工具,开源并且免费,相比于Loadrunner来说用起来更简便. JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能.另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果.为了最大限度的灵活性,JMeter允许使用正则表达式来创建断言. Jmeter的工作原理:向服务器提交请求:从服务器获取请…
接口测试 http协议 接口分成两类,一类是查询功能的接口,一类是保存数据功能的接口. 保存逻辑:数据传入进来,验证通过.保存到数据表中 使用jmeter接口测试的步骤 1.首先添加线程组. 2.配置http默认请求,并填写服务器的ip地址和传输的编码方式. 3.填加具体的http请求. 包括http请求的名称,路径,POST/GET ,请求的参数. args={ "no":"12345", "dd":"dfdfd" } 4.…
开源已经成为一个趋势,虽然说做测试是一个低端的行业,但是我们也应该在这个低端的行业慢慢提升自己,让自己到达理想的高度. 以前说如果你会使用loadrunner可能别人就会觉得你有一定的水平那么就会拿高薪聘请你,可是现在已经不一样了,如果你只是会实用工具还不行,而且还是那高昂的收费工具,你应该学会语言,脚本语言.开发语言~~~~~~~~~~~ 以前总听他们说JMeter但是自己并没有在意,但是现在因为项目需要慢慢的弄了,这里分享一下学习过程. 一.环境搭建 1.JMeter的环境搭建这个和java…
题记:在用 loadrunner 的时候可以生成一个 HTML 的报告,并且里面包含各种图表,各种详细的数据.而在使用 Jmeter 测试完后并不能直接生成 Html 的报告(无论是用 GUI 还是命令行启动). 经过查找资料发现 Jmeter 的 extras 目录下有生成 HTML 的 xsl 样式表,其实 Jenkins+ant+Jmeter 生成的 HTML 报告也是调用了这里的样式表生成的,于是 通过 xsltproc report.jtl > test.html,或者 ant 也可以…
Jmeter安装 Jmeter组件介绍 Jmeter…
1.添加JSON Path Extractor >>下载地址:http://jmeter-plugins.org/downloads/all/,下载 JMeterPlugins-ExtrasLibs-X.X.X.zip下载 >>解压,将lib和lib/ext中的jar包放到安装目录对应位置,重启. 2.参数不能输入中文,且返回的json中包含中文的,在断言中显示为乱码. >>不适用json断言,使用‘响应断言’ 3.提示:No Jwt Token attached &g…
Jmeter可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的层级关系,随着元件所在域的不同,在执行时候,会有不同效果 层级关系和元件类型决定了在测试计划中各元件的执行顺序. 1)元件的作用域: jmeter有八种可执行的元件,测试计划和线程组不算元件. 其中取样器(sampler)是不与其他元件发生交互的.所以不存在作用域. 逻辑控制器(Logic Controller):只对其子节点下的取样器和逻辑控制器起作用 剩下的六个元件,配置元件(Config Elements).前置处理器(Pre-…
基本构成 1)负载发生器:产生负载,多线程模拟用户行为 2)用户运行期:脚本运行引擎,用户运行器附加在线程上,根据指定脚本模拟指定的用户行为 3)资源发生器:生成测试过程中服务器.负载机的资源数据 4)报告生成器:根据测试中获得的数据生成报表,提供可视化的数据显示方式 主要概念 1)测试计划(Test Plan) 测试计划是根节点,包含本次测试所有相关功能 ​ 2)线程组(Threds(Ures)) ​ 用来模拟用户负载的组件,主要用来设置运行的线程数(就是模拟多少用户,一线程=一用户) 3)取…
记录关于JMeter学习的内容.方便复习. 1)JMeter运行环境 因为JMeter是用纯java写的.所以运行的时候需要java的运行环境. 去java官网下载,点免费下载或所有Java下载都行,一个是jie一个是jdk jre是java运行环境.安装不需要自己去配置环境变量啥. jdk是java开发环境.里面带有jre.需要配置环境变量. 2)安装JMeter Jmeter官网下载最新版本的zip包.然后直接解压出来就可以.在bin目录下找到Jmeter.bat文件.运行即可 中文显示 找…
背景 博主的主要工作是测试API,目前已经用Jmeter+Jenkins实现了项目中的接口自动化测试流程.但是马上要接手的项目,API应用的是OAuth2.0协议授权,并且采用的是简化模式(implicit grant type).所以最近学习了一下该协议,并尝试用Jmeter模拟该授权方式的处理流程,以改进自动化测试脚本. 本文主要分为三个部分:1.简述OAuth2.0协议中的简化模式授权方式: 2.通过在浏览器上抓包,分析获取授权的过程中经历了什么: 3.尝试用Jmeter模拟整个授权过程,…
jmeter组件:线程组 是什么? 进程:一个正在执行的程序对应一个进程 线程:进程中的执行线索(一个进程中有多个执行线索) 线程组:按照线程性质对线程进行分组 并发执行:多个线程同时进行    特点:执行结束的顺序和启动顺序不一定一致 顺序执行:按照线程的启动顺序挨个执行 为什么? 方便管理 怎么用? *  进程有多个线程组 线程组可以有多个线程 进程 ----- 测试计划 线程组 ----- 线程组 线程 ----- 线程组属性的线程数 *  默认情况下,线程组中的线程是并发执行的    每…
jmeter:概述 是什么? jmeter是Apache 公司使用java开发的一款测试工具 为什么? 高效.功能强大 模拟一些高并发或多次循环等特殊场景 怎么用? 1.下载jmeter,解压缩 2.安装java环境 *  双击jdk安装程序,安装路径不要含空格和中文,安装JDK *  根据提示再安装JRE,安装路径和JDK放在同一路径下即可 3.了解jmeter目录结构 lib目录:其他功能程序(.jar),如果想整合自己扩展的程序,放在这个目录下即可 bin目录:存储jmeter可执行程序…
Jmeter监控服务器-CPU,Memory,Disk,Network性能指标 本文主要说一下如何通过JMeter插件来监控服务器CPU.内存.磁盘.网络等相关资源. 一.下载 首先进入网址https://jmeter-plugins.org/downloads/old/  下载Jmeter插件资源 JMeterPlugins-Standard-1.4.0.zip  JMeterPlugins-Extras-1.4.0.zip 进入网址https://jmeter-plugins.org/wik…
题记:在用loadrunner的时候可以生成一个HTML的报告,并且里面包含各种图表,各种详细的数据.而在使用Jmeter测试完后并不能直接生成Html 的报告(无论是用GUI还是命令行启动). 经过查找资料发现Jmeter的extras目录下有生成HTML的xsl样式表,其实Jenkins+ant+Jmeter生成的HTML报告也是调用了这里的样式表生成的,于是 通过xsltproc report.jtl > test.html,或者ant也可以.这个命令把Jmeter的结果文件转换为HTML…
废话少说直接干活的给: 一.打开和运行JMeter,出现UI界面.如图下所示: 工具栏:常见操作的图标集合,有New(新建), Template(模板) ,Save(保存),Start(开始) ,Stop(停止)等 左侧面板:两个选项:Test Plan(测试计划) 和WorkBench(工作台). Test Plan,就是测试计划的意思,里面可以写很多个测试用例,和测试用例的相关操作和设置,这个是最主要的功能. WorkBench,就是工作台的意思,就像PyCharm或者Eclipse中的项目…
使用场景: 请求API需要授权令牌,但是授权令牌只需要获取一次,即可调用服务器上其他业务接口. 所以我想要把授权操作放在单独的一个线程,业务流放在其他线程. 这就需要我把从授权线程获取的令牌传入业务流线程. 解决方法———后置处理器Beanshell PostProcessor 1.首先选择“获取token”线程组:添加正则表达式,提取出token的值(不会使用正则表达式的同学请查阅博主之前Jmeter相关文章) 2.在“获取token”线程组:添加后置处理器BeanShell PostProc…
使用场景:测试一个接口并发处理数据的能力,并且每次请求传入的参数都要不同. 解决方法--- CSV Data Set Config 列举一个实例,步骤中会侧重读取参数操作的说明,其他有疑问的步骤请查阅博主之前Jmeter相关的文章. 1.创建HTTP请求默认值---为了指定请求的服务器信息 2.创建HTTP信息头管理器---为了在Headers中传值 3.创建HTTP采样器---我们的请求任务 填好Http请求方式和请求路径,请求参数用变量方式引用进来,变量来源于CSV Data Set Con…
(正则表达式提取器是Jmeter关联中的一种)使用场景: 有两个HTTP请求,请求A的返回数据中有一个字段“ABCD”,该字段要作为请求B的入参. 1.添加方式 请求A上右键-->后置处理器->正则表达式提取器 2.提取A请求中的taskCode对应的值 为了获取到上图中圈起来的这个值,要配置正则表达式提取器: 说明: (1)引用名称:下一个请求要引用的参数名称,如填写Atask,则可用${Atask}引用它. (2)正则表达式: ():括起来的部分就是要提取的. .:匹配任何字符串. +:一…
Jmeter中断言的类型有许多,我不在这里一一列举,只说下我用到的---响应断言. 作用:一个HTTP请求发出去,怎么判断执行的任务是否成功呢?通过检查服务器响应数据,是否返回预期想要的数据,如果是,判断任务成功,反之任务失败. 1.添加方式 选中一个取样器,右键->添加->断言->选中“响应断言” (1)Apply to 关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求.但是当我们发一个请求时,可以触发多个服务器请求,就有…
如果使用Jmeter同时执行多个http请求任务,就需要创建多个HTTP取样器,每一个取样器都来手动填写服务器信息和端口号,会非常消耗时间. 解决方法:Jmeter之HTTP请求默认值 1.添加方式 “线程”右键->添加->配置元件->选中HTTP请求默认值 2.配置好服务器IP和端口以后,新建一个HTTP取样器,不填写服务器信息. 3.运行,检查结果. 可以看出该配置元件是作用于整个线程内的,对该线程内的所有HTTP请求都生效. 参数列表: Attribute Description…
举例来说 我的被测系统API的http请求涉及到GET/POST/PUT/DELETE四种.请求传参可分为两种: GET请求 http://请求路径/Ecs-duHc0U4E #该请求参数“Ecs-duHc0U4”以斜杠形式传入 POST请求 http://请求路径?subnetCode=Subnet-tQSPwlp1&imageCode=image-djcgebxfd #该请求参数subnetCode和imageCode以问号形式传入 区别是:第一种解析的时候会把后面的字符当做路径或是地址:…
博主自从毕业从事软件测试行业距今一年半时间,大多数时间都在跟各种API打交道,使用过的接口测试工具也有许多,本文记录下各工具的使用心得,以及重点介绍我在工作中是如何使用Jmeter做测试的,都是在windows操作系统下进行. 最开始使用postman,该工具的优点是可以保存测试过程中使用的请求数据,可以把被测系统中所有的接口请求都保存在该工具中,对于排查定位问题,该工具还是很好用的,缺点就是效率太低,碰到一个业务流程涉及执行多个接口时,手动填参数实在慢. 一.安装Jmeter 1.JAVA环境…
拿到一个自动化测试工具,我们第一步就应该了解它能提供我们哪方面的功能(最直接的方法就是从官网获取),接下来就是简单的对这个工具进行“功能测试”了,当然这里的功能测试不是让你找它存在的bug,而是让自己对它有一个直观的认识,后面的功能测试也是为前面的认识做铺垫的,那我们就依赖这个原则来认识下JMeter. JMeter是干嘛的(主要是官网翻译——> http://jmeter.apach.org) JMeter是一个纯粹的Java编写的应用程序,它主要是用来进行负载和性能测试.设计JMeter最初…
以下是在测试过程中按照以前loadrunner的思维来做的一点区别: 一.组织方式之setup 在用loadrunner做接口测试的时候如果不是针对login的测试,那么一般也会把login接口放到init中,然后通过关联取得sessionid,userid等值用在后面测试中. 那么在做Jmeter的测试时理所当然的想到了这种组织方式,所以就这么用了,但是却引来了一个不容忽视的问题. 把login放到setup中,登录无论是通过cookie还是session都会存在同一个问题,那就是作用域,co…
用Jmeter才做了一个项目的测试,就不得不对函数这部分吐槽一下,真是有点弱,难怪大多数人不用这个功能,不过如果用的好也是很方便的,以下慢慢说. 一.BeanShell函数 在测试中遇到了时间戳的加减,查到发现__BeanShell可以做表达式的运算,满心欢喜的用了,结果发现没有结果,再三确认发现不是自己使用的问题,随即 测试了12+12,发现没有问题.最后猜测应该是这个函数是int类型的计算,测试后发现这里的最大值就是int类型的最大值.(心里又默默的吐槽了一番为何 不弄成long类型呢?)…
以前一直使用loadrunner,最近入职新公司后需要使用jmeter,这里把使用过程中出现的一些问题进行总结,同时会和自己使用loadrunner的情况相比较,以后也会不断总结,GO! 一.组件的作用域 元件收集其作用范围的每一个sampler元件的信息并呈现,在jmeter中,元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的,作用域的原则是: 采样器(sampler):元件不和其它元件相互作用,因此不存在作用域的问题. 逻辑控制器(Logic Controller):元件只对其子…
JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理众多变量 Variable Names:变量名列表(逗号分隔).JMeter2.3.4以后的版本,支持CSV标题行,如果变量名为空,那么文件的第一行将被读取,并被解释为列名的列表.这些变量名必须使用分割符加以区分,他们可以使用双引号加以引用.默认情况下,该文件仅打开一次,而每个线程会使用文件中不同的…
JMeter使用逻辑控制器来决定采样器的处理顺序 简单控制器(Simple Controller):存储设备(将某些采样器归组) 循环控制器(Loop Controller:设置循环次数 仅一次控制器(Once Only Controller) 交替控制器(Interleave Controller) 随机控制器(Random Controller) 随机顺序控制器(Random Order Controller): 每个子测试元件都至多执行一次,但是执行顺序是随机的 吞吐量控制器(Throug…