vlambda博客
学习文章列表

如何提升测试用例运行速度?接口测试专题(二)

随着自动化程度的完善,在实际工作或面试中(小编就非常喜欢问类似的问题)经常会面临到一个问题:自动化用例逐渐增多,维护成本和运行成本大量增加。如何减低维护成本?在上一篇文章中已经讨论过,本文则着重讨论如何提升测试用例的执行效率。结合之前的工作经验,一般从如下3个方面进行优化:

用例集优化

1)移除无用用例

    虽然这点最没有技术含量,但经验告诉我们,它给你带来的惊喜往往是最大的

2)使用代码层级的用例替换UI用例

    众所周知,UI的启动和加载相对缓慢的,而很多功能测试点,不一定非要通过UI的层级或是系统层面去测试,应明确测试功能点,有针对性的进行分层测试。掌握了此法则,你会发现很多用例是可以通过模块测试搞定的  

3)使用监控替代用例

    和2)比较类似,往往有些测试用例是无用的,没有价值的,或者说是投入产出比较低的,完全可以利用监控的手段来替代

4)优先运行冒烟测试集合

    冒烟测试集合一般是主流程的用例,优先运行这组case,可以更大概率的暴露程序缺陷

5)优先运行经常失败的集合

    此规则的依据原理是“最先失败原则”,通过优先运行经常失败的用例,提前发现问题,将问题更早的暴露在前期

6)将稳定经常成功的用例集合放在后面

    此条规则的目标和5)类似

7)运行慢的用例集合放在后面

    此条规则的目标和5)类似

8)按组件划分测试用例集合

    该规则是从“选择最小运行用例集”的角度切入,针对具体功能模块或者组件,选择相关的测试用例进行测试,减少不相关的用例运行成本。谷歌内部就是采用的这种策略

9)根据代码变更自动选择测试用例集合

    和8)类似,是通过每次变更代码影响的范围,来选择测试用例集合

单用例运行优化

1)移除不必要的动作

    和上面的规则类似,别小看这条,根据小编的经验,很多场景,只要做了这个优化都能完成KPI

2)Mock返回和周边依赖

    优化单个测试用例执行速度一种常见方式是Mock掉周边依赖,将网络,硬盘等IO操作尽量转换成内存操作,来提升效率

3)优化数据库数据量

    减少数据量,有很多场景,用例启动运行速度慢,都是使用了大量不相关的测试数据。缩减测试数据的加载也是有效的一个手段

4)优化硬件资源

    使用牛叉的硬件资源,貌似不是一个方案,但有针对性分析测试执行时硬件资源的瓶颈,有针对的升级也是非常高效的策略

5)使用cache

    此规则不常见,但些具体业务也是可用的,使用cache缓存一些可以复用的数据,也能加速用例的执行效率

并行运行优化

    最后一个办法,并行运行测试用例,可以用VM,docker,多线程等方式,加速用例的执行,当然这个办法对测试用例的编写有很高的要求



最后,跳槽季强力推荐话题: