• 平台支持monkey命令并过滤日志展示-安卓


    前言:

    做测试开发有一段时间了,总会碰到各种各样的问题,特此记录下,已做备忘;

    任务目标:

    最近接手的工作是需要在平台上集成monkey命令,支持命令执行并对日志进行筛选,将包含exception、crash和anr的记录筛选出来并统计出现次数;

    任务整理与分析:

    1.实际概况:

    平台部署在linux服务器上;用户使用自己的电脑(win)连接真机(安卓)执行monkey命令;

    2.思路分析:

    1)服务器需要收集执行monkey命令的主机信息(主机名,IP地址等);

    2)通过收集到的主机信息,控制主机执行monkey命令;

    3.技术选型:

    1)通过redis上传主机信息;

    2)jsonp跨域传递命令,flask本地运行,接收命令并使用subprocess的Popen模块执行命令,执行后将结果返回给服务器并展示;

    项目实施:

    1.收集主机信息:

    前提:用户本机需准备好python环境并安装flask和redis模块;本机配置好adb环境;

    执行:运行提供的salve.py文件,上传主机信息;

    代码:

    2.平台展示主机信息提供执行入口:

    从redis读取主机信息并展示,提供执行入口,选择本机信息后点击后跳转到执行页面;

    3.执行过程:

    1)执行页面显示IP地址和执行按钮;

    html模板:

    2)点击执行按钮,通过jsonp将命令发送到本机;

    JS代码:

    3)本机接收到命令后执行并过滤日志,返回数据;

    salve.py完整代码:

    4)平台接收到数据,通过html模板展示;

    遗留问题:

    1. 端口被占用时,应自动杀死占用端口的进程后重新执行进程;(目前发现占用端口的为360手机助手,无法单独杀死进程,暂放弃);

    2.本地修改salve.py文件后,需手动杀死adb.exe进程,再重新运行salve.py文件;

    最终效果图:

  • 相关阅读:
    冷饭新炒:理解Sonwflake算法的实现原理
    nodejs多线程的探索和实践
    git 更新某个目录或文件
    Redis中删除过期Key的三种策略
    MySql(Innodb)事务隔离级别
    Maven的依赖范围
    Maven入门和介绍
    IDEA(Web项目忽略配置文件后)导入项目,拉取项目后的配置
    IDEA(普通项目忽略配置文件后)导入项目,拉取项目后的配置
    Maven的pom文件中标签含义
  • 原文地址:https://www.cnblogs.com/cocc/p/12365622.html
Copyright © 2020-2023  润新知