Skip to content

Latest commit

 

History

History
106 lines (45 loc) · 2.28 KB

runner.md

File metadata and controls

106 lines (45 loc) · 2.28 KB

理论

runner独立运行在目标机器上, 脱离designer, 使得designer的使用更加强大

目标机器是指SUA程序最终作用于的设备

runner 基于守护进程制度, 使用双线保活, 开机自启

runner有三种接入方式: server、designer、local

优先级分别为: local > designer > server

对应含义:

操作方 含义
local 本地悬浮界面/web页面
designer 设计器指定接入
server 服务端指定接入

runner需要做的事情:

认证授权, 心跳和会话保持

接收&拉取指令

检查&执行指令

记录运行状态和操作记录到本地

同步本地数据到服务端

资源占用更加轻量级: 内存、硬盘、CPU、GPU、网络、文件操作数量、进程、线程、界面

安装应该尽可能简单, 自动安装、更新、启动

runner 集群, 任务并行, 集群调度, 集群模式&状态管理, 集群环境维持

runner的安装方式:

远程连接到目标设备, 例如: windows remote shell, 执行初始化动作

在目标设备键入系统脚本命令, 例如打开PowerShell 输入命令, 运行下载的脚本, 脚本中做初始化动作

开发

目前只是在windows环境下使用

需要开发成exe文件

需要本地能够打开web系统

需要在屏幕上悬浮一层透明无焦点的界面展示运行日志、流程、状态、组成

操作本地文件

外部接入

下载业务流程指令、数据, 上传日志

调用computer传递文件和数据, 等待computer计算并响应

执行业务流程逻辑指令

总线子线隔离

融合picker, 监控键鼠操作、截图、句柄生成

融合recorder, 录制屏幕, 整理场景, 简要记录数据模型

融合tester, 大量测试, 对比得到差异值, 将差异值、运行时数据、沉淀数据发送给人工手动处理

融合fault-injector, 模拟注入故障

指令: python代码

执行python代码需要python解释器和lib库

先安装runner -> 再安装python解释器 -> 再下载python库文件 -> 再下载component(版本文件)

注册服务&守护线程&双线保活

和外部接入保持心跳连接

总线-子线方式, 使用总线创建/销毁/修改 子线, 维持子线运行状态, 子线执行流程逻辑指令