robotframework框架安装
robotframework框架的安装文档很多可自行百度,最方便的是使用pip安装,会自动下载安装依赖包
robot framework安装 pip命令 pip install robotframework -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
wxPython安装(用于支持robotframework的IDE ride)下载地址选择对应版本即可 http://wxpython.org/download.php#stable
robotframework-ride安装 pip命令: pip install robotframework-ride -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
Appium-Python-Client安装 pip命令: pip install Appium-Python-Client -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
robotframework appiumlibrary安装 pip命令: pip install robotframework-appiumlibrary -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
确认appiumlibrary是否安装成功
先运行ride,命令行输入ride.py
然后导入AppiumLibrary若显示导入三方库为黑色则说明安装成功
Appium相关准备
mac版appium与安卓studio下载地址
http://pan.baidu.com/s/1kUzIgYj
jdk安装与环境变量配置
环境变量设置命令,打开.bash_profile文件并添加
export ANDROID_HOME=/Users/spook/Library/Android/sdk
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
配置成功后查看SDK与JDK的环境变量
Appium自带检测doctor结果
提示所有检查成功说明环境已经OK
连接设置
appium设置
默认端口4723,用于robotframework调用appium,
安卓设置
连接appium
应用appium自带的inspector定位元素
出现new session说明连接正常
元素定位
通过id与xpath都可以
在线客服进线demo
*** Settings *** Library AppiumLibrary *** Variables *** ${REMOTE_URL} http://localhost:4723/wd/hub ${PLATFORM_NAME} Android ${PLATFORM_VERSION} 19 ${DEVICE_NAME} bendawang ${appPackage} com.dianping.v1 *** Test Cases *** app-in-2 ${app} Open Application remote_url=${REMOTE_URL} platformName=${PLATFORM_NAME} platformVersio=${PLATFORM_VERSION} deviceName=${DEVICE_NAME} appPackage=${appPackage} sleep 3 Comment page should contain element /android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.TabHost[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.LinearLayout[4]/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.ImageView[2] wait until keyword succeeds 2 min 5 sec click element id=home_tab_my Comment click element id=home_tab_my sleep 5 Comment page should contain element //android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.TabHost[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.TextView[1] wait until keyword succeeds 2 min 5 sec click element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.TabHost[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.TextView[1] sleep 5 page should contain text 客服中心 Comment wait until page contains element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.widget.ListView[1]/android.view.View[2]/android.view.View[1] 50 wait until keyword succeeds 2 min 5 sec click element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.widget.ListView[1]/android.view.View[2]/android.view.View[1] #选择团购券 sleep 5 Comment wait until page contains element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.widget.ListView[3]/android.view.View[1] 50 wait until keyword succeeds 2 min 5 sec click element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.widget.ListView[3]/android.view.View[1] #连接在线客服 sleep 5 page should contain text 在线客服 sleep 5 wait until keyword succeeds 2 min 5 sec click element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[5]/android.widget.Image[1] sleep 5 Comment wait until page contains element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[7] 50 wait until keyword succeeds 2 min 5 sec click element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[7] sleep 5 input text xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[8] APP autotest sleep 3 wait until keyword succeeds 2 min 5 sec click element xpath=//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[10] sleep 10 [Teardown] close all applications