jimita 重的响应断言,这是过程中为了判断我们这个测试的响应结果是否正确呢?我们会用到断言,那我们平常会经常用到的断言有响应断言间,是啊,大小断言, 那我们说还有我们的什么呢?断言持续时间,那比如说如果你想看响应结果,你可以加一个响应断言,响应断言加了以后呢?这边你要选择他 英文的范围,比如说我想看一下英文版,那我们这时候要在这个测试模式里面添加你要去验证的内容, 那我们这个验证的结果,比如说我就要看这里面登录成功这个信息, 这个时候呢?在这里啊登录成功,那我们说这个,如果他断言 ok 的话,我们在这边需需要加一个什么呢?断言的 断言结果,那我们在这里就可以看到他的情况,让我们把这个签掉,然后执行。 如果他成功,那么就会返回我们请求的名称,如果他不成功,那这个时候就会反映出我们的什么呢? 就会这样子提示你什么呢?给出提示信息,告诉你 断言不成功。断言不成功也就意味着你这个测试是脚本是不对的啊。 本次知识输入就到这里啦,你学会了吗?还有哪些疑问,评论区留言将一一为大家解答。
粉丝313获赞2983

jamitter 准备同请求一起发送参数脚本。准备脚本的时候呢,需要跟参数一起发送,那么我们需要把参数呃根据文档或者是根据抓报工具获取啊。比如说我们要登录咱们的什么呢? 登录那个平台有字点别视频。那我们需要同请求一起发送,同请求一起发送的方式是 pose。 那这个参数在哪里呢?我这边呢是根据我们这个飞的抓包获取的啊。 我的这个参数一般外普尔。下面这就是我登录需要的参数,把这个呢获取。然后呢拷贝过来,在我们这边啊,添加这个呢,就是参数同请求一起发送啊。 然后记得在每次执行之前保存,然后运行好。这时候我们就可以查看结果啊。我们查看详细数据,你可以看我们这种 t 这种 hm 格式的,也可以用用这 stm 格式来看。那这里就可以看到您好孙孙,欢迎回来。 提示呢。登录成功。这样子的膜关于登录的脚本就好了。如果你也需要做性能测试,那么我们需要在这边根据 具体的场景需求来设定他的现成数,设定他的循环次数啊,然后设定他的调度时间。也就说这个现成属性需要根据场景来定。 本次知识输入就到这里啦,你学会了吗?还有哪些疑问,评论区留言,将一一为大家解答。

一、取样器。但是性能测试当中呢,用来去记录我们的请求数据以及响应结果,以及呢具体来说呢,这个请求的响应时间最小三元。比如说 spp 请求和 jgbc 后置处理器。用来对取样器发出请求之后得到的服气相应进行相应的处理, 包括有政责表达式提取器以及节省提取器。三、断言。用于检查测试中的响应结果是否符合预计结果,其中包括响应断言以及阶层断言。四、接天气。用来对测试结果数据进行处理和可视化展示的一系列原件,常看结果数据和报告等。

同学们,想让你的性能测试执行不只有把服务器打挂这一个结果,我们就必须用解密特做专业的性能测试分类,核心在于设计不同的压缩场景来回答不同的问题。下面这五种场景你都得会。第一,基本测试。 这是所有压测的起点,它的作用有两个,一是当你第一次对一个新系统做压测时,用单个或者很小的并发症,比如一到五个运行,得到系统在无压力状态下的性能表现,比如说响应时间、吞吐量, 这个数据要保存好,它是后续所有测试的对比精准。二是性能调优后进行回归测试前用同样的参数再测一次,和这个精准对比,就能快速发现调优是否有效。第二,压力测试。 这是最常用的,你想知道系统在持续高压下的表现,比如能不能扛住双十一的流量。在解密器里面,你只需要配置好现成组的千人数, 也就是虚拟用户数、循环次数和持续时间。目标呢,是让系统稳定运行在你能接受的较高的资源使用率下面,比如说 cpu 在 百分之八十的时候,看各项指标是否达标,会不会有内存泄露等问题。第三,覆盖测试。 这是模拟真实用户逐渐增加的一个关键场景,你不能一上来就给系统施加大压力,需要一个爬坡的过程。简秘书自带的普通性能组实现这个很麻烦,这时候建议你安装一个叫 stepin 3 的 group 的 插件, 用它来实现我们的加载加压。设置如下,开始的时候启动多少用户,然后每隔多长时间均匀增加多少用户,直到达到最大用户数并持续运行一段时间。 这个测试呢,能帮你清晰的找到随着用户数的增加,系统响应时间和吞吐量的变化曲线,从而找到新的拐点。第四,并发测试。 专门测试系统处理一瞬间大量用户同时操作的能力,比如说秒杀场景。这里要用到同步定时器, 你需要在关键请求前放置一个同步定时器,设置一个集合点。比如说你设置了一百个虚拟用户,当第一个用户到达这个定时器的时候,他会被拦住等待,直到凑满一百个用户,然后同时释放发送请求, 这样就能真正模拟出高病发的冲击,看系统是否能平稳的处理还是直接崩溃。 第五,稳定性测试。模拟系统在中等压力下长时间运行,比如说八个小时、二十四个小时,甚至更久的情况下,是否稳定?这里呢,建议大家用 utmeter 这个插件, 它能更灵活的编排不同压力阶段的组合,比如说模拟白天八小时高压力,晚上八小时低压力,循环的加压 目标呢,是在长时间的运行当中,监控系统的内存、 cpu 错误率等指标是否平稳,会不会因为累积的效应而宕积。总结来说,在真实项目里面,性能测试类型分为基本测试、压力测试、负荷测试、并发症稳定性测试。 具体做哪个类型,跟进项目要求选择即可。那么你们团队性能测试是如何执行的呢?欢迎一起来聊聊你的经验。

