appium入门
前语:学习需要总结,或许有些知识自己存在偏差,但是能总结出来就会更加加深所学知识
1. 环境变量配置
必备软件安装:
jdk1.6.0
android-sdk
python:2.7(3.6也可以)
appium
Node.js
Appium-Python-Client
环境安装网络上有很多优秀博文,这里就不多赘述。
参考网页:http://www.hordehome.com/t/appium-python-1/823
http://www.hordehome.com/t/appium-python-2/845
http://www.cnblogs.com/fnng/p/4540731.html
2. Appium Desired Capabilities
图1
图2
如图一,是appium的setting:
(1)a框内的设置是选择测试apk的一些信息:
a1.Application Path设置的是选择测试apk的存放路径;
a2.Package表示测试apk的包名,选择apk路径后会自动填写;
a3.Launch Activity表示测试apk的Launch Activity,用来启动apk,选择apk路径后会自动获得,但是获得的不一定是正确的Launch Activity,如果是有源码,直接从源码上查看,或问开发apk的工程师,这是针对有测试apk的,如果是自学人员需要拿些别人开发的apk测试学习,下面给几种获取Launch Activity的方法:
@1.反编译app,个人觉得麻烦,不介绍,有想用的同学可以网上搜索。
@2. Log查看:
A.cmd上输入adb logcat –c 清理下log
B.开启日志:adb logcat (也可以把日志输出,如adb logcat >D:\log.txt
C.启动待测apk
D.关闭日志输出:ctrl+c
E.查看日志,如下面信息包含了包名和launch:
ActivityManager( 847): resumeTopActivityLocked: Resumed ActivityRecord{19c4d12c u0 com.huawei.android.launcher/.Launcher
@3.cmd上aapt命令查看:aapt dump badging D:\test\xxx.apk(APK的全名),前提是环境变量配置了android sdk下的build-tools的aapt的路径
@4.图a3框上选择正确的launch activity,接触多了,自然可以辨别正确的launch activity
a4框里的fullreset ios表示删除整个模拟器目录,android表示通过卸载,而不是清空数据,来重置应用状态。在android上,这也会在会话结束后自动清除被测应用。Noreset选择表示在会话前不要重置应用状态。
(2)b框内的设置:
b1.platformName选择要测试的机器操作系统;
b2.automationName 选择使用的自动化测试引擎,默认appium,所以没必要修改;
b3.platformVersion选择机器操作系统版本,就是对应的api。
b4.deviceName 测试机器的设备名称,把测试机器连接电脑可以通过cmd 输入adb devices查看。
如图二,是appium general setting:
可以通过这里设置远程操作测试,具体可以参考下面博文。
参考网页:http://www.cnblogs.com/puresoul/p/4709189.html
http://www.hordehome.com/t/appium-python-6-remote/934
https://github.com/appium/appium/blob/master/docs/cn/writing-running-appium/caps.cn.md
3. 脚本简介
(1)一个dome
# -*-coding=utf-8 -*- from appium import webdriver
import time
#设置Capabilities desired_caps = {
'platformName' : 'Android',
'deviceName' : '76P4C15813005463',
'platformVersion' : '5.1',
#测试apk包名
'appPackage' : 'com.huawei.android.launcher',
#测试apk的launcherActivity
'appActivity' : '.Launcher',
}
#进入android系统launcher
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
time.sleep() driver.keyevent('3') #进入相机并拍照一下
driver.find_element_by_xpath("//android.widget.TextView[contains(@text,'相机')]").click()
time.sleep()
driver.find_element_by_id('com.huawei.camera:id/shutter_button').click()
time.sleep()
driver.quit()
这是一个简单的代码,分为三部分,第一部分是申明,第二部分是配置测试app信息,第三部分是app的实际操作。
三个部分第一和第二部分基本固定,主要是第三部分对app操作控件的获取。例子中测试的apk是系统自带launch,
所在appium上是没法设置包名和activity,使用appium自带的界面没法运行脚本,一般采用cmd输入appium打开
appium来运行脚本。
appium入门的更多相关文章
- Appium入门示例(python)
安装Python依赖 pip3.4 install nose pip3.4 install selenium pip3.4 install Appium-Python-Client 运行测试用例and ...
- Appium入门示例(Java)
一.使用Eclipse直接创建案例工程 1.打开Eclipse,[File]-->[New]-->[Project] 2.选择[Java Project]-->[Next] 3.输入 ...
- Appium入门(9)—— Appium API
摘自:http://www.testclass.net/appium/appium-base-api-01/ 1.安装: installApp() driver.installApp("d: ...
- Appium入门(8)__控件定位
部分摘自:http://www.testclass.net/appium/appium-base-find-element/ appium 通过 uiautomatorviewer.bat 工具来查看 ...
- Appium入门(7)__Appium Desired Capabilities
Desired Capabilities 是由多个键值对组成,代表移动设备相关信息.由Appium Client向Appium Server发送. 但无论Appium Client使用何种语言,最终是 ...
- Appium入门(6)__appium-desktop安装
部分摘自:http://www.testclass.net/appium/appium-base-desktop/ Appium-Server主要用来监听移动设备,然后将不同编程语言编写的 appiu ...
- Appium入门(5)__ Appium测试用例(1)
步骤为:启动AVD.启动Appium.写用例(python).执行 一.启动Android模拟器 二.启动Appium Server 双击appium图标启动,配置 ...
- Appium入门(4)__ Appium Client安装
打算使用 Python 语言编写 appium 自动化测试脚本 一.前提: 1.安装Python语言 到Python官网下载最新版本:https://www.python.org/ 2.安装Pytho ...
- Appium入门(3)__ Appium Server安装
安装Appium 1.下载并安装:https://bitbucket.org/appium/appium.app/downloads/ 2. 系统变量PATH 增加 C:\Program Files ...
随机推荐
- 4、时间同步ntp服务的安装于配置(作为客户端的配置)
yum安装ntpd服务 .yum -y install ntp ntpdate (安装时间同步ntp服务) . vi /etc/ntp.conf (修改ntpd服务的配置文件) 3.修改配置文 ...
- 【转】精心推荐几款超实用的 CSS 开发工具
原文转自:http://www.html5cn.org/article-5741-1.html 摘要: 当你开发一个网站或 Web 应用程序的时候,有合适的工具,绝对可以帮助您节省大量的时间.在这篇文 ...
- IPC-管道
内容提要: 管道简介 使用无名管道实现一个简单的本地文件服务器 使用标准I/O函数库提供的管道实现 使用popen实现本地文件服务器 有名管道-FIFO 使用FIFO改写本地文件服务器 管道和FIFO ...
- sqlite 删除表中重复数据(亲测可用)
例子:表名 Paper .通过字段PaperID查找重复数据. 1 --查询某表中重复的数据 select * from Paper group by PaperID having co ...
- java进程性能分析步骤-超越昨天的自己系列(11)
java进程load过高分析步骤: top 查看java进程情况 top -Hp 查看某个进程的具体线程情况 printf 0x%x 确认哪一个线程占用cpu比较多,拿出来转成16进制 ...
- LintCode First Position of Target
找指定target的最左位置. class Solution { /** * @param nums: The integer array. * @param target: Target to fi ...
- 【渗透测试学习平台】 web for pentester -4.XML
example1: http://192.168.91.139/xml/example1.php?xml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%2 ...
- RF 测试代码体会
这里的需求是完成一个cc2540 RF测试程序.实现功能为开发板按键控制 RF 发射频率的改变. 首先被告知要用PTM来做这个测试程序,然后我去了PTM的介绍文档,地址为 http://process ...
- [原创]cocos2d-x研习录-第二阶 概念类之场景类(CCScene)
场景类CCScene是Cocos2D-x在屏幕显示的内容,相当于游戏关卡或界面.CCDirector任何时候只能显示一个场景CCScene,游戏中可能存在若干场景,CCDirector通过场景切换达到 ...
- 033. asp.netWeb用户控件之二将页面转换成web控件和使用Web控件显示热点新闻
访问Web用户控件的属性 ASP.NET提供的各种服务器控件都有其自身的属性和方法,程序开发人员可以灵活地使用服务器控件中的属性和方法开发程序.在用户控件中,程序开发人员也可以自行定义各种属性和方法, ...