用 Pabot 给 Robot Framework 提速
目录
组里的自动化测试用例(接口用例)陆陆续续积累了三千多条,完整跑一遍已经需要将近3 个小时。
Robot Framework 默认是单线程顺序执行用例的,但我发现大家写得挺好,用例之间并没有依赖关系,完全可以并行执行。我发现了一个叫 Pabot 的东西,是专门用于并行执行 Robot Framework 的库。
并发数的选择
直觉上可能会觉得并发越高越好,但实际情况并非如此,因为服务器的性能是有限的,加大并发后单接口耗时会变长。经过试验,并发数在3-5时在我们的服务器上效果最好。
最终我选择了并发数为4,大概一个半小时能跑完全部用例,效率提升了50%。
并发带来的新问题
引入并发执行后,偶发的网络请求失败频率大大提高了。
同样的用例,单线程跑的时候很稳定,并行度上来后时不时会出现连接超时、连接重置之类的错误。
最终我选择了一个很笨但有效的方法:加上重试。加上重试后,大部分偶发的网络错误都能自动恢复,用例的稳定性大幅提升。
- 高并发会放大网络问题,加重试是必要的
- 最佳并发数要根据实际环境摸索
这篇文章算是个简单的记录,技术含量不算高,但确实是踩过坑之后的经验。刚毕业那会儿对并发、网络这些东西理解不深,一开始也走过一些弯路,觉得并发开越高越好,后来发现事情没那么简单。
测试优化是个持续的过程,三千条用例跑一个半小时还是有点长,后续可能还会继续探索更多的优化空间,比如用例本身的优化、测试数据的准备方式等等。