今天呢跟大家来说一下使用洁面套里边的 gm es pas 啊,这个这种方法去做断盐啊,还有使用这种方法呢去做提取器啊,首先呢来看一下 gm es pas 他的官网的使用说明啊,当你去搜这个 gmes pax 啊这个路径的时候呢,可以看到啊,在这里边这个呢是他的一个官网。 嗯,洁面套里边呢,也支持这一种啊这种操作。那下边的话,就是我们可以在洁面套里边呢添加一个现成组,在现成组中添加一个 htvp 请求。 好,那下边呢,举一个例子,比如说在我们的测试社区上啊, ok, 这个页面 好,在我们的这个测试社区上呢,比如说啊,我们去访问主题首页,那主题首页里边呢,这里边返回很多的数据,那我怎么去提取这这个数据啊? 好,我们先把这个请求先创建好,盖的请求啊,特别简单,再添加一个查看结果数。 好,那么现在运行运行的时候呢,保存一下我们的文件,比如保存到桌面上。好,保存。 ok, 那么现在运行呢,可以看到服务器返返回的结果。好,那这个结果里边呢啊,当然你可以使用,比如说接着拍的台词里边,可以将这个格式去呃, 格式化成间等格式,那下边呢就是要教大家使用 gm es pax 这种方式去提取里边的数据。 ok, 那在这里边呢,他支持了很多这种语法,比如说我可以直接输入这个 k 的值,可以就说输入这个 k 可以直接拿到对应的 k 的值。 ok, 在洁面套里边呢,你也可以试一下在洁面套里边呢,选择在查看结果数中选择洁粉、 gm, es, pastet。 好,选中,选中之后呢,比如说我想看啊,我们可以看到这个数据呢,这是一个返回的结果, doutlele 里边呢?有很多数组。 ok, 我直接输一个 dottle 啊, 好,点击太色,那这边的话他会把这套里边的数据都给我们啊,就是说自动提取出来。 那现在我想看一下,比如说 dotle 里边的第一个啊,比如说第一个数据,第一个数据的 id, 那我可以写个 dot 啊, 直接加上套锁引,锁引的话就是使用中括号零好锁引,比如说锁引之后呢,我想看他的 id, 那就点 id。 好,我们可以看到直接这个就是 id 的啊, id 的值。好,那这是通过呃顺序去访问里边的数据啊,那这里边呢?都有,大家可以看一下,比如说就一层一层去取啊,他特别的方便。 那下边的话就是说呢,我也可以去取,比如说,呃,我想取前五个 id, 那前五个 id 的话呢?就是零冒号五, ok, 这是,这,这样的话我们可以匹配什么呀?匹配五个这样的一个 id 啊。好,那这边他支持这个切片操作,大家可以看到啊,这是他的一个官网啊,那当然你也可以指定他的范围。 ok, 好,那当然你也可以去布场,比如说我想取啊,每格两个取一个啊,或每个或倒着去取都可以,比如说我在这边我可以再加一个,比如说二 来我们可以看一下。好,那这边的话就是说你都会去取完第一个之后去取第三个,然后再去取第五个。哎,比如说他中间可以去进行这个条步啊。 ok, 那这边的话大家可以看到星星的话是表示所有,那你也可以去直接来一个,他有多少个你就匹配多少 啊,就是通过新这种方式。好,那这里是就是说他的一些基本的语法,那最重要的跟大家来说一下啊, 他这边还支持条件查询,那条件查询是什么意思呢?我们可以看到在返回的结果里边,比如说, 呃,这个数据是三,也就是说这个话题他的呃他的一个浏览量是三,那么下边这个当我们也可以把所有的浏览量给大家来显示出来,那就是比如说 miss。 好,那这边我们可以看到有三有零,对吧?啊?那现在我想,比如说我想去找一下什么?我想去,呃,看一下 啊,大于零的啊,浏览量大于零的 id 啊,浏览量大于零的 id, 那这边的话就有可能第一个,对吧?那比如说我在这边呢,我去啊,去这个去这个网站上啊,我在比如说我把这个浏览量呢? 我多刷新几次啊?好多刷新几次之后呢,可以看到他的浏览量会增加,那我比如说我再去发送这个请求。 ok, 我们可以同样使用这个表达式。哎,大家可以看到,那这个就是说第三个啊,第三个他的浏览量也是三次, 那所以说呢,如果我想去找什么呀?我想去找浏览量大于零的 id 啊,这个就像我们在数据库里边一样, 你去查找,比如说大于年龄大于二十岁的学生的姓名啊,其实跟这个是一样的。那我现在呢,我要去找什么呀? 浏览量大于三啊,或浏览量大于零的话题 id, 也就是说呢找他的什么呀?对应的 id, 那这边怎么去做呢?我们可以看一下,在 gm e s pax 里面呢,他支持这种 啊,就是说条件过滤啊,我们可以看一下,这边也有对应的例子,那这里呢,其实就是用一个问号,问号表示是一个条件,那后边是啊,就是说这个条件,比如说等等两个等等呢?是表示 啊,等于啊,等于。那这边的话,比如说我们去找这个 ctrl 等于 rendond 的什么呀?内蒙我们可以看到这边有 a 和 b, 对吧?啊?这两个,那他是返回结果。 ok, 那在这边的话我们也可以用这种方法,那我们就用什么呀?这边呢,我们是找这个 viccont, 那就是问号 viccont 等大于什么呀?大于零 好,大于零的什么呀? id 这边呢,来我们看一下啊,就是需要跟大家来说一下,比如说当里边有数字的时候呢,嗯,这边我们要给他加上一个反向的单引号,否则他这边他就匹配的时候会爆错。 好,反向的单引号,反向单引号,在键盘的。呃, esc 下边的那个键啊,注意不要,不要敲错了啊,他是这样的,好在英文输入法下啊, ok, 我们再去测试。哎,我们可以看到是 两个 id 啊,这个就是通过条件去过滤啊,通过条件去过滤,那当然了,在这边呢,我们也可以去 你使用啊,比如说也可以使用。呃,比如说我们去做这个上下游船舱,那上下游船舱的话,你可以在后置处理器里边的使用 gf, gm, espes 啊,这样的一个 提取器。 ok, 那他的表达式,表达式其实就是刚才,比如说我现在要把这个 id 呢拿出来,拿出来之后呢,我可以在这里边呢去。 ok, 这是他的一个路径表达,是直接复制过来就 ok 了,可以给他再起一个变量,比如说 id 啊 id, 那我们要匹配哪一个?比如说匹配第一个啊,第一个。好,那他匹配两个,我们可以去找一个,对吧?好,那这边比如说这个是画 题首页啊,这个接口。好,那我们再看在这里边呢,其实你做上下游传餐,这这个也是我们在企业里边经常去去碰到的问题, 那下边我再去做主题详情,主题详情的时候呢,需要有一个什么呀?需要有一个话题 id, 所以说在这里边呢,我需要把这个 id 值呢从上边提取出来,比如说你给他一个不存在,他就给你返回不存在,对吧?好,那我们把这里边呢再做一个接口, 第二个接口,好,添加一个 app 请求。 ok, 把它直接复制过来。好,那在这边呢,我就可以直接用上一个接口提取的这个什么呀?变量,比如说 id, 那就直接使用 id 这这种方式。好,那我们现在把这个查看结尾数拖到外边,再加上一个 调试取样器啊,我们第八个三炮。好,我们现在来运行清空执行。 好,可以看到第一个话题详情,现在把它转换成文本格式。 ok, 那看一下调试取样器,调试取样器的响应结果里边我们可以找到这个 id, 对吧? id 就是匹配到的这个 id 的值, 那我们在下一个接口中呢可以看到啊,这个 id 其实就是这个 c 二 d f 九啊,调试取元器里边 c 二 d f 九。好,那我们通过这种方式也就通过接诊 gm e f pas 这种方式呢?我可以 有条件的去查询,查询这个结果,从服务器返回的结果里边去进行过滤。那这样的话也可以就是说我们常说的啊接口里边上下游喘餐,或者是接口里边 上下游传餐的时候,如何去动态传餐啊?动态传单,那通过这个 gm es pax 啊这种提取器可以来实现, ok。

