学习视频预览地址:
测试工程师为什么要首选Python作为开发语言呢?这要从Python的自身特性说起,概括来说,就是简单而强大。Python 能够轻松调用 C/C++ 代码库的特性,因此它的可扩展能力很强。在众多技术高手的贡献下,Python 的第三方库得到了极大的丰富。对于程序员来说,几乎不用发明轮子,需要的基础功能都能在库中找到,可以说是开箱即用。对于测试工程师来说,掌握 Python 就是拥有了一座操作简单且火力强大的“军火库”。测试工程师能够尽可能地将精力从编程的细节中解脱,专注于解决测试工作中的问题。
接下来,我们看看怎样在测试工作中用好 Python。
2
在测试工作中用好 Python
看到这里,你可能会有一个疑问:我要把Python学到什么程度,才能够在工作中用上它?《测试工程师 Python 开发实战》给出了具体的建议:遵从“二八定律”,即不要想着把 Python 的所有语法特性都掌握了才投入实际工作。只要掌握了 20% 的关键知识,就可以上手干活了,大多数需求都能在这 20% 之内解决。在边学边干的过程中,逐渐领会另外 80% 的用法。入门的第一步是将环境配置好。《测试工程师 Python 开发实战》详细叙述了在 Linux 与 Windows 下安装与配置 Python 的过程。IDE 工具则选择了最流行的 PyCharm,并讲解常用的功能与使用方法。更多基本语法介绍可以参看书中说明。
PyCharm 项目界面
在测试工作中经常要处理的任务包括日志分析、数据分析、文件处理等。本书作者结合自己实际工作经验,精心挑选了12项常用操作,放在了“常用百宝箱”中,测试工程师对于这些知识应当熟练掌握。这12项操作分别是:自定义异常处理、日志处理、邮件处理、时间处理、多线程处理、Excel 处理、配置文件处理、正则表达式处理、命令行参数解析、with 正确使用、文件读写处理和序列化处理。熟悉了基本操作,那就更上一层楼,看看作者在“高级百宝箱”里放了什么宝贝。作者认为在复杂分层的系统中会大量使用消息中间件、缓存和数据库系统。在测试中要验证数据的完整性与准确性,就一定要对这些系统进行操作,因此书中针对上述三类中间件给出了具体的操作示例。
这些示例针对的程序包括:消息中间件 Kafka 和 RabbitMQ;缓存中间件 MongoDB 和 Redis;数据库中间件 MySQL 和 SQLite。它们都是目前业界普遍使用的消息和存储类开源服务,测试工程师学会这些高级工具势必如虎添翼。
Python 学到这一步,已经是测试工程师里做开发的一把好手了,那还有更大的提升空间吗?我们再来看看测试工程师的 Python 开发进阶之路。
3
进阶:用Python构建测试框架
对于测试工程师来说,虽然不要求精通开发技术,但知识面一定要广泛。除了对软件本身的功能测试,还要学习其他领域的知识,包括性能分析、数据分析、网络安全等,这样才能全面考察并测试一个软件系统是否健壮可靠。在工作中做好多领域的测试,要求测试工程师能够根据业务特点编写测试框架。当然,这对测试工程师的开发能力又提出了更高的要求,这不仅是做一个工具那么简单,而是要考虑全面,同时又不能为此投入太多时间。《测试工程师 Python 开发实战》在“实战篇”中,为测试工程师构建自己的 Python 测试框架给出了很好的建议。总体来说,就是尽量在第三方库和开源组件的基础上实现定制化开发。下面选取测试工作中最常见的接口测试,来说明构建一个自动化测试框架的方法。对于软件中使用到的所有接口,建立一个自动化的测试平台,可以满足迭代测试、统筹管理的要求。
自动化测试分层
书中使用 requests 库构建接口自动测试框架,讲解了 http 协议的知识点、requests 库的基本用法,以及序列化与反序列化的相关知识。然后给出了一套轻量级接口自动化测试框架的工程案例,实现了从读取配置文件、读取测试用例、执行测试用例、记录测试结果,到生成 HTML 结果文件的完整过程。