Jmeter学习笔记01

举报
何时解放 发表于 2020/10/29 18:14:44 2020/10/29
【摘要】 jmeter-界面,菜单介绍

术语篇

  • TPS:每秒完成的事务数,一个事务会包含多个子操作,比如一次支付是一个事务,后台会有多层调用,多个接口。用户只关心这个事务花了多久。每秒完成得越多就越好?还得看负载条件是否相等,不能直接对比。

  • RT/ART:一个意思,一个事务平均响应时间。

  • PV:每秒用户访问页面次数。

  • Vuser:虚拟用户,设置负载就是主要设置这个

  • Concurrency:并发。狭义并发是多用户同时干一样的事情,就是jmeter常见的测试方式。广义并发,则多用户同时干不同的事情,得在一个目标上,比如对于某个系统写了不同的脚本,让它们同时跑,持续跑,测试稳定性,压力值。


业内公认性能标准

维度 不通过 通过 备注
超时概率 大于万分之5 小于万分之5 没有绝对标准,这边也是个参考值
错误概率 大于万分之5 小于万分之5
TPS 小于期望高峰值 大于期望高峰值
CPU利用率 大于75% 小于75%
响应时间 大于期望 小于期望 1s优秀,3s普通,5s极限,>5则不通过,特殊情况除外。
Load 平均每核CPU的load大于1 小于1 从资源管理器去看CPU,列表上就有CPU一列,这个可以认为是load,本机上看edge浏览器占用的永远在1以上,虽然我总共有8个逻辑CPU,相比于chrome,还是性能不好。然后倒序排列一下这列,除edge外,其他基本不使用CPU,或者偶尔使用一下。观察了几分钟,总计上不超过5。非常合理。
JVM内存使用率
大于80% 小于80%
Full GC频率 平均小于半小时1次
平均大于半小时1次 小于半小时一次就说明系统扛不住了,随时有可能宕机重启。这个是JVM垃圾回收的意思。网上有人能做到几天一次的调优。
YSlow评定(前端页面性能)

这是一款工具,像鲁大师一样能测性能。给评分,以及优化点。


YSlow评定使用记录

待学习


JMETER 界面介绍

  • 测试计划是顶层结构,测试计划下面建立多个线程组,执行时的时候,可以对某个线程组执行,也可以执行整个测试计划。

  • 切换中英文,在选项那边,选简体中文语言,可以开2个jmeter,中文一个,英文一个,方便自己对照学习。

  • 第二行的固定工具图标,有一个功能强烈推荐,就是最后一个“帮助”,以前苦于看不懂英文手册,但是现在谷歌浏览器可以翻译网页,机器翻译效果还算过得去,除了看修炼宝典这本书,还可以直接看官方手册,官方在线手册永远是最新的。

  • 文件:下拉里面有一个模板,这个模板是帮助你快速开始一些常用测试场景,比如web测试,下图就是快速building

    对某种场景熟悉以后,就不用这么干了,自己一个个组件搞起来。一开始不太熟悉的时候,可以用下模板,大体知道下这个场景会用哪些组件。

  • 文件:下拉里面,合并功能。点了以后,弹出选择框,选其他jmx文件,能把测试计划里的东西,全部拉过来。就等于是2个测试计划合并到一个测试计划里面。这个功能要注意的是线程组以外的东西,比如聚合报告,请求默认头。拉过来以后,跟这边原本的是否冲突。

  • 文件:下拉里面有个,选中部分保存为。功能效果是能对某个线程组进行保存,但是,线程组外面的请求默认头,聚合报告,不能带走。等于拆分功能。

  • 文件:另外的一个,保存为测试片段。针对上面只能搞线程组,其他的东西批量保存,就可以用测试片段来存。

  • 编辑:启用,禁用。禁用就是注释的意思,等要恢复的时候,再启用。

  • 运行:里面有一批远程控制,是因为负载执行时,不能靠一台机发起请求,需要多台负载执行机。这一块后面会讲。

  • 选项:里面SSL管理器,证书管理器。使用上不太懂,网上有个例子,但是尝试百度首页后,宣告失败。但是后来在写下面文章的时候,突然就好了,莫名奇妙,感觉跟代理网络有关。目前没法求证什么原因。只能说网上的说法可以成功。

  • 新建线程组3种分类:没多少区别,teardown,setup 一个是后缀,一个是前缀。执行上,setup最优先,多个setup则按照上下排列执行,teardown最后执行,多个teardown,也是按上下顺序执行。

  • 测试计划版面-用户定义变量:测试计划层级的变量,作用域是整个测试计划可用。这个逻辑同编程里的全局变量,本来jmeter就是java写的,变量能力也是java里的。

  • 测试计划版面-独立运行每一个线程:这一块,包括下面2个,感受不到效果,选不选都一样。

  • 测试计划版面-主线程结束后运行teardown线程组:

  • 测试计划版面-函数测试模式:直接官方说明了,很影响性能。需要具体项目去验证。

  • 测试计划中添加目录或jar包到Classpath:操作:测试计划->添加目录或jar包到Classpath-->浏览导入jar包,优点:操作便捷,缺点:1)可移植性差;2)jar包较多时不好管理。感觉跟robotframework的界面ride有点像,那边也是,可以引用一些包,资源。网上建议的jar包管理有其他方式:二、将需要引用的jar包放在jmeter的extras目录下,缺点:有些jar包放在extras下加载不到。三、通过jmeter.properties设置依赖路径,指定目录后,管理便利。所有jar包放到一个地方,对于自动化执行,也有好处。


  • 线程组版面—错误后要执行的动作:用表来说明其效果

    