同学们,做性能监测时,你是不是只会看解密特结果书里面的响应时间?这远远不够,真正的瓶颈往往在服务器内部, cpu 是 不是爆了,内存有没有泄露?要想找到并解决性能问题,你必须学会监控服务器资源。今天讲三种从简单到专业的监控方法。第一种,最快速直接用 linux 的 top 命令, 这是最基本的实时监控,在你压侧的同时,用叉袖或者翻斗袖登录服务器,在命令行里面直接输入 top 回车, 你会看到一个动态刷新的页面,重点关注这几行,百分号。 cpu s 这一行看总体的 cpu 的 使用率, 如果 us, 也就是用户进程占用长期超过百分之八十,可能艾玛有瓶颈。 k i b m e n 这一行是看内存,关注 used 和 free load average 是 系统赋值, 如果这三个值持续高于 cpu 核素的两到三倍,说明系统过载。 按数字一可以展开看每个 cpu 核心的详情,看完按 q 键退出。这个命令能让你对服务器当前状态有一个及时的整体的一个判断。 第二种,专业的工具,监控用 room 或者解密器的 prono 插件。 top 命令呢?只能看个大概,且不能保存历史,你需要能记录和分析的工具。 home 是 一个强大的单机监控工具,在服务器上面运行点斜杠 home 启动,然后按 c 看 cpu, m 看内存, n 看网络,它会实时的刷新, 但更常用的方式是记录模式运行点斜杠 home 杠 f 杠 t 杠 s 五杠 c 幺二零,意思就是每五秒采集一次,共采集一百二十次,持续十分钟, 结果会保存为一个点 nom 的 文件,把文件下载到本地,用 nom 的 分析器打开,就能看到各种的资源随时间变化的曲线图,就非常的直观。 imedi 的 perform 插件,如果你想在解密的测试报告里面直接看到服务器的监控图,就用这个, 需要在服务器上启动一个 serve agent 代理,然后在解密里面添加一个 perform matrix connector 监听器, 配置好服务器的 ip 和端口,选择你要监控的指标, cpu 内存,磁派, i o 等等。这样的话,亚特执行的时候,资源使用情况就会和 tps 响应时间曲线同步展示在同一个报告里面,方便你对照分析压力和资源消耗的关系。 第三种,企业级的可视化监控,搭建杰米特加 inflex db 加 graphing 看板,这是最专业最炫酷的方案,适合持续集成和长期监控。 它的工作流程是解密器压测时,将测试数据比如说 tps 响应时间实时地推送给持续数据库 influx db 中保存,然后用数据格式化工具 graphing 连接 influx db, 配置出实时刷新的带各种图标的大屏看板。 部署的步骤的话分为以下几步,第一呢,安装并启动 influx db, 创建一个测试数据库,比如说就叫解密器, 然后安装并启动 graphine, 添加 influx db 作为数据源,然后再在解密器里面添加一个后端监听器,选择 influx db, 实现填好 influx db 的 地址和数据库的名字,最后在 graphine 中导入或自己配置一个解密的仪表盘, 选择你刚创建的数据源。之后只要你运行解密测试 graph 呢?大屏上面就会实时地跳动显示压力的曲线和服务器的资源的一个曲线,所有的指标就会一目了然。总结来说的话,快速排查,用 top 命令 做单次压测的分析,用 null 记录历史数据,或者用 performo 插件与解密器结合, 追求自动化、可适化和团队协助的话,就搭建 jmeter 加 inflex db 再加 graph 的 这套监控生态,把资源监控和压力测试结合在一起,你才能够真正的定位和解决性能瓶颈。 那么你们团队性能监控使用的是什么方式呢?欢迎一起来聊聊你的经验。

