前言
昨天和一位转行做了一年测试的朋友吃饭,我问他现在主要用什么做接口自动化测试,他回答现在新手几乎都用Pytest。但他又表示Pytest太过于“新手”仅仅掌握Pytest并非长久之计,他想学UnitTest为将来跳槽涨薪打基础,不仅是他,几乎所有初入行的测试人都这样想。
关于UnitTest & Pytest
UnitTest与Pytest,每个测试人至少都接触过其中一个。unitTest是Python内嵌的标准测试库,其不仅可用于单元测试,还可用于Web自动化测试用例的开发与执行。unitTest可组织执行测试用例,并提供了丰富的断言方法用以判断测试用例是否通过。这也是高阶测试大牛用得最多的框架,没有之一。
而Pytest则是Python的第三方单元测试库,脱胎自unitTest,长久以来一直以简单易用的特点深受新手入门者的喜爱,并且扩展性不错,也支持应用层功能测试。
区别与优缺点
Pytest得益于其便捷、简单、扩展多的特点,赢得了大多数入门新手的青睐。尽管Pytest如此高效,但在对比了老牌的UnitTest之后,Pytest则开始暴露出一些问题。
由于Pytest是Python第三方库的测试框架,其兼容性相较UnitTest这样的自带标准库测试框架来说还有着巨大的差距。且UnitTest可以在安装Python之后直接导入,而Pytest作为第三方库则需要独立安装,有一些不可预知的风险,在稳定性上又远远落后于UnitTest。
现状
目前大部分企业在招聘测试人才时,都将掌握Pytest作为基本的入门需求。毕竟Pytest较为简单,用来作为入门门槛是很合适的。但是,测试人如果仅仅只是知道Pytest还是远远不够的。
得益于UnitTest优秀的稳定性与兼容性,在大型项目中几乎只能选择UnitTest。于是所有的企业在招聘高阶测试人才时都要求熟练掌握UnitTest“基于关键字、数据驱动+UnitTest接口自动化测试框架架构的设计与实现”。
总结
由此可见,Pytest在很长一段时间内都难以撼动UnitTest的位置。所以,测试人未来想要升职加薪就必须掌握UnitTest。