Appium移动端测试--基础预热
目录
近日开始了移动端自动化测试的学习之路,决定在学习的过程中进行笔记,总结学习,印象或许会深刻一些。
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移动端测试--基础预热的更多相关文章
- Appium移动端测试--搭建测试环境
目录 文章目录如下 安装Android Studio及Android SDK 更改VDM默认存储路径 通过npm安装Appium Server 启动Appium GUI模式 Appium连接会话 Ap ...
- 自动化测试_移动端测试(二)—— Appium原理
一.什么是Appium Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持IOS.Android及FirefoxOS平台.Appium使用WebDriver ...
- 三 APPIUM Android自动化 测试初体验
1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependencies></dependencies>下添加appium相关依赖: <depende ...
- 脚手架vue-cli系列五:基于Nightwatch的端到端测试环境
不同公司和组织之间的测试效率迥异.在这个富交互和响应式处理随处可见的时代,很多组织都使用敏捷的方式来开发应用,因此测试自动化也成为软件项目的必备部分.测试自动化意味着使用软件工具来反复运行项目中的测试 ...
- 最受欢迎的5款Node.js端到端测试框架
测试,尤其是自动化测试在现代 WEB 工程中有着非常重要的角色,与交付过程集成良好的自动化测试流程可以在新版发布时帮你快速回归产品功能,也可以充当产品文档.测试因粒度不同又可以分为单元测试.接口测试. ...
- 二 APPIUM Android自动化 测试初体验
本文转自:http://www.cnblogs.com/sundalian/p/5629358.html 1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependenci ...
- Appium Grid并发测试
背景 Selenium玩的比较6的同学比较清楚:在Selenium中三大组件中有包含了Selenium Grid,而其作用就是分布式执行测试用例.主要的应用场景在于: 缩短测试执行时间,提高自动化测试 ...
- 8-MySQL DBA笔记-测试基础
第三部分 测试篇 测试需要掌握的知识面很广泛,本篇的关注点是数据库的性能测试和压力测试,对于其他领域的测试,由于涉猎不多,笔者就不做叙述了.DBA的工作职责之一就是评估软硬件,这往往是一项很耗时的工作 ...
- AWS EC2+Docker+JMeter构建分布式负载测试基础架构
目录 概述及范围 前提条件 Part 1: Local setup-本地配置 Part 2: Cloud端基础架构--Infrastructure 总结: 原文链接 @ 概述及范围 本文介绍有关如何使 ...
随机推荐
- Aquameta 基于postgresql的web 开发平台
Aquameta 是一个完全基于pg 开发的web平台 ,目前还在开发中. 当前支持的功能 meta 写入系统信息到pg bundle 基于pg 类似git 的文件系统 filesystem 双向文件 ...
- 封装好的observer.js,用于非父子组件传值,直接调用$on和$emit方法
const eventList = {} const $on = (eventName,callback)=>{ if(!eventList[eventName]){ eventList[eve ...
- luogu P3975 [TJOI2015]弦论 SAM
luogu P3975 [TJOI2015]弦论 链接 bzoj 思路 建出sam. 子串算多个的,统计preant tree的子树大小,否则就是大小为1 然后再统计sam的节点能走到多少串. 然后就 ...
- SQL基础-存储过程&触发器
一.存储过程 1.存储过程简介 存储过程: 一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,然后通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 存储过程的创建: ...
- RAdam VS Adam
论文解读:Radam:ON THE VARIANCE OF THE ADAPTIVE LEARNING RATE AND BEYOND 1,目的 想找到一个比较好的优化器,能够在收敛速度和收敛的效果上 ...
- linux 查看网卡以及开启网卡
1.查看并分配虚拟网络 我们首先要知道 VMware 三种网络模式的区别. ①.Bridged(桥接模式):就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信.在桥接的作用下,类似于把物理主机虚拟为 ...
- .Net Core3 新特性整理
.net core 3实现了.net 标准2.1. 1.生成可执行文件 以前版本需要dotnet run运行项目,.net core 3支持直接生成目标平台的可执行文件.比如windows就是exe了 ...
- Unity3D普通开发人员,U3D主程分别需要掌握的技能
Unity3D普通开发人员 1.会查看和搜索unity API文档,熟悉一些3D术语单词 2.查看别人的代码,能够依葫芦画瓢 3.能够制作一些常见的UI效果,善用缓动类插件,如Do Tween pro ...
- 为什么“四年一闰、百年不闰、四百年又闰”及 判断闰年的方法
小学数学学习方法: 为什么"四年一闰.百年不闰.四百年又闰"及判断平年和闰年的妙法 三年级的小朋友们都知道:我们公历年份是4的倍数的那一年一般都是闰年,但公历年份是100的倍数时, ...
- 2019年计算机技术与软件专业技术资格(水平)考试安排v
根据<关于2019年度专业技术人员资格考试计划及有关问题的通知>(人社厅发[2018]142号)要求,2019年度计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)安排 ...