使用jmeter进行压力测试
2015-11-22 10:34
621 查看
使用jmeter对web项目进行测试
Jmeter通过录制的脚本可以对web应用进行测试。
设置jmeter环境变量:
新建变量名"JMETER_HOME"
变量值为D:\apache-jmeter-2.13
修改"CLASSPATH",在后面添加
;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar
运行jmeter:
直接打开D:\apache-jmeter-2.13\bin\jmeter.bat就可以了.
![](https://img-blog.csdn.net/20151122103947789?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2、点击图示按钮访问并开始录制
在badboy内置的浏览器中进行测试中需要的操作,badboy会将每个步骤录制下来,并显示在左侧。
3、录制结束后点击“停止录制”按钮
4、导出:点击File——>Export to Jmeter
选择路径并保存
方法二:直接使用jmeter+IE浏览器录制
在jmeter安装目录下的bin目录下找到jmeter.bat点击运行
![](https://img-blog.csdn.net/20151122104021493?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
测试计划——>添加——>Treads (Users)——>线程组
![](https://img-blog.csdn.net/20151122104116058?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
工作台——>添加——>非测试元件——>HTTP代理服务器
![](https://img-blog.csdn.net/20151122104125586?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如上图所示配置HTTP代理服务器
![](https://img-blog.csdn.net/20151122104130325?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
打开IE浏览器
工具——>Internet 选项——>连接——>局域网设置
勾选“为LAN使用代理服务器”
地址:localhost
端口:8080
注:脚本录制完成后取消勾选“为LAN使用代理服务器”
![](https://img-blog.csdn.net/20151122104135259?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104138996?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104143468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104147535?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104151712?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104155912?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/<br/>cb82<br/>Center)
![](https://img-blog.csdn.net/20151122104202611?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104210539?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104218600?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100
Average:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间
Median:中位数,也就是 50 %用户的响应时间
90% Line: 90 %用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数
Throughput:吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second )
KB/Sec:每秒从服务器端接收到的数据量
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
Sample Start:启动开始时间
Load time:加载时长
Latency:等待时长
Size in bytes:发送的数据总大小
Headers size in bytes:发送头大小
Body size in bytes:发送数据的其余部分大小
Sample Count:发送统计
Error Count:交互错误统计
Response code:返回码
Response message:返回信息
Response headers:返回的头部信息
但是可以间接反映出相关情况:
根据监听器反馈的结果,可以获取到平均响应时间,通过平均响应时间和线程数,可以间接判断最大在线用户数量。
偏离、中值、吞吐量等信息也可以用来作为参考。
以下通过多个用户登陆的测试详细介绍
准备好多组用户名和密码:
用户名和密码之间用半角逗号隔开,每行一组。
可以保存为csv格式,也可以保存为txt格式
![](https://img-blog.csdn.net/20151122104228612?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104236365?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
删除原有参数的值,改为 ${参数名} 的形式,如下图:
![](https://img-blog.csdn.net/20151122104241863?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104247611?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
添加CSV Data Set Config 并配置
![](https://img-blog.csdn.net/20151122104253342?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
启动即可执行:
以下通过使用断言来判断登陆是否成功进行介绍一种断言方式。
在(一)多用户并发测试中所用的登陆信息中添加一些错误的用户名或密码,
添加断言,判断执行过程中是否成功登陆。
![](https://img-blog.csdn.net/20151122104301749?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
响应断言可以选择要测试的字段,可选择合适的响应字段和模式匹配规则。
登陆成功时,页面显示“登陆成功”,登录失败时,页面显示“用户名或密码错误”。
因此,可通过添加响应断言来判断登陆是否成功。如果响应中包含“成功”两字,即表示登陆成功,否则登录失败。
登陆成功时,页面跳转到http://ms-20110101yxgs:8080/test/login.action,因此通过URL样本也可以验证是否登陆成功。
下面以“响应文本”“匹配”来演示:
![](https://img-blog.csdn.net/20151122104310226?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104316096?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20151122104320991?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Jmeter通过录制的脚本可以对web应用进行测试。
一、准备:
1、安装badboy(可选)
双击BadboyInstaller-2.2.exe,直接按照提示安装即可2、安装jmeter
将apache-jmeter-2.13.zip 解压到任意目录下,配置环境变量即可使用设置jmeter环境变量:
新建变量名"JMETER_HOME"
变量值为D:\apache-jmeter-2.13
修改"CLASSPATH",在后面添加
;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar
运行jmeter:
直接打开D:\apache-jmeter-2.13\bin\jmeter.bat就可以了.
二、录制脚本:
方法一:通过badboy录制运行badboy
1、输入url2、点击图示按钮访问并开始录制
在badboy内置的浏览器中进行测试中需要的操作,badboy会将每个步骤录制下来,并显示在左侧。
3、录制结束后点击“停止录制”按钮
4、导出:点击File——>Export to Jmeter
选择路径并保存
方法二:直接使用jmeter+IE浏览器录制
在jmeter安装目录下的bin目录下找到jmeter.bat点击运行
1、创建线程组
测试计划——>添加——>Treads (Users)——>线程组
2、添加并配置http代理服务器
工作台——>添加——>非测试元件——>HTTP代理服务器
如上图所示配置HTTP代理服务器
3、配置IE浏览器
打开IE浏览器
工具——>Internet 选项——>连接——>局域网设置
勾选“为LAN使用代理服务器”
地址:localhost
端口:8080
注:脚本录制完成后取消勾选“为LAN使用代理服务器”
4、回到HTTP代理服务器的配置页面,点击启动
5、进入IE浏览器,输入url并进行测试相关的操作,jmeter会自动录制脚本
6、停止录制
7、保存录制结果
三、设置线程组
用jmeter打开录制好的脚本
1、添加监听器
四、运行
1、运行
点击 运行——>启动 或点击绿色启动按钮 也可使用Ctrl+R快捷键查看监听器反馈(以下给出三种监听器反馈结果)
可通过 运行——>清除全部 清除反馈结果,方便下此启动后分析结果。
五、结果分析
对于监听器反馈的结果1、聚合报告分析:
Label:每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示的就是 Name 属性的值#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100
Average:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间
Median:中位数,也就是 50 %用户的响应时间
90% Line: 90 %用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数
Throughput:吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second )
KB/Sec:每秒从服务器端接收到的数据量
2、图形结果分析:
样本数目:总共发送到服务器的请求数。最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
3、查看结果树分析:
Thread Name:线程组名称Sample Start:启动开始时间
Load time:加载时长
Latency:等待时长
Size in bytes:发送的数据总大小
Headers size in bytes:发送头大小
Body size in bytes:发送数据的其余部分大小
Sample Count:发送统计
Error Count:交互错误统计
Response code:返回码
Response message:返回信息
Response headers:返回的头部信息
六、评测
针对最大同时在线人数的评测,目前没有找的清晰合理的判断方式。但是可以间接反映出相关情况:
根据监听器反馈的结果,可以获取到平均响应时间,通过平均响应时间和线程数,可以间接判断最大在线用户数量。
偏离、中值、吞吐量等信息也可以用来作为参考。
七、其他功能(针对不同情况可选)
(一)多用户并发测试
通过CSV Data Set Config可以进行多用户并发测试以下通过多个用户登陆的测试详细介绍
准备好多组用户名和密码:
用户名和密码之间用半角逗号隔开,每行一组。
可以保存为csv格式,也可以保存为txt格式
删除原有参数的值,改为 ${参数名} 的形式,如下图:
添加CSV Data Set Config 并配置
启动即可执行:
(二)断言
断言可以了解执行过程中是否发生错误。以下通过使用断言来判断登陆是否成功进行介绍一种断言方式。
在(一)多用户并发测试中所用的登陆信息中添加一些错误的用户名或密码,
添加断言,判断执行过程中是否成功登陆。
响应断言
响应断言可以选择要测试的字段,可选择合适的响应字段和模式匹配规则。
登陆成功时,页面显示“登陆成功”,登录失败时,页面显示“用户名或密码错误”。
因此,可通过添加响应断言来判断登陆是否成功。如果响应中包含“成功”两字,即表示登陆成功,否则登录失败。
登陆成功时,页面跳转到http://ms-20110101yxgs:8080/test/login.action,因此通过URL样本也可以验证是否登陆成功。
下面以“响应文本”“匹配”来演示:
相关文章推荐
- java-WEB中的监听器Lisener
- Android之使用Http协议实现文件上传功能
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- Shell 脚本编程陷阱
- mysql集群之MMM简单搭建
- 通晓网络测试常用命令
- VBS脚本写的Windows硬件检测工具分享
- 用vbscript实现隐藏任务栏图标的脚本
- 用autoit编写第一个脚本(Hello World)
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- VBS调用WMI快速关闭IE的脚本
- 自学成才的秘密:115个 web Develop 资源
- 收集的ROS防火墙脚本
- JSP脚本漏洞面面观
- 不错的批处理脚本 第一部分