测试对象
测试对象为后台服务接口,即后台与前端调用协议的测试(集成测试的一部分)。之所以选择这个点介入测试,其一是开发对这块协议提供的文档相对完整;其二,这个点是确认问题在前端还是后台的准确点,确认问题后基本可以找到对应的开发人员,可减少bug流转路径;其三,这个点介入可以模拟整个业务流程的正确性,便于后期做回归验证。
说到自动化大家很容易理解为跑整个业务流程为自动化,其实所有使用程序或者脚本辅助测试的过程都可以看做是实现自动化的过程。而且接口自动化不受UI界面的限制,在自动化方面更容易实现,特别是对于界面频繁变更或者不成熟的项目接口自动化/集成自动化可以作为一个切入点来操作。
为什么选用TestNG
什么是TestNG
TestNG,即Testing,Next Generation,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以做单元测试,也可以做集成测试。(这个是所有资料中,我比较赞同的观点。其他的基本都是摘抄官方文档)
TestNG的重要特点
l 注解(Annotation);
l TestNG使用Java和面向对象的功能,可按照自己需要进行二次开发定制;
l 支持综合类测试:自动化测试、单元测试、功能测试、集成测试等;
l 灵活的运行时配置,能够做到参数化,可以通过testng.xml来管理测试;
l 支持依赖测试方法,负载测试,局部故障;
l 支持多线程并发测试;
l 支持分组测试;
l 灵活的插件API;
l 可以运行Junit测试;
设计测试核心功能框架
整个功能的核心框架思想如下:
l 测试数据、配置数据、测试代码分离
l 通用基础服务与接口实现分离
l 测试案例由接口组合实现
大致结构如下图:
Package介绍:
Com.dafy.autotest.base.util:通用http协议请求、数据库操作等基础服务的实现,之所以单独拿出来主要是为了以后在其他项目中可以直接复用
Com.dafy.autotest.sevend.api:实现需要做自动化的各个接口
Com.dafy.autotest.sevend.setings:服务固定参数的配置,例如数据库,服务url等
Com.dafy.autotest.sevend.testdata:用于初始化测试数据
Com.dafy.autotest.sevend.suit:功能流程实现与测试用例预期结果比对,用于判定接口功能实现正确性
本篇文章主要是对自动化概念及框架设计的一些理念先做一个介绍,后边篇幅会慢慢展开整个项目自动化环境的一个搭建到报告的输出做一个概述。