目录
目录README.md

自动化测试框架

1. 框架介绍

  1. 框架采用C/S与B/S架构组成,分为Client端和Server端;
  2. Server端采用Python11开发,Django 4.2.13作为基础框架,中间件使用SQLite3、Pillow、OpenCV2;
  3. Client端采用Golang进行开发,中间件使用Robotgo。

2. 功能规划

  • Server端:
  1. 测试盒子,为运行测试客户端的主机或虚拟机,可添加多个测试盒子满足同步测试的需要。
  2. 数据源,为执行任务配置数据源,可为动作提供读取数据源。
  3. 资源管理,需要提前对测试目标的各功能控件、部件进行截图和定义。
  4. 动作管理,定义控件的执行动作,通过为资源定义对应动作,可通过编排动作序列顺序执行。
  5. 任务编排,对多个任务进行编排,实现一系列的执行动作序列。
  6. 计划任务,通过编排多个任务,实现一整套的测试计划任务。
  • Client端:
  1. 服务端监听http端口,通过json方式与服务端连通。
  2. 接收指令后可以作客户端启动、截屏、键盘操作、鼠标操作。

3. 规划设计图

1718088439185

4. Todo

  • 测试盒子模块由于每次打开界面都会测试一遍连接情况,导致每次加载界面都很慢。
  • 计划任务执行,一旦出现错误,错误任务会缓存到任务队列的失败任务队列中,每次都需要手工清掉失败任务,否则会一直重试,实际业务场景并不需要。
  • 队列速度执行过快,通过插入sleep在每个任务队列之间,增加缓冲时间。
  • 测试报告,实现测试报告生成。
  • 定时测试计划,实现定义定时测试任务,失败恢复的一系列功能。
  • 虚拟机管理,实现测试盒子的虚拟化管理,根据测试任务自动生成、启动、执行、销毁测试盒子;
  • 增加压测模块,可以对特定接口或功能进行并行压力测试。(仅能支持API,界面功能无法实现);

5. Bugs

  • 任务编排如果添加任务后,需要把新增的任务上提顺序,必须要把原有的任务order先改到未选择的,错开保存才生效;
  • 获取数据库方式为服务端获取,这样会导致一个问题,就是必须服务端要连上vpn才能获取到数据;需要调整为从客户端获取数据;
  • 增加django-admin-sortable2后,simpleAdmin报错length_is不存在,需要修改.\venv\Lib\site-packages\simpleui\templatetags\simpletags.py文件
@register.filter
def length_is(value, arg):
    """Check if the length of the value is equal to the given arg."""
    return len(value) == arg
关于
8.3 MB
邀请码