最近性能测试比以往要多了许多,这是件好事,最起码可表明两件事情:公司有研发出新项目、公司越来越重视。
01 确认要测试的页面/请求
前提条件:测试环境已搭建好,功能已测试通过。
在测试前-研发曾说这次写的页面和以往的不一样,测试时需要注意下,看怎么测。
然后脑残的我:既然没问怎么个不一样法,在Chrome中看了首页没觉得有什么差别,于是就让人直接用ab压测啦。
幸好在周会被询问,有几个页面是ajax获取数据的,你是怎么测的?
额,对不起 BOSS,对不起工作呀,重来。
解决问题:找到哪些页面有ajax请求
使用工具:chrome-开发者工具
方式:在chrome-开启开发者工具-定位Network-访问页面,对监控中请求链接 按XHR进行过滤,过滤后的请求就是ajax请求。
一开始 我找到的就是这个-去和研发确认,研发说不是这个,需要有是.ajax的,然后我晃悠找了一圈没有找到,去向boss请教,boss耐心进行了讲解。
首先是个人知识面太弱,其次为什么不验证下(百度下XHR)就信了研发说的。-----我是个相信研发的“好测试”
** 02 录制脚本**
使用工具是jmeter ,一个最简单脚本 由执行计划+线程组+http请求+聚合报告组成。
jmeter-vod.jpg
当然在正式执行前,还是需要用到 察看结果树,对直接时的请求/响应 做个检查-看发出请求和得到的结果 是不是正确的。
index--对应的是访问http页面的请求。
vod--对应的是ajax获取vod数据的请求。
** 03 设置执行计划**
在运行前-需要考虑的是运行时的策略,使用多少个线程跑?运行多久?
计划100并发,请求10w-则在循环中设置1000
计划200并发,请求10w-则在循环中设置500
** 04 在Linux平台上执行**
个人PC端只适合录制脚本、验证脚本、设置计划等工作,真正要执行测试时,还得到相应的打压客户端上执行。
要避免:打压客户端本身的性能瓶颈和网络瓶颈。
Linux上安装jmeter-没技术含量的,下载安装包-解压缩就能搞定。
$JMETER_HOME/jmeter.sh -n -t ../test/vod.jmx -l test.jtl
· -h 帮助 -> 打印出有用的信息并退出
· -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
· -t 测试文件 -> 要运行的 JMeter 测试脚本文件
· -l 日志文件 -> 记录结果的文件
· -r 远程执行 -> 启动远程服务
· -H 代理主机 -> 设置 JMeter 使用的代理主机
· -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
** 05 测试结果查看**
第一步:拷贝test.jtl到windows系统下;
第二步:运行JMeter的bin目录下jmeter.bat,打开JMeter图形窗口,并新建或打开一个测试计划,为该计划添加“聚合报告”。
第三步:通过浏览选中windows系统中的test.jtl,即可看到测试结果
jmter-test-result.jpg
网友评论