• 用JMeter进行Performance Test


    用JMeter可以对Http请求进行Performance Test,来分析哪些方法花费的时间多,哪些方法花费的时间少,有了这样的分析结果后,我们就可以集中力量来改进费时的方法。

    官方文档请参考如下链接:

    http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf 

    关于Jmeter的更多问题与解决方案,依然可以参考如下链接:

    http://www.technix.in/jmeter-problems-and-solutions/

    安装和运行JMeter需要配置Java环境,这里省略具体步骤~~

    1):双击jmeter.bat来运行此程序后,如下图创建一个WorkBench

    2):保持基本的设置不变,可以看到我们采用8080这个端口来监听HTTP的请求,在截图的最下方有个Start按钮,开启之后可以监听由此代理的HTTP请求

    3):接上一步骤可以将我们的FireFox浏览器设置由本地的8080端口进行代理,那么当上图Start之后,由FireFox所发出HTTP请求将会被JMeter录制下来

    4):根据下面的截图添加一个Thread Group

    5):可以对Thread Group的属性进行设置,模拟多个用户进行HTTP请求

    6):如下图所示,添加View Results in Table 和 View Results Tree 可以对运行结果进行分析,当然了还可以添加其他的控件进行更加直观的比较结果

    7):点击第2步骤中的Start按钮,用浏览器对指定的web站点进行访问操作来录制整个过程中所有的HTTP请求,最终的结果如下所示(当然了我们删除了一些不必要的css,js等文件的加载过程),并且对所有post请求做以标识(在名字的后面添加-post),整个过程录制完毕后,WorkBench下的HTTP(s) Test Script Recorder就没有用了,我们可以直接删除掉,并且我们可以把FireFox中的代理设置回复默认状态,因为我们之后的HTTP请求的发送都是由JMeter所录制好的脚本来完成的,这也就是完全模拟了用户的操作过程,并且用多个线程去模拟多个用户。

    8):在下面的截图中我们发现有些步骤(GET)是灰掉的,原因我们的POST请求中选择了'Follow Redirects'这个选项,那么JMeter会将后续的GET请求步骤合并到前面的POST请求中;这样的话会引出另外一个问题,就是此POST请求所记录的时间包含了POST请求本省以及接下来的GET请求所花费的时间之和,所以我们可以讲POST请求中的‘Follow Redirects’选项去掉,Enable对应的GET请求来更加准确的记录所有请求所花费的时间

    9):上面的步骤操作完毕后,我们直接运行所录制好的脚本会发现,POST请求都失败,如下图所示

    10):上图中出现错误的具体原因是在每一个POST请求中都有__RequestVerificationToken这个参数,这个参数的值在每次请求的时候都是不同的,实质上这就是一个Cookie

    11):因此我们要像下图所示的样子添加一个HTTP Cookie Manager

    12):在像下图所示的样子添加一个Regular Expression Extractor

    13):填写对应的设置(<input name="__RequestVerificationToken" type="hidden" value="(.*?)" />)

    14):然后将所有用到的地方都换成这个变量

    15):在运行一遍,就可以发现测试都通过了


    16):接下来我么继续完善,如下图所示添加User Define Variables组件

    17):将我们所用到的可以共用的数据,以全局变量的形式添加到User Define Variables组件中,这样管理起来更加的方便规范

    18):用变量替换所有的值

    19):用.csv文件可以实现跟全局变量相同的功能,如下图所示.csv文件的具体内容,其中的第一行Header值表示的就是此变量的名字,可以用{!LPN}这种方式去访问

    20):参考如下截图添加CSV Data Set Config组件

    21):将.csv的文件名填写到filename中(当然了这里我们是把.csv与当前的.jmx放到了同一个目录下)

    22):然后替换所有变量

    23):最终的运行结果的解析

    由于JMeter完全模拟了用户操作的流程,和用户在浏览器中操作的过程是一样的,所以可以用VS去attach对应的w3wp.exe进行去进行调试,去确定具体的问题。

    。。。

  • 相关阅读:
    测试服务器centos7安装php7.2+composer
    开发工作流程
    CKEditor4多个span标签不合并的问题
    编程面试题
    vagrant常用命令
    设置apache服务器的访问证书,支持https访问,windows
    PHP5实现foreach语言结构遍历一个类的实例
    virtualbox虚拟机ubuntu操作系统,设置网络互通、访问,能访问虚拟机swoole的http服务
    二进制位运算
    dedecms学习笔记(1)--ShowMsg()
  • 原文地址:https://www.cnblogs.com/mingmingruyuedlut/p/3783791.html
Copyright © 2020-2023  润新知