学习 geometry 不 用死记硬背,盲目自学,只需要吃透这四个核心阶段,轻松玩转性能测试工作,面试直接少走九成弯路。 第一阶段,基础认知,掌握 geometry 环境安装核心组件原理,弄懂现成组取样器配置原件监听器的用途,熟练搭建 http 接口请求,完成基础发包与简单接口调试。 第二阶段,进阶实操,重点掌握参数化接口、关联、断言、 cookie 绘画四大核心技能,搞定动态参数提取批量请求结果较验,适配真实业务多接口串联场景。 第三阶段,性能压测,熟练设计并发场景,阶梯加压、持续稳压,灵活配置现成数加压时间、循环次数,通过聚合报告 t p s 响应时间、错误率,精准分析服务性能瓶颈。第四阶段,高阶落地, 掌握分布式压测定时器、逻辑控制器脚本优化,学会打造企业级压测脚本,搭配 c i 集成定制化性能报告, 适配项目全流程自动化测试。针对这四个阶段的学习重点,这份文档包含了从入门到进阶的全部干货,把 g i m t 的 操作细节与实战技能都拆解的明明白白。

今天分享解密它常用的四种断言的方式,断言的意义在于我这个接口执行之后,我想知道它是成功的还是失败的,我就要加断言来判断接口是否成功,那添加的方式是在接口右键点添加点断言, 常用的有响应断言、接受断言以及这个持续时间的断言,也就是响应时间的断言。 响应段也是说我们来校验接口的返回值里面是否包含某个字段,或者是返回值是否正确,或者是校验接收的某一个具体的值, 比如说这是接口返回值,我想要校验说这个返回值里面包不包含扣的零,或者是包不包含 success, 那 我就可以在右键添加响应段里面我去选择响应文本,然后包括扣的零, 或者我可以添加 json 段言去较验具体的某一个值,比如说然后这里面这个 user id 等于一二三,我想较验这个 user id 的 值是不是一二三的时候,那我就可以右键去添加 json 段言。 json 段言里面我可以在这里去写 json 的 一个路径, get 点 user id, 然后我这里勾选要较验这个值,如果不勾选这样值的话,它不会较验 user id 具体的值的, 所以我勾选了它,这里去写上我具体想要让它较验的值,就会帮我判断 date 点 u z id 这个路径是否存在。另外就是这个路径它的值是否等于一二三, 那如果勾选了这一个的话,这个意味着说我这里填写的是一个政策表达式。第三种是状态码,断言这个状态码也是在右键可以添加响应断言,这里选择响应代码,比如说我强校验它的响应代码是不是两百的时候, 这个响应代码它跟刚才的这个 code 不 一样,刚才这个 code 冒号零,这个是我们自己在响应信息里面去自定义的一个 code 码,但是它并不是响应代码,响应代码是在响应数据里面的这个接口的,这种响应码 一般都是两百、五百之类。第四种的话就是响应时间了,响应时间这个在性能里边它用来校验接口是否嗯,慢, 也就是说当你想要要求接口必须要小于等于五百毫秒,那你就可以用想要时间,用这个想要时间的这个断言,那我们在这里写五百,他就会去较验,想要时间大于五百的时候就会判定他失败。

今天面了个自称做过性能测试的,简历上写着熟练使用 gemiter loadrunner, 结果我一问,性能进阶题直接露馅儿了。 我问他压测时发现 pps 上不去,响应时间也超标,但服务器、 cpu、 内存使用率都不高,你怎么排查?他想了半天,只说增加并发症, 完全没思路。这就说明他只做过基础亚测,没处理过真正的性能瓶颈。其实这道题是大厂性能面试的高频进阶题,很多测试都会栽在这里。正确的排查思路分四步,一步都不能少。第一步,先检查网络贷宽,看是不是贷宽不够导致请求被堵塞,尤其是高病发场景下,贷宽容易成为瓶颈。 第二步,查数据库,看是不是有死锁,事务未提交或者慢查询太多,就算服务器资源卡顿,也会拖慢整个系统。第三步, 查接口本身,看是不是接口有串行堵塞,没有做异步接口,导致请求排队等待。第四步,检查压测脚本,看是不是模拟的用户行为不真实, 比如请求频率太快,没有设置思考时间,导致压测结果失真。性能测试不只是简单压测,更要会排查复杂品鉴,这才是高清测试的核心能力。 我把性能进阶的面试题瓶颈排查思路、优化方案整理成了专属题库和资料,想要的评论区扣。性能进阶我直接发你,帮你突破性能测试瓶颈。

