天猫提醒器英文(厨房计时器提醒器)

本篇文章给大家谈谈提醒器英文,以及厨房计时器提醒器的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

文章详情介绍:

一文搞定jmeter:工作中jmeter常用功能

测试计划

线程组

【Sampler】

【逻辑控制器】

【前置处理器】

【后置处理器】

【断言】:检查点

【定时器】:思考时间、集合点

【配置元件】

【监听器】:查看结果树、聚合报告

作用域

jmeter执行顺序

函数助手

beanshell

日志相关

分布式压测

生成报告

jmeter最佳实践

关于jmeter脚本

性能测试场景设计

之前,写过一篇文章:jmeter,学这些重点就可以了,今天就来把一些重点细节点说一下。

测试计划

可以理解为各种测试元件的容器

其中:

用户定义变量:定义整个测试中使用的重复值(全局变量),一般定义服务器的ip、端口,这样,我们改下值,就可以测试不同的环境了,比如测试环境、灰度环境等;或者把对应的几个测试环境都设置为变量,后面用哪个,就引用哪个,不过这个引用,最好是在请求默认值中引用,默认不勾选,如果测试计划下有多个启用的线程组,他们是并行执行的(也就是混合场景);

如果勾选,是顺序执行,即前一个线程组执行完了,才执行下一个线程组,大家可以试一下;相当于lr的group模式;调试的时候用,会打印更多日志,不勾选,勾选的话很影响性能,会有详细的请求记录,消耗资源;函数测试模式勾选了,还要把查看结果树写到一个路径下的文件中,函数测试模式才生效

一般用于添加jar包配合着beanshell使用,注意:lib目录下加入了新的jar包,需要重启jmeter;参考链接中“方式一:把jar包加入到classpath”:参考其他文章:
https://www.cnblogs.com/uncleyong/p/11475577.html

线程组

相当于LR中场景设计,可以设置一些并发策略,模拟并发用户发送请求

其中:

默认即可,并发过程中,遇到错误,继续执行下一次请求

线程数:并发数

在指定的时间内启动线程,如果线程数是100,这里是10,表示10秒内启动100线程,但是不一定是每秒启动10个线程,循环次数:不勾选永远,后面的次数生效;类似LR中运行时设置中迭代次数;循环控制器是循环,相当于LR中的for循环

调度器配置:

循环次数中勾选永远,持续时间就是并发的时间,一般10-15分钟,根据业务实际情况来设置If Loop Count is not -1 or Forever, duration will be min(Duration, Loop Count * iteration duration),如果未勾选永远,建议不要勾选调度器和设置持续时间

在当前时间之后的启动延迟时间后开始运

【Sampler】

在线程组下(在测试计划下面不能添加取样器),是被请求内容;假如请求是:
http://192.168.168.168:8057/user/query?name=全栈测试笔记

自动重定向:只记录最后跳转请求,会丢失初始请求的Cookie等信息;

跟随重定向:记录整个请求过程所有信息, 过程请求为sub-sampler,即子请求

POST请求时,使用的Content-Type,文件上传的时候使用;默认不勾选,此时的Content-Type是
application/x-www-form-urlencoded

参数中,如果有特殊字符时(“=”、“&”、“?”等),最好选上“编码”,否则字符串可能会被截断;

自动添加参数名和值之间的等号

发送json和发送文件

上图,客户端实现默认是HttpClient4,也可以从配置文件中看到,当然也可以改配置文件

客户端设置超时时间

jmeter在发出 HTTP请求并获得响应的HTML文件内容后,且对该HTML进行分析并获取HTML中包含的所有资源(图片等),默认不选中,此选项和loadrunner中是否下载非html资源类似;

响应保存为32位的MD5加密字符

(重点)HTTP请求:实例参考:测试必备:jmeter测试http协议接口的各种传参方式

BeanShell Sampler,实例参考:
https://www.cnblogs.com/uncleyong/p/7189778.html,或者:
https://www.cnblogs.com/uncleyong/p/9429752.html

Debug Sampler:调试的时候用,只看到jmeter变量,实例参考:
https://www.cnblogs.com/uncleyong/p/10939647.html

