00:00
那接下来呢,我们就来下载安装解密特,并使用它呢,进行一个压力测试,那首先要使用解密特,我们就得先来,我们来搜索解密特,我们先来下载它,来到它的这个官方网站,是阿帕奇解密特,我们点进来要下载呢,找到它的这个download的页面,这个下载呢,我们来看一下这个解密特,它也是使用Java来写的,所以我们先需要我们JAVA8以上的环境,然后我们来下载它的这个二进制,我们这个ZP压缩包,这一块呢,是它的源码包,别下错了,好点击这一块进行下载就行,我的这个呢已经下载好了,给大家放在了我鼓励商城这个软件里边,我们这儿有一个来看一下,这有一个这个阿帕奇解密特,那要使用它呢,直接解压就行了,解压到我们解密这个文件夹。来稍等他检验完成,那点进来我们也不用做过多的配置,直接点进来,我们来到它的这个be目录B里边都是一些可执行程序,它里边呢有一个解密特bet,这个解密特的批处理文件,我们来把它点开。
01:04
这样呢,我们解密就启动起来了,无需做非常复杂的这些配置啊。那启动起来呢,我们就长成这个样子,而且呢,为了大家方便使用,我们解密也做了我们这个中文语言的这个国际化,我们来到这个truth language里边,我们来选择语言,我们来可以使用我们简体中文版,这样呢,我们初学起来就简单多了,好那我们如何进行测试们解密的使用的步骤,我们先得来进行,我们第一步我们要测试呢,我们先得创建我们的测试计划,这呢有一个事例的测试计划,好我们就叫test plan,假设呢,这个测试计划我们想要测试,那测试呢,我们都是。模拟有多少个人同时来请求我们某一个接口来测试它的性能如何,所以呢,我们测试的第一步,我们先要在这个测试计划里边,我们先来右键添加这有一个现成用户组,我们添加一个现成组,这一块呢就是来模拟用户的,我们可以给这些线程组呢起一个名字,给一个什么注释,这一块都没什么意思。
02:06
然后主要来调节我们这一块线程属性,比如线程数,我们来写一个200,那就是来模拟200用户同时进行访问,它还有一个RA up这个时间,这就是我们这个200个线程要在多少秒内启动完成,如果我们写一个十秒,那相当于呢,每秒启动20个线程,十秒内呢,把这200个线程启动完成,我们来开始压力测试,那比如我们来写一个一秒,包括这一块循环次数,如果我们勾成了永远,那这样呢,它就会一直压力测试下去,直到我们点击这个stop它才停止,那如果我们不写永远,我们也来写一个100,这个100呢指的就是每一个线程发多少个请求,那现在有200个线程,每一个线程呢要循环100次,那总共呢,相当于发2万个总请求,这就是我们来创建的一个线程组,那这样呢,我们就有一个固定请求数。
03:01
我们现在固定2万个请求,我们来测试好,有了线程组以后,我们接下来要给它线程组的里边,我们这儿可以点击添加,这有一个取样器,这个取样器那就是我们要测试什么,比如呢,我们有测试HTTP请求,那我来点击测试HTTP请求。那相当于呢,我们就创建了一个压力测试的目标,那么这一块的协议,比如我们测试的是HTTP,那我就来写一个HTTP。服务器的名称或者IP地址,比如我们想测试百度,那么就来写3W点百度点。com,包括呢,端口我们默认呢来测八零端口,不写端口,那默认就是八零,包括呢,如果是测百度下边某一个路径,我们还能在这儿指定上路径,那没有呢,我们就在这儿来写好。包括如果我们发请求的时候有什么请求参数,我们在这也可以添加好,这样呢,我们创建了一个HTP请求,那么就可以来进行压力测试,但测试完了以后呢,我们想要看这些测试指标,所以呢,我们还是要在这个线程组下边,除了添加我们的这个叫取样器,我们要测试HTTP外。
04:08
除了HTTP呢,它还能测试非常多的,比如测我们数据库的JDBC,包括FTP等等一串,那接下来我们要看我们最终的测试结果。我们就需要在这。继续添加的时候,我们不选取样器了,来选择有一个叫监听器,监听器里边呢,首先第一个叫查看结果数,这块的结果数呢,就能看到每一次请求到底都成功还是失败了,包括成功了以后响应数据是什么,我们在这呢都能看到,这就是整个结果的列表,包括呢,我们还可以看到它的这一块,我们来添加,监听器里边呢,还有一个汇总报告,这个汇总报告里边呢,我们来打开看,这个报告里边有非常多的指标,我们后来要参照,比如我们当前测试了多少个样本,相当于我们发了多少次请求。那以我们这个线程组来看,我们现在是200乘100的,那就是我们汇总报告肯定会有2万个请求平均值,那就是他们的平均响应间,最小值那就是它的最小响应时间,然后最大值是它的最大响应时间,包括呢,他基于这种时间,他还算了一个标准差,那这就是大家高中学习的这些方差,标准差这个计算方式,它来反映我们每一个样本跟我们平均值的这个反差程度,包括这一块还有我们的异常,我们所有的这些请求发生了多少的异常,这有百分数的统计,包括最重要的我们这儿还有一个吞吐量。
05:35
这个呢非常重要,因为我们就是通过它来衡量我们接口到底能处理每秒多少的并发能力,包括我们每秒接收的数据,包括每秒发送出去的数据,以及平均字节数等等,这一块呢会有这个汇总报告指标,但我们还可以看一个报告,在这添加的时候,这还有一个叫聚合报告,我们来看一下聚合报告呢,还是这个样本,接下来呢,有一个平均值,相当于我们平均的。
06:05
响应时间,还有中位数,我们有2万个请求,中位数呢,能反映我们普遍的请求都在哪个响应时间响应成功的,还有我们90%的请求都是怎么响应的?比如我们最终请求的响应时间,我们做出来是一个这个正态分布图,低的时间呢有十毫秒,高的时间呢可能有30秒,那中位数呢,比如很多请求在一秒内完成了,那还有90%请求,那比如我们截止到这儿,90%请求呢,是在多长时间内完成的?再比如我们95%的请求都是在多长时间内完成的,还有99%的请求都是在多长时间完成的,这块呢,都有一个统计值,包括我们请求的最小响应时间和最大响应时间,以及我们的异常比率,还有吞吐量,吞吐量就是之前的汇总报告里边的东西,我们也经常会来参照聚合报告里边的相关数据,包括我们再来看它里边呢,还有一个我们的。
07:05
监听器里边我们还可以以图表的方式来看到他们的整个响应结果,比如这有汇总图,相当于汇总报告给我们生成的图,包括还有我们的响应时间等等这些图,那我们基本在测试的时候呢,我们用前三个我们把这些接口性能数据我们就能得到了,后边呢,大家想看的也可以来添加一些这些报告,比如我们来给大家添加一个我们的这个汇总图啊。那这个才是我们真正要压力测试的接口,那这一块呢,都是我们的整个报告,我们最终要进行分析的这些数据,那接下来我们就来想要测试,我们就在这儿来启动我们这个测试请求,那在这儿直接来点击启动,那现在测的呢,是咱们的这个百度,好来现在启动,那在测试之前呢,它还会提示你,那们可以先来保存我们这个测试计划,方便我们下一次呢,直接来运行,我们就可以来点个yes,那自己呢先来保存一下,比如我们就叫测试计划一我们的test,它。
08:06
Black。一。好,我们把这个测试计划呢,我们来保存一下,然后我们现在来启动,启动呢,我们在一秒以后,我们把这个200个线程都准备好,那接下来呢,他就开始来测试。好,那现在呢,测试完成,那们相当于11秒把我们所有请求都测试完了,我们来看一下我们的这个查看结果数这块,每一个请求,每次的结果在这都有,比如我们当时发的请求是什么,能是给百度发没有什么数据响应数据是什么?这些呢就是百度的首页,那如果有错误结果我们也在这儿呢,能看到这是我们的测试请求。接下来我们来看汇总报告,汇总报告呢,我们看到2万个请求,平均呢都在69毫秒,它的单位呢是毫秒,平均都在69毫秒内完成了最小值,最快的请求是27毫秒,那最慢的请求是2000多毫秒,那就是两秒多,还有它的这个标准偏差,标准偏差越大,说明我们这个请求越不稳定,快的快,慢的慢,包括我们这块的异常,现在一全部是正确的,没有出现任何异常,还有我们的这个吞吐量。
09:16
它每秒呢,可以将近2000的这个吞吐量,还有发送的这些字节数据,每秒能发送五兆,接收2KB的等等各种数据。这是我们的汇总报告,还有我们的聚合报告,我们来可以看一下,同样是这个报告,这2万个样本平均呢,都是在69毫秒内完成,中位数是52毫秒。那中位数呢,就反映了大多数请求,那都是在我们这个52毫秒,这是一个中间值,然后呢,90%的请求都在105毫秒给我们响应成功了,95%的请求都在144毫秒内响应了,还有99%的都在200毫秒,所以呢,有99%的请求,那基本上都是在。
10:04
200毫秒以内给我们响应成功的,虽然我们看到它的这个最大值是两秒,那说明极有个别请求慢一点给我们两三秒才反应了,99%呢,都是200毫秒,那这个速度还是非常快的,还有我们的异常比率,我们看到呢,整个我们的测试期间没有出现任何一个异常。那说明我们也很稳定,还有我们的吞吐量每秒呢将近2000的请求处理数,这是我们来看它这个聚合报告,包括这还有一个叫汇总图,比如我们来看它的这个图形,图形里边呢,哥们就在这儿来画了一个这个平均值69,其他的呢给我们也没画上,我们想要显示呢,就在前面勾上,我们这只有平均值,我们可以显示它的中位数和90%,95%以及99%最小值最大值都是什么?那么选全部选中以后呢,我们来点击显示图表。那这就是我们的整个汇总图,我们看到这个最大值虽然非常大,但是所有的请求呢,基本都均衡,99%呢,都在这短的时间内就完成了,把这些图形呢,大家也可以都保存到我们一些指定的地方等等,那这是我们一次压力测试的这个结果,我们测了一下百度,我发现这个百度呢还是挺不错的。
11:22
那与此同时,我们还是用这个压力测试,我再来测试一下我们自己写的,那我们自己写的这个首页鼓励mail.com,好,我们来测试它,走,那我们来访问我们的古力妙com这个首页,把这个HTP呢,我们就去掉,我们的主机,就是它们现在要来测,那测之前呢,我们先来调用它,这有一个叫清空全部,先把我们之前的这个报告里的这些指标,我们全部清空掉,我们来把它扫除掉。然后呢,我们接下来再来启动测试来走。好在一秒内呢,给我们准备好,然后接下来他开始进行测试。
12:00
我发现我们的这个接口呢,就比较慢了,百度呢,在11秒我们2万个请求全部结束了,我们的这个东西呢比较慢,它一直在这来进行访问测试,那每一次的结果呢,我们都可以在结果数这一块我们都能看到,那如果响应成功了,我们的这个响应数据里边就我们的页面内容,这是我们的上海等等这种好,那现在呢,还没测完,我们看一下我们写的这个。性能究竟怎样?那经过漫长的等待,哎,这个两分33秒后,我们的这个测试也全部完成了,来看一下我们的整个结果,那这个汇总报告里边,我们先来看一下,我们2万个请求,最小值呢,15,那相当于15毫秒就结束了,最大值我们将近花了六秒的时间,那有些慢的请求将近六秒才有返回,我们的这个标准偏差,百度之前才40多,我们都500多,我们的这个接口还是非常不稳定的,包括我们的吞吐量,我们来看这就是数量级上的差别,我们呢只有每秒的130,包括我们来看这个聚合报告,来看一下聚合报告平均值呢,是在一秒多响应完成1500多毫秒,中位数呢是1400多毫秒,我们95%的请求都能在两秒内响应过来,包括呢,99%的请求都能在三秒内响应过来。
13:27
而且我们这一块呢,也没有什么异常,说明我们写的这个服务还非常稳定,但是这个吞吐量130,这就太慢了,那慢的原因呢有很多,首先第一个原因就是我们当时在来启动这个服务的时候,比如我们来为了测试方便,我现在还只启动了我们的网关以及我们的product服务,我们在启动服务的时候呢,我们只给它分配了我们100兆的这个内存,如果我们能让这个服务占更大的内存,那它吞吐量应该更高,比如我们来调一个512。我们先来做一个简单的优化测试,我们来试一下。
14:02
我来点击应用,好,我们现在来重新启动我们的这个服务。那有了它以后呢,我们接下来再来进行压力测试。我们现在呢,为了简单期间快期间我们就不测试这这么多的这个请求了,我就测试2000个请求,好,然后呢,我们现在来重新把这些结果呢,我们全部清空掉,那现在再来看我们的这个。整个效果。我们先来等它这个启动全部运行起来,而且呢,我们一定来等它,我们这个页面能刷出来,来刷新一下。好,确定这一块是访问到的,那接下来我们再来测试走。来看一下2000个请求多长时间能测试完?
15:00
好,我们14秒呢,测试成功了,我们来看一下我们的汇总报告里边,我们发现呢,调大内存吞吐量呢,确实就上去了。那最小值,最大值。包括平均值都能。改善很多。
17:33
那这就是我们一个简单的测试和简单的调优,那真正的我们这个。接口的优化。我们牵扯到的方面呢,也非常多。那么下节课就可以针对我们来写的这个首页的这个功能,我们来做一个优化。
我来说两句