你们压力测试是怎么做的?我们压力测试主要是去发多条数,去看 mq 和 radis 里面能不能进行正常的消费。嗯,你,你们一般是怎么去测试你们的服务上线的? 测试服务上线就服务家服务性能的上线吗?你们也是怎么制定的标准啊?这个服务性能的上限啊,我给大家说一下,我给大家仔细的写一下啊, 这道题呢,就是他想问的就是服务性能,比如接口的瓶颈啊,以及调优的方案,他就想问这个东西其实怎么去测试,比如说我们用杰米特去做性能调优,先对接口压测啊,了解到一个接口日常 的 gps 啊,假设是假设是七十哈,七十 gps, 然后压测就梯度压测 的时候发现最高峰啊,拐点就是 七十,然后响应时间,时间是啊,比如说一秒啊,这种就是慢,就是慢查群的啊,如果大家会会那个做过性能测试调优的啊,马上就能知道这是慢查群啊,这是其中一种最大的一个可能性。然后 cpu 的 就是服务器的 cpu 使用率是比如说九十,百分之九十,这是一个一套话术啊,大家都可以这样去说哈,就只要学过新的知识的啊,学过卖查询的,大家都可以按照我这一套话术去说啊,绝对没有问题啊,服务器的 cpu 使用率是百分之九十啊,这个时候你就要思考了, 一般这种情况就是存在性能瓶颈的,就需要做调优,首先会会考虑到数据库的慢查询,我就去查看慢查询的日记,找到对应的 慢查询语句。慢查询语句啊,这个怎么找呢?比如说超过一秒的这种收口语句都是慢查询,找出来之后分析收口语句,我们发现没有做所以的创建,所以导致 的慢查询的产生,所以以后我们提交给开发,开发修改后,我们附件我们验收好的就直接到验收结果了,验收结果就是接口日常 能压到压到三百三百 tps, 然后响应时间为两百两百多毫秒啊, cpu 使用率啊,大大下降, 可能可能就可能就只有百分之七十,然后百分之六十,这不说 cpu 使用率也行啊,就就这样响应时间为两百多毫秒,这样的话就能够把整个就是发现性能平静 啊,然后进行调优,最后再验收啊,从从七十 tps, 七十 tps 调优到三百 tps, 然后把响应时间一秒钟给他调优到两百多毫秒,这就是一个真实的一个案例, 就这样去跟他讲一下,他就想听到这样的一个答案,这样答出来就是高新啊,就是高新他,但是他可能会问,你,继续问你,迈腾学有哪些情况啊?你有哪些调优方案啊?这一块的话要先把我的课看一下,好,我这个文件,这个 课间的话都给大家分享的哈。啊,这麦斯科的啊,你看这里面的麦查群啊,我都写的很清楚啊,这可以直接领取啊,在我这领取,这里面麦查群啊,麦查群, 你看有什么问题,所以问题咋?所以问题是不是刚刚讲的第一个问题就是我们的所以没有创建?第二个呢,数据库表结构的问题, 第三个呢,数据库参数配置问题,还有第四个查询语句的写法问题,慢查询就这四个问题,你,你把这四个问题做到了啊,把挨个去对比啊,看他怎么去调优,能够解决慢查询的问题。那么这就是调优的方案啊,这也是瓶颈的解决方案,这个课间可以找我,你选。 ok, 继续听。 好像没有太,我说的上限是说就是,呃,你们那个怎么看?你们的性能极限是是是,多少?是主要是想用这个,哎,性能极限就是我刚刚说的嘛,对吧? tps 的 极限也是我们的响应时间的极限啊,响应时间的这个瓶颈 啊。 tps 就是 我们刚一个接口,它最高就压到九十,因为 cpu 都达到百分之九十了,就七十啊,最高压到七十, cpu 的 使用率就达到九十了,所以这块一定上不去的啊,因为他的资源都用完了。 那,那你跟他说你们主要看 m q, 这个是你们主要测试这个消息,消息的对,消息能不能正常的,就是消息能不能正常的推送进去,然后他能不能进行正常的消费,在数据库里面有没有进行正常操作 啊?其实这一块答的不好啊,他其实没有把我想表达的意思说出来,如果这块让我来答,我会怎么答呢?比如说我们就说一下 m q 啊的压缩这块,我会说我们我们会用 jimmy 对 m q 这个接口啊做压缩, 然后啊我们先发送上千的一个这个消息啊,发到我们的 m q 里面去, m q 的 容量呢?我们设置为五百啊, 这个时候有很多消息都进不去,那么这些多余出来的消息会找一个数据库给它存下来啊。最后当消息消息队的容量降低之后啊,消息队的里面的消费,那个数据被消费之后,我们还会把数据库里面的数据提出来,再放到我们的消息队里面继续消费啊,这想这就是我想表达的一个意思, 我们重点是要去测试消息对接,在极限的这个压力的情况下,它能否和 reddit, 能和,能否和数据库正常地去使用啊?我们测它的功能是否正常,而且我们要去测什么死性啊?啊?测什么这个数据流转啊?还是测什么那个 republic 啊,对吧?这都是我们要测的一些重点, 它是没有表达出正,没有表达出来啊,它只是说说了一下什么消息对接的基本的功能,它没有把我这一套意思表达表达完整啊,那这块我都在这个课典里面都写得很清楚啊。 没关系,但是问题不大啊,你大致的说一下也是不错的啊,那你们平时的一些就是功能操作啊,这肯定也会遇到一些接口调用吗?那这些,这这些上面是不会去做压力测试的是吗?不会,针对 m q, 呃,这方面的话,可能他是,他是想问那个接口的压测,就是刚刚我给大家说的一个性能调优啊,大家可以直接按照我这个模板去答就 ok 啊,没有问题,绝对没有问题。

如果你连电脑用的是这个 windows 系统,那么这个设置一定要关闭,因为它经常会让你软件无响应,直接卡死,还会占用你大量的 cpu 性能。 它就是微软自带的错误报告,它会在后台拉满你的 cpu 占用,即使你上传了错误报告,它也不会给你解决。点击开始菜单, 搜索菜单,输入服务,点击服务一直往下拉,找到这个 windows 错误报告,双击先把它停止,然后选择恢复,把它的重新启动,全部改成无操作天数设置是越长越好。点击应用, 确定还没完,它在你的本地主策略里面还有残留搜索栏,输入主策略,点击主策略,点击管理模板, 在左侧选择计算机配置,点击管理模板,点击 windows 组建。里面还有一个 windows 错误报告,我们展开它右侧,点击禁用错误报告,这是为配置,我们点击已启动,确定最后一个,我们不让它发送额外数据。双击,同样把它禁用确定,这样你的电脑就正常了。

