Jmeter 安装+简易使用教程

安装和配置

0. 环境

操作系统:Windows10.
java 版本:1.8
一定要提前下载好java哦!

1. 下载

参考博客https://blog.csdn.net/wust_lh/article/details/86095924

访问官网http://jmeter.apache.org/download_jmeter.cgi,windows的话就下载zip
在这里插入图片描述解压后,在bin目录下找到jmeter.bat,双击就能使用。
在这里插入图片描述

2. 中文界面

参考博客https://blog.csdn.net/xinglongsky/article/details/93753297

找到bin目录下jmeter.properties文件,默认的language是en,改成zh_CN就可以了。如果此时已经打开了jmeter,重启就可以了
在这里插入图片描述

3. 修改背景颜色

参考https://www.cnblogs.com/hpzyang/p/10021884.html

在外观中修改背景颜色。
在这里插入图片描述

简易使用

参考https://blog.csdn.net/lovesoo/article/details/78579547实现百度结果的查询。

1. 接口地址

如果使用原文中的地址的话好像会报错,我也发现现在百度查询的接口地址变成了https://www.baidu.com/baidu?wd=jemeter&tn=monline_4_dg&ie=utf-8,因此使用的就是这个地址了。

2. 添加线程组(虚拟用户)

右键点击“测试计划” -> “添加” -> “线程(用户)” -> “线程组” 在这里插入图片描述在这里插入图片描述

  1. 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  2. Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。
  3. 循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
  4. Delay Thread creation until needed:直到需要时延迟线程的创建。
  5. 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
    持续时间(秒):测试持续时间,会覆盖结束时间
    启动延迟(秒):测试延迟启动时间,会覆盖启动时间
    启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
    结束时间:测试结束时间,持续时间会覆盖它。

3. 添加HTTP请求

右键点击“线程组” -> “添加” -> “取样器” -> “HTTP请求”

在这里插入图片描述在这里插入图片描述

Http请求主要参数详解:

  1. Web服务器
    协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP
    服务器名称或IP :HTTP请求发送的目标服务器名称或IP
    端口号:目标服务器的端口号,默认值为80
  2. Http请求
    方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
    路径:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分)
    Content encoding :编码方式,默认为ISO-8859-1编码,这里配置为utf-8
    同请求一起发送参数
    在请求中发送的URL参数,用户可以将URL中所有参数设置在本表中,表中每行为一个参数(对应URL中的 name=value),注意参数传入中文时需要勾选“编码”

根据上面的接口https://www.baidu.com/baidu?wd=jemeter&tn=monline_4_dg&ie=utf-8,我们可以分别填充协议(http),服务器(www.baidu.com),方法(GET),和路径(/baidu)。Jmeter界面最底部有一个添加的按钮,用来添加参数列表。最终结果如下
在这里插入图片描述

4. 添加和查看结果树

右键点击“线程组” -> “添加” -> “监听器” -> “察看结果树”

在这里插入图片描述然后运行HTTP请求,就可以在结果树查看结果了。
在这里插入图片描述

这里有一个坑,就是没有清空结果树的按钮。当开启下一轮测试的时候,上一轮的结果还保存至结果树中。

参考http://blog.sina.com.cn/s/blog_553df7110102vuij.html

快捷键ctrl+E可清空结果树

后来经过同学提醒,发现这里也可以清空结果树
在这里插入图片描述

5. 参数化测试

右键点击“线程组” -> “添加” -> “配置元件” -> “用户定义的变量”
在这里插入图片描述新增一个参数wd,存放搜索词:

在这里插入图片描述
并在Http请求中使用该参数,格式为:${wd}
在这里插入图片描述

5.1 CSV文件参数化测试

参考https://www.cnblogs.com/pandaly/p/8468884.html

首先创建csv文件,在其中放两列自己需要作为参数传入的变量,如下图:
在这里插入图片描述

然后在Jmeter中创建“线程组” -> “添加”-> “配置元件” -> “CSVSet Data Config”
在这里插入图片描述
在这里插入图片描述

配置CSV Data Set Config,其中:

  • Filename: 指保存信息的文件目录,可以相对或者绝对路径。否则会在jmeter日志文件(jmeter.log目录位置D:\Program Files\apache-jmeter-2.13\bin)中提示:系统找不到指定文件,运行脚本后,登录失败。
  • File encoding: 保持默认。默认为ANSI
  • Variable Names: 给csv文件中各列起个名字(有多列时,用英文逗号隔开列名)便于后面引用
  • Delimiter:与 .csv文件的分隔符保持一致。如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;
  • Allow quoted data? :是否允许引用数据,—这个目前还未弄明白,设置成True或者False都能正常引用数据。
  • Recycle on EOF?:到了文件尾是否循环,True—继续从文件第一行开始读取,False—不再循环
  • Stop thread on EOF? :到了文件尾是否停止线程,True—停止,False—不停止,注:当Recycle on EOF设置为True时,此项设置无效。
    Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。

如上图所示,我将两列命名为了username和password,只要在HTTP请求中设置参数的时候将具体值改为${变量名}就可以,如下图:

在这里插入图片描述

6. 创建检查点

右键点击“访问百度搜索” -> “添加”-> “断言” -> “响应断言”
在这里插入图片描述
我们校验返回的文本中是否包含搜索词,添加参数${wd}到要测试的模式中:
在这里插入图片描述

右键点击“访问百度搜索” -> “添加”-> “监听器” -> “断言结果”
再次运行HTTP请求,就可以在断言结果中看到文本中是否包含搜索词了。如果在响应断言中添加的字段是${wd} ,断言就不会被触发。如果是一个不会被搜索到的词,比如UncleDong,那就会触发断言。分别用这两个关键词运行,结果如下。

断言结果:
在这里插入图片描述结果树

在这里插入图片描述

7. IP欺骗

参考https://www.cnblogs.com/tsgxj/p/10905400.html

右键点击“访问百度搜索” -> “添加”-> “配置元件” -> “HTTP信息头管理器”
在这里插入图片描述添加

名称
x-Forwarded-For${__Random(10,200,)}.${__Random(2,255,)}.${__Random(2,255,)}.${__Random(1,255,)}

在这里插入图片描述

8. 分析测试报告

右键点击“线程组” -> “添加” -> “监听器” -> “聚合报告”,用以存放性能测试报告。
在这里插入图片描述

当下次运行的时候,就会生成报告。
在这里插入图片描述
聚合报告参数详解:

  1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
  2. #Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
  3. Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
  4. Median:中位数,也就是 50% 用户的响应时间
  5. 90% Line:90% 用户的响应时间
  6. Min:最小响应时间
  7. Max:最大响应时间
  8. Error%:错误率——错误请求数/请求总数
  9. Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
  10. KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。

9. 源代码分享

当执行完上述操作后直接保存,可以得到.jmx文件。该文件就是该段测试脚本的代码了。直接拖入Jmeter就可以看到所有的配置。

完整脚本已经上传到百度网盘。
链接:https://pan.baidu.com/s/1_hKSh10J0DCECFvzhcfhLw
提取码:0ewe

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值