当前位置: 首页 > news >正文

移动自动化测试-appium

  • app自动化介绍
  • 工具说明

主流工具
在这里插入图片描述

app自动化执行原理
在这里插入图片描述

app类型(技术)
在这里插入图片描述

  • 环境搭建

  • 所需环境

  • JDK
  • android-sdk
  • appium
  • 模拟器

1、JDK安装

说明:为什么要安装JDK?

  • 安卓应用或开发工具是使用JAVA语言开发,必须使用jdk。
  • 查看是否安装jdk
    在这里插入图片描述

安装

  • 下载安装包后直接以管理员方式安装,下一步到最后即可。
  1. android-sdk

说明:android工具包
安装:

  • 1、解压到指定目录
  • 2、将目录添加到path中
    • 1、新建环境变量:ANDROID_HOME=D:\android\sdk(这里为安装目录)
    • 2、添加path路径,在path中添加:%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
      提示:tools有查看元素工具,我们必须使用;platform-tools是adb命令工具所在目录。

3、appium安装

说明:需要安装appium服务端程序python中调用的api库
服务端:

  • 作用:将脚本发送给手机
  • 安装:双击安装程序appium-desktop-1.8.0.exe,一直到完成即可。
  • python的appium.api库
    • 作用:自动化测试使用api
    • 安装:pip install Appium-Python-Client==1.2.0

4、模拟器

说明:安卓手机
安装:雷电、mumu、夜神,默认安装完成即可

  • adb命令

说明:通过电脑,操作android系统的工具。

  • adb工作原理
    在这里插入图片描述
  • adb命令
  • 获取包名和启动名
    • 包名:一个安卓应用的唯一标识符,操作哪个应用需要依赖包名
    • 启动名:应用中界面标识符,允许重复。
1、mac/linux:adb shell dumpsys window | grep usedApp
2、windows:adb shell dumpsys window | findstr usedApp

在这里插入图片描述

  • 上传和下载命令
    • 上传:adb push 路径\xxx.txt/sdcard
    • 下载:adb pull /sdcard/xxx.txt本地文件夹路径
  • 启动时间命令
    • 命令:adb shell am start -W 包名/启动名
      在这里插入图片描述
      注意:查看时间,一般要冷启动(应用程序没有启动)
      冷启动:应用程序未启动
      热启动:应用程序已启动在后台或当前页面。
  • 查看日志
    • 命令:adb logcat > d:\xxx.log
    • 提示:对app操作时,要先开启日志,记录app操作的步骤和异常
  • 其他常用命令
    在这里插入图片描述

提示:
1、adb start-server 正常不需要手动启动,自动启动adb.exe进程。当应用进程死机,需要执行杀服务,杀完后
需要执行命令启动。
2、adb connect ip:端口 正常不要手动连接,系统会自动连接。如果执行adb devices 没有看到设备列表,需要
手动连接。

  • 元素定位
  • 查看元素定位信息

为什么要查看元素信息?
说明:自动化测试就是查找元素操作元素,要查找元素,就需要根据元素的信息来查找(id、
class、text、…)

  • 如何查找?

使用:android SDK 自带工具:uiautomatorviewer工具

  • 如何使用?

1、启动1、启动
2、截屏查看
在这里插入图片描述
在这里插入图片描述

  • 使用常见问题
    在这里插入图片描述
  • 元素操作
  • 基础操作API
    入门示例

前置:必须启动appium服务、模拟器。

from appium import webdriver
#定义字典变量
desired_caps={}
#字典追加启动参数
desired_caps["platformName"]="Android"
#注意:版本号必须正确
desired_caps["platformVersion"]="7.1.1"
#android不检测内容,但是不能为空
desired_caps["deviceName"]="192.168.56.101:5555"
desired_caps["appPackage"]="com.android.settings"
desired_caps["appActivity"]=".Settings"
#设置中文
desired_caps["nicodeKeyboard"]=True
desired_caps["resetKeyboard"]=True
#获取driver
driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)

相关文章:

  • jQuery — 动画和事件
  • kimi+deepseek制作PPT
  • 【java实现+4种变体完整例子】排序算法中【桶排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • spring-batch批处理框架(2)
  • 已注册商标如何防止被不使用撤销!
  • UDS中功能寻址可以请求多帧数据嘛?当ECU响应首帧后,诊断仪是通过物理寻址发送流控帧嘛?
  • 如何给云开发生成的智能体增加权限判断
  • 【排队论】Probabilistic Forecasts of Bike-Sharing Systems for Journey Planning
  • NestJS——使用TypeORM连接MySQL数据库(Docker拉取镜像、多环境适配)
  • 文献×材料 | 基于ANSYS的刹车片环保材料分析研究
  • CRC实战宝典:从原理到代码,全面攻克循环冗余校验
  • Transformer 进阶:拥抱预训练模型,迈向实际应用
  • DDPM(diffusion)原理
  • opencv练习
  • 16、堆基础知识点和priority_queue的模拟实现
  • opencv(双线性插值原理)
  • 解决 Vue3 项目中使用 pdfjs-dist 在旧版浏览器中的兼容性问题
  • 智能座舱架构与芯片 - 背景篇
  • QT网络拓扑图绘制实验
  • 基于单片机的热释电红外报警器(论文+源码)
  • 张文宏:加强基层医疗体系建设,提升传染病早期监测和预警能力
  • 收缩非洲业务专注挖矿,裁减大批外交官,“美国务院改革草案”引争议
  • 探索未来课堂更多可能,“人工智能课堂分析循证实验室”在沪成立
  • 全国登记在册民营企业超过5700万户,占企业总量92.3%
  • 玉渊谭天丨先爆视频再爆订单,美关税影响下企业因短视频火出圈
  • 左眼失明左耳失聪,办理残疾人证被拒?县残联:双眼残疾才能办