2017年8月14日-学习日报
一、appium的环境搭建:
# java环境配置链接: https://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html
# 安卓sdk环境配置: https://jingyan.baidu.com/article/f71d603757965b1ab641d12a.html
# node.js环境配置安装: https://jingyan.baidu.com/article/b0b63dbfca599a4a483070a5.html
# python2.7安装配置教程: https://jingyan.baidu.com/article/7908e85c78c743af491ad261.html
# appium-python-client安装: pip install appium-python-client
# selenium安装: pip install selenium
# appium软件安装包下载地址: https://bitbucket.org/appium/appium.app/downloads/
二、命令行启动appium:
appium版本:1.4.16.1
1、启动appium客户端程序,确定appium server启动的路径:

2、获取到server的启动路径后,python实现appium server启动控制:
#!/usr/bin/env python # -*- coding: utf-8 -*- # 命令行启动appium import os import time # 获取当前时间,命名log文件 times = time.time() time_str = time.strftime("%Y_%m_%d_%H%M%S") log_file = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'log\%s.log' % time_str) # 服务器地址 address = '127.0.0.1' # 端口号 port = '4748' # 待测试设备的平台的名称 platform_name = 'Android' # 待测试设备的安卓版本号 platform_version = '21' # 自动化框架的名称 automation_name = 'Appium' # 生成log的等级 log_level = 'info'
# 异常退出,自动覆盖session
cover_session = '--session-override'
# appium 服务的启动文件路径
server = r'D:\Appium\node.exe D:\Appium\node_modules\appium\lib\server\main.js'
# 使用os模块运行appium服务器
os.system('%s -a %s -p %s --platform-name %s --platform-version %s --log-level %s -g %s --automation-name %s %s'
% (server, address, port, platform_name, platform_version, log_level, log_file, automation_name, cover_session))
3、命令行启动appium主要的参数配置:
|
标志 |
描述 |
|
-U, --udid |
连接物理设备的唯一设备标识符 |
|
-a, --address |
监听的 ip 地址 |
|
-p, --port |
监听的端口 |
|
-bp, --bootstrap-port |
(Android-only) 连接设备的端口号 |
|
--session-override |
允许 session 被覆盖 (冲突的话) |
|
--full-reset |
(iOS) 删除整个模拟器目录。 (Android) 通过卸载应用(而不是清除数据)重置应用状态。在 Android 上,session 完成后也会删除应用。 |
|
--no-reset |
session 之间不重置应用状态 (iOS: 不删除应用的 plist 文件; Android: 在创建一个新的 session 前不删除应用。) |
|
-g, --log |
将日志输出到指定文件 |
|
--log-level |
日志级别; 默认 (console[:file]): debug[:debug] |
|
--log-timestamp |
在终端输出里显示时间戳 |
|
--local-timezone |
使用本地时间戳 |
|
--log-no-colors |
不在终端输出中显示颜色 |
|
--app-activity |
(Android-only) 打开应用时,启动的 Activity 的名字(比如, MainActivity) |
|
--app-wait-package |
(Android-only) 你想等待的 Activity 的包名。(比如, com.example.android.myApp) |
|
--app-wait-activity |
(Android-only) 你想等待的 Activity 名字(比如, SplashActivity) |
|
--device-name |
待使用的移动设备名字 |
|
--platform-name |
移动平台的名称: iOS, Android, or FirefoxOS |
|
--platform-version |
移动平台的版本 |
|
--automation-name |
自动化工具的名称: Appium or Selendroid |
详细的命令行参数表,附上链接: http://www.cnblogs.com/xinleishare/p/4793538.html
三、Desired Capabilities基本参数:
class MyTestCase(unittest.TestCase): def setUp(self): self.desired_caps = { 'platformName': 'Android', 'deviceName': '4da7960d', 'platformVersion': '5.0', # 手机联系人界面 'appPackage': 'com.android.contacts', 'appActivity': '.activities.PeopleActivity', # 客户端未有新消息,自动断开连接 "newCommandTimeout": '60', # 呼出中文编码的键盘 "unicodeKeyboard": "True", # 隐藏键盘 "resetKeyboard": "True", # appium使用的默认引擎 "automationName": 'Appium' } self.driver = webdriver.Remote('http://127.0.0.1:4748/wd/hub', self.desired_caps)
四、appium的基本api:

浙公网安备 33010602011771号