自动化框架设计的分层(类似于开发框架mvc的设计):
显示层(testNG+report):测试报告,测试中间过程的结果呈现。哪些case执行成功,哪些case执行失败,报错等,测试报告都会体现。
控制层(httpclient):逻辑验证,有哪些请求,请求需要哪些参数,发送请求后,返回应是什么数据,验证预期结果与实际结果是否一致。
case有很多情况,根据自己的需求设计不同的case,覆盖比例越高越好。
持久层(mybatis数据库的验证):测试用例存储(数据驱动)
以上是自动化测试框架一个粗犷的总结(适用大部分框架),本博客具体框架设计用的技术栈见下图:
TestNG+ExtentReport:生成产出测试报告。
HTTPClient+TestNG :用代码具体实现测试用例。
MyBatista+MySQL:测试用例大多数采用文本(txt,excel等)维护,如果项目组规模越来越大较多,多人协助开发,测试case管理就会出现各种问题,不太容易维护,但是用MyBatista+MySQL管理测试用例可以克服这些问题。
Jenkins:应用比较广泛的持续集成工具,配置实现后,可以使代码按需求自动执行。
Mock:开发阶段,介入测试,模拟实现开发真正实现逻辑的虚拟化接口,说白了就是在开发提交测试之前,mock一些按照需求设计的虚拟接口,供前端人员联调等,实现前后端分离。
springBoot:实现一些真正的接口(开发接口)