性能测试 gm 入门到精通第二集,呃,大家好,我是土匪啊,那么上节课给大家讲了这一个,什么是性能,什么是性能测试,那么这节课我们继续往下来看啊,那么我们了解完什么是性能,什么是性能测试之后啊,接下来我们来了解一下啊,常见的一些性能测试指标啊。 那么常见的性能指测试指标呢?呃,一般有以下几点啊?第一个是响应时间啊,这是一个最常规啊,用的最多的一个指标,是用来衡量系统的这一个处理效率的啊。 然后第二个呢,是像 t p s, r p s, q p s h p s 这些啊,大家可能经常会见到和接触到的,但是又分不太清楚的一些啊,和吞吐量有关的指标。然后第三个呢,是我们日常这一个用户数据相关的啊, p v 和 u v 啊,那么我们首先来看第一个响应时间, 那么对于响应时间这个指标来讲呢啊,定义非常简单啊,就是从你开始发送请求,从你发送请求开始啊,到你接收到啊,或者接收完服务器响应的一个时间啊,这里我用了两种描述,一种叫接收到服务器的响应,一种叫接收完的服务器的响应啊,那么 呃,很多人呢,做性能测试的时候,他不了解这个过程啊,什么叫接收到服务器响应呢?这里就会涉及到一点啊,以 http 啊,这一个协议为例啊, http 呢,他在这一个建立的,他的一个通信过程中啊,他其实是分为五个步骤的啊,连接的建立,然后连接的这个数据的传递,然后这一个 啊状态的响应回复吧,然后接下来是这一个数据的接收,最后是可乐子啊,反正是有五个这样的一个过程,五个这样的一个过程啊,那么对于我们来讲呢,其实这个过程中间 的过程我们并不是特别关心,我们只关心什么呢?哦,我开始发送请求, ok, 这个是需要去计时的,那这个计时谁去做呢啊?是由我们的性能测试工具去做的啊,然后啊拿到响应,拿到响应啊,那么在这个过程中呢,拿到响应,这里业界是有两种不同的一种 啊统计口径的啊,一种呢是把所有服务器响应的内容全部接受完毕的啊,啊,这个是一种。另外一种呢,就是我认为呢,这个从拿到服务器的响应的第一个字节,这一个时间啊,他更 能将更能够更加精确的去表述或说去描述服务器处理这个请求的时间,因为我拿到第一个响应字节,然后再把所有的数据接收完毕的这个时间啊,这个时间呢,一般我们管它叫 receive 的时间,它是和我们的这个客户端啊,和服务器的这个带框 是直接相关的啊,和这个内容的大小直接相关的,你内容越多,接受的时间越多,你的带框啊越差啊,那么接受的时间越多,那么这一部分的时间呢,往往和服务器本身和我们测试的对象这个系统啊,我们的软件是没有什么太大的关系的,或者说是完全没有关系的啊, 所以呢,在这里会有两种不同的一种啊统计方式啊,这个大家弄清楚一下。那么对于响应时间来讲呢,其实在概念上弄清啊,了解之后,我们在脑海里面啊,是需要有一个这样的过程去想一下的啊,去想一个东西,这是我们平时 啊请求发送了,对吧?从发送开始,从发送开始啊,到这个结束,这个时间的计量啊,首先是有工具做的,对不对啊?他我们管他叫请求的结束时间,减去请求的一个开始时间, 是啊,一个相对啊共就相对比较准确的一个值,但是呢这段时间包含哪些内容呢?第一个啊,连接的建立时间,这个连接建立呢啊,他会包括客户端 啊,受到客户闹的一个性能的影响,然后呢啊他会受到网络状态的一个影响,然后连接建立之后啊,连接建立的过程中他可能还需要做 dns 的解析,对吧?比如说呢要做啊,如果像 ssl 协议的话,他还会涉及到啊 ssl 隧道的一个建立,就是这个通信建立啊验证权限的一个过程, 如果涉及到像 f t p 这样的,它会有一个 f t p 的权限认证,诸如此类的啊,这个都是会放在这个连接建立的一个过程里面的连接建立的过程啊,然后呢接下来就是数据的发送这一部分的时间呢,收到客户端和服务器之间的网络的影响,但是呢基本上时间是很小的,因为我们日常 作为测试来讲,除了像上传文件这种特别的啊这种业务啊,其他业务我们客户端向服务器发送的数据都是比较小比较小的啊,耗费的时间是比较少的。 然后第三个呢啊,到了服务器端,这个时候大家可能就得弄清楚啊,因为在服务器端可能会有很多不同的架构,比如说啊,有这个 word 服务器,或者叫前端服务器,对吧?像有些公司用 ngx, 有些公司呢直接用 tomcat, 有的用 httpd 啊,诸如此类的都会有。 然后接下来到了这个 word 服务器这里呢,他向后他可能会有网关服务器,对吧? g w 啊,网关这里呢?再往后一般就到了应用节点应用服务器了,应用服务器这里呢? 呃,其实在网关和应用服务器中间可能还会有像消息对列啊啊,像缓存缓存啊, redis 数据库啊这种啊,然后最后呢就到数据库 这个具体啊,具体的东西呢,每个公司啊,每个业务,每个系统都是不一样的,这里呢?啊,作为一个性能测试工程师来讲啊,我们是需要去了解这一块过程啊,你不能说啊,相应时间我看到是五秒就是五秒 啊,如果只是做到这个层次啊,你没有办法去做后续的这种分析定位,你得在脑海里面,你得弄清楚啊,响应世界会有哪些部分构成,将来万一出了问题,对吧?万一性能不达标,我们知道啊,应该从哪些方向去进行左手去分析,去找到问题所在啊, 就是响应时间的一个基本的概念,然后接下来呢叫 t t b f f b 啊,这个词大家在很多工具或者在很多报告里面都会看到啊,他叫 time to first buff 啊,这就是我刚才说的啊,响应时间呢,有一种统计方式,就是从我们请求发送开始到接收到服务器的响应的第一个字节,所以叫 time to first buff 啊,第一个字节的一个时间,第一个时间啊,然后过程,这里刚才已经给大家做了一个简单的解析啊,这里大家可以看一下,然后最后呢,在响应时间这里呢,我们还会在日常统计过程中啊,会有两个非常重要的词,一个叫啊 啊 r t, 或者叫 a v g, a v g 啊,我们日常可能会叫平均值,或者叫平均响应时间啊,这个简称呢? response 啊, response time, 简称 r t。 然后第二个呢叫 pct 啊,叫 pct, 叫 pensant pensant 啊, pensant, 百分比的一个时间,百分比时间啊,那么这两个东西呢,它有不同的应用场景啊,日常中啊, 平均响应时间这个东西呢啊,从统计学的角度是没有任何问题的,但是对于性能来讲啊,我们单纯的看平均响应时间,很多时候可能是不够的,尤其 是啊,那我怎么老师我怎么去判断这个平均详细时间?他是可用还是不可用啊?可信还是不可信呢?我们可能就会要用到数学上的一个知识,叫做标准方差, 标准方差啊,那么标准方差越小,平均值的可信度就越高,因为标准方差它是用来反映数据的一个离散程度的,这个离散就是相对于平均值来的啊,相对于平均值, 所以如果方差越大,那就表示那这一个数据的离散程度就越大啊,越大的话呢,这个平均值就没有意义,就好比我们在座的同学啊,随便拿几个人和我组个队,我们九个人,再加上马云十个人,对吧,我们这十个人,我们的平均资产可能是啊,上百亿 啊,上百亿啊,但事实上这个我和你有没有上百亿的资产呢?并没有,对不对?那此时此刻呢,你去看这一个标准方差,那就是啊,我们的零减去这个平均值括号平方之后再求和啊,就是 那个公式,大家可以自己去百度一下,我这就不给他去罗列了啊,那么最后算出来,只估计啊上百万,上上亿都有可能,我算一下应该是上百万、几百万的啊,将近是三四百万的一个 方差值,而我们这一个平均值,对吧?平均值才一百万,那这个一除一笔啊,就大于一了,大于一的话,这个标准啊,这个平均值的可信度就 很低了啊。那么在这种情况下,在这种情况下,为了更好的去衡量我们被测系统它的性能啊,从详细时间来讲,这个详细时间这个指标是否能够达标,我们就会引入另一种叫派森特 啊耐,或者叫 p c t 的一种时间。它的做法很简单啊,就是把所有的相应时间从小到大去进行排序,排序啊,排序完之后呢啊,取百分之九十,百分之八十啊,你指定的一个百分比 的一个区间,然后呢他就会获取到一个响应时间的值,那就表示,比如说百分之九十,那他就拍成的百分之九十啊,拍成的九十,他就表示什么呢?表示我们所有的数据里面,百分之九十的数据是小于等于 p c t 九十,然后剩下的百分之十的数据是大于等于 pct 九十的,就类似于一个这样的概念啊,那么像我们刚才说的马云和我们,对吧,百分之九十的人啊,他的资产可能也就是个零或者是个几万块钱,是吧?百分之十呢?可能是啊,几千个亿。 好,那从这里我们就知道这个平均值已经没有任何可信度了,那么性能也是一样的啊,我们很多时候并不能够通过平均响应时间去碰到啊,我们的系统的性能是好或者是坏啊,那老师,那这样这样的话平均值就没有意义啊,这个必须得说啊,平均值他的获取统 是一个比较简单啊,对于大家来讲呢,也是比较能够认可或者比较啊,了解的比较清楚的啊,怎么得出来的一个值?所以我们是一般是初步先用平均值,然后啊,当你发现平均值不可用的时候,我们才考虑去用 p、 c、 t 来作为这一个相应时间的一个 这一个指标啊,碰到依据吧,或者说一个维度,好吧,好了,那么这就是我们日常啊,对于响应时间在性能领域的一些基本的概念啊,就给大家解释到这里啊,谢谢大家。

