近日开始了移动端自动化测试的学习之路,决定在学习的过程中进行笔记,总结学习,印象或许会深刻一些。

Android自动化环境准备

1、 Android SDK:- 下载 Android SDK(可以先使用Android Studio辅助安装),并设置 PATH 变量加入 SDK 的工具目录;
2、模拟器:

  • Android Studio 自带 Emulator [推荐]
  • Genymotion、网易 MuMu、BlueStacks

3、真机

需要安装的软件:

1、安装Android Studio(包含了SDK和Emulator)
2、安装Node.js和npm
3、安装Appium()
4、安装脚本IDE Pycharm

接下来大概的看一下与Appium相关的知识点。

Appium多端架构与自动化

Android自动化前提依赖:

获取App的信息:

获取App信息

  • 获取当前界面元素:adb shell dunpsys activity top
  • 获取任务列表:adb shell dumpsys activity activities

获取App入口

  • adb logcat | grep -i displayed
  • aapt dump baadging mobike.apk | grep lunchable-activity
  • apkanalyzer 最新版本的SDK中才有

启动应用

  • adb shell am start -w -n com.xueqiu.android/.view.WelcomeActivityAlias -S

Android常用命令

  • adb:Android Debug Bridge
  • adb devices:查看设备
  • adb kill-server:关闭 adb 的后台进程
  • adb tcpip:让 Android 脱离 USB 线的 TCP 连接方式
  • adb connect:连接开启了 TCP 连接方式的手机
  • adb logcat:Android 日志查看
  • adb bugreport:收集日志数据,用于后续的分析,比如耗电量

adb shell

adb shell 本身就是一个 Linux 的 shell,可以调用 Android 内置命令
adb shell:

  • adb shell dumpsys
  • adb shell pm
  • adb shell am
  • adb shell ps
  • adb shell monkey

常用命令列表:

adb: adb install (apk)
pm:包管理工具,安装/卸载/清理包
adb shell pm clear com.xueqiu.android

am: 启动一个app
adb shell am start -n com.xueqiu.android
(adb shell am start -n com.xueqiu.android/.view.WelcomeActivityAlias -S)
dumpsys: 获取app性能数据,以及更多详细的信息

uiautomator: 获取app整体的界面结构,也可以执行一些自动化测试
adb shell uiautomator dump
adb shell “uiautomator dump && cat /文件名“
input: 完成一些简单的自动化指令
adb shell input
模拟一些触摸/键盘等操作事件
adb shell input tap 529 1176 #点击对应坐标的位置

Android性能统计dumpsys

  • 获取所有的 dumpsys 子命令 dumpsys | grep -i DUMP
  • 获取当前 activity adb shell dumpsys activity top
  • 获取 activities 的记录,可以获取到 appium 依赖的原始 activity dumpsys activity activities
  • 获取特定包基本信息 adb shell dumpsys package com.xueqiu.android
  • 获取系统通知 adb shell dumpsys notification
  • 获得内存信息 adb shell dumpsys meminfo com.android.settings
  • 获取 cpu 信息 adb shell dumpsys cpuinfo
  • 获取 gpu 绘制分析 adb shell dumpsys gfxinfo com.android.settings
  • 获取短信 adb shell dumpsys activity broadcasts | grep senderName=

uiautomator

  • adb shell uiautomator runtest
  • adb shell uiautomator dumpsys

