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

移动自动化测试-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)
http://www.xdnf.cn/news/438.html

相关文章:

  • thanos rule组件和prometheus区别?
  • 5G基站设计难题:尺寸、重量、功耗和散热
  • HashMap 初步理解 put 操作流程 HashMap 的线程安全问题
  • 精益数据分析(5/126):解锁创业成功的关键密码
  • FPGA练习———DDS波形发生器
  • 一个项目中多个Composer的使用方法
  • 读文献方法
  • Linux系统之diff3命令详解
  • Nodejs数据库单一连接模式和连接池模式的概述及写法
  • 2024-04-19| Java: Documented注解学习 JavaDoc
  • 【网络篇】TCP vs UDP底层区别+网络编程概念
  • 网络爬虫和前端相关知识
  • 根据Exif信息纠正图片方向
  • MYSQL初阶(暂为自用草稿)
  • 哔哩哔哩工具箱:BiliTools v1.3.2
  • PyTorch数据操作基础教程:从张量创建到高级运算
  • 2563.统计公平数对的数目 是否顺序无关?
  • 【java实现+4种变体完整例子】排序算法中【希尔排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • Java 内存优化:如何避免内存泄漏?
  • 系分架构论文《论高并发场景的架构设计和开发方法》
  • REST 架构详解:从概念到应用的全面剖析
  • Vue3 + Three.js 场景编辑器开发实践
  • jangow靶机笔记(Vulnhub)
  • LeetCode 1365. 有多少小于当前数字的数字 java题解
  • phpy通用扩展:让PHP和Python手拉手
  • 基于SFC的windows修复程序,修复绝大部分系统损坏
  • 如何0基础学stm32?
  • 【操作系统原理01】操作系统引论
  • vue生命周期
  • 安徽合肥京东自营代运营如何突围?