前言
⾃动化测试会越来越受到重视
在移动互联⽹时代,对于质量的要求⽐PC时代⾼的多,⽽投⼊产出⽐最⾼的⾃动化测试,将会是⼤部分公司的⾸选⽅向,但需要严格掌握⼀门语⾔。
快速、高效的测试工具及脚本,能使程序猿的开发工作事半功倍。笔者进入到研发中心工作之后,参与到一个报文平台的重构项目中。该项目老平台基于C语言编写,架构老旧,可维护性与扩展性较差;为了紧跟研发中心的技术迭代步伐,新平台使用新的工具进行重构,使其构建发布、参数配置更灵活,便于后续维护与扩展。

在新平台的重构开发过程中,报文的路由测试是很关键的部分。由于系统涉及一百多种不同格式的报文,且系统安全性要求较高,每个报文在系统中交互时都要进行加验签检查,所以需要对整个系统进行全面、严密且覆盖所有报文类型的测试工作。
之前开发中的测试均通过手动将报文粘贴到测试工具中触发,此方法不仅效率低,且容易造成人为测试噪点,后续回归测试更是噩梦。为了解决此类问题,提升个人开发效率,笔者在开发测试环境中使用python语言实现了报文平台的自动化测试。
自动化测试分为三个部分,分别是测试数据的产出、发送测试数据和监控测试结果,如图1所示:

图1 整个自动化测试流程图

第一部分

测试数据的产出是从常备测试环境拉取历史日志,通过使用log_split.py脚本,按照日志里的语法规则对所需的测试数据进行切割,并去除冗余数据。接下来,根据切割后数据的关键字进行分类,分别放入不同类别的测试目录下,部分脚本代码如图2所示:

图2 log_split.py脚本部分代码

第二部分

发送测试数据分为两种形式,分别是手动单条报文发送和多条报文定时发送。单条发送多用于验证不同场景下的业务逻辑,而多条定时发送则可进行一定程度上的回归与压力测试。以手动单条测试为例,通过使用send_wb_testdata.py脚本读取指定的测试数据并放入到对应的数据队列中,部分脚本代码如图3所示:

图3 send_wb_testdata.py脚本部分代码

第三部分

最后为监控测试结果,当测试进入到报文平台处理程序时会调用read_test_resdata.py脚本,通过测试数据的标识号对程序日志进行匹配,并使用语法规则对日志里的关键信息进行截取,然后输出此次测试的结果。
Python语言非常灵活与简便,语法简洁,易学易上手。笔者构想与编写整个自动化测试脚本只花费了几个工作日中的零碎时间,但是使用自动化测试脚本后让整个开发测试周期节省的时间远超几个工作日。python语言逐渐普及,绝大部分linux操作系统均安装了python2.7,无需别的配置工作可直接上手编写。python能很好的支持调用linux命令,在一定程度上可取代shell,可快速编写服务器执行程序。如果你有同样的需求,不妨用python试下。
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上软件测试资料需要的可以私信我关键词(资料)免费获取
这里还有一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。
结语
欢迎留言,或是关注我的专栏和我交流。