前言
本打算用JMeter测下自己的博客,因为我租的阿里云服务器是共享的,有比较强的防火墙机制,在测试的时候容易出错。
目前正在研究阿里妈妈写的RAP一个比较实用的可视化接口工具,后期想加点东西做成更加自动化项目,不仅可以早早回家吃饭,还可以有早早谈恋爱! 因为开源了所以代码可以进行本地部署,那就直接就测它!
说实话那位阿里妈妈测试的朋友,应该是技术大咖,掌握几门编程语言,但是对java的核心没理解。没有注释,没有开发文档这也就算了,连社区的maven项目导入到IDEA里,都有比较恶心的冲突,和jar包下载不下来的情况。没办法把几个下载不下来的用了本地加载的方式!
我们先来测试一下,登陆的性能。首先把恼人的验证码功能,屏蔽掉 !
/** 為了驗證登陸功能,先注釋掉驗證碼功能 */
// if(getKaptcha() == null || !getKaptcha().equals(kaptchaExpected)) {
// setErrMsg("验证码错误");
// return ERROR;
// }
这样导致验证码可以随意输入参数就行!
部署的环境
Tapache-tomcat-8.5.24 (默认状态)
JDK1.8 默认状态
Redis -3.0 默认状态
MySQL 5.6 (Linux) 默认状态。
整体性能的好坏,是跟web服务器,redis缓存服务区,mysql服务器的性能是至关重要的。这些默认状态下,只是跟硬件服务器申请了最小单元的硬件空间,例如CPU,内存,IO线程等等。
只是为了演示测试过程,就没必要根据硬件去把各个服务器的参数调到最好。所以有的时候,不仅要对整体程序测试,也要对mysql,tomcat,redis 进行单独测试。这样就会知道这些服务器的瓶颈在哪,配置文件的参数,该如何调整。
badboy 之前的入门到精通系列没有过多的介绍,好多童鞋应该还不熟悉它,将会发布在:Jmeter入门到精通-6-2
也有相对应的官方文档:http://www.badboysoftware.biz/docs/ 学习能力强去看看。其实很简单一款录制工具~,不要紧张啦~
在前置处理器中添加用户参数,并每次迭代进行更新
断言设置
因为只要成功跳转到主页,就会有我的项目字样!这里我们有只要包含这个文本的就yes,否则就no!
我们需要ServerAgent 因为需要监测服务器随着压力测试所带来的监控结果图
1.1 ServerAgent部署
前提:ServerAgent运行需要jre1.4以上版本支持。
下载:从官方下载
部署:将下载的.zip放置到被测服务器,解压后,直接运行startAgent.sh(Linux)/startAgent.bat(Windows)即可,与JMeter进行数据传输时使用简单的文本协议,默认使用TCP协议,默认端口4444。当然,在Linux,我们通常将其放在后台运行,比如用nohup。
验证:为了保证测试过程的顺畅,我们可以先行确认JMeter压力机与被测服务器上部署的ServerAgent的通信是否正常。一个简便的方法是在JMeter压力机使用telnet像ServerAgent发送”test”,如telnet 192.168.18.10 4444,连通后,输入test,正常情况下ServerAgent会输出类似INFO 2017-07-29 23:10:52.430 [kg.apc.p] (): Yep, we received the 'test' command的日志。
小编已经下载好了windows版本 F:jmeterkuozhantbkzServerAgent-2.2.1 启动之后,我们测一下:telnet 192.168.1.110 4444 ok可以连通
遇到个小问题:响应数据乱码,断言不正确。
方案一:直接修改sampleresult.default.encoding=UTF-8。(记住去掉#,不要还是注释状态哦)
方案二:动态修改(这种方法方便些,蜗牛推荐)
step1:指定请求节点下,新建后置控制器"BeanShell PostProcessor"
step2:其脚本框中输入:prev.setDataEncoding("UTF-8");
step3:保存
# Default is false
CookieManager.save.cookies=True
监测结果图