继续

测1测2测3,都会执行6次,不受任何影响,总计18条结果


启动下一进程循环 测1失败后,跳过测2测3,走循环,测1会执行6次,总计6条结果

停止线程 测1失败后,跳过测2测3,而且不走循环。3线程各一条,总计3条结果
停止测试 测1失败后,跳过测2测3,不走循环,另外2个线程也会去杀,但速度来不及
  1. 原因就是杀进程的命令执行速度。0秒或者短暂的ramp时间,启动太快,来不及杀。0秒时,会出现3条结果,等于多线程没刹住。

  2. 即时ramp-up设置100秒,也还是会出现2条结果,杀掉第三条,原因跟其多线程机制有关。没办法。

立即停止测试 调试了半天,跟上面那个没区别


  • 线程组版面—线程数:同时走多个线程

  • 线程组版面—ramp-up时间设置一个时间,表示在这个时间内所有虚拟用户开始发送请求。即便设置成0秒,也做不到完全的并发,会有0.001秒的差距

  • 线程组版面—循环次数:每个线程循环执行的次数。

  • 线程组版面—same user on each iteration待补充,这是5.2版本开始追加的选项,其他页面也有类似选项。甚至都还没来得及汉化的一个选项。

  • 线程组版面—延迟创建线程直到需要如果勾选了此选项,线程则只会在合适的需要的时候才会被创建。实际一点的效果:上面那个表格里面,停止测试,做不到完全杀线程,是因为勾选了这个。去掉这个勾,反倒能杀到位了,3秒ramp-up就能保障杀掉后2个,只出一条结果。感觉选项的效果跟文字描述是反的

  • 线程组版面—调度器:用来压测可用的一个选项,以前的版本有启动时间,结束时间。但最新版本反倒没了。就一个持续时间,延迟启动时间。持续时间就是这个线程组只能占用多少秒去执行,无论你执行得完没完。都会掐断。延迟时间是点击启动后的延迟时间。就像UI自动化里面的等待多少秒。是一种无脑的等待,如果等待期间,其他必要条件还是没达成,那照样启动,所以个人一直不喜欢这种自动化方式。不过好歹是个能定时的功能,跟家里的预约煮粥电饭煲一样。


未完待续,下一篇介绍线程组里面的一些常用组件,比较接近实际上手了。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。