http://hushi55.github.io/2015/01/08/jmeter-perf-testhtml
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件作压力测试,它最初被设计用于Web应用测试但后来扩展到其余测试领域。 它能够用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 能够用于对服务器、网络或对象模拟巨大的负载,来自不一样压力类别下测试它们的强度和分析总体性能。另外,JMeter可以对应用程序作功能/回归测试,经过建立带有断言的脚原本验证你的程序返回了你指望的结果。为了最大限度的灵活性,JMeter容许使用正则表达式建立断言。(摘自百度百科)java
jmeter 有一个好搭档,那就是 badboy。 Badboy 是一款不错的 Web 自动化测试工具,若是你将它用于非商业用途,或者用于商业用途可是安装 Badboy 的机器数量不超过 5 台,你是不须要为它支付任何费用的。也许是一种推广策略, Badboy 提供了将 Web 测试脚本直接导出生成 JMeter 脚本的功能,而且这个功能很是好用,也很是简单。git
你能够下载这两个软件github
jmeter 安装直接解压,咱们安装 java 软件时最好不要安装的 path 有中文和空格,这样能够避免一些没必要要的错误。badboy 的安装就和通常的 windows 安装同样。正则表达式
现以测试 kdtest.kdweibo.cn公网测试环境发送微博为列子,详细说明如何使用 badboy 和 jmeter。数据库
安装上述软件后,打开 badboyapache
输入 kdtest.kdweibo.cn,进入云之家首页,点击上图中的录制按钮,开始录制脚本。windows
输入用户名和密码,点击登陆。服务器
输入发送的微博,点击发送,发送成功后,点击录制脚本按钮,中止录制。网络
点击 file 菜单,选择 Export to Jmeter 导出 Jmeter 脚本,命名为 测试发送微博.jmx(后缀自动添加)。
在 Jmeter 安装目录下,点击 bin/jmeter.bat 打开 jmeter
点击文件 --> 打开,刚才用badboy 录制的脚本测试发送微博.jmx
裁剪不须要测试的 url ,此次测试须要保留
其他的能够删除。
由于 登录操做 只须要执行一次便可,添加一个逻辑控制单元:
如图所示,在 Thread group 上点击右键,添加,逻辑控制器,仅一次控制器。命名为登录,而且将 http://kdtest.kdweibo.cn/space/c/rest/user/login 拖入其中。
修改 step 控制器名称为 发送微博,而且勾选循环次数为永远。将 登陆 这个控制器移动到发送微博控制器之 前,结果如图所示:
点击选中 Thread Group 修改线程数为 100,表明同时有 100 个用户并发访问。修改 Ramp_Up Period 为 50 表明这 100 线程会在 50 秒钟启动完毕,即每秒启动 2 个线程,循环次数,表明每一个线程执行采样的次数。能够勾选永远,使其不停的才采样,如图:
点击 Test Plan 修更名称为 发送微博测试 右击 添加 --> 监听器,添加聚合报告,和察看结果树,这两个报告的做用分别为,察看结构树用来监控返回的结果是否符合预期,用来判断录制的脚本是否正确。聚合报告的做用为,统计此次测试的一些数据,如最大访问时间,最小访问时间,QPS 等。
完成以上工做后,能够点击运行按钮,在本地验证脚本的正确性。以下图所示。
在测试中有可能会须要使用内置函数,如: 在 3 分钟内不能发送重复微博,这就不能在发送微博的文本中硬编码,能够在发送的文本中添加一个随机数,这时能够使用 ${__uuid()} 这样就能每次发送的消息都是不会相同。避免测试时不能重复使用。关于 Jmeter 内置的函数和变量,详情能够参考文档: