前言
测试平台最强大的一个设计应该是流程控制。
测试平台的用户群体是测试,知道一些简单的判断,但是编程能力一般。
所以我们需要设计一个流程控制的系列组件,让测试拥有近似于开发的编程能力。
控制流
我们可以参考 java 的关键词设计。
这里只关注一些比较重要的流程控制。
控制流关键字
这些关键字用于控制程序的流程:
if else switch case default for while do break continue return
初期可以实现最核心的:if else loop
异常处理关键字
try catch finally throw throws
初期可以实现最核心的:throws catch
并行/串行
有些任务是可以并行的,有些串行。
支持用户自定义。
loop 的时候,定义是 concurrent-loop / serial-loop
能力组件
拥有了基本的流程控制,接下来我们要实现的就是一些基础的组件能力。
测试其实和编程类似,我们大概需要做几件事情:
1)基础环境准备
2)请求参数构建
3)执行调用
4)结果的参数提取+断言
5) 后置动作 如报告发送/报警等
覆盖率+成功率+分析处理 可以作为内置的能力。
外部请求
http
rpc
mq
数据库操作
mysql
redis
mongodb
neo4j
es
….
参数构建
全局变量
环境变量
提取变量
数据加工
可以提取为一个单独的模块
可以对入参统一处理,也可以对出参统一处理。
对数据进行各种转换等等。
资源管理
文件管理 上传/机器同步
脚本(组)
执行各种 shell / groovy 脚本等
报告模块
结果可以和其他通知渠道结合:
IM
SMS
PHONE
整体流程的串联
可以通过 tree 的方式,将上面的流程串联在一起
https://element.eleme.io/#/zh-CN/component/tree
参考资料
https://github.com/metersphere/metersphere