Android自动化巡检环境搭建

Android自动化巡检

  • 一、环境配置
    • 1、jdk配置
    • 2、python环境配置
    • 3、android sdk配置
    • 4、node配置
    • 5、allure配置
    • 6、scrcpy录屏工具配置
    • 7、appium配置
    • 8、模拟器安装
  • 二、项目配置
    • 1、python项目设置虚拟环境,迁移至另一台机器:
    • 2、目录结构
    • 3、项目运行步骤
    • 4、自动化巡检告警配置
  • jenkins配置
    • 1、新建jenkins执行机节点
    • 2、新建自由风格项目

一、环境配置

1、jdk配置

  • 下载jdk解压
  • 新增环境变量
JAVA_HOME  D:\tool\jkd1.8 #jdk安装路径
CLASSPATH  ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar"
  • PATH配置
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

2、python环境配置

  • 安装python
  • 安装Pycharm

3、android sdk配置

  • 下载sdk配置系统环境变量
  • 新增变量ANDROID_HOME
ANDROID_HOME D:\tool\Android\android-sdk
  • PATH配置
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools

4、node配置

  • 安装node.js
  • PATH配置 node安装目录

5、allure配置

  • 环境变量PATH配置新增
  • 将allure下bin文件配置到环境变量
D:\python\allure-commandline-2.9.0\allure-2.9.0\bin

6、scrcpy录屏工具配置

  • 测试报告中可配置录屏附件
  • 环境变量PATH配置新增
D:\tool\scrcpy_871759\scrcpy_v2.1.1_64bit_portable\scrcpy_v2.1.1_64bit_portable

7、appium配置

  • 安装Appium-windows-1.15.1.exe 客户端版本 可查询app页面元素进行调试 或者安装 Appium服务端版本 命令行版本
  • 选择安装位置自定义安装
  • 要求程序运行时启动appium服务

8、模拟器安装

如果需要开启webview 可切换其他模拟器如夜神 雷电等等 mumu模拟器暂时未找到开启webview方法 一开始可不选择mumu模拟器

  • 模拟器选择 当前项目使用mumu模拟器
  • 当前项目未使用webview页面元素,都是android原生页面,未做特殊配置,如需要使用webview页面需要打开webview的debug模式。
  • 对于webview页面要求
    • 1.android版本等于低于6.0 默认开启
    • 2.开发打包时一打开webview开关,生成测试包
    • 3.使用xposed框架+WebViewDebugHook 模块 强制开启,目前xposed框架只支持android7.0 32bit的app 可以使用夜神模拟器 64bit的app暂时不支持
  • 安装mumu模拟器
    • 安装启动之后 cmd运行 adb connect 127.0.0.1:7555 将模拟器与adb进行连接
    • 运行adb devices 查询当前已连接设备
  • 将需要自动化运行的apk安装至模拟器 adb install xx.apk

二、项目配置

1、python项目设置虚拟环境,迁移至另一台机器:

  • 1.安装相同版本的python环境(直接在pycharm中project interpreter,版本识别会出错,需要进行下一步操作) 当前项目使用版本为3.7.7
  • 2.python项目venv目录下,修改pyvenv.cfg文件,其余配置都删除
home = 本机python安装目录
include-system-site-packages = false
version = 本机python安装版本

2、目录结构

- base
	* basepage 底层元素封装
	* xx_app   业务app定制配置 保护登录操作等
- chromedriver webview页面需要使用的driver驱动
- images 
- logs
- page
	* mainpage.py    页面元素对应操作 根据po模式 可新增页面
	* mainpage.yaml 页面元素
- report 测试报告
- scrcpy app录屏工具 需要配置环境变量
- testcase 测试用例
- utils 
- config.json app启动配置项
- config.yaml 数据库  接口、邮件告警配置
- conftest.py  需要录屏附件 使用时将autouse=True
- main.py 启动文件
- start.bat 启动文件

3、项目运行步骤

  • 1、运行appium
  • 2、启动mumu模拟器
    • cmd运行 adb connect 127.0.0.1:7555
    • adb devices 获取设备id
  • 3、修改项目的config.json 中的设备id与包名
  • 4、运行main.py 或 启动start.bat 文件运行
  • 5、测试报告最终生成在report/allure下

4、自动化巡检告警配置

  • 十分钟运行一次脚本 jenkins配置时间 每次运行有失败用例都会发生邮件告警
  • 告警创建 进行时间判断 上一次失败时间与当前时间是否已经过去一小时 已经过去一小时 调用告警接口获取告警id 数据库新增一条告警记录 状态为1 成功状态0 失败状态1

jenkins配置

1、新建jenkins执行机节点

  • 执行机节点中配置好运行环境

2、新建自由风格项目

  • 执行节点选择已经配置好的节点
  • 关联远程代码仓库
  • 构建触发器 - 定时构建
    • 每隔10分钟构建一次 H/10 * * * *
  • 选择执行windows批处理命令
    • 方式一: python mian.py
    • 方式二: start start.bat
  • 构建后操作选择allure
    • Path: report/xml
    • 选择高级 Report path: report/allure
adb  connect 127.0.0.1:7555 mumu模拟器连接
{
  "platformName": "Android",
  "deviceName": "KVJF6XZ9PVYHDIR8",
  "udid": "KVJF6XZ9PVYHDIR8",
  "appPackage": "com",
  "appActivity": "com",
  "skipDeviceInitialization": "true",
  "autoGrantPermissions": "true",
  "noReset": "true"
}
# adb shell dumpsys window | findstr mCurrentFocus 获取当前最顶端的包名和活动名

你可能感兴趣的:(app自动化,android,自动化,运维)