零基础实现BDD自动化测试
前言
自动化测试越来越成为软件或网站发布必不可少的一个步骤,一方面,软件的应用场景越来越多,另一方面终端用户对应用质量期望越来越高。例如一个手机应用,可以跨不同的平台,如iOS,安卓,就是同一个安卓平台,也有多个版本,以及多种不同的显示屏尺寸。它们的组合加起来就有几十种可能性。网站应用也是类似,一个网站可能同时要适配多种浏览器(Chrome、IE、FireFox、手机上的iOS、安卓浏览器),多种显示屏尺寸等。手动测试很难胜任这些测试任务。
自动化测试听起来是个很有挑战性的任务,只是某些专业技术人员擅长。很长一段时间来的确是这样。从事自动化测试开发的程序员不但要会懂得编程;还要花大量的时间学习商业或某些开源的测试工具。本书介绍了一些方法和工具、试图降低自动化测试的门槛,让非专业测试人员也能方便快捷的完成自动化测试的任务。同时会介绍系统做自动化测试的方法。测试开发会用到自然语言、JavaScript和Python,自然语言用于描述测试用例,JavaScript与Python用来编写测试代码。两者之间通过一定的语法关联起来。
自然语言的测试用例等于是测试文档,描述了应用软件的行为,测试代码用来验证这些行为。这就是现阶段越来越流行的行为驱动开发(Behavior Driven Development,BDD)。行为驱动开发能够保持文档和测试脚本的一致性,便于维护、也便于业务人员和技术人员沟通,始终保持应用软件的技术实现反映业务的需求。Cucumber是行为驱动开发最流行的一个框架,它使用自然语言描述的行为来驱动测试代码,也支持多种语言,如Ruby、Python、JavaScript、Java等。JavaScript的流行已经无需累述,据统计,JavaScript是github上项目用到最多的语言,前端开发的必备,由于node.js的出现,它可以用来做全栈开发,覆盖应用的前端和后端。使用JavaScript写自动化测试意味着应用开发人员可以同时胜任应用软件的开发和它的自动化测试。
CukeTest是一款国产的具有自主知识产权的自动化界面功能测试软件产品。支持Web、Windows、Java、移动端、API等各类应用。支持各类平台,包括Windows、Mac、Linux等,全面支持国产化软硬件平台,如CPU平台除x86_86以外,还支持ARM(飞腾、鲲鹏)、MIPS和LoongArch(龙芯)等。在CukeTest中,使用自然语言和JavaScript、Python编写自动化脚本,易用的集成开发环境,多种自动化引擎, 持续集成的和数据驱动的支持,丰富的报告和视频录制,可胜任各种类型的界面自动化测试挑战。
CukeTest的测试框架结合了Cucumber框架和JavaScript语言,提供了编辑自动化测试的便捷功能,例如自动生成框架代码,代码与自然语言之间定位的跳转,可视化的维护用例场景、验证脚本、可视化报表等功能。它的出现降低了自动化测试的难度。更重要的一点,它可以免费下载使用(https://www.cuketest.com)。所以本书主要以CukeTest工具界面为例子介绍自动化测试。但请读者也了解到,如果您只想单独使用Cucumber框架和JavaScript,一样也可以完成测试任务,只是开发效率有一些差异。