00:00
Hello,大家好,我是fans啊,今天给大家分享一下啊,动态压力模型的一个演示。啊,大家好啊,这里是我之前写好的一个演示的DEMO,呃,先分享一下动态压力模型啊,是一个什么样的啊东西啊,它就是让我们在压力测试的过程中啊,对压力的模型和压力流量进行一个管理,目前我自己的开发进度就是啊支持到在压测的过程中。呃,可以随意的增加或者减少压力。这个DEMO就是我自己在写完这个功能之后创建的测试DEMO,用来演示这个功能的啊,首先给大家分享一下,呃,这个类的具体的一个实现啊,这个泛的就是这个动态压力模型的一个任务的基础类。
01:14
啊,所有的类都要继承于它啊,然后嗯,可以实现一个这个方法。嗯,构造方法,这构造方法呢?嗯,后面会写在文章里面,具体的一个实现的思路和实现的方式都会写啊,包括我刚才讲到的所有的内容在文章里面都会有,大家可以去翻一下啊,这个视频主要用于呃,演示这个功能,然后实现一个多应的方法,然后实现一个克隆的方法啊,一般情况下这三个方法那一一个构造方法啊,一个多引一个,可能都是需要我们自己去独立实现的啊,使用默认的话可能会有一些问题。呃,这个测试中可能会遇到啊,遇到的概率会比较小,嗯,然后我们创建两个任务。
02:08
这里用一一和122来代替,然后这里跟之前那个呃,固定模型,模型的压力测试的启动方法是一样的,然后把任务的做成一个力斯的队列啊,传到这里面去,然后去啊开始就可以了啊,这里。我主要用的是对每一个线程都进行了命名和管理啊,所以对于整个测试任务来说,就不需要进行一个呃命名和管理了,就直接是运营,然后默认的是。无限的运行。啊这样的,所以说就是我们当压力减为零,或者说我们手动的去中断这个呃,进程的执行的话啊,压测也就停止了啊,在本地版本的话。
03:01
执行都是通过呃,点击这个idea里面的这些按钮,待会运行的时候,有一个stop按钮会变成可用的,就直接点这个就可以啊,如果是在服务器上,我们直接用CTRLC啊,中断进程运行啊,或者说是呃,在某个界面用Q这一些Linux的命令也可以实现啊。先运行一下。直接点邮件run就可以了,这是一个Java的脚本,然后所以说嗯,到时候最后的改名改完之后直接可以用格位空格,然后这个嗯,加码文件或者格位文件运行也可以,大家看我这个任务车,任务里面就是休眠三秒加一个呃,随机的double值,然后然后打印一下当前现成的名称,然后任务正在运行,哦,添加了两个,一个是task task a,一个是task b啊我们可以看到。
04:06
我放大一下,我们可以看到这个其实已经在运行了。诶,好像不能再放大了。啊,可以可以。然后这然后我呃需要一个外界的触发条件来触发增加或者说是减少线程,本地的话,我用的触发条件就是键盘输入,在我键盘输入加或者减我自定义的关键信息之后,它就会执行相应的命令,这个内容也会在文章里面体现,这里只做演展示OK来按下加。嗯,这里面会提示它,它这个是呃随机克隆的,然后这个是T的B克隆成功,然后在我这个呃克隆方法里面,它其实它的名字就是再加上一个克隆体啊这组成的啊,因为这个呃模型呢,是对任务进行名字上的管理,所以说尽量不要让名字重复啊,我这里是如果重复的话,我就会报一个失败。
05:14
大家看我们这个这一个资质就是代表的是线程,其实现在已经有三个线程的。克隆体B正在运,任务正在运行克隆体B,然后我们再加一个。啊,大家看这个,它又随机去克隆这个他的B这个线程了啊,所以说名字失败是重复的,所以说添加失败,我再加一个。哦,这里面有一个问题,就是说如果我在加的时候,刚好这个日志打印出来了,然后我再去按那个特的时候,它其实是不生效的。你看我这个就不生效了,我点快一点啊,它是个A,然后就克隆成功了。
06:03
然后我们可以看到它这个A任务已经正在运行了,然后他挤占了一个呃,线程池的第四个线程。啊,这个线程池的命名的话,之前在视频里面分享过,这里就不不多说了啊,我们现在可以看到,其实我点了两次加啊,现在已经是四个线程在运行了。然后我们现在去进行剪啊,就是打印太快了啊,本地版本的话可能会遇到这些问题,说要点快一点,然后就是啊,尽量减少那个控制台日志的输出啊,如果是服务端版本的话啊,大家可以直接就是用接口去调用,就可以避免掉这个问题了。OK啊,它是个B,呃,克隆体啊,已经被终止掉了,因为我这里是简单的加减的话就是随机的,所以说现在应该是三个线程。呃,1243个线程,我们看到已经没有B的克隆体了。
07:03
可已经结束了。然后我们再去剪。啊,它这个B也被终止了,应该就只剩。嗯,A和A的克隆体了。对,就只剩A和A的克隆体了,我们看观察前面这个呃,线程的名字,他也就是一和四这个线程,然后我们再减一个,它这个A也被终止。现在只有touch a的克隆体在运行。嗯,这就。在最后一次输入的时候就已经全都被终止了。然后。具体这个终止程序还没有停止运行啊,原因就在于哦,我还做了一个其他的功能设想,就是在程序保证这个线程池一直全部都在运行,然后我可以像这个线程池里面在添加功能,而不是现在的仅仅的是加减去克隆已经存在的任务是这样的,所以说我没有在最后的时候我没有去把这个。
08:13
线程给停掉,因为在服务端运行的这个线程池是永远一直在运行的,永远都不会停,如果在本机的话啊,我就可以点这个stop按钮,或者是服务器,在服务器上命令行界面的话,可以用CTRLC来替代这个功能啊,所以说最后结束的时候我没有去进行关闭,然后这里点击关闭就可以了。啊,这就是翻台的测试框架,呃,性能测试框架这部分,嗯,所更新的内容。啊,目前的一个方向还是在这呃,动态性能测试模型上去更新。是这样,欢迎。大家有兴趣的可以关注公众号fan。
我来说两句