开源测试工具 基于 Sonic + ATX 二次开发,实现多机交互功能

Mr.武 for Sonic云真机系列 · 2022年03月21日 · 最后由 Mr.武 回复于 2022年03月21日 · 5142 次阅读

首先要感谢开源项目Sonic 云真机平台ATX作者 @ZhouYixun @codeskyblue

多机交互功能演示

核心需求

  • Web 页面编写 UI 自动化用例

    Python 编写用例学习成本较高,并且不易于维护,希望有一种可以通过页面点点点的方式来编写用例。

    在社区开源项目中发现了 Sonic,远控页面集成了设备画面、控件元素和 UI 自动化三大主要功能,元素、步骤、用例、用例调试都可以在这个页面上完成,简单方便。

  • 实现多机交互

    音视频通话和视频会议是核心功能,设备之间涉及到了交互。

  • 使用网络连接

    设备自带以太网接口,网络稳定,ATX 是再好不过的选择了(设备厂商自带 buff,开机启动 ATX)。

架构图

前端

  • 沿用 Sonic 前端页面
  • 远控增加多台设备画面(直接使用 ATX websocket)。
  • 添加步骤时增加选择设备实现多机交互。
  • 控件元素、测试用例使用树形列表维护。
  • 添加元素、添加步骤时取消弹窗。

后端

  • Python + Flask + FlaskIO + sqlalchemy
  • 处理前端请求,主要是 crud 操作。
  • 通过 websocket 与前端通信实现测试用例调试功能。
  • 通过 socket 与用例执行器进行通信,推送用例数据与实时获取测试结果。

用例执行器

  • Python + ATX
  • 后端通过 shell 启动用例执行器,每个执行器是一个独立的进程(充分利用多核)。
  • 根据后端推送的数据,通过 ATX 操作设备。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册