自动测试应用的秘诀
1.App自动化测试的技术体系
2.Android SDK环境搭建与常用命令
Anddroid自动化测试前提条件是系统中有JDK环境,并且已经安装好Android SDK
Tools。此外,通常情况下,都是基于模拟器的自动化测试(除非做兼容性测试使用真机
环境),所以还需要配置或者安装安卓模拟器,这里不推荐使用Android Studio自带的
模拟器,因为模拟器性能比较低,推荐使用网易 MuMu 模拟器或者夜神模拟器。接下来,
先来讲解如何搭建整套环境。
2.1 Android SDK环境搭建
2.1.1 JDK环境
首先去官网下载JDK,一般下载JDK8就行,不用追求最新。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
然后进行安装,建议直接默认安装即可,安装步骤一直点下一步即可。如图所示
安装完成后,需要配置环境变量。
右键 This PC(此电脑) -> Properties(属性) -> Advanced system settings(高级系统设置) -> Environment Variables(环境变量)
输入: 变量名:JAVA_HOME 变量值:电脑上JDK安装的绝对路径
输入完毕后点击 OK。
新建/修改 CLASSPATH 变量
如果存在 CLASSPATH 变量,选中点击 Edit(编辑)。
如果没有,点击 New(新建)... 新建。
输入/在已有的变量值后面添加:
变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
点击 OK 保存。
修改Path 变量:
新建两条路径:
%JAVA_HOME%\bin %JAVA_HOME%\jre\bin
配置完成后,进入控制台分别输入:java -version、java、javac进行验证。
2.1.2 Android SDK环境搭建
首先下载并安装Android SDK。下载Android SDK Tools,下载地址http://www.androiddevtools.cn/
网站工具很多,找到SDK Tools这里,选择windows版本的SDK-tools,如图所示:
下载完成后,将压缩包解压即可。可以得到如下目录:
双击SDK Manger.exe进行安装。
注意事项:
⚫ 将android sdk解压到一个空间比较大的磁盘根目录,比如图中直接放在D盘根目录
⚫ 不建议将压缩包放入的路径过深,尤其是不能放在中文文件夹里
勾选Accept License,然后点击Install即可。(Intel*相关插件可能会安装失败,忽略即可,基本用不到)
如果你网络不太好,可以更改镜像地址Tools -> Options
安装完成后,添加环境变量ANDROID_HOME。步骤更配置JDK一样。如图:
在系统变量 path 中添加分别变量值%ANDROID_HOME%\platform-tools和%ANDROID_HOME%\tools
Android SDK配置完成,接下来验证配置是否成功。 使用快捷键【windows】+【R】——输入cmd——回车——输入adb——回车,出现英文命令提示即可
2.2 常用adb命令(Android Debug Bridge)
2.2.1 连接模拟器 网易MuMu模拟器:
adb connect 127.0.0.1:7555 夜神模拟器:adb connect
127.0.0.1:62001 蓝叠模拟器:adb connect 127.0.0.1:5555 雷电模拟器:adb connect
127.0.0.1:5555
2.2.2其他常用基本命令
查看设备连接情况:adb devices 关闭adb后台进程:adb kill-server 启动adb进程:
adb start-server 建立TCP连接方式(脱离USB线):adb tcpip Android日志查看:
adb logcat 收集日志信息:adb bugreport
2.2.3 获取App相关信息
获取当前页面元素:adb shell dumpsys activity top 获取当前任务列表:adb shell
dumpsys activity activites
2.2.4 获取App入口
adb logcat | findstr -i displayed aapt dump badging NeteaseCloudMusic.apk |
findstr launchable-activity
3.Appium环境搭建与使用
因为Appium环境依赖node.js,所以先下载并安装node.js。下载地址:
https://nodejs.org/en/
选择LTS版本
直接一路下一步即可,在最后一步可以让安装程序自动添加环境变量,或者自己手动配置都可以。
环境变量的配置,跟JDK等类似,这里不再赘述。
接下来,再安装.net framework,否则安装过程中可能会报错,下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=30653
下载完成直接安装即可。
到现在为止,所有准备工作已经完成。
3.1 Appium简介
Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。
Appium生态链组成:
⚫ adb:Android 的控制工具,用于获取 Android 的各种数据和控制
⚫ Appium Desktop:内嵌了 Appium Server 和 Inspector 的综合工具
⚫ Appium Server:Appium 的核心工具,命令行工具
⚫ Appium Clients:各种语言的客户端封装库,用于连接 appium server
⚫ Monkey等自动遍历工具
3.2 Appium Desktop使用
Appium-desktop主界面包含三个菜单Simple,Advanced、Presets
Simple
host:设置Appium server的ip地址,本地调试可以将ip地址修改为127.0.0.1
port:设置端口号,默认是4723不用修改
start server:启动 Appium server
Advanced
高级参数配置修改,主要是一些Android和iOS设备,log路径等相关信息的配置。
Presets
将Advanced中的一些配置信息作为预设配置。
Appium Desktop使用步骤:
第一步:启动模拟器与连接模拟器
打开mumu模拟器
然后命令行输入 adb connect 127.0.0.1:7555 连接模拟器 adb devices 查看已连接的设备
第二步:启动Appium Desktop,点击Start Server按钮即可。
第三步:点击“放大镜”按钮,Start Inspector Session。
然后开始配置Desired Capabilities。
必填的几个参数:
platformName :声明是ios还是Android系统
platformVersion : Android内核版本号
appPackage :apk的包名
appActivity:apk的launcherActivity,通过命令adb shell dumpsys activity |
findstr mFocus查看,需要先启动App。
配置完成后,点击Start Session。Appium会自动调用模拟器的相关应用,如图:
第四步:点击录制按钮,可以开始录制脚本
第四步:点击录制按钮,可以开始录制脚本
在选择页面某一个元素后,可以在窗口右边Selected Element区域有三个按钮
⚫ Tap:执行选中元素的点击事件
⚫ Send Keys:为文本框等对象传值
⚫ 如果是文本输入元素,就清除文本
录制完成,我们可以选择要生成的代码,点击显示全部代码,复制脚本放入pycharm中,就可以运行啦。
推荐阅读
-
深入解析YUV格式的原理和应用
-
重新描述循环矩阵在KCF中的应用
-
KCF跟踪算法在Python中的应用
-
目标跟踪算法KCF的研究和应用
-
深入探讨FTRL在线学习算法的实际应用——Alink漫谈(十三)
-
tcpcopy新架构的复杂应用实例:在线测试中的置顶功能
-
"应用于58云视的OT算法-3.3操作转换在58同城的运用"
-
探索强化学习 DQN 在2048游戏中的应用初步分析
-
Java 8新特性探究(十三)JavaFX 8新特性以及开发2048游戏-JavaFX历史## 跟java在服务器端和web端成绩相比,桌面一直是java的软肋,于是Sun公司在2008年推出JavaFX,弥补桌面软件的缺陷,请看下图JavaFX一路走过来的改进 从上图看出,一开始推出时候,开发者需使用一种名为JavaFX Script的静态的、声明式的编程语言来开发JavaFX应用程序。因为JavaFX Script将会被编译为Java bytecode,程序员可以使用Java代码代替。 JavaFX 2.0之后的版本摒弃了JavaFX Script语言,而作为一个Java API来使用。因此使用JavaFX平台实现的应用程序将直接通过标准Java代码来实现。 JavaFX 2.0 包含非常丰富的 UI 控件、图形和多媒体特性用于简化可视化应用的开发,WebView可直接在应用中嵌入网页;另外 2.0 版本允许使用 FXML 进行 UI 定义,这是一个脚本化基于 XML 的标识语言。 从JDK 7u6开始,JavaFx就与JDK捆绑在一起了,JavaFX团队称,下一个版本将是8.0,目前所有的工作都已经围绕8.0库进行。这是因为JavaFX将捆绑在Java 8中,因此该团队决定跳过几个版本号,迎头赶上Java 8。 ##JavaFx8的新特性 ## ###全新现代主题:Modena 新的Modena主题来替换原来的Caspian主题。不过在Application的start方法中,可以通过setUserAgentStylesheet(STYLESHEET_CASPIAN)来继续使用Caspian主题。 参考http://fxexperience.com/2013/03/modena-theme-update/ ###JavaFX 3D 在JavaFX8中提供了3D图像处理API,包括Shape3D (Box, Cylinder, MeshView, Sphere子类),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子类),SceneAntialiasing等。Camera类也得到了更新。从JavaDoc中可以找到更多信息。 ###富文本 强化了富文本的支持 ###TreeTableView ###日期控件DatePicker 增加日期控件 ###用于 CSS 结构的公共 API
-
远程访问和虚拟化串口在Linux系统中的应用