Appium 服务关键字
关键字 | 描述 | 实例 |
---|---|---|
automationName |
你想使用的自动化测试引擎 |
Appium (默认) 或 Selendroid
|
platformName |
你要测试的手机操作系统 |
iOS , Android , 或 FirefoxOS
|
platformVersion |
手机操作系统版本 | 例如: 7.1 , 4.4
|
deviceName |
使用的手机类型或模拟器类型 |
iPhone Simulator , iPad Simulator , iPhone Retina 4-inch , Android Emulator , Galaxy S4 , 等。在 iOS 上,这个关键字的值必须是使用 instruments -s devices 得到的可使用的设备名称之一。在 Android 上,这个关键字目前不起作用。 |
app |
.ipa or .apk 文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的.zip 。 Appium会先尝试安装路径对应的应用在适当的真机或模拟器上。针对Android系统,如果你指定app-package 和app-activity (具体见下面)的话,那么就可以不指定app 。 会与 browserName 冲突
|
比如/abs/path/to/my.apk 或http://myapp.com/app.ipa
|
browserName |
需要进行自动化测试的手机 web 浏览器名称。如果是对应用进行自动化测试,这个关键字的值应为空。 | iOS 系统上可以用 'Safari' ,Android 系统上可以用 'Chrome', 'Chromium', 或 'Browser'。 |
newCommandTimeout |
设置命令超时时间,单位:秒。达到超时时间仍未接收到新的命令时 Appium 会假设客户端退出然后自动结束会话。 | 比如 60
|
autoLaunch |
Appium是否需要自动安装和启动应用。默认值true
|
true , false
|
language |
(Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的语言。 | 如: fr
|
locale |
(Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的区域设置。 | 如: fr_CA
|
udid |
连接的物理设备的唯一设备标识 | 如: 1ae203187fc012g
|
orientation |
(Sim/Emu-only) 在一个设定的方向模式中开始测试 |
LANDSCAPE (横向) 或 PORTRAIT (纵向) |
autoWebview |
直接转换到 WebView 上下文。 默认值 false 、 |
true , false
|
noReset |
不要在会话前重置应用状态。默认值false 。 |
true , false
|
fullReset |
(iOS) 删除整个模拟器目录。(Android) 通过卸载——而不是清空数据——来重置应用状态。在 Android 上,这也会在会话结束后自动清除被测应用。默认值 false
|
true , false
|
Android特有
关键字 | 描述 | 实例 |
---|---|---|
appActivity |
你要从你的应用包中启动的 Android Activity 名称。它通常需要在前面添加 . (如:使用.MainActivity 而不是 MainActivity ) |
MainActivity , .Settings
|
appPackage |
你想运行的Android应用的包名 | 比如com.example.android.myApp , com.android.settings
|
appWaitActivity |
你想要等待启动的 Android Activity 名称 | SplashActivity |
deviceReadyTimeout |
设置等待一个模拟器或真机准备就绪的超时时间 | 5 |
enablePerformanceLogging |
(仅适用于 Chrome 和 webview) 开启 Chromedriver 的性能日志。 (默认 false ) |
true , false
|
androidDeviceReadyTimeout |
等待设备在启动应用后准备就绪的超时时间。以秒为单位。 | 如 30
|
androidDeviceSocket |
开发工具的 socket 名称。只有在被测应用是一个使用 Chromium 内核的浏览器时需要。 socket 会被浏览器打开,然后 Chromedriver 把它作为开发者工具来进行连接。 | 如 chrome_devtools_remote
|
chromedriverExecutable |
webdriver 可执行文件的绝对路径 (如果 Chromium 核心提供了对应的 webdriver, 应该用它代替 Appium 自带的 webdriver) | /abs/path/to/webdriver |
stopAppOnReset |
在使用 adb 启动应用前停止被测应用的进程 ( process ) 。如果被测应用是被另一个应用创建的,当这个参数被设定为 false 时,允许另一个应用的进程在使用 adb 启动被测应用时继续存活。默认值 true
|
true 或 false
|
在这里需要注意的就是 appActivity,appPackage这两个参数,是安卓测试所必须的,这两个参数的获取方法在之前的adb命令介绍中有讲到。
appium的测试用例支持多种语言,这里选用python进行编写。
首先需要在python中安装appium python-client。
安装 Appium Python client
这里介绍三种方法安装appium python-client
-
从PyPi安装
'Appium-Python-Client'.pip install Appium-Python-Client
-
通过下载源码安装PyPi.'Appium-Python-Client',
download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).tar -xvf Appium-Python-Client-X.X.tar.gz cd Appium-Python-Client-X.X python setup.py install
-
从GitHub上下载安装.
git clone git@github.com:appium/python-client.git cd python-client python setup.py install
使用pycharm新建一个工程后,输入以下代码
# -*- coding: utf-8 -*-
from appium import webdriver
from time import sleep
desired_caps = {}desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4'
desired_caps['deviceName'] = 'galaxy s4'
desired_caps['appPackage'] = 'com.sina.weibog3'
desired_caps['appActivity'] = '.SwitchUser'
dr = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
sleep(3)
dr.find_element_by_id('com.sina.weibog3:id/etLoginUsername').send_keys('username')
dr.find_element_by_id('com.sina.weibog3:id/etPwd').send_keys('password')
dr.find_element_by_id('com.sina.weibog3:id/bnLogin').click()
sleep(15)
dr.quit()
保存后,接下来连接真机运行一下demo
android手机需要打开usb调试
连接之后,打开命令行,输入adb devices,查看是否连接成功,记录下device name。
appium -a 127.0.0.1 -p 4723 –U 4ca1558c --no-reset
Paste_Image.png
当程序输出如上图信息的时候,表示appium启动成功,此时便可以运行测试脚本了。
网友评论