appium 安装方式
sudo apt install openjdk-8-jdk
java -version
sudo apt update
sudo apt install android-sdk
sudo apt install android-tools-adb
安装好后,sdk位置为/usr/lib/android-sdk/
设置环境变量
vi .bashrc
source .bashrc
export ANDROID_HOME=/usr/lib/android-sdk
export PATH=$PATH:$ANDROID_HOME/tools
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/jre
export PATH=$PATH:$JAVA_HOME/bin
生效:
source .bashrc
安装nvm
cd ~/
git clone https://github.com/nvm-sh/nvm.git .nvm
. ./nvm.sh
vi .bashrc
添加:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
否则下次进入无法找到命令appium nvm node.
切换国内源:
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
安装node, npm
nvm install --lts
node -v
npm -v
npm 切换阿里源
npm config set registry https://registry.npm.taobao.org
安装appium
npm intall -g appium
启动:
appium &
安装python
apt-get install python3
apt-get install python3-pip
安装python客户端
pip install appium-python-client
(安装python库)
py脚本
#!/usr/bin/env python3
# encoding: utf-8
from appium import webdriver
import time
desired_caps={'platformName':'Android','deviceName':'HXJNW18223012xxxx', #填写自己的deviceName'platformVersion': '8.0.0','appPackage': 'com.tencent.mm','appActivity':'.ui.LauncherUI','noReset': True
}
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
time.sleep(10)
driver.quit()
注意deviceName platformVersion要填写正确
注意脚本里面的noReset true,如果没有这个,微信聊天记录会被清空!!!!其他应用也是吧
windows 安装
http://www.haovps.com.cn/article/187648.html
错误调试:
appium 启动的一个错误Unable to find an active device or emulator with OS 10. The following are available: RFCNA082NWX (11)
系统版本错误,platformVersion
urllib3 (1.26.9) or chardet (3.0.4) doesn’t match a supported version
解决方法:
pip3 install --upgrade requests
inspect 中如果出现:/session
解决方法:新版inspector中的Remote Path我看了一下默认值是“/”,之前版本都默认好了的,把这个改为“/wd/hub“就行了
1 获取栈顶 Activity
打开目标应用,使用 adb 查找当前界面所属 activity 及对应的 app 包名
方法一:
adb shell dumpsys window | findstr mCurrentFocus
方法二:
adb shell dumpsys activity | findstr mFocusedActivity
如何获取一个APP的包名
1.adb shell pm list package -f
1.dump package 包名
使用命令:adb shell
dumpsys package com.saj.esolar 回车之后找到包含“category.LAUNCHER” 字样的Activity即可
2.使用Monkey命令 monkey -p com.saj.esolar -vvv 1 可以设置日志的详细程度,当我们指定为 -VVV 的时候,并且指定模拟随机事件为一次,即可查看:
启动多个server
appium 多设备
Appium在分布式同时执行多设备时,是必须一个appium服务端对应一台设备,并且根据app类型的不同,启动服务端所带的参数也不同,以下是对各种类型应用的服务端对应启动命令详解:
-p :表示appium服务端和测试脚本之间通信的端口
-bp:表示appium服务端和手机上的bootstrap服务通信的端口
–chromedriver-port:表示启动的chromedriver的端口
- 原生app
appium -p 4490 -bp 2345 第一台设备对应的服务端启动命令
appium -p 4491 -bp 2346 第二台设备对应的服务端启动命令
- 混合app
appium -p 4490 -bp 2345 --chromedriver 8201 第一台设备对应的服务端启动命令
appium -p 4491 -bp 2346 --chromedriver 8202 第二台设备对应的服务端启动命令
- 纯H5 app
appium -p 4490 --chromedriver-port 8001 第一台设备对应的服务端启动命令
appium -p 4491 --chromedriver-port 8002 第二台设备对应的服务端启动命令
- 使用uiautomator2模式时,需要指定服务端和手机上uiautomator2服务通信的端口,但是该端口目前在启动appium时无法指定,需要在脚本中的driver初始化参数里进行指定,如:
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(AndroidMobileCapabilityType.SYSTEM_PORT, 8201);
python 样例:
https://blog.csdn.net/u013314786/article/details/83216390?
php 样例
https://applitools.com/tutorials/appium-native-php.html#install-the-sdk
中文文档:
http://appium.io/docs/cn/writing-running-appium/caps/
键盘:https://blog.csdn.net/linmumum/article/details/89487080
python+appium,回车,手机键盘等调用
from appium import webdriver
import time
desired_caps={'platformName':'Android',
'deviceName':'192.168.132.8', #填写自己的deviceName
'platformVersion': '11',
'appPackage': 'com.android.browser',
'appActivity':'com.android.browser.BrowserActivity',
'noReset' : True
}
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)#time.sleep(15)
#driver.find_element('com.android.permissioncontroller:id/content_container').click()#time.sleep(5)
#driver.find_element('com.android.permissioncontroller:id/content_container').click()#time.sleep(5)
#driver.find_element_by_id('com.android.permissioncontroller:id/content_container').click()driver.find_element(by='id',value='com.android.browser:id/url').click()
time.sleep(5)
print('在搜索框输入')
driver.find_element(by='id',value='com.android.browser:id/url').send_keys('www.baidu.com\n')
time.sleep(2)
driver.press_keycode(66)
time.sleep(10)
driver.quit()
其他资源:
控制设备:
About
Control and manage Android devices from your browser.
https://github.com/kin9-0rz/apkutils
Genymobile
scrcpy
Display and control your Android device
https://github.com/Genymobile/scrcpy
多屏投屏:
https://www.jianshu.com/p/32e7254f1fdb
JAVA案例
https://blog.csdn.net/yqw7410/article/details/88043193
https://www.jianshu.com/p/a3ba6835cebd
APP自动化测试神器之Appium-QQ登录脚本实战(java版)
https://zhuanlan.zhihu.com/p/144670335
https://zhuanlan.zhihu.com/p/136289385
Appium-元素定位(Java篇)
https://www.cnblogs.com/bugoobird/p/13797814.html
appium 安装方式相关推荐
- Appium安装(Mac版)
一.Appium简介 Appium 是一个开源的.跨平台的测试框架,可以用来测试 Native App.混合应用.移动 Web 应用(H5 应用)等,是当下互联网企业实现移动自动化测试的重要工具. 二 ...
- Appium安装过程
Appium安装过程 先安装了 Node.js.在node的官网上下载的exe安装文件. 在node的command line中执行 npm install -g appium 来安装appium,报 ...
- Appium基础 — APPium安装
APPium安装 我们要使用APPium测试框架,首先就需要安装APPium服务,Devices代表我们要链接的手机,Appium Client为我们写代码的客户端(也就是测试脚本,需要用哪个脚本语言 ...
- MacOS系统Appium安装与配置
一.软件安装 1.版本说明 教程用到的各个软件的版本如下,但是node,java,xcode,Appium Inspector建议下载最新版本: macOS: 12.1 (21C52) node: v ...
- Appium自动化测试基础 — APPium安装(一)
三.APPium安装 我们要使用APPium测试框架,首先就需要安装APPium服务,Devices代表我们要链接的手机,Appium Client为我们写代码的客户端(也就是测试脚本,需要用哪个脚本 ...
- APPIUM安装与使用
APPIUM安装与使用 安装步骤: 一.JAVA JDK 二.Android SDK 三.node.js 四.Appium 五.Python环境 六.Appium-python-clienf 安装步骤 ...
- 『与善仁』Appium基础 — 14、APPium安装(包含Node.js安装)
文章目录 (一)APPium server安装 方式一:(推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二: 1.Nod ...
- appium安装说明
一.appium背景介绍 1.官网:www.appium.io,由SauceLab公司开发 2.Appium是由node.js的express框架写的Http Server, Appium使用WebD ...
- Python+appium安装和演示
这里写目录标题 Appium 1.Appium背景介绍 2.Appium命令行安装方式 3.Appium-python库安装,命令行安装(需要联网) 4. Appium桌面客户端安装方式 5.APPi ...
最新文章
- 中北大学c语言程序设计作业答案,C语言程序设计
- C++中重载与重写函数区别及虚函数(转载)
- php序列化和反序列化
- 【算法】斐波那契数列
- MySQL高级知识(十四)——行锁
- 线程同步之 生产者消费者模型详解
- for语句嵌套执行顺序_Python基础教程(四):循环语句
- 《Using OpenRefine》翻译~15
- 在VS中生成汇编语言程序(.asm文件)的方法
- mingw socket编程
- 熔断器 java_SpringCloud之熔断器Hystrix的实现
- 计算机的专业课听不懂怎么办,为什么大学计算机课难以听懂?
- ReactNative出现诸如以上的错误; ** is not defined.都是没有导入相应的库.
- [业务流程]JWT实现单点登录(SpringBoot + Vue +axious)
- 利用tensorflow训练自己的图片数据(1)——预处理
- 推荐书籍:WebRTC技术详解 从0到1构建多人视频会议系统
- python怎么做网站6_网站开发学习Python实现-Django学习-自学注意(6.1.3)
- scala akka 修炼之路6(scala函数式柯里化风格应用场景分析)
- 奥鹏福建师范大学2021年2月考试《计算机应用基础》作业56754
- 《张孝祥JAVA就业培训教程》书摘