为了账号安全,请及时绑定邮箱和手机立即绑定

002-JMeter-基础入门


一:万能的JMeter,有以下有点:
1-:BS架构应用性能
2-:HTTP协议接口功能与性能
3-:FTP协议接口功能与性能
4-:MySQL数据库性能
5-:MongoDB数据库性能
6-:支持自定义java组件开发

二:基础参数或操作详解
2-1:添加线程组
右键点击“测试计划”–>添加–>“Threads(Users)”–>“线程组”

01

02

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

2-2:添加HTTP请求
右键点击“线程组”–>添加–>“Sampler(取样器)”–>“HTTP请求”
,当接口为:
图片描述

HTTP参数详解:
1-:WEB服务器
协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP
服务器名称或IP:HTTP请求发送的目标服务器名称或IP,也可以为域名
端口号:目标服务器的端口号,默认值为80
2-:HTTP请求
方法:发送HTTP请求的方式,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等
路径:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分)
内容编码:编码方式,默认为ISO-8859-1编码,这里配置为utf-8(很多时候请求或者返回值因存在中文而导致乱码,都是因为这里没有设置)
3-:参数
在请求中发送URL参数,可以在本表中添加需要请求的参数,表中每行为一个参数(对应URL中的name=value),当参数中传入中文时,需要选择编码

2-3:添加查看请求结果
右键点击“线程组” -> “添加” -> “监听器” -> “察看结果树”
图片描述

此时,当我们运行此HTTP请求(点击菜单栏绿色的“开始”按钮),选中查看结果树:
当右下角右一个绿色的“小盾牌”时,表明此接口请求成功
查看结果树参数详解:
1-:返回类型:(盾牌上面有一个下拉框)请求返回的数据类型,常用为:JSON,HTML Source Formatted
2-:取样器结果,可以查看请求和返回值,通常情况下可用来进行请求排查错误
3-:请求:HTTP请求相关参数
4-:响应数据:HTTP请求服务器返回参数,和设置的返回类型有关系

2-4:添加聚合报告
右键点击“线程组” -> “添加” -> “监听器”->“聚合报告”, 用以存放性能测试报告
图片描述

参数详解:

  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 吞吐量

此时,一个普通的接口性能测试步骤就完成,更多高级操作可参考测试实例

三:测试实例
实例共分为五个部分:
1-:接口无请求参数
2-:接口有请求参数

3-1:接口无请求参数
HTTP请求可参考:
图片描述

3-2:接口有请求参数

图片描述

四:常用操作
1-:用户自定义变量
2-:文件参数化-函数助手
3-:文件参数化-CSV数据文件设置(csv data set config)

4-1:可以添加用户自定义变量用于HTTP请求参数化,右键点击“线程组” -> “添加” -> “配置元件” -> “用户定义的变量”:

图片描述

图片描述

新增一个参数为IP,在HTTP请求中使用该参数时,格式为${IP}
图片描述

如图,HTTP请求中,使用参数的地方都可以使用此方式进行请求参数化

4-2:函数助手
Mac电脑下,选择“Tools”->“函数助手对话框”,然后在对话框中的选择一个功能选择“_CSVRead”
图片描述

参数详解:
用于获取值的CSV文件|*别名:参数文件的路径,CSV的文件分隔符是逗号

CSV文件列号| next| *alias 取列数,列的第一行是使用的第一个参数,第二行是使用的第二个参数,依次类推,并且一一对应

图片描述

可参照如上配置
使用时,可参照如下(当每一行参数为多个时,使用逗号分隔,并且在使用时需要修改下标,和参数值进行一一匹配)
图片描述

此时,设置完成后,就可以进去HTTP,模仿不同的用户进行请求(参数不一致),此时返回的数据也应该是不一样的,进行压力测试

4-3:
选择“HTTP请求”->“添加”->“配置元件”->“CSV数据文件设置”

图片描述

参数详解:
文件名:CSV文件存储地址
文件编码:默认为UTF-8
变量名称(西文逗号分隔):变量的名称(这个变量在引用时的名称,类似于用户设置自定义变量一样,使用时,可使用${变量名字})

图片描述

第一篇到此结束,下一篇会介绍如何使用后置处理器来接收服务器返回值
比如,如何使用JSON提取器/边界提取器/正则表达式提取器等,请期待!!!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消