自动化中的测试数据
GUI测试中两种常见的数据类型:
1、第一大类是,测试输入数据,也就是GUI测试过程中,通过界面输入的数据。比如“用户登录”测试中输入的用户名和密码就属于这一类数据;再比如,数据驱动测试中的测试数据,也是指这一类。
2、第二大类,为了完成GUI测试需要准备的测试数据。比如,“用户登录”测试中,我们需要事先准备好用户账户,以便进行用户的登录测试。
从创建的技术手段来讲,创建测试数据的方法主要分为三种
1、API调用;
2、数据库操作;
3、综合运用API调用和数据库操作。
在实际项目中,对于创建数据的技术手段而言,最佳选择是利用API来创建数据,只有当API不能满足数据创建需求时,才会使用数据库操作手段。
实际上,很多测试数据的创建是基于API和数据库操作两者的结合来完成,即先通过API创建基本的数据,然后调用数据库操作来修改数据,以达到对测试数据的特定要求。
从创建的时机来讲,创建测试数据的主要方法主要分为两种:
1、测试用例执行过程中,实时创建测试数据,我们通常称这种方式为On-the-fly
2、测试用例执行前,事先创建好“开箱即用”的测试数据,我们通常称这种方式为Out-of-box
对于相对稳定的测试数据,比如商品类型、图书类型等,往往采用Out-of-box的方式以提高效率;而对于那些只能一次性使用的测试数据,比如商品、订单、优惠券等,往往采用On-the-fly的方式以保证不存在脏数据问题。
1、基于API调用创建测试数据
由于API通常都有安全相关的token机制来保护,所以实际项目中,通常会把对这些API的调用以代码的形式封装为测试数据(Test Data Utility)。
这种方式最大的好处就是,测试数据的准确性直接由产品API保证,缺点是并不是所有的测试数据都有相关的API来支持。
另外,对需要大量创建测试数据的测试来说,基于API调用方式的执行效率,即使采用了并发机制也不会十分理想。为了解决执行效率问题,就有了基于数据库操作的测试数据创建手段。
2、基于数据库操作创建测试数据
实际项目中,并不是所有的数据都可以通过API的方式实现创建和修改,很多数据的创建和修改直接在产品代码内完成,而且并没有对外暴露供测试使用的接口。
同样地,我们可以吧创建和修改数据的相关SQL语句封装成测试数据工具,以方便测试用例的使用。
创建或修改一条测试数据往往会涉及很多业务表,任何的遗漏都会造成测试数据的不准确。提供两个思路:
1、手工方式。查阅设计文档和产品代码,找到相关的SQL语句集合。或者,直接找开发人员索要相关的SQL集合。
2、自动方式。在测试环境中,先在只有一个活跃用户的情况下,通过GUI界面操作完成数据的创建、修改,然后利用数据库监控工具获取这段时间内所有的业务表修改记录,以此为依据开发SQL语句集。
需要注意,这两种思路前提:产品功能正确。