大家好,我是土豆,今天想跟大家聊聊另一个我最近在用的 skill, 专门用来生成性能测试分析报告的。事情是这样的,做性能测试的兄弟姐妹应该都有过这种体验,押测跑完了, jimitter gatling 或者云押测平台里一堆曲线和数据,结论得自己总结,报告得自己写, 而且报告格式还不统一,有时候用 word, 有 时候贴几张图加几段话,领导和开发看起来全凭悟性,更头疼的是指标解读响应时间多少算正常, tps 到多少才算合格?瓶颈到底出在操作系统中间件还是数据库调优建议怎么写才不显得像套话? 再加上时间本来就紧,既要盯着压测执行,又得赶在评选前凑出一份能看的报告,加班凑文档都快成常规操作了。 所以我就想,能不能让 ai 帮我干这件事。你提供压缩结果的截图,再加几句简单的文字说明,比如什么场景用的什么工具,重点关注什么, ai 就 能帮你做指标解读、瓶颈推断、优化建议。最后输出一份结构固定、可以直接分享的 html 报告, 这就是我今天想分享的 performance test report skill。 在 cursor 里面,通过这个 skill 把截图加描述,变成一份专业的性能分析报告。它主要做三件事,第一,读取你的压缩结果,支持一张或多张截图, jmeter 聚合报告、 getling 云压缩平台的大盘都可以,再加上你补充的场景说明。 第二,做专业分析。他内置了一套性能测试知识库,包含指标含义、行业参考值、平静分析顺序,调优方向,他会从截图里提取关键指标,按操作系统中间件、数据库应用的顺序做分层推断,最后给出可操作的优化建议。 第三,输出标准报告。一份 html 格式的报告,包含压测、概述、截图与说明、瓶颈分析、优化建议、总结与后续建议。版式固定,给领导看、给开发看,或者打印成 pdf 都行。这个 skill 解决的核心问题有三个, 一、报告产出效率。从自己整理数据手动码字变成提供截图和说明,然后拿到一份完整报告。二、分析规范性分析,逻辑和表述方式,由内置的知识库约束,减少遗漏和随意发挥。三、格式统一。每次生成的报告都基于同一套 html 模板,团队沉淀和对外呈现都方便。 好了这个 skill 的 完整配置,提示词模板,还有我用的性能分析报告、 html 模板,我都整理成了一个 md 文件,需要的小伙伴可以关注我。