简单的自动化工具input命令

  • text (Default: touchscreen)
  • keyevent [--longpress] ... (Default: keyboard)
  • tap (Default: touchscreen)
  • swipe [duration(ms)] (Default: touchscreen)
  • draganddrop [duration(ms)] (Default: touchscreen)
  • press (Default: trackball)
  • roll (Default: trackbal

Appium生态工具

  • adb:Android 的控制工具,用于获取 Android 的各种数据和控制
  • Appium Desktop:内嵌了 Appium Server 和 Inspector 的综合工具
  • Appium Server:Appium 的核心工具,命令行工具
  • Appium Clients:各种语言的客户端封装库,用于连接 appium server:
    Java、Python、Ruby、robotframework-appium
  • AppCrawler 自动遍历工具

Appium desktop主要功能

  • UI 分析
  • 录制用例
  • 元素查找测试
  • Attach已有的session
  • 云测试

录制用例并执行

  • 使用 Appium Desktop 录制用例
  • 安装 Python 依赖 pip install Appium-Python-Client
  • 增加隐式等待增强稳定性
  • 重新运行

注:
以上内容来自思寒老师在极客时间的移动端测试课程:
https://time.geekbang.org/course/detail/244-159017

​更新预告:
下一篇笔记将详细介绍所需环境的软件安装​

Appium移动端测试--基础预热的更多相关文章

  1. Appium移动端测试--搭建测试环境

    目录 文章目录如下 安装Android Studio及Android SDK 更改VDM默认存储路径 通过npm安装Appium Server 启动Appium GUI模式 Appium连接会话 Ap ...

  2. 自动化测试_移动端测试(二)—— Appium原理

    一.什么是Appium Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持IOS.Android及FirefoxOS平台.Appium使用WebDriver ...

  3. 三 APPIUM Android自动化 测试初体验

    1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependencies></dependencies>下添加appium相关依赖: <depende ...

  4. 脚手架vue-cli系列五:基于Nightwatch的端到端测试环境

    不同公司和组织之间的测试效率迥异.在这个富交互和响应式处理随处可见的时代,很多组织都使用敏捷的方式来开发应用,因此测试自动化也成为软件项目的必备部分.测试自动化意味着使用软件工具来反复运行项目中的测试 ...

  5. 最受欢迎的5款Node.js端到端测试框架

    测试,尤其是自动化测试在现代 WEB 工程中有着非常重要的角色,与交付过程集成良好的自动化测试流程可以在新版发布时帮你快速回归产品功能,也可以充当产品文档.测试因粒度不同又可以分为单元测试.接口测试. ...

  6. 二 APPIUM Android自动化 测试初体验

    本文转自:http://www.cnblogs.com/sundalian/p/5629358.html 1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependenci ...

  7. Appium Grid并发测试

    背景 Selenium玩的比较6的同学比较清楚:在Selenium中三大组件中有包含了Selenium Grid,而其作用就是分布式执行测试用例.主要的应用场景在于: 缩短测试执行时间,提高自动化测试 ...

  8. 8-MySQL DBA笔记-测试基础

    第三部分 测试篇 测试需要掌握的知识面很广泛,本篇的关注点是数据库的性能测试和压力测试,对于其他领域的测试,由于涉猎不多,笔者就不做叙述了.DBA的工作职责之一就是评估软硬件,这往往是一项很耗时的工作 ...

  9. AWS EC2+Docker+JMeter构建分布式负载测试基础架构

    目录 概述及范围 前提条件 Part 1: Local setup-本地配置 Part 2: Cloud端基础架构--Infrastructure 总结: 原文链接 @ 概述及范围 本文介绍有关如何使 ...

随机推荐

  1. eclipse隐藏的列编辑

    作为开发人员,应该大部分都懂列编辑模式,最早接触使用列编辑模式是用UE,后来用了notepad++,列编辑模式也很顺手. 以前用eclipse编辑代码想用列编辑时还以为它不支持就打开notepad++ ...

  2. luogu 2742 二维凸包

    链接 luogu 模板一 上下利用斜率求凸包然后合并. #include <bits/stdc++.h> using namespace std; const int N=10005; c ...

  3. 【CSP-S膜你考】即时战略(模拟)

    Problem B. 即时战略 (rts.c/cpp/pas) 注意 Input file: rts.in Output file: rts.out Time Limit : 2 seconds Me ...

  4. x64汇编第四讲,c / C++中调用x64汇编

    目录 x64汇编第四讲,c / C++中调用x64汇编 一丶简介 1.说明 二丶C/C++调用 asm64.asm函数. 1.配置asm参与生成 2.给Asm文件添加函数代码 3.C/C++调用asm ...

  5. 禁止tomcat的Catina.out的累计输出

    禁止tomcat的Catina.out的累计输出 1.设置 catina.sh的CATALINA_OUT=/dev/null

  6. 云服务器搭建JDK+Tomcat+MySQL环境

    一.首先租赁一台云服务器(阿里云服务器或者腾讯云服务器) 其实可以在windows电脑上使用VMware workstation来安装虚拟机进行操作,毕竟云服务器低配也是很贵的.不过可以使用学生价去租 ...

  7. cgdsR 下载TCGA数据

    TCGA 的数据可以在5个组织机构获取,它们都提供了类似的接口来供用户下载数据. cgdsR 包是cBioPortal 提供的R包 http://www.cbioportal.org/rmatlab ...

  8. hotspot的安全区(saferegion)和安全点(safepoint)

    1.通过OopMap完成根节点枚举 HotSpot虚拟机使用可达性分析算法确定对象是否可以被GC. 可达性分析算法从一系列GCRoot对象开始,向下搜索引用链,如果一个对象没有与任何GCRoot对象关 ...

  9. Xshell 服务器配置

    1.新建链接  2.配置公网IP  3.输入用户名和密码

  10. python dlib学习(五):比对人脸

    前言在前面的博客中介绍了,如何使用dlib标定人脸(python dlib学习(一):人脸检测),提取68个特征点(python dlib学习(二):人脸特征点标定).这次要在这两个工作的基础之上,将 ...