神盾系统(SHIELD)
神盾系统为自动化测试工具,该测试工具可以针对项目中的HTTP(先支持POST和GET)和RPC 接口进行自动化测试。
自动化代码生成,时间成本。针对controller生成接口测试用例。
背景
目前公司没有统一测试环境,开发中依赖于编写大量的测试用例严重增加了开发和测试的开发周期;同时测试同学编写的测试用例未能实现沉淀和版本管理,导致新测试 同学无法知晓原测试过程;测试同学目前只能通过界面做功能性测试,该测试方案无法全量覆盖测试效果,并且花费大量时间。
目标
搭建云自动化测试平台,该平台可以提供给测试部门和开发部门使用,管理所有测试用例 以及 用例结果执行报表。
场景
商品中心SERVICE 开发完成后测试同学配置自动化测试URL并录制测试用例数据,运行测试用例生成测试报告。
业务流程
自动化测试URL规范参考swagger原理,搭建接口上报和修改。
申请APPID和SECRET
任何一个需要接入神盾系统台的服务项目,必须申请唯一的APPID和 SECRET用户的标识信息。调用接口时上报异常信息和服务URL时必须用SECRET进行加密和验证。
- 配置统一header和返回验证json,验证结果json可以支持正则表达式、完全匹配、也支持支队httpcode码验证。
- 针对该项目配置不同环境host域名
用户权限系统
可以针对用户权限系统进行配置,区分开发人员、测试人员、超级管理员。
- 开发人员:可以编辑URL规则和参数规则,可以提交json验证数据,但无法修改测试人员侧测试用例和版本。
- 测试人员:无法编辑URL规则和参数规则,可以上传和下载excel的测试用例,可以修改和删除测试用例和版本。
- 超级管理员:可以分配appid、secret等所有权限
上传项目URL
- 通过开关配置是否同步项目URL,如果配置同步则在项目启动时通过BeanPostProcesser或者aop来处理所有controller,将该数据一次性提交给智能中台
- URL规范化入库:1> uri 2> method 类型POST\GET 3> uri描述信息 4> 参数hashcode(判断是否需要更新)5> 获取uri描述信息
- 请求参数规范化入库:1> 参数名称 2> 参数类型 3> 参数描述 4> 参数规范配置(规范化数组)
- 请求参数配置:1> 配置固定值(例如shopid 为固定值,测试时只测试空和固定值)2> 配置可否重复用例(例如针对统一数据发送2次请求)
自动化测试
- 针对当前URL参数规则,生成对应的自动化用例数组。例如username(非空、长度4-12) 则生成错误用例[空、小于4位字符串、大于12位字符串、最大长度字符串(1000字符)];生成正确用例[4-12位随机字符串、配置的固定值]
- 针对所有参数的异常和正确用例请求接口得到结果与验证结果匹配。
开发部门测试用例
开发同学可以在这个平台提交json数据,点击运行可以直接在平台查看运行结果。支持将该json保存为开发测试用例
测试部门测试用例
- 测试同学下载单个URL的参数excel模版,测试同学根据模版参数配置用例数据,编写验证json和期望结果。
- 上传excel中可以配置json数据,测试时会对excel和json进行合并,以excel数据为主。
- 测试同学可以对测试用例进行版本划分,用例运行可以选择版本和全部运行。
- 测试同学可以编辑已经上传的测试用例数据和内容。