我们为什么要做雷神测试云平台?在此解释下,雷神测试云平台是最后脑洞大开拍定的平台名称,主要就是集测试用例管理,同时集实时和离线数据监控一体化的测试平台。
我们遇到的问题:
- 当前我们的业务快速发展,需求迭代频繁
- 业务线测试普遍具有功能回归测试费时、数据留存困难、需求跟用例脱离等问题
- 当前测试用例和自动化脚本分开维护效率低,成本高,投入产出比低
- 当前的⾃动化测试工具多和杂、学习成本高、团队协作难以及维护成本高
少投入:
- 减少自动化脚本的开发 & 维护成本
- 减少自动化的学习使用成本
- 减少测试⽤例管理 & 维护的成本
高收益:
- 测试用例能直接转化成自动化脚本
- 自动化回归测试高效集成并自带测试报告
- 定时任务:包括接口和数据ETL等可定制化调试
- 计划和需求一体化完成
雷神测试云平台长什么样?
前端:主要用了Vue +element UI组件,用Nginx做了反向代理。
后端:主要用了Python + Flask 快速部署整个服务体系。Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2,Flask使用 BSD 授权。
存储:采用了MySQL做持久化存储、redis做为消息队列、Memcache做为缓存。
依赖:雷神打通了Mock平台,在平台中可以直接调用Mock服务。雷神还会与JIRA、CMDB、发布系统实现互通(coming soon …)。
雷神测试云平台拥有哪些特性?
充分利用开源项目,不闭门造车。
1.核心特性之用例生成:
- 通过抓包工具Charles、Fiddler抓包生成HAR文件,然后导入用例
为了简化测试用例的编写工作,当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP Archive),然后雷神实现了将 HAR 格式的数据包转换为测试用例功能
- 通过Postman保存文件导入用例
Postman作为主流的接口测试工具,使用很广泛,雷神同样支持Postman保存文件直接转换成测试用例
- 通过excel, csv导入用例
传统用例或集jmeter的测试用例如excel或csv格式,可以导入转化为平台格式的用例
- 通过雷神平台新增用例
2.核心特性之用例分层:
用例分层设计,结构清晰。在自动化测试领域,自动化测试用例的可维护性是极其重要的因素,直接关系到自动化测试能否持续有效地在项目中开展。概括来说,如接口测试用例分层机制的核心是将接口定义、测试步骤、测试用例、测试场景进行分离,单独进行描述和维护,从而尽可能地减少自动化测试用例的维护成本。
3.约定大于配置-标准测试脚本:
测试脚本标准化,支持结果提取、断言、引用变量和函数调用
4.核心特性之hooks:
setup_hooks: 在整个用例开始执行前触发 hook 函数,主要用于准备工作。在 HTTP 请求发送前执行 hook 函数,主要用于准备工作;也可以实现对请求的 request 内容进行预处理。
teardown_hooks: 在整个用例结束执行后触发 hook 函数,主要用于测试后的清理工作。在 HTTP 请求发送后执行 hook 函数,主要用于测试后的清理工作;也可以实现对响应的 response 进行修改,例如进行加解密等处理。
雷神测试云平台拥有哪些主要功能?
雷神支持数据用例执行,可支持impala,hive,kudu,mysql和sqlserver等数据源。
数据用例实质又分成两大类:实时数据和离线数据两块。
实时数据主要是监控生产数据为主,离线数据主要是管理和监控T+1的用例数据。
断言方式支持等于、大于、小于和不比较。
当验证SQL和预期SQL执行结果断言失败时,执行详情SQL来打印具体信息
- 作为接口用例, header是非常重要的参数。 目前可支持全局和局部参数应用。
- 丰富的接口请求方式GET、POST、PUT、DELETE。 POST请求作为使用普遍的方式,支持form-data, raw (json)请求
- 在接口测试中,经常会遇到用例与用例之间有依赖的情况。而用例间的参数传递就成了至关重要的一点,为了解决接口的上下文依赖,雷神支持返回信息的中的变量提取,用于下一个用例中
- Key 设置变量名称,value为设置提取变量内容。 如上图提取变量名称为code,提取返回数据字段为reason_code
- 提取返回数据时必须以content开头,通过
.key
来指定下一级的节点,例如.person
,指定了content
下的person
节点,通过.index
来指定下一级的节点,例如.0
,指定了cities
下的第一个元素
- 提取headers、cookie则是headers、cookies开头
- 在下一个接口中可以用 $code的形式来调用提取出来的变量数据
- 断言校验是一条自动化测试用例的精髓,一条自动化测试用例是否能真正有效发挥它的测试价值,就看这条测试用例的断言编写是否做了良好的设计。雷神支持以下7种断言方式。
▶ contains,包含判断,check返回值123,expected填入值为23,判断为true
▶ not_equals 不等于
▶ string_equals 等于
▶ less_than 小于
▶ less_than_equals 小于等于
▶ greater_than 大于
▶ greater_than_equasl 大于等于
当测试用例数量比较多以后,为了方便管理和实现批量运行,通常需要使用测试用例集来对测试用例进行组织。
雷神在测试计划中根据需要可随意的添加删除测试用例到测试计划中,并且可上下拖动测试用例来组织先后执行关系。 同时可按需要来配置用例执行次数,以及设置用例状态来决定是否暂时暂停用例执行
测试计划执行完毕后,给用户生成一份清晰、明了的测试报告非常的关键,很庆幸是我们雷神就做到了这一点。 同时雷神的测试报告采用模板化操作,可根据报告模板自定义报告样式,非常的灵活。
在自动化测试中我们总希望设定一些定时任务,帮助我们做自动的冒烟回归测试,以及线上业务监控。雷神计划任务可设定需要执行的测试计划,支持多选。设置收件人,会发送邮件报告给对应的人。雷神的时间配置支持cron格式。
在测试中有时由于环境网络限制的关系,无法直接访问测试,需要通过配置Nginx反向代理来实现网络访问。雷神的nginx配置信息发布功能,帮大家实现了这样功能,能让大家无需去直接操作nginx配置信息,只需在页面上填写一些必要信息,就能发布nginx配置,用于接口和数据库连接的反向代理
雷神测试云平台实现了接口测试用例、数据测试用例、测试计划、测试报告、自动化一体化全方面的集中管理。从测试计划、测试用例管理和用例执行,到最后的结果分析,一套完整的测试流程控制,帮助测试人员有效的控制测试过程,从而保证测试质量的同时来保证我们产品质量。
欢迎大家来使用雷神,提出宝贵意见给我们,谢谢!