如果是其它协议,比如dubbo、websocket、webservice、smtp、tcp、jdbc,添加对应的取样器等即可,如果没有,那么就需要我们自己开发,所以,java基础是必备的。

dubbo,实例参考:
https://www.cnblogs.com/uncleyong/p/10732754.html

websocket,实例参考:
https://www.cnblogs.com/uncleyong/p/10735967.html

webservice,实例参考:
https://www.cnblogs.com/uncleyong/p/10990172.html

smtp,实例参考:
https://www.cnblogs.com/uncleyong/p/10990159.html

tcp,实例参考:
https://www.cnblogs.com/uncleyong/p/10739526.html

jdbc,实例参考:
https://www.cnblogs.com/uncleyong/p/10990333.html

【逻辑控制器】事务控制器

事务控制器:要把多个请求作为一个事务时才用,建议将这四个请求放在一个事务控制器中,并且勾选‘Generate parent sample’

ForEach控制器

类似计数器:
https://www.cnblogs.com/uncleyong/p/13667202.html

ForEach的应用:先请求A页面,通过正则表达式获取到多个值,然后循环这些值,依次作为B请求的入参

classIds_matchNr=8,是jmeter正则个数的统计(${refName_matchNr}来引用函数总共发现的匹配组合数目),表示匹配到8个结果
所以,可以通过Debug PostProcessor取样器看到jmeter提供给我们的变量

输入变量classIds是一个数组

1、从0到${classIds_matchNr},(0, ${classIds_matchNr}],左开右闭。

2、每次循环,获取到的值放到classId中。

请求名称也加上变量,方便查看

仅一次控制器

仅一次控制器,是控制线程内部的循环只执行一次:
1个vuser,运行3次,查看结果树中1个结果
3个vuser,运行1次,查看结果树中3个结果
3个vuser,运行2次,查看结果树中3个结果

应用场景:非分布式压测中,只执行一次的被关联请求,比如登录

if控制器

https://www.cnblogs.com/uncleyong/p/13667202.html

循环控制器

https://www.cnblogs.com/uncleyong/p/13667202.html

【前置处理器】

发送请求前做的一些处理

BeanShell PreProcessor

实例参考:
https://www.cnblogs.com/uncleyong/p/9429752.html,或者:
https://www.cnblogs.com/uncleyong/p/7189778.html

【后置处理器】

发送请求后做的一些处理

正则表达式提取器

关联的方式很多,我喜欢用万能的正则,另外,大家可以看之前写的:jmeter关联的5种方式,或者:
https://www.cnblogs.com/uncleyong/p/10779268.html

Debug PostProcessor

用于调试,除了可以看到jmeter变量,还可以看到配置信息,最好放在正则表达式提取器后面,否则看不到提取的结果;

BeanShell PostProcessor

实例参考:
https://www.cnblogs.com/uncleyong/p/10939647.html

【断言】:检查点响应断言

断言内容可以多个

断言持续时间

响应时间大于设置的值,就报错

BeanShell断言

实例参考:
https://www.cnblogs.com/uncleyong/p/7189778.html

【定时器】:思考时间、集合点固定定时器

相当于lr的思考时间

高斯随机定时器

下图表示思考时间在200-400ms之间

Synchronizing Timer:集合点

集合策略,集合线程数小于等于线程组设置的线程数,还可以设置超时时间

【配置元件】HTTP信息头管理器

实例参考:
https://www.cnblogs.com/uncleyong/p/11668665.html

HTTP Cookie管理器

域填写ip或者域名,路径根据实际情况填写,默认/

实例参考:
https://www.cnblogs.com/uncleyong/p/11668665.html

CSV 数据文件设置

实例参考:
https://www.cnblogs.com/uncleyong/p/12154065.html,或者:
https://www.cnblogs.com/uncleyong/p/10988524.html

大量的变量值,我们一般用csv参数化

