Jmeter实战
Jmeter实战
入门篇
1、下载与使用
下载地址:http://jmeter.apache.org/download_jmeter.cgi
开源,基于java编写,所以得有jdk(jre)环境,下载完成直接解压,进入bin目录运行jmeter即可
各个平台都差不多, 点开之后进入主界面
可以通过 选项栏选择语言
接下来就可以进行测试工作了。
2、常用组件
因为我是用范围主要是测试http接口,其实主要就是测我自己写的接口,所以我就讲我用到的
1)线程组
测试计划-添加-threads-线程组
因为我们的组件都是跑在线程上, 这里可以通过线程组模拟用户数量等。
2)观察结果树
线程组-添加-监听器-观察结果树
这个组件用于调试观察我们的测试请求,可以看到接口响应,一会讲。
3)http请求
线程组-添加-sample-http请求
这时候,我们一次请求需要的基本组件就这么多, 以百度为例。
我们在服务器域名上输入被测系统的域名,路径就是接口路径,可以在Parameters里面添加参数。
之后点击运行, 就可以在 观察结果树 里面看到接口返回的信息了
可以清楚地看到响应头和响应数据,并且jmter支持直接用一些格式解析响应数据
这个就根据需求选择了, 一般rest接口都是json,直接默认text就可以。
关于http协议的知识就不赘述了。
4) http cookie Manager,cookie manager
cache 和 cookie是http中经常需要使用的组件,与后端交互往往需要带上cookie的数据才能获取理想的响应。
直接 添加-配置元件即可。
关于cookie啰嗦一句, 如果模拟多用户, 最好每次都清除cookie,这样结果比较准确, 因为你带着cookie访问后端的逻辑会不一样,
当然这些都建立在你了解被测系统的基础上做决定。
5)测试数据
数据的准备一般直接从测试库down下来即可,
转成csv格式,很简单类似于这样
然后 选项-函数助手对话框
csv file的值就是文件路径。
文件列号就是,要用第一列就填0,第二列就写1,以此类推。然后点生成
之后在想用到数据的地方,拷贝生成的字符串就行了,例如。
这个用户名就可以每次变化了。
6)脚本的录制
因为一个个添加请求太麻烦,出错率也高,(好吧主要是懒)。
有两种录制方法
1.badboy工具
2.http代理服务器。
这两种方法有很多博客了。
因为我没找到mac版的badboy,我就用了代理服务器,其实原理差不多,也挺方便。
7)正则表达式提取器
脚本录制完还没结束,因为很多请求的参数是依赖于上一个请求的(比如说第一个接口是返回用户id,第二个接口是通过id获取详细信息。 )
那么显然,我们每次传的id都不会相同,因为用户不同。 因为在真实环境中,这些id往往由js来控制写入请求参数里面,而jmeter无法执行这些js。这就要让测试人员认真过一下每个接口,看看是否有类似的情况。 如果有,那么我们就用正则提取器来提取这个“id”。供下一步使用。
比如这个响应json的st需要给下一步使用,这个st就是“id”
那么 我们在http请求里添加-后置处理器-正则表达式提取器
引用名称就是起个名字,正则表达式需要自己写,
模板是使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从 1 开始匹配,依次类推。这里只有一个,所以填写 $1$ 即可;
匹配数字表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可;
缺省值表示参数没有取到值的话,默认给它的值。一般不填。
接下来在使用到id的地方直接写 ${ST} 就可以了, 和上面测试数据的是一个意思。
8)聚合报告
以上基本可以完成一次自动化的测试了, 模拟用户数量直接在线程组里设置即可,
然后添加一下聚合报告,启动测试,就可以查看结果了。
别忘记先禁用 观察结果树 ,这样会省很多的资源。
over。
Jmeter实战的更多相关文章
- 4月27号开学! 第6期《jmeter实战接口自动化+性能》课程,零基础也能学
2019年 第6期<jmeter实战接口自动化+性能>课程,4月27号开学! 主讲老师:飞天小子 上课方式:QQ群视频在线教学 本期上课时间:4月27号-6月9号,每周六.周日晚上20:0 ...
- JMeter实战(一) 体系结构
此为开篇,介绍JMeter的组成结构,阅读后对JMeter形成整体认知和初步印象. 为了便于后续讲解,先明确下2个术语. 元件:如HTTP请求.事务控制器.响应断言,就是一个元件. 组件:如逻辑控制器 ...
- JMeter实战(三) 界面使用
JMeter 有 2 种运行方式,一种是 CLI,一种是 GUI,本篇文章就来介绍一下后者,图形用户界面,因为后续文章大部分都是基于 GUI 的. 本文演示的是英文版,想用中文的同学可以在菜单栏点击 ...
- 全栈性能测试修炼宝典--Jmeter实战(三)
JMeter体系结构 1.JMeter体系结构 (1)名词解释 元件:JMeter工具菜单中的一个子菜单,比如HTTP请求.事务控制器.响应断言就是一个元件. 组件:一组元件的集合,比如逻辑控制器中有 ...
- 【Jmeter自学】jmeter实战-其他请求和总结(七)
FTP测试 步骤:其他的结果树等跟http请求一样 mysql数据库测试 JDBC请求 Jmeter-分布式性能测试 jmeter结果分析:
- [转]jmeter实战
[转]http://blog.csdn.net/ultrani/article/details/8309932 本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自 ...
- 《全栈性能测试修炼宝典JMeter实战》学习记录
说明:原书中jmeter版本为2.x,我的笔记中截图为5.x
- jmeter 实战
JMeter 接口测试 什么是接口测试 概念 内部接口 方法与方法之间的交互 模块与模块之间的交互 一种调用对外包装的接口 Web接口分类 web接口分类:https.http.webService ...
- JMeter实战(二) 运行原理
运行原理 如果不用工具,要做 100 并发的压力测试,得想办法组织 100 个人,每个人操作1台电脑,一声令下,100 个人同时点击,对系统造成 100 并发.现实中,很难找 100 个人和 100 ...
随机推荐
- Hibernate事务、缓存和连接池
一.事务 1.数据库事务的概念 数据库事务是指由一个或多个SQL语句组成的工作单元,这个工作单元中的SQL语句相互依赖,如果有一个SQL语句执行失败,就必须撤销整个工作单元.在并发环境中,多个事务同时 ...
- 解决win7远程桌面连接时发生身份验证错误的方法
远程桌面连接,是我们比较常用的一个功能了,但有时突然不能用了,以下是我遇到该问题,并解决该问题的方法.连接时报的是“发生身份验证错误,要求的函数不受支持”,解决之后细想一下,该问题好像是在我在电脑上安 ...
- python第十四课--排序及自定义函数之案例二:冒泡排序
案例二:冒泡排序 lt1=[45,12,56,-32,-3,44,75,-22,100] print('排序前:'+str(lt1)) 自定义函数:实现冒泡排序(升序)原则:1).有没有形参?有,接受 ...
- Java阶段性总结与获奖感想
一.获奖感想 这次能获得小黄衫,可以说是对我自己这半学期以来努力学习的一种肯定,也是激励我继续努力的动力. 首先,我要感谢给予我们耳目一新的学习方式的娄老师.我曾在我期望的师生关系中提到,我的高中班主 ...
- 1864. [ZJOI2006]三色二叉树【树形DP】
Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. Sample ...
- 解决osx下 ssh: connect to host localhost port 22: Connection refused
解决办法: 终端下执行:sudo systmesetup -setremotelogin on
- Day12 Java异常处理与程序调试
什么是异常? 不正常的,会影响程序的正常执行流程. 例如下面的程序 public static void main(String[] args) { TestDemo1 t = new TestDem ...
- Linux搜索查找命令
Linux搜索查找指令 find,用于在文件树中查找文件并作相应的处理 -name:按照文件名查找文件 -perm:按照文件权限查找文件 -user:按照文件属主来查找文件 -size:按照指定的文件 ...
- request请求转换成对象。
1)前端post数据过来,key和val键值对会有很多,这个时候往后端进行插值的时候,最好将这些键值对转换成对象进行处理. 使用common-beanutils 来将前端传递过来的map直接转换成对象 ...
- 关于SX1278、SX1276、SX1262的简单详解资料
通常的物联网解决方案和设备一直都非常昂贵,或在实施中不切合实际.理想的无线连接技术应该是低成本.高可靠性的,可进行长距离传输,且拥有超长的电池续航时间.像zigbee.Bluetooth和Wi-Fi这 ...