今天通过一个简单的例子梳理一下用jmeter进行测试的流程

  1.确定被测网站:gogomall.com

  2.制定测试指标:响应时间和错误率

  3.设计测试场景

  4.具体测试步骤

  1>创建一个测试计划,测试计划里创建线程组,线程组中再创建取样器,一般是http请求,创建成功如下图:

下面来解释一下http请求的设置:

  ①名称:用于标识一个取样器,建议使用一个有意义的名称,自己能够区分

  ②注释:仅用于记录用户可读的注释信息,对测试无任何作用

  ③协议:向目标服务器发送http请求时的协议,可以是http或者是https,默认为http

  ④服务器名称或IP:http请求发送的目标服务器名称或IP地址

  ⑤端口号:目标服务器的端口号,默认值为80

  ⑥方法:发送http请求的方法,可用方法包括GET,POST,HEAD,PUT.......等

  ⑦路径:目标url路径,不包括服务器地址和端口

  ⑧内容编码:内容的编码方式

  ⑨自动重定向:如果选中,当发送http请求后得到的响应是302/301时,jmeter自动重定向到新的页面

  ⑩使用KeepAlive(持久常连接):如果选中,jmeter和目标服务器之间使用Keep-Alive方式进行HTTP通信,默认选中

  ⑪对POST使用multipart/form-data:当发送HTTP   POST请求时,使用multipart/from-data方法发送,默认不选中

  ⑫同请求一起发送参数:在请求中发送url参数,用户可以将url中所有参数设置在本表,表中的每一行是一个参数值对(对应url中的名称1=值1)

  ⑬同请求一起发送文件:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟

  ⑭从HTML文件获取所有内含的资源:当该选项被选中时,jmeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行解析并获取HTML中包含的所有资源,默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的【网址必须匹配】文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的url指向资源会被下载

  ⑮保存响应为MD5哈希:选中该项,在执行时仅记录服务端响应数据的MD5值,而不是记录完整的响应数据,在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销

  2>测试场景设计—线程组设置

①线程数:虚拟用户数

  ②Ramp-Up时间:设置的虚拟用户数需要多长时间全部启动完

  ③循环次数:每个线程发送请求的次数,如果勾选了【永远】,那么所有线程会一直发送请求,一直到选择停止运行脚本

  ④调度器:可以更灵活的设置运行时间等

  3>设置监听器

4>运行脚本

点击启动,开始执行测试

  5>查看报告

报告数据详解:

  ①Label:定义HTTP请求名称

  ②Samples:表示这次测试中一共发出了多少个请求,我设置的20个,循环10次,所以是200个

  ③Average:平均响应时长,默认情况下是单个请求的平均响应时长,当使用了事务控制器时,也可以以事务为单位显示平均响应时长

  ④Median:中位数,也就是50%的响应时长

  ⑤90%Line:90%用户的响应时长

  ⑥95%Line:95%用户的响应时长

  ⑦99%Line:99%用户的响应时长

  ⑧Min:访问页面的最小响应时长

  ⑨Max:访问页面的最大响应时长

  ⑩Error%:错误请求的数量/请求的总数

  ⑪Throughput(吞吐量):默认情况下表示每秒完成的请求数,当使用了事务控制器时,也可以表示每秒处理的事务个数

  ⑫Received KB/sec:每秒从服务器端接收到的数据量

  ⑬Sent KB/sec:每秒向服务器端发送的数据量

  注:jmeter中,时间单位都为毫秒

  6>保存报告,注意,文件后缀为.jtl

  注:上面的例子中只有一个HTTP请求,所以监听器放线程组下或者HTTP请求下结果都是一样的,当请求多了之后,可以在每个请求下都添加一个监听器