性能测试-Jmeter
缘由
很多情况下我们写程序过程中只会对固定模块采取并发限制,而且asp.net对于多线程也有他自己的处理机制,尤其对于注重业务,结果导向的团队可能更注重一定时间节点给出满意的产品,但是你的模块到底是否健壮,你心理有谱吗? 大声的告诉我 are you sure? 下面我们通过一个工具来窥探一下.He is Jmeter!
(最后的测试发现博客园的访问有些问题,具体希望广大园友给予指点)
基本简介
环境准备
(1)Jmeter是建立在java环境下的,所以你的机器需要安装java环境,我像java组的同事要了一个简要的安装包,安装之后需要配置下环境变量.
(2)Jmeter安装包 http://jmeter.apache.org/
因为博客园对上传文件有大小限制,所以...
java环境:下载地址
Jmeter: 下载地址
基本概念了解
测试计划
线程组
测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。
逻辑控制单元
多种不同的实现,可以决定每个sample的执行顺序。
采样器
可以认为所有的测试任务都由取样器承担,有很种,如:HTTP 请求。
定时器
定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的“思考时间”。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。
断言
对取样器返回的请求结果给出判断,是否正确。
配置元件
配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改Sampler的默认数据。(例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的cookie 进行管理)
监听器
它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。
Getting Started
下面我们通过例子来体会一下Jmeter
测试地址:http://www.cnblogs.com/mongo/p/4623560.html
场景:模拟用户并发请求查看网站负载等参数
(1)运行Jmeter,在安装好JAVA环境的前提下,打开Jmeter安装目录,运行\apache-jmeter-2.13\bin\jmeter.bat
(2)添加线程组
说明:
线程数:我们配置开启了500个线程
Ramp-up Period:设置为0表示在0秒内500线程同时启动完毕
循环次数:总体执行一次
(3)设置控制器
这里我们设置循环控制器,每个线程循环5次Sampler操作
(4)设置采样器Sampler
我们这里用一个博客园的文章地址做测试,简单的请求页面
(5)添加监听listener
为了更好的看到我们的测试结果,需要合适的图形化展示,这里我们添加图形结果和观察结果树
(6)运行结果
(6.1)summary report
请求数量 2500
平均响应时间1185
吞吐量:175.8/s
(6.2)图形结果
(6.3)观察结果树
这里貌似存在一个问题,我访问博客园指定的页面,前几次请求可以,然后请求一直是time out 状态,过一段时间 请求又可以了,目前有2个猜想
(1)博客园做了限制,某一个地址频繁发送请求会限制一段时间?
(2)但是明显开始请求成功次数和一段时间后请求次数有明显的不同,难道真的程序有问题?
这只是猜想,具体大家也可以考虑考虑 交流指导,这篇文章主要让大家能方便测试某一个部分的负载,介绍了Jmeter的基本使用方式,以便大家对自己的模块有一个量化的认识,在写程序的时候也会多一些思考。
性能测试-Jmeter的更多相关文章
- 使用jmeter进行性能测试-Jmeter教程及技巧汇总 (转)
http://www.jmeter.cf/loadtesting-jmeter.html 为什么使用jmeter, 它免费开源, 不断发展, 功能逐渐强大. 可以做功能,负载, 性能测试.一套脚本可以 ...
- 性能测试—JMeter 常用元件(二)
性能测试—JMeter 常用元件(二) <零成本web性能测试>第三章 Web性能测试脚本录制与开发中JMeter常用测试元件 测试计划描述了JMeter运行时将会执行的一系列步骤,一个完 ...
- 接口性能测试--JMeter
1.JMeter Java Sampler介绍 setupTest做些初始化的工作,每个线程只执行一次 teardownTest做些清理工作,每个线程只执行一次 1.JMeter Java Sampl ...
- 性能测试Jmeter压测ZooKeeper-自定义java请求
要想通过自定义java请求来压测ZooKeeper,那么我们就需要做两件事情,第一我们需要知道java如何操作ZooKeeper,第二就是怎么能将我们写的jar包让jmeter识别,首先我们先来干第 ...
- 性能测试—JMeter 常用元件(四)
<零成本web性能测试>第三章 Web性能测试脚本录制与开发中JMeter常用测试元件 测试计划描述了JMeter运行时将会执行的一系列步骤,一个完整的测试计划包含一个或多个线程组.逻辑控 ...
- Meter - 连续性能测试 - JMeter + ANT + Jenkins集成 - 第1部分
目标: 创建包含性能测试流程的持续交付管道, 以尽早检测任何与性能相关的问题. 通常,全面的性能测试将在分段/预生产环境中完成,该环境可能与您的生产环境相同.在完成QA功能/回归验证后,将代码推送到分 ...
- JMeter - 连续性能测试 - JMeter + ANT + Jenkins集成 - 第2部分
目标: 创建包含性能测试流程的持续交付管道,以尽早检测任何与性能相关的问题. 通常,全面的性能测试将在分段/预生产环境中完成,该环境可能与您的生产环境相同.在完成QA功能/回归验证后,将代码推送到分段 ...
- 性能测试--Jmeter随机生成/随机选取/csv读取关键字
Jmeter随机生成/随机选取/csv读取关键字 一.随机生成关键字 随机生成关键字,需要组件:随机变量配置元件(Random Variable) 该组件的作用是生成字符+随机数字格式的字符串,并保 ...
- 性能测试--Jmeter录制、回放
Jmeter录制.回放 在jmeter2.1版本之前,jmeter应该是不支持录制和回放功能的,那时候如果需要录制jmeter的性能测试脚本的话,就需要使用第三方工具——badboy.现在jmeter ...
随机推荐
- GitHub 教程 in Ubuntu
Follow these steps to configure github if you are the first time to use Github 1. Sign up a username ...
- 监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆
通过重写一个继承自Activity的基类中的onUserLeaveHint()方法,当用户按Home键等操作使程序进入后台时即开始计时,当用户使程序恢复为前台显示时执行onResume()方法,在其中 ...
- dojo 十一 jsonp
官方教程:Getting Jiggy with JSONPDojo对Ajax实现的框架XHR的功能很强大,但 XHR 框架的函数有一问题就是不能跨域访问,浏览器不允许 XHR 对象访问其他域的站点.此 ...
- iOS 7 如何关闭已打开的应用(App)
刚升级了 iOS 7,感觉不太会用了. 在多任务状态下,看着一个个已被打开的应用,不知道如何关闭了. 问了下朋友才知道,在多任务状态下,将对应的应用 向上划 就行. 听说,和 Android 一样的 ...
- hdu - 1728逃离迷宫 && hdu - 1175 连连看 (普通bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1728 这两道题花了一下午的时候调试,因为以前做过类似的题,但是判断方向的方法是错的,一直没发现啊,真无语. 每个 ...
- python中的 @ 修饰符
今天学习廖老师的python教程,碰到了修饰符'@',不太了解,查看了下官方文档. 简单的整理下: @dec2 @dec1 def func(arg1, arg2, ...): pass 等价于 de ...
- Codeforces Round #272 (Div. 2) C. Dreamoon and Sums (数学 思维)
题目链接 这个题取模的时候挺坑的!!! 题意:div(x , b) / mod(x , b) = k( 1 <= k <= a).求x的和 分析: 我们知道mod(x % b)的取值范围为 ...
- [ionic开源项目教程] - 第12讲 医疗模块的实现以及Service层loadMore和doRefresh的提取封装
关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 这一讲主要实现tab2[医疗]模块,[医疗]模块跟tab1[健康]模块类似. [ionic开源项目教程] - 第12讲 医疗 ...
- 用Maven插件生成Mybatis代码
现在代码管理基本上是采用Maven管理,Maven的好处此处不多说,大家用百度搜索会有很多介绍,本文介绍一下用Maven工具如何生成Mybatis的代码及映射的文件. 一.配置Maven pom.xm ...
- PHP后台执行
php中实现后台执行的方法: ignore_user_abort(true); // 后台运行set_time_limit(0); // 取消脚本运行时间的超时上限后台运行的后面还要,set_time ...