# tinyMMI **Repository Path**: schips/tinymmi ## Basic Information - **Project Name**: tinyMMI - **Description**: 开源的mmi框架,可用于基于Linux系统之上的功能测试 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2021-10-20 - **Last Updated**: 2023-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TinyMMI Linux下轻量级人机交互接口框架,可用于单元模块的测试。 ## 测试模块特性 测试模块能够配置为 - 测试之前的默认返回值 - 是否测试 - 是否自动测试 - (可选)设置程序的测试模式,让测试单元能够在某些模式下支持/禁用 - 命令的分类与解析(运行,查询单个/全部运行结果) ## 使用 编译:`make` ### 服务端 执行: `./tinymmi` ### 客户端 客户端执行格式要求: ```bash ./tinymmi -m run/get/set -c module-name [set-value, 'ok' or other] [-a server-ip:port] ``` -m : 模式:(见下表) | 运行模式 | 意义 | | -------- | ------------------ | | run | 执行指定的模块 | | get | 获取模块的执行结果 | | set | 设置模块的执行结果 | -c :模块命令:如果命令存在,则执行;如果模块为`all`,则执行所有的模块 -v:设置值 | 模式 | 值 | 意义 | | ---- | ------- | ------------------------ | | get | pending | 获取模块执行时信息 | | set | ok | 设置模块的执行结果为成功 | | set | 其他值 | 设置模块的执行结果为失败 | -a:指定服务端地址(可选,默认为`127.0.0.1:8888`) 例如 : ```bash # 执行demo模块 ./tinymmi -m run -c demo # 带参数执行demo模块 ./tinymmi -m run -c demo -v "for demo" # 获取demo模块执行结果 ./tinymmi -m get -c demo # 设置demo模块执行结果为失败 ./tinymmi -m set -c demo -v no # 获取demo模块执行结果 ./tinymmi -m get -c demo # 执行所有模块 ./tinymmi -m run -c all # 获取所有模块执行结果 ./tinymmi -m get -c all ``` ## 实现原理 程序以server、client这2种行为进行运行。 - server:以单例模式后台常驻,会预初始化(preInit)测试模块的所需的资源,并响应client的命令。 - client:发送socket请求给server,要求执行获取执行结果 ### server 通过异步处理本地socket,将有关的结果放入线程池进行运行。 ### client 通过socket建立与server的通信,发送 run/get/set module 的请求,并获取对应的结果