1、工具介绍java
(一)简介正则表达式
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件作压力测试,它最初被设计用于Web应用测试,但后来扩展到其余测试领域。 它能够用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 能够用于对服务器、网络或对象模拟巨大的负载,来自不一样压力类别下测试它们的强度和分析总体性能。另外,JMeter可以对应用程序作功能/回归测试,经过建立带有断言的脚原本验证你的程序返回了你指望的结果。为了最大限度的灵活性,JMeter容许使用正则表达式建立断言。数据库
Apache jmeter 能够用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它能够用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不一样压力类型下的总体性能。你可使用它作性能的图形分析或在大并发负载测试你的服务器/脚本/对象。apache
(二)做用编程
1.可以对HTTP和FTP服务器进行压力和性能测试, 也能够对任何数据库进行一样的测试(经过JDBC)。缓存
2.彻底的可移植性和100% 纯java。性能优化
3.彻底 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。服务器
4.彻底多线程 框架容许经过多个线程并发取样和 经过单独的线程组对不一样的功能同时取样。cookie
5.精心的GUI设计容许快速操做和更精确的计时。网络
6.缓存和离线分析/回放测试结果。
JMeter的高可扩展性
1.可连接的取样器容许无限制的测试能力。
2.各类负载统计表和可连接的计时器可供选择。
3.数据分析和可视化插件提供了很好的可扩展性以及个性化。
4.具备提供动态输入到测试的功能(包括Javascript)。
5.支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。
在设计阶段,JMeter可以充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也能够记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录之后,测试运行时能够方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不一样压力下的性能展示出来。
相比其余HTTP测试工具,JMeter最主要的特色在于扩展性强。JMeter可以自动扫描其lib/ext子目录下.jar文件中的插件,而且将其装载到内存,让用户经过不一样的菜单调用。
(三)名词意义
一、Label: 定义的HTTP请求名称
二、Samples: 表示此次测试中一共发出了多少个请求
三、Average: 访问页面的平均响应时间
四、Min: 访问页面的最小响应时间
五、Max: 访问页面的最大响应时间
六、Error%: 错误的请求的数量/请求的总数
七、Throughput:每秒完成的请求数
八、KB/Sec: 每秒从服务器端接收到的数据量
2、安装教程
(一)Jmeter下载
进入官网:http://jmeter.apache.org/
1. 第一步进入官网以下
2. 选择进行下载,下载下来为一个压缩包,解压便可。
3.我下载的是jmeter4.0版本,对应jdk1.8。而后就进行解压。
我的认为要注意3点:
1)解压以后压缩包叫apache-jmeter-4.0.zip,如是src.zip后缀的都不对,打开以后会报错不可用,由于里面缺乏咱们下一步将要配置的环境变量.jar文件。
2)对应的jdk版本不可过低,通常jmeter3.0的对应jdk1.7,jmeter4.0对应jdk1.8以上,否者启用jmeter也会报错。
3)必定要确保环境变量配置正确(包括jdk的与jmeter的环境变量配置)。
(二)Jmeter环境变量相关配置
1. 电脑桌面----》“计算机”图标----》鼠标右键选择“属性”----》点击高级系统设置----》高级---》环境变量页面
2. 开始配置环境变量了。在系统变量框,点击“新建”,创建一个变量:JMETER_HOME,值为你解压的jmeter安装路径。个人安装路径是在E盘,这个路径根据本身实际安装路径进行填写。而后点击肯定保存便可
3. 配置classpath变量,没有的话也要按照上面步骤进行新建,有的话直接进行选中,点击编辑便可。变量值固定为:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar; 作完以后必定要保存,不肯定的话能够直接点击肯定按钮直到退到个人电脑页面
4. 基本配置完成,而后验证一下是否配置正确,是否可用。
首先进到你的jmeter安装路径,找到bin文件夹,点击进去,找到jmeter.bat,鼠标右键用管理员方式运行,或者直接双击打开,此时会弹出2个界面:1.个是命令窗口,使用jmeter的时候此命令窗口不能关,你缩小到电脑任务栏便可。2.还有一个界面是jmeter工做页面,你能够在里面进行相关的操做.具体如图
5. 确认安装是否成功,双击jmeter.bat或者以管理员方式运行,页面以下:
6. jmeter的工做区域以下:,咱们每次使用jmeter的首先打开方式就是进入bin文件下双击这个jmeter.bat,若是以为麻烦,能够鼠标右键快捷方式发送电脑桌面,就会方便不少。
7. 安装结束。
咱们小组的“代取吧”项目是一个基于移动端的APP,所以在接下里的功能实现以及项目测试中可能会用到jmeter对其进行压力测试,测试的主要目的是收集并发访问用户数和发生错误用户数
下面是使用jmeter进行压力测试的基本步骤:
(一)Jmeter设置
1.在jmeter/bin路径下双击jmeter.bat 等待jmeter启动
启动成功后界面以下:
2.添加线程组:右键测试计划→添加→Threads(Users)→线程组
3.添加简单控制器:右键线程组→添加→逻辑控制器→简单控制器
4.添加HTTP cookies 管理器:右键简单控制器→添加→配置元件→HTTP cookies 管理器
5.添加CSV数据文件设置:右键简单控制器→添加→配置元件→CSV数据文件设置
6.添加察看结果树:右键线程组→添加→监听器→察看结果树
7.添加聚合报告:右键线程组→添加→监听器→聚合报告
8.添加图形结果:右键线程组→添加→监听器→图形结果
9.添加HTTP代理服务器:右键测试计划→添加→非测试元件→HTTP 代理服务器
10.配置HTTP代理服务器
·端口:8888
·目标控制器:测试计划→HTTP代理服务器
·分组:每一个组放入一个新的控制器
(二)配置手机代理
1.在设置→WLAN页面 开启手动代理
2.在PC端CMD→ipconfig查看ip 填写代理服务器主机名
3.填写代理服务器端口 与HTTP代理服务器端口一致
(三)录制脚本
1. 在HTTP代理服务器页面点击启动,进入录制状态
2. 在手机端操做要压测的APP
3. 录制完成后点击中止
4. 查看录制脚本(能够删除不须要压测的部分)
(四)使用jmeter进行性能测试
1. 造数据:先看参数要求中须要输入哪些参数,必传参数必须有数据,非必传可造可不造,(csv每行表示每一组参数值,每列表示同一种变量)造好数据后,另存为csv格式文件
2. 填写CSV数据文件设置
·文件名:测试数据的路径
·文件编码:UTF-8
·其余:默认便可
3. 参数设置
填写造了数据的参数,没造数据的就不用填了,使用 ${参数名称} 格式,若是参数是固定值就输入固定值,若是输入数字就须要在数字前加上英文逗号“,”,例如是年月日格式,参数输入固定值时就必须输入“,2014-07-12”。
4. 设置线程属性
线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。
1)线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。须要设置多少个虚拟用户数就在这里填写多少个线程数。
2)准备时长: 设置的虚拟用户数须要多长时间所有启动。若是线程数为20 ,准备时长为5 ,那么须要5秒钟启动20个线程。也就是每秒钟启动4个线程。
3)循环次数:每一个线程发送请求的次数。若是线程数为20 ,循环次数为100 ,那么每一个线程发送100次请求。总请求数为20*100=2000 。若是勾选了“永远”,那么全部线程会一直发送请求,直到选择中止运行脚本。
5. 运行脚本
6. 测试结束后,查看结果树中的结果是否符合要求,绿色是成功,红色是失败,若失败数过多可从新测试一遍,若失败数较少,则查看聚合报告结果,通常来讲samples越大越好,通常也最好测试900s,或者10000条。而后根据性能测试统计表填写数据(平均响应时间、最大响应时间、最小响应时间、错误率)
聚合报告:
结果分析: 根据需求判断压测结果是否知足实际须要,若是误差太大,就须要进行性能优化。
Tips:在一个空白的测试计划页面打开之前保存的测试项目,当弹出下图提示时,选择“否”,若是选择“是”,后面的空白页将会覆盖之前保存的配置。