我们要用什么办法来防止并发用例压力过大呢?
答案就是限流!
也就是说,假如你有100个用例,我只允许最多同时10个用例运行。
这样就能极大的缓解压力,而具体能同时允许多少用例运行,这个你可以自行设置,可以最大,也可以1个,根据你的服务器来选择吧,每个项目设置都不同。
这个设置也存在于我们的项目数据库表中,增删改查的简单玩意,大家都会做了。
好,然后我们继续设计。最多同时运行10个,那么我这里提供两种方案,各有优缺点。
方案一:100个用例,10个一组,分成10组,然后一组一组顺序并发。也就是前10个并发完事,下一组10个再开始并发。
优点:可控制,压力小,可以把有数据冲突不能同时运行的用例分开不同的组。
缺点:浪费系统性能,比如第一组就剩1个用例的时候,第二组要干等着。
方案二:100个用例,全部并发,但是从线程内设置最大并发线程数为10。这样前十个开始并发运行,有一个先执行完,后面第十一个用例马上就可以顶上,开始执行。
优点:最大使用了系统内存,保证永远都是10个用例在执行,不浪费。
缺点:不可控因素升高,用例的执行无法分组,可能会造成较大数据冲突
综上所述,我们到时候可以先用方案一来做,方案一需要较高算法能力。方案二则不需要,只需要改个thread参数即可。
好设计完这个,我们的并发执行用例功能才算结束,但是也并不圆满,因为我们还可以设置让哪些用例参与并发,哪些不参与这个事。
这个实现也简单,只需要在用例数据表中新增个布尔字段即可,然后在并发的时候进行个过滤就行了。
好了 ,就做这么多吧。我们下节开始正式开发,大家做好准备。
这个并发功能设计 大家也可以应用到其他自动化中哦~
欢迎关注我,一个注重实践的测开讲师。