使用Jmeter测试带有Ajax请求的页面

最近性能测试比以往要多了许多,这是件好事,最起码可表明两件事情:公司有研发出新项目、公司越来越重视。

01 确认要测试的页面/请求

前提条件:测试环境已搭建好,功能已测试通过。
在测试前-研发曾说这次写的页面和以往的不一样,测试时需要注意下,看怎么测。
然后脑残的我:既然没问怎么个不一样法,在Chrome中看了首页没觉得有什么差别,于是就让人直接用ab压测啦。
幸好在周会被询问,有几个页面是ajax获取数据的,你是怎么测的?
额,对不起 BOSS,对不起工作呀,重来。

解决问题:找到哪些页面有ajax请求
使用工具:chrome-开发者工具
方式:在chrome-开启开发者工具-定位Network-访问页面,对监控中请求链接 按XHR进行过滤,过滤后的请求就是ajax请求。

找ajax请求.jpg

一开始 我找到的就是这个-去和研发确认,研发说不是这个,需要有是.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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需...
    燕京博士阅读 4,208评论 0 16
  • JMeter有两种类型的控制器:取样器和逻辑控制器。 取样器指示JMeter向一个服务器发送请求。例如,如果你想让...
    七月尾巴_葵花阅读 1,706评论 0 3
  • 原文地址: JMeter best-practices 保持使用最新版本 JMeter被经常推荐用来测试性能,鼓励...
    Yuan_Jie阅读 5,506评论 4 28
  • 一、基本概念 1.测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。 2.线程...
    Leo_0626阅读 2,343评论 0 10
  • 春去秋来,不知道要过去多少个日日夜夜才换来一颗心的宁静。此时此刻,夜深了,很深!这般安静,只能让人浮想联翩,回忆不...
    小脚马皇后阅读 729评论 0 0