今天想分享一下默克是什么?怎么使用?默克是在测试过程中构造了一个虚拟对象,虚拟接口用来代替真实的服务接口或依赖,从而让测试可以独立可控的进行。 简单的解释就是说我们正常情况下是发送请求到后端的服务器,然后后端服务器返回响应。 使用 mock 的 情况下是这样子的,我们发送请求之后拦截这个请求,然后返回自定义的响应。先分享几种可能会用到 mock 的 场景,然后再说 mock 怎么配置。 第一种是当我们想要去做一些稳定性要求高的自动化测试的时候,比如说你不想因为一些三方失败而引起你的脚本跑失败,那你就可以去用 mock。 第二种是你想要去测试左移,前端代码写完了,但是后端还没写完的时候,你可以自己去构造这个依赖去测试前端的代码, 或者是前端自测,你可以自己去写代码去做单元测试。第三种的话是你想要去做异常场景的覆盖, 如果你正常的从前端发起请求,很难去复现,比如说接口返回五百这种 场景,那你在这种情况下你就可以去用 mock 来直接返回五百。第四种情况下就是做复杂业务链路验证,比如说你的一个链路是下单支付发货,然后通知, 如果你只想去测下单逻辑,而不关心后面的逻辑,比如说支付是否真的成功的时候,那你就可以 mock 支付结果。我们先分享一下在自动化测试脚本里面怎么使用 mock, 我们可以使用 unit test 点 mock 这个包,然后先定义一个测试方法,这个测试方法里面我们先定义出来 我们想要返回的一个 jason。 这段话的意思就是说,当我的脚本发起的是 request 点 post 这个方法的时候,那我要去返回这一段。 jason, 我 在这里去调用这个配方法的时候,这个配方法里面有 request 点 post 这个请求, 那我调用配方法的时候,那我返回的请求就不会是真正的支付的请求,而是这一段这一个结算怎么串了,然后 result 的 值就等于这个, 那最后我们去断言 result sitars 是 否等于 success, 这个应该是返回处的。然后另一种方式我们可以去使用抓包工具,我拿这个叉 s 举例子,比如说这个接口是你想要 mock 的 接口, 那你在这个接口的位置右键选择 maplocal, 然后打开一个弹窗,在这个位置我们去选择一个本地文件就好了。本地文件你可以是你自己的一个 jason 字幕串,也可以是 html 页面等。

每天一个网络安全小课堂,今日内容, burp sweet 的 重放和 intruder 模块讲解。上节课带大家认识了数据包构造,这节课将带大家学会操作 burp 的 两个核心功能,重放器和 intruder。 我 们需要进行测试数据包的时候,可以点击右键发送至 repeater, 或者直接选中后使用快捷键 h 加而来,将数举包复制到重放器进行重放测试。这个界面可以对数据包进行修改。我们可以通过修改数据包发送后观察服务器的响应来判断测试是否有效。有几个常用的按钮用于 操作数据包,比如点击发送可重放该请求。可以通过这两个按钮来查看。过往发送过的数据包,用于和当前的进行对比。 在测试延迟、注入漏洞或 sleep 命令的时候,可以通过服务器响应时间来进行判断。可以对数据包的任何内容进行修改。我们一般会关注数据包的参数和值, 通过返回这两个响应来判断我们的每次修改服务端做出了什么样的响应。我们可以通过修改端口为八零或四四三来将请求设置为 http 或 http。 如果直接修改数据包用于别的网站,务必需要对主机进行修改。如果想在数据包内寻找特定的值, 通过下发的 search 来进行查找。如果有时候发现数据包发送失败,可能是由于网站强制使用了 hddpr 的 协议, 我们可以通过点击进行切换。某些情况,我们可能需要批量的对数据包进行操作,比如修改某个 id 的 值,又或者对密码进行爆破时,我们可以将数据包转至 intender 模块进行操作。转至 intender 模块后会默认填写, 通常不需要进行修改。进来后我们可以先点击清除 payload 值,因为 barp 有 时会判断错我们想进行操作的参数,选择我们要修改的值后,勾选添加 payload 值即可。如果我们有爆破字典,选择简单列表即可。 如果我们又遇到有规律的数值,比如 id, 我 们就可以选择数值模式、数值范围进行配置。如果我们只是单纯想发送固 定数量的 payload 的 时候,可以选择 now payload 进行固定数量的发送,也可以复制 payload 以换行为间隔直接进行粘贴。还可以通过直接导入密码本进行批量添加 payload, 然后通过手动输入数值进行添加。一般默认的配置为实现层无间隔的请求,我们可以自己配置资源池,比如设置并发请求数以及设置请求间隔。因为如果高频请求可能使服务器崩溃,所以设置间隔和并发数,这里的并发数为一千比一的秒数。 比如,当我们需要对数据包进行并发操作的时候,可以选择 no payload, 并设置数量为二十个使用默认配置的实线层即可。当都配置好之后,我们可以直接点击开始攻击, 然后会弹出这个界面,用于观察我们的攻击结果。当需要进行数据包保存的时候,可以在这个功能进行选择我们需要保存的内容。

无感知扫描,也称隐身扫描,是通过特定技术手段,在不被目标系统轻易察觉的情况下,探测其网络拓扑、开放端口服务及漏洞的过程。其核心在于规避防火墙 入侵检测系统。 i d s s y 扫描,半开扫描发送 s y 包制目标端口若收到 s y, a, c k 响应,则判定端口开放, 但不完成三次握手。优点,隐蔽性强,不建立完整连接,难以被日制记录。 f i n 扫描 发送带有 f i n。 标志的 tcp 包,关闭的端口会返回 r s t 开放端口则无响应。利用 tcp 协议特性,绕过简单防火墙规则 xmas 扫描发送同时带有 f i, n, u, r, g 和 p s h。 标志的圣诞树包关闭端口回应 r s t。 开放端口沉默,可绕过部分传统检测机制 no 扫描发送无任何标志位的 t c p 包。 行为逻辑与 f i n。 扫描类似,用于规避基础检测分片与慢速扫描。将扫描数据包分片传输或拉长扫描间隔,降低被流量分析识别的风险。