文件名:通过浏览,选择参数化的文件,参数化文件可以是多种格式,我一般用txt。
文件编码:读取文件的编码,默认是US-ASCII,一般选择UTF-8。
变量名称(西文逗号间隔):参数文件中每列的名称,如有多列,用英文逗号间隔,如果只有一列,则不加分隔符。忽略首行(只在设置了变量名称后才生效):如果参数文件中有很多列,为了区分每列,就在首行把列名写上,此时就要选True,
比如:username,passwd,age,addr,phone
jack,123456,18,beijing,119
tom,123456,19,beijing,110
分隔符(用’\t’代表制表符):是变量值的分隔符,比如上面,分隔符就是英文逗号。提醒:分隔符不能是参数化的值中的符号,否则会被截断,比如,你参数化整个json,逗号作为分隔符,而json中就有逗号,所以,发送请求的时候,会被截断。
是否允许带引号?:如果是False,请求中保留引号;如果是True:请求中去掉引号
遇到文件结束符再次循环?: True表示循环,False就取值EOF
遇到文件结束符结束线程?:值不够,停止线程,一般保持默认False,如果设置为true,则下面的设置失效

线程共享模式:

所有现场:所有线程共享一个数据文件

当前线程组:一个线程组一份数据文件,线程组内是所有线程共享一个数据文件

当前线程:每个线程一份数据文件

如果多个线程组,每个线程取值和测试计划中“独立运行每个线程组”是否勾选没有关系

HTTP请求默认值

一般填入ip、端口,后续的http取样器不填写,就读取http请求默认值

计数器

https://www.cnblogs.com/uncleyong/p/13667202.html

类似forEach

【监听器】:查看结果树、聚合报告查看结果树

可以导入jtl文件查看结果

勾选表示仅展示失败的请求

可以选择结果展示方式为文本、html等

可以查看请求的内容

请求的响应结果

聚合报告

Label:每个JMeter的element的Name值。例如HTTP Request的Name
#Samples:发出请求数量。如第三行记录,模拟20个用户,循环100次,所以显示了2000
Average:平均响应时间(单位:ms)。默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间
Median:中位数,也就是50%用户的响应时间
90%Line:90%用户的响应时间【90%的用户响应时间不会超过这个值】
95%Line:同理
99%Line:同理

Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数;默认情况下,http200就是成功(http400这些就是error),如果加了断言,断言不通过的也算是error
Throughput:吞吐量。默认情况下表示每秒完成的请求数(包含成功和失败的)
KB/sec:每秒从服务器端接收到的数据量。

作用域

说起来既复杂又简单,为了大家不花过多时间在上面,我只说最简单的方式:

全局的放线程组下,局部的,专属哪个取样器,就放哪个取样器下。

jmeter执行顺序

配置元件 → 前置处理器 → 定时器 → 取样器 → 后置处理器 → 断言 → 监听器;

同一层级的,顺序执行;

函数助手

常用的函数需要掌握

随机函数

举例:生成1-1000的随机数,可以通过下面生成随机数,通过${key}可以获取这个随机数;

1、${__Random(1,1000,key)}

总之,需要某个功能可以先在函数助手中找找,没有的话,再考虑beashell实现。

官网:
https://jmeter.apache.org/usermanual/functions.html

函数列表:

时间函数(含代码方式)

13位时间戳:${__time(,)}

10位时间戳:${__time(/1000,)}

jmeter获取当前时间、时间运算、时间比较、时间转换

https://www.cnblogs.com/uncleyong/p/12768623.html

加密函数

sha-256:https://www.cnblogs.com/uncleyong/p/12765569.html

md5:https://www.cnblogs.com/uncleyong/p/9429752.html

计数器:Counter

上面不勾选,这样,每个线程获取到的值都是不一样的。

00000表示格式,也可以加前缀,写成test00000

随机变量

00000表示格式,也可以加前缀,写成test00000

beanshell

beanshell相关的,实例参考:玩转jmeter:beanshell必备技能

日志相关

日志级别默认INFO

查看日志

分布式压测

分布式压测也是需要掌握的,实例参考:jmeter5.1分布式压测

生成报告

实例参考:
https://www.cnblogs.com/uncleyong/p/9548723.html

jmeter最佳实践
最后,我们来看看官方的最佳实践,地址是:
http://jmeter.apache.org/usermanual/best-practices.html

关于jmeter脚本

脚本基本上不用录制方式,参考接口设计文档直接写,或者fiddler抓包写。

要想了解录制,实例参考:
https://www.cnblogs.com/uncleyong/p/10990053.html

性能测试场景设计

性能测试中混合场景设计举例:
https://www.cnblogs.com/uncleyong/p/12667392.html