android 手机自动化测试,Appium进行Android手机真机自动化测试
前置条件:
安装JDK
jdk 9使用appium还有点问题,最好使用jdk 8。我使用的是jdk 8u161。
下载前需要先同意协议
下载后双击安装,安装完成后需要手工设置环境变量:
右键单击“这台电脑”并选择属性
点击“高级系统设置”
“高级”选项卡中设置环境变量
增加JAVA_HOME变量为C:\Program Files\Java\jdk1.8.0_161
编辑PATH变量,增加以下几个地址
%JAVA_HOME%\lib
%JAVA_HOME%\bin
在系统变量中增加或编辑变量
注意:修改环境变量后,需要重启电脑以使配置生效。
安装Android SDK
怕麻烦的直接下载Android Studio,然后用图形界面安装SDK吧。我又不做Android开发,下个Android Studio真是浪费,所以只用一个100MB的命令行工具下载SDK。
页面最下方
在任意位置创建文件夹android-sdk,比如C:\_portable_
然后将压缩包中的tools文件夹解压到android-sdk下
同样为了能够全局执行tools中的工具,需要设置环境变量:
增加%ANDROID_HOME%,值为C:\_portable_\android-sdk,然后在PATH中增加
%ANDROID_HOME%\tools
%ANDROID_HOME%\tools\bin
打开Git Bash,用sdkmanager安装SDK。
区别于Windows中的命令提示符中直接执行sdkmanager,在Git Bash中执行.bat文件需要明确写出后缀:
touch ~/.android/repositories.cfg
sdkmanager.bat "platform-tools" "platforms;android-27" --verbose
sdkmanager.bat --update --verbose
提示done之后,SDK就会被安装在android-sdk文件夹下了。其中platform-tools文件夹中就含有我们需要的adb.exe等工具
增加PATH的值:
%ANDROID_HOME%\platform-tools
安装Appium
$ npm i -g appium appium-doctor
# 然后使用appium-doctor看看还有哪些条件没有满足
$ appium-doctor
info AppiumDoctor Appium Doctor v.1.4.3
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ The Node.js binary was found at: C:\Program Files\nodejs\node.exe
info AppiumDoctor ✔ Node version is 8.9.4
info AppiumDoctor ✔ ANDROID_HOME is set to: C:\_portable_\android-sdk
info AppiumDoctor ✔ JAVA_HOME is set to: C:\Program Files\Java\jdk1.8.0_161
info AppiumDoctor ✔ adb exists at: C:\_portable_\android-sdk\platform-tools\adb.exe
info AppiumDoctor ✔ android exists at: C:\_portable_\android-sdk\tools\android.bat
info AppiumDoctor ✔ emulator exists at: C:\_portable_\android-sdk\tools\emulator.exe
info AppiumDoctor ✔ Bin directory of %JAVA_HOME% is set
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor
如果还有没有满足的条件,一一修复即可,现在剩下的一般是环境变量的地址没有填对。
连接手机,开始自动化测试
接下来就可以连接手机,开启USB调试,进行自动化测试了。
# 启动appium
$ appium
[Appium] Welcome to Appium v1.7.2
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
保持以上appium在后台运行,新开一个Git Bash:
$ mkdir test_appium
$ cd test_appium
$ touch test.js
$ npm i webdriverio
然后在test.js文件中输入以下内容:
// javascript
const wdio = require('webdriverio');
const opts = {
port: 4723,
desiredCapabilities: {
platformName: "Android",
platformVersion: "7.0",
deviceName: "Android Emulator",
app: "C:\\Users\\gbcdef\\Documents\\dev\\test_app\\ApiDemos-debug.apk",
}
};
const client = wdio.remote(opts);
client
.init()
.click("~App")
.click("~Alert Dialogs")
.back()
.back()
.end();
使用node执行以上自动化测试脚本:
node test.js
手机上就会自动安装测试apk,自动执行脚本了。
android 手机自动化测试,Appium进行Android手机真机自动化测试相关推荐
- 使用Appium进行iOS的真机自动化测试
使用Appium进行iOS的真机自动化测试 ##安装类库 Homebrew 如果没有安装过Homebrew,先安装 [ homebrew ] npm 如果没有安装npm,请移步 [ node.js和n ...
- Centos 7 怎么都连不上手机阿阿阿阿Android Studio 怎么都检测不到真机啊还有关于git本地提交就缺少文件啊啊啊啊
简直了!!! Android Studio 3.0 异常退出之后,就怎么都检测不到真机了,好长好长时间解决不了,蓦然发现centos 7 也连不上手机了!其可修 原来是数据线里面的数据线怀掉了 只能显 ...
- Android手机应用第三方模拟器使用、真机测试运行方法以及AVD 模拟器黑屏的解决尝试
Android SDK手机应用开发中第三方模拟器.真机运行方法以及AVD模拟器黑屏的解决尝试 对于手机应用开发的测试运行,有基于模拟器和真机运行2种途径. 模拟器的方法 android SDK提供了A ...
- iOS+Appium最简单的环境搭建,快速实现真机自动化测试
前言 整理不易耗时两星期配置成功,查看一两年前的教程文章走了太多弯路到处都是坑和报错 需配置环境:Homebrew.node.cnpm.Carthage.ios-deploy.libimobilede ...
- Android Screen Monitor抓取模拟器与真机界面
ASM(Android Screen Monitor)下载地址: https://code.google.com/archive/p/android-screen-monitor/ 获取ASM.jar ...
- 【错误记录】eclipse,android,logcat日志无法打印,真机调试
eclipse调试android程序,当使用真机时system.out,log.i等日志在logcat里面打印不出来(但能打印出来其他一堆系统消息),而使用模拟机一切正常,怎样才能在真机调试时也能在l ...
- android 远程调试工具,【教程】搭配Android studio,如何实现app远程真机debug...
用了很久的模拟器,今天给大家分享一个不用模拟器,在没有手机的情况下,如何实现真机debug的教程,第一次发文章,非喜勿喷,望支持下! 废话少说,先睹为快.在不用数据线连接手机的情况下,先来个打断点截图 ...
- Android进阶之路 - 使用Stetho查看真机数据库
起因:维护老项目,需查看本地数据库数据,起初使用了DDMS调试,但使用时发现真机需Root.而我又不想使用模拟器,在此基础下我发现了Stetho三方框架能实现我的需求,故在使用真实有效的基础下总结此篇 ...
- CocosCreator 原生开发环境配置(JavaSDK,Android Studio,Python,豌豆荚,真机实测)
版本:2.4.2 参考: cocos教程:安装配置原生开发环境 cocos教程:打包发布原生平台 一 安装Java SDK 二 安装Android Studio 三 安装Python 四 设置coc ...
最新文章
- IAR生产HEX文件
- null 与 undefined 的区别
- 在winform中使用三层架构学习总结
- java string 返回匹配正则的字符串的起始位置_Python小课堂正则表达式
- python atm作业详解_python day4 作业 ATM
- bzoj 1684: [Usaco2005 Oct]Close Encounter【数学(?)】
- div/span强制不换行
- sqlalchemy连接mysql数据库_史上超详细的flask_sqlalchemy连接mysql数据库
- 针对金融级交易场景的严苛技术要求,如何修炼这门“必修课”?
- JQuery使用deferreds串行多个ajax请求
- sim卡iccid编辑软件_一篇文章扫盲手机SIM卡相关知识
- [PKU 3580 3468][Noi 2005 Sequance]伸展树Splay 平衡树SBT(下)
- disk dynamic invalid 解决办法 动态磁盘转换器
- X8AIP 驱动程序
- python怎么复数乘方开方_一篇小文入门 Python
- 下载jupyterlab中的文件夹
- 利用差分求非齐次多项式的通项公式
- 打开软件时出现“请将磁盘插入可移动磁盘“G:””
- 【程序源代码】微信小程序商城管理系统(Java后台+微信小程序)最新版
- 互联网时代:天才与伟人的区别
热门文章
- TCP/IP网络断和127.0.0.1回网IP概念
- C# 的TCPClient异步连接与异步读数据
- C语言之连接Mysql数据篇
- matlab与树莓派通信
- 广联达2018模板算量步骤_广联达GTJ2021操作教程:造价小白3天速成,计量效率翻倍...
- java 的 非短路_Java 短路运算符和非短路运算符
- 使用git提交项目到码云
- 缓存目录的区别getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
- Android studio3.0打开Device File Explore(文件管理器)的方法(图文教程)
- PHP中单引号和双引号到底有啥区别