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 总结: 原文链接 @ 概述及范围 本文介绍有关如何使 ...
随机推荐
- 如何查看WinDbg扩展有哪些命令
如果您想查看任何windbg扩展所支持的命令,可以采用各种方法. 你可以用!<ext_name>.help命令查看该扩展支持的所有命令.用扩展模块名替换<ext_name>.( ...
- 发布jar包到远端github仓库使用(将github仓库当作maven仓库)
今天把单点登陆的core模块搬到了github仓库 并且利用github仓库作为maven仓库 在项目中进行了引用 1. 起初看技术博客没有完全引入进来,调整了一下OK了 2. 还可以将其他模块或者工 ...
- 中心极限定理(Central Limit Theorem)
中心极限定理:每次从总体中抽取容量为n的简单随机样本,这样抽取很多次后,如果样本容量很大,样本均值的抽样分布近似服从正态分布(期望为 ,标准差为 ). (注:总体数据需独立同分布) 那么样本容量n应 ...
- xms西软预定列表-房类市场
select b.descript,sum(a.quan) as quan,case WHEN c.descript is null THEN '团队预留' ELSE c.descript end a ...
- 2019 第二届 科成安洵杯 官方WriteUp -17网安
长文预警:对应源码请加企鹅群获取:861677907 0x01 WEB 1.1 勇闯贪吃蛇大冒险 一进去就看出来是一道web页面JS的小游戏,提示说输入CDUESTC CTF即可闯关成功,但是存在着d ...
- Git 自救指南:这些坑你都跳得出吗?
阅读本文大概需要 2 分钟. 菜单栏中添加我微信,私聊[加群]拉你入微信学习交流群 Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式. ...
- 关于js函数解释(包括内嵌,对象等)
常用写法: function add(a,b) { return a + b; } alert(add(1,2)); // 结果 3 当我们这么定义函数的时候,函数内容会被编译(但不会立即执行,除非我 ...
- Spring Cloud Ribbon源码分析---负载均衡实现
上一篇结合 Eureka 和 Ribbon 搭建了服务注册中心,利用Ribbon实现了可配置负载均衡的服务调用.这一篇我们来分析Ribbon实现负载均衡的过程. 从 @LoadBalanced入手 还 ...
- 【转】干货篇:手机绕过BL锁9008模式强刷
<ignore_js_op> 高通QPST线刷其实就是利用高通芯片自带的9008端口,将手机系统内的所有分区的镜像文件,直接刷写手机.这个刷机方式比REC卡刷和fastboot线刷,更底层 ...
- 对数损失函数logloss详解和python代码
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...