图-3.3 提交复核接口操作步骤
3、案例的正确性验证
1)程序返回信息的正确性验证。案例执行完毕,对程序返回结果的正确处理决定了自动化案例能否正确发现程序缺陷。可以说全面的正确性验证决定了自动化测试案例的质量高低与否。如:图-3.2中提交复核类型字段输入NULL/add等非法值后,我们不仅要验证程序的错误码为200,同时也要验证报错信息是否符合预期,确定该条案例确实测试到该条校验规则。
为此我们引入了关键字比对功能,提取预期错误提示信息的唯一标识关键字。以关键字为标准,检索程序反馈信息是否存在该关键字,若检索到该错误信息关键字则判定该反向案例执行通过且正确。若未检索到该错误信息关键字,则判定该反向案例设计不能覆盖此条交易规则。
2)数据库操作的正确性验证。程序执行过程中涉及到大量的数据库增删改操作,从验证完备性考虑,需要进一步验证数据库操作是否正确,避免插入、修改的数据存在错误,或数据库操作失败后回滚造成脏数据的存在。
为了验证数据库插入、修改、删除是否成功,数据是否符合预期,我们采用了以下两种验证方法:1)交易关联验证;2)数据比对验证。
交易关联验证是通过业务逻辑进行验证,使用后置交易是否能成功执行来验证前置交易数据库操作是否正确。如:录入一张金额为100元的发票,我们可以先发起领票101元的交易,再发起领票100元的交易,如果领票101元失败,领票100元成功,即可证明录入金额为100元准确无误。
数据比对验证是系统或业务需要的登记类数据,这类数据没有后续的逻辑关系,传统的处理方法是人工查询数据库或查询交易,我们开发出一个数据库查询API,通过前置交易传入的表的KEY值查询到该条记录的其他字段值,并与预期值进行比对,从而实现了自动化核对。
4、其他要点提示
除了以上3点之外,测试人员还需要关注数据是否独立、测试案例是否形成了闭环、测试数据的参数化。数据是否独立决定了测试环境对自动化案例的影响程度,数据独立性越高则环境变化造成的影响越小。测试案例能否形成闭环决定了该条测试案例是否可以被重复大量执行。测试数据参数化决定了我们的案例复用程度和后期的维护成本,对等价的数据进行参数化设置不仅有助于我们覆盖大量测试数据。同时当程序发生改变时,我们可以简单快捷的修改测试数据。常用的测试数据来源有数据库、配置文件、接口返回值、excel/txt文件。
四、结语
随着自动化测试成为测试工程师必备技能之一。拥有了该项技能在面对功能、模块日趋复杂和迭代频繁的软件开发项目时,测试人员可以从容不迫的解决和应对这些问题。本文基于此种考虑,介绍了自动化测试的相关知识。结合作者在项目中的实践分享了接口自动化测试过程中的几点感悟,希望对想要迈入和初步迈入的自动化测试领域的同志们有所帮助。