zoukankan      html  css  js  c++  java
  • JMeter——JMeter使用(1)

    一 前期准备

      首先,你要去官方那里下载Jmeter的压缩包,官方地址是http://jmeter.apache.org/,另外,你的系统要配置好java环境,笔者写这篇文章的时候,官方版本是2.8,下载完了之后,进入里面的bin目录下,找到jmeter.bat这个批处理文件,然后双击,进入jMeter的工作界面

     

      这里面有很多功能,这我们先别去理会这一些,接下来,我们会一步一步地去创建一个web测试项目,让大家先从感性上去认识这个框架。

      接下来,我们创建的这个项目是这样的,我们会建立一个计划,让它去访问我们设定好的url,并将访问得到的信息返回给我们。

     

    术语:

    • 线程组:测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“Test Plan(鼠标右击) -> 添加  ->Threads(Users) -> 线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。
    • 取样器(Sampler):可以认为所有的测试任务都由取样器承担,有很多种,如:HTTP请求。
    • 断言:对取样器返回的请求结果给出判断是否正确。
    • monitor:它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)

     

    1. 建立线程组

      为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户)来访问LinuxEye。线程属性部分中,

    • 线程数是启动多少个线程,这里填写的是10,
    • Ramp-Up Period (in seconds)表示线程之间间隔多少时间允许,单位是秒,比如如果填写10,那么10/10=1表示10个线程间每隔1秒钟请求网站。
    • 循环次数:60个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次,我这里测试就填写的是2.

      每次修改一个设置后,别忘记了保存一下。 

    2. 设置请求服务器、压力链接等信息

      接下来很自然的是,要测试的网站地址是什么?链接是什么?所以现在我们就来设置这些信息。
      右键点击我们刚创建的线程组,在弹出的菜单中,选择添加->Sampler->Http请求,弹出如下图界面:

     

    • 路径:假如你只是对一个链接进行压力测试,直接填写一个链接就ok,比如http://www.linuxeye.com.路径文本框下面的选项,可以按默认的就成,Use multipart/form-data for HTTP POST是当请求中有附件的情况,一般情况下都不用选中的。

      但是大多数情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文件中,然后随机读取进行压力测试。我们可以这么做,如图:

       在选择一个功能下拉列表中选择_StringFromFile,然后在本机新建一个测试文件C:Users ootDesktopapache-jmeter-2.9 est.txt,在第一行(你也可以不在第一行)的值中填写测试文件的路径,如下图: 

      然后点击“生成”按钮,在生成按钮的左边文本框中将生成一个字符串如: ${__StringFromFile(C:Users ootDesktopapache-jmeter-2.9 est.txt,,,)} 在test.txt测试文件中,我们每行写一个URL链接,如下格式:

    /command
    /linuxrumen
    /program
    /jianzhan
    /command/cat.html
    /command/chmod.html
    /command/lsattr.html

      注意,每行前面并没有http://www.linuxeye.com这样的信息,因为我们在前面已经填写了服务器地址为www.linuxeye.com,这里就没必要再为每个url填写这个相同前缀了;另外,上面的url格式也只是个例子,表示域名后的部分。 

      这样一来,当我们并非请求的时候,就会从test.txt中随机选择url来进行压力测试。

      另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。

    3. 查看运行结果

      鼠标右键点击线程组,在弹出的菜单中选择添加->监听器->用表格查询结果,如下图:

     

    4. 运行

      当然,在运行前,请把所有修改都保存好 运行后的结果表格如下:

     

     

      各属性如下:

    • Sample:每个请求的序号
    • Start Time:每个请求开始时间
    • Thread Name:每个线程的名称
    • Label:Http请求名称
    • Sample Time:每个请求所花时间,单位毫秒
    • Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
    • Bytes:请求的字节数 如果Status为叉,那很显然请求是失败了,但如果是勾,也并不能认为请求就一定完全成功了,因为还得看Bytes的字节数是否是所请求网页的正常大小值,如果不是则说明发生了丢包现象,也不是完全成功。

      在下面还有几个参数:

    • 样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。
    • 平均:每个线程请求的平均时间
    • 最新样本:表示服务器响应最后一个请求的时间
    • 偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布(这个我不是很理解)。

     

     

    参考:http://blog.chinaunix.net/uid-26884465-id-3416869.html

     

  • 相关阅读:
    @PostConstruct和 @PreDestroy注解
    【JQuery】,ajax请求中,url出现[Object Object]
    筛法求素数
    母牛的故事
    将一个数拆分
    计算两个日期差
    用二分查找——查找比目标元素略大的索引
    反向输出字符串
    bootstrap table合并单元格(该版本是简单的应用)
    获取访问者IP
  • 原文地址:https://www.cnblogs.com/sheropan/p/5073525.html
Copyright © 2011-2022 走看看