Jmeter的使用简介及实例
一、安装及配置环境
1.安装
java环境
该软件需要java环境,安装jdk,在百度自行查找安装
环境变量配置:变量名JAVA_HOME 值:jdk的安装路径
变量名CLASSPATH 值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
变量名Path 值:追加;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
二、验证
1.Win+R Cmd 打开控制台 输入 java
三、Jmeter的简单使用
1.打开jmeter
打开Jmeter 安装包,进入\bin 中,找到“ApacheJMeter.jar”或"jmeter.bat", 双击打开即可。
2.jmeter线程组 建立线程组步骤:在下图打开的Jmeter 页面中,右键“测试计划” -> “添加” -> "Threads(Users)" -> “线程组”
线程属性
线程数:虚拟用户数,一个虚拟用户占用一个进程或线程,设置的虚拟用户数也就是压测并发的线程数
Ramp-Up Period(in seconds):准备时长,设置的虚拟用户数全部启动的时间,如果线程数为20,准备时长为10s,那么需要10秒启动20个线程,也就是平均每秒启动2个线程
循环次数:每个线程发送请求的个数。如果线程数为20,循环次数为100,那么每个线程发送100个请求,总请求数为:20*100=2000;如果勾选了“永远”,那么所有线程会一
直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束
取样器错误后要执行的动作
Start Next Thread Loop:线程当前循环错误,忽略错误,执行下一个循环
停止线程:只限当前线程停止,不影响其他线程执行
3.jmeter发送HTTP请求
步骤:右键“线程组” -> “添加” -> “Sample” -> “HTTP请求”, 输入“服务器名称或IP”,对应的端口号,http默认端口号80,可以不写。
(例如:http://api.zhongchou.cn/user/login?v=1)
1)设置目标信息--HTTP请求
1号位置填写host:api.zhongchou.cn
2号位置填写目标的端口号,绝大部分情况的http请求的端口号是80,https的端口号是443。其他端口号用的极少,
需要写明端口号。http://172.16.5.177:8092/test/beta.apk,端口号就是8092。
3号位置填写具体的路径。通俗的讲就是域名之后的玩意。/user/login?v=1
2)设置请求参数
登录接口绝大部分是post请求,画圈部分的方法需要改成post
4号位置是个添加,点击一下即可。
5号位置是参数名称,本例的“用户名”是identity,“密码”是password,写进去即可
6号位置是参数值,identity对应13581698559,password对应123456
4.jmeter参数化
方式A:借助函数助手的方式,功能较弱
步骤:单击菜单选项--函数助手对话框--选择_CSVRead
CSV file to get values from | *alias:对应的值填写文件绝对路径(如果文件中有中文,则保存文件时,需要把编码改为UTF-8)
CSV文件列号| next| *alias:获取文件参数项的序列号即下标
方式B:jmeter中的配置元件(CSV Data Set Config)
步骤:选中线程组点击右键----添加----配置元件----CSV Data Set Config
说明:
Filename:----参数项文件
File Ecoding:----文件的编码,设置为utf-8
Vaiable Names:----文件中各列所表示的参数项,各参数项之间利用逗号分隔
Delimiter:----文件中使用的是逗号分隔,则填写逗号;如果使用的是TAB,则填写\t(如果此文本文件为CSV格式的,默认用英文逗号分隔)
Ignore first line (only used if Variable Names is not empty):表示从文件中取值时,第一行的值是否要忽略,
Allow quoted data:----False则文本中参数原样获取,True则不会,例如文本中参数为“A1”,False时取的就是“A1”,True取的就是A1
Recycle on EOF:----True=当读取文件到结尾时,再重头读取文件,| False=当读取文件到结尾时,停止读取文件
Stop thread on EOF:----当Recycle on EOF为False时,当读取文件到结尾时,停止进程;当Recycle on EOF为True时,此项无意义
5.响应断言
步骤:选中一个取样器,右键----添加----断言----选中“响应断言”
说明:
Apply to :
Main sample only :----断言仅用于主取样器
Sub-samples only :----断言仅用于子取样器
Jmeter Variable :----断言将被施加到命名变量的内容
要测试的响应字段:
响应文本 :服务器返回的文本内容
响应代码 :匹配响应代码,比如HTTP请求中“200”代表成功
响应信息 :匹配响应信息,处理成功返回“成功”或“OK”字样
Response Header :匹配响应头中的信息
模式规则匹配:
包括 :返回结果包括制定的内容,支持正则匹配
SbuString :与包括基本一致,都是指返回结果包括你指定的内容,但不支持正则字符串
正则匹配 :正则表达式必须能匹配整个返回值,而不是返回值的一部分
Equals :返回结果与响应断言完全一致
否 :就相当于取反
案例 :若断言结果为true,勾选“否”后,最终断言结果为false
若断言结果为false,勾选“否”后,最终断言结果为true
6.正则提取器
步骤:HTTP请求上右键----后置处理器----正则表达式提取器
说明:
引用名称 :下一个请求要引用的参数名称,如填写A,则可用$(A)引用
正则表达式 :
()括起来的部分就是提取的;.匹配任何字符串;+ 一次或多次; * 0次或多次;?在找到第一个匹配项后停止
模板 :用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$ $3$等等,表示解析到第几个值给title
匹配数字 :0代表随机取值,1代表全部取值,通常情况下填0
缺省值 :如果参数没有取得到值,那默认给一个值让它取
四、Jmeter的使用实例
1 HTTP信息头管理器的应用
以获取所有学生信息接口(/api/user/all_stu) 为例,右键HTTP请求->添加->配置元件->HTTP信息头管理器, 可通过抓包获取header相应信息 ,输入对应的header值。
2 HTTP cookie管理器的使用实例
以金币充值接口(/api/user/gold_add
) 为例,右键HTTP请求->添加->配置元件->HTTP cookie管理器
3 post 请求中入参为json类型时, 参数为json类型时,一定要在HTTP信息头管理器中设置header配置
右键线程组-->添加-->sampler-->HTTP请求,在body data中输入json类型的参数,如图所示:
4 post请求中上传文件的使用
在HTTP 请求中点击“Flies Upload” tab页, 点击“添加”, 然后通过“浏览”选择需要上传本地的文件。(win10系统中通过浏览选择本地文件运行报错的话,则将文件放到jmeter的bin目录下,在文件名称中直接输入文件名就行)如图所示:
注意: 参数名称必须为"file"。
5 post请求中下载文件的使用
5.1 右键“测试计划”-->“添加”-->“Threads(Users)”-->“线程组”;
5.2 右键“线程组”-->“添加”-->“Sampler”-->“HTTP请求”;
5.3 右键“线程组”-->“添加”-->“Sampler-BeanShell Sampler”(添加beanshell,是为了获取到返回的文件内容,保存到本地一个文件里面)
beanshell代码格式是固定的,如下所示:
import java.io.*;
byte[] result = prev.getResponseData(); //这个是获取到请求返回的数据,prev是获取上个请求的返回
String file_name = "C:\\Users\\yitai\\Desktop\\ytt.jpg"; //代表存放文件的位置和文件名
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
5.4 右键“线程组”-->“添加”--->“监听器-查看结果树”(添加一个察看结果树,查看接口调用结果)
脚本实例如下:
这里是HTTP请求里的操作
这是Sampler-BeanShell Sampler里的操作内容,直接将代码粘贴过来,修改存放文件路径就行
最后察看结果树内容如下
6.接口之间的关联使用
6.1 右键“线程组” --> “添加” --> “Sample” --> “HTTP请求”(修改HTTP请求名称为:HTTP请求--登录)
6.2 右键“HTTP请求--登录” -->“添加”--> “后置处理器 --> "jp@gc - JSON Path Extractor"
6.3 右键“线程组” --> “添加” --> “Sample” --> “HTTP请求”(修改HTTP请求名称为:HTTP请求--充值金币)
6.4 右键“HTTP请求--充值金币” -->“添加”--> “配置元件 --> "HTTP cookie 管理器"
调用金币充值接口,必须先得登录,即需要用到登陆接口(login)的"sign" 值,此时我们可以通过"jp@gc - JSON Path Extractor"来实时获取登录接口的最新sign值
从登录接口的“察看结果树”中可以看出,登陆接口(login)的Response 结构为Json格式, sign 在 login_info 里面一层。
定位到sign值则是:$.login_info.sign
在“JSONPath Expression” 中Destination Variable Name即为设置一个变量名:sign2,可以自己随便写一个,金币充值接口会用到,
JSONPath Expression则输入之前定位到的sign:"$.login_info.sign",如图所示
金币充值接口要用到之前的变量sign2,则需要通过HTTP cookie 管理器来实现,在cookie管理器中,名称输入登录接口中用到的用户名,
值则是上面提到的sign2变量:${sign2},域则是服务器的IP或域名
7.操作数据库的使用
以下是JMeter 驱动数据库列表:
以下以MySQL数据库为例
7.1 创建一个测评计划,将我们需要的数据库驱动包导入:Add directory or jar to classpath 点击“浏览”,选择mysql-connector-java-5.1.28.jar(该文件可自行百度下载)
7.2 右键“线程组”-->“添加”-->“配置元件”-->“JDBC Connection Configuration”
Variable Name自己随便起个名字,下面JDBC Request中会用到,
Database URL数据库地址按照上面表格中的数据库url格式输入(dbname为数据库名),
JDBC Driver class是驱动程序,将上面表格中对应数据库的驱动复制过来就行,
Username则是登录数据库时的用户名,
Password是登录数据库时的密码,其他字段保持默认值就行
7.3 右键“线程组”-->“添加”-->“Sampler”-->“JDBC Request”
若sql中有insert 和select, 则Query Type 需要选择"Callable Statement",
如果是单个的select 或者insert,则Query Type可以选取对应的Select Statement 和Update Statement。
Variable Name输入上面“JDBC Connection Configuration”中的Variable Name:ytt-mysql
7.4 右键“线程组”-->“添加”-->“监听器”-->“察看结果树”
可以在响应数据里察看查询到的数据
四、Jmeter异常解决方法
1.使用jmeter进行测试时,如果返回结果为乱码,则修改jmeter.properties文件中的该字段的值并取消注释,改为utf-8(即:sampleresult.default.encoding=utf-8)
2.入参为json类型,参数为中文乱码时,需修改jmeter.properties文件中的jsyntaxtextarea.font.family的值为:宋体,并取消注释 即:jsyntaxtextarea.font.family=宋体
Jmeter的使用简介及实例的更多相关文章
- JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置
众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...
- JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置
前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...
- jquery简介和实例
一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库. 参考:http://www.php100 ...
- Wpf 数据绑定简介、实例1
简介:1.WPF绑定使用的源属性必须是依赖项属性,这是因为依赖项属性具有内置的更改通知支持,元素绑定表达式使用了Xaml扩展标记, WPF绑定一个控件是使用Binding.ElementName, 绑 ...
- JMeter安装和简介
1.Apache jmeter 是一个100%的纯java桌面应用,用于压力测试和性能测量.它最初被设计用于Web应用测试但后来扩展到其他测试领域,可以用于对静态的和动态的资源(文件,Servlet, ...
- JMeter入门:Java Request实例 (转)
转自:http://blog.csdn.net/czp11210/article/details/26174969 目的:对Java程序进行测试: 一.核心步骤 1.创建一个Java工程: 2 ...
- Hibernate简介与实例
一.Hibernate简介 1.什么是Hibernate? Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有很多比如:iBATIS,myBatis,Nhibernate,Siena等 ...
- Java过滤器详细文档,简介,实例,应用
简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ...
- jmeter beanshell断言接口自动化实例
一.JMeter介绍 Apache JMeter是一款优秀的开源性能测试工具,在国外无论是在性能测试还是接口测试领域都有着非常高的使用率,但由于本身没有完善的中文文档以及典型开源工具特点(界面不美观) ...
随机推荐
- Python学习 day01打卡
1.Python : 是一门解释型 弱类型 高级开发编程语言. 2.第一个Python程序的编写: print ("hell,world") 3.变量:把程序运行过程中的值储存起来 ...
- 什么是java OOM?如何分析及解决oom问题?
最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要 ...
- new和malloc的用法和区别
从以下几个方面总结下new和malloc的区别: 参考博客: https://blog.csdn.net/nie19940803/article/details/76358673 https://bl ...
- 理解 Redis(1) - Redis 简介
Redis 的含义 全称: REmote DIctionary Server 远程词典服务器 由于支持 string, list, set, ordered set, hash 等多重数据结构, 因此 ...
- 使用phpmyadmin创建数据库
1,使用phpmyadmin也需要实现安装php环境,安装环境请参考:http://www.sitestar.cn/bbs/thread-164-1-1.html: 2,到phpmyadmin官方网站 ...
- mysql利用navicat导出表结构和表中数据
LZ在网上搜索了要如何导出mysql的表结构和表中数据,发现有的方法不好用 记录一下好用的方式: 用navicat打开DB链接后,点击数据库,右击选择转储SQL文件,然后选择结构和数据: 之后弹出新的 ...
- OpenModelica 在特定目录下生成仿真结果文件
OMEdit的仿真结果文件存放在:C:\Users\***\AppData\Local\Temp\OpenModelica\OMEdit 可以在仿真时设置仿真结果文件名,可使用用绝对路径或相对路径 使 ...
- 如何看待Arcsoft虹软,推出的人脸认知引擎免费SDK?
虹软公司是一家具有硅谷背景的图像处理公司,除了人脸技术以外,还有多项图像及视频处理技术.他们的双摄像头处理算法和人脸美化算法囊括了包括OPPO VIVO,SUMAMNG一系列手机厂商. 整个人脸识别运 ...
- Codeforces 1079 E - The Unbearable Lightness of Weights
E - The Unbearable Lightness of Weights 思路: 分组背包dp 每组最多只能选一个 一些优化可以快很多 代码: #pragma GCC optimize(2) # ...
- MATLAB 编辑器和程序调试