Automatic Testing Environment Installation Guide ( Mac RobotFramework Appium) - 18570580798/study GitHub Wiki
Mac RobotFramework环境安装 参考资料: https://blog.csdn.net/dongqiushan/article/details/53326214
- 查看当前系统默认的Python路径
which python
==> /usr/bin/python
- 查看当前python 版本
Python --version
==> Python 2.7.10
- 安装 python 的包管理工具pip
curl https://bootstrap.pypa.io/ez_setup.py -o - | python
easy_install pip
- 安装 brew包管理器
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 安装Python(mac已有忽略本步)
brew install python
==> /usr/local/bin/python 版本:2.7.11
- 安装wxPython
brew install wxPython (brew命令安装的是3.0版本,可能存在一些问题,可手动安装)
手动下载安装地址: https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/
- 安装robotframework框架
sudo pip install robotframework
- 安装robotframework-ride
sudo pip install -U robotframework-ride==2.0a1
- 安装robotframework-requests
sudo pip install robotframework-requests
- 安装 requests模块
sudo pip install requests
以上10个步骤是自动化框架安装的基本命令,此时应该能通过命令 ride.py打开RIDE编辑器
- 启动RIDE
ride.py
看到RF弹出表示RobotFramework环境安装成功
Mac Appium + IOS/Android环境配置 参考资料:
https://www.jianshu.com/p/a2b79cd8bf38
https://www.cnblogs.com/wonderful0714/p/5692549.html
-
进入App Store,下载Xcode
-
下载brew,如果已经安装,请忽略
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 安装libimobiledevice
brew install libimobiledevice –HEAD
- 安装carthage
brew install carthage
- 安装node.js
nodejs下载地址:https://nodejs.org/en/download/ (下载mac下的pkg文件一键安装就行)
- 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 安装ios-deploy
ios-deploy可以用来安装卸载ios应用。cnpm有个问题,就是安装的node_module会全部放在当前路径下。所以我们使用cnpm的时候,需要切换到/usr/local/lib(node模块默认安装路径)
在终端输入:
cd /usr/local/lib
cnpm install -g ios-deploy
- 安装xcpretty
gem install xcpretty
安装xcpretty,经常安装失败,没反应,但是大家耐心等待吧,如果时间较长的话,建议大家切换个目录重新安装。可以更换gem源:
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
如果gem版本过低需要升级。
- 安装appium
cnpm install -g [email protected] (@1.6.3可以去除,去除后会自动安装最新版本)
安装appium-desktop版本,可以直接用来获取获取app的页面元素信息,建议另安装该版本或者直接安装appium-desktop版本,进入appium官网下载安装即可。
安装appium-doctor,检测appium是否安装成功
npm install appium-doctor -g
安装完成后,执行appium-doctor检查appium安装是否完全(如果提示找不到文件,则进入appium安装目录/appium-doctor/目录下,执行./appium-doctor.js),检查结果如下
以上有部分软件未安装,接下来弥补上。
a. Xcode Command Line Tools
$ xcode-select --install
xcode-select: note: install requested for command line developer tools
b. Android SDK
下载地址:https://developer.android.com/studio/install.html
下载完成之后,安装并下载SDK,配置环境变量
vim /etc/profile
export ANDROID_HOME=/Users/macbook/Library/Android/sdk(路径写自己的安装路径)
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
c. 下载java后安装,配置环境变量
vim /etc/profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_71.jdk/Contents/Home(路径写自己的安装路径)
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
配置完成后,需要刷新配置文件
source /etc/profile
再次检查Appium成功安装
10.安装appium-xcuitest-driver依赖
进入appium安装目录,查找目录下的WebDriverAgent,进入WebDriverAgent后,执行以下命令
mkdir -p Resources/WebDriverAgent.bundle
sh ./Scripts/bootstrap.sh
-
进入WebDriverAgent目录,找到WebDriverAgent.xcodeproj,双击打开,默认就是用Xcode打开的
-
编译WebDriverAgentLib(如以下截图设置即可)
切换到WebdriverAgentLib,编辑如下内容,然后点击左上角那个播放按钮进行编译。配置好后点击编译按钮,是build succeed的就可继续进行。(关于team,可即时注册个人开发者账号,激活后填入即可,此处会返回10位ID,后面连接真机时会用到)
-
编译WebDriverAgentRunner
首先编辑general里的内容,和上面大同小异,也是需要勾选自动签名和选择开发者帐号。配置好后点击编译按钮,是build succeed的就可继续进行。 -
获取手机的udid
把你的手机设备通过usb连上电脑,然后打开itunes,然后选中你的iPhone,点击一下序列号,然后会弹出udid。
- 建立服务WebDriverAgent (手机和MAC都在同一个网段下,且都能连接外网)关闭Xcode,进入WebDriverAgent 文件夹(需要开启usb调试权限)
cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid' test
这时候可以看到手机上多了一个WebdriverAgent的app,则表示环境已经配置成功。第一次会提示不受信任的开发者,需要进入设置-通用-设备管理(描述文件) 信任你的apple id。
Appium连接真机获取元素信息(需安装appium-desktop版本)
{
‘’noReset": "true", -- 不重装apk,默认是true,非必填
"platformName": "iOS", --设置应用平台,必填
“platformVersion": "10.3", -- 设置当前平台的系统版本,设置两位就可以了,必填
”deviceName": "iPhone7", --设置当前连接MAC本的手机名称,在设置里可以查到手机名,必填
”packageName": "com.samsclub.now", --设置当前启动应用的packageName,Android必填
”activityName": "com.sng.LauncherActivity", --设置当前启动应用的activityName,Android必填
”alias": "Myapp1", --IOS虚拟机启动参数,真机测试不要该参数
”automationName": "XCUIText", -- IOS参数
“bundleId": "com.testi.test.uuaatt",--设置当前应用的activename,这个启动名称可以跟相应的开发人员要,也可以自己通过其他工具看一下(工具的话请大家问度娘吧~~),IOS参数,与app可二选一
”app": "com.apple.calculator", -- IOS参数,与bundleId可二选一
"udid":" ", --设置当前手机的udid,通过iTunes拷贝过来,IOS真机测试必填
"xcodeOrgId":"123ADE4Y56", --十位字符的组织ID是苹果开发证书的组织单位,appium可以通过十位组织单位ID找到相应的组织,IOS真机测试必填(注意: 连接真机时,测试app的打包签名证书必须要与xcodeOrgId里的一致,否则会报证书错误,错误代码是65)
”xcodeSigningId": "iPhone Developer", --这里参数是固定的,就这样写,IOS真机测试必填
“wdaLocalPort":"8100" -- 默认手机连接MAC本使用的端口,默认是8100,非必填
“unicodeKeyboard":"True"
“resetKeyboard":"True" -- 加入这两个参数,则可以输入中文
}
填写以上参数,连接手机后,点击Start Session按钮,等待启动,即可看到测试app的全部元素信息。
RIDE自动化脚本编写简述 RIDE介绍: https://www.cnblogs.com/baby0814/p/6374954.html
AppiumLibrary常用关键字:
https://www.cnblogs.com/lynn-li/p/6290734.html
http://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html
ubuntu搭建robotFramework +Appium自动化测试环境 参考资料:
https://blog.csdn.net/soul_lover/article/details/77945154
https://blog.csdn.net/heart_1014/article/details/52956200
一. 安装Android + JAVA 下载jdk : http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 解压之后,将JAVA_HOME加入PATH $sudo vim /etc/profile
JAVE_HOME=/usr/local/jave/jdk1.8.0_141
PATH=$PATH:$JAVE_HOME/bin
CLASSPATH=$JAVA_HOME/lib/
export PATH JAVA_HOME CLASSPATH
$source /etc/profile //使文件中加入的变量生效
$java -version
下载android sdk:http://www.androiddevtools.cn/ 选择SDK Tools 下载linux版本的SDK,根据目录中的Readme.txt的提示执行: tools/android update sdk --no-ui
将androd sdk目录加入PATH $sudo vim /etc/profile
ANDROID_HOME=/usr/local/android-sdk-linux
PATH=$PATH:$JAVE_HOME/bin:$ANDROID_HOME/bin
export PATH JAVA_HOME CLASSPATH ANDROID_HOME
$source /etc/profile
运行android $android
二.安装Appium 1、安装node
$ apt-get install node.js
2、安装npm
$ apt-get install npm
安装nodejs可能失败,因为从apt-get上下载的nodes版本太旧了,可以使用以下方法安装:
1.下载node
sudo apt remove npm //卸载npm
sudo apt remove node //卸载node
cd /usr/local/bin //进入该目录中,若有node或者npm文件,将他删除删除
去node.js官网下载最新版或者最稳定版的node.js Linux安装包
2.安装node
tar -xJf node-v9.5.0-linux-x64.tar.xz //解压命令(注意包名变更为下载的包名)
sudo mv node-v9.5.0-linux-x64 /opt/ //移动到opt目录下
建立执行链接
sudo ln -s /opt/node-v9.5.0-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /opt/node-v9.5.0-linux-x64/bin/npm /usr/local/bin/npm
验证是否安装成功
node -v
npm -v
3、安装cnpm
$ npm install -g cnpm
创建链接:ln -s cnpm安装路径 /usr/bin/cnpm
cnpm安装路径的寻找:找到node安装目录,则可以找到cnpm的安装目录
4、安装appium
cnpm install -g appium
使用以上命令安装的是最新版本的appium,可能存在兼容问题,可以指定安装版本
sudo cnpm install -g [email protected](安装最新版会报错,所以安装1.8.1版本)
创建链接:ln -s appium安装路径 /usr/bin/appium
ln -s /opt/node-v9.5.0-linux-x64/lib/node_modules/appium/build/lib/main.js /usr/bin/ local /appium
5、启动Appium
$ Appium
三.安装robotFramework 1.安装pip
$sudo apt-get install python-pip
2.用pip安装robotframwork及其他库
$pip install robotframwork
$pip install robotframwork-ride
$pip install robotframework-appiumlibrary //appium库
$pip install robotframework-selenium2library
$pip install requests
$pip install robotframework-requests
3.安装wxpython2.8
$echo "deb http://archive.ubuntu.com/ubuntu wily main universe" | sudo tee /etc/apt/sources.list.d/wily-copies.list
$sudo apt update
$sudo apt install python-wxgtk2.8
$sudo rm /etc/apt/sources.list.d/wily-copies.list
$sudo apt update
四.打开Android模拟器(待研究) 1.列出镜像
$android list target
2.创建模拟器
$android create avd -n emulator-24 -t 18 --abi default/x86_64 //-n 模拟器的名称 -t 为android list target 的id
3.运行模拟器
$emulator -avd emulator-24
五.用robotframework打开app 1.http://localhost:4723/wd/hub:Appium所在的url路径(这里appium搭建在本机,所以url格式固定不变)
2.platformName:被测的平台名称,Android或ios
3.platformVersion:平台版本,如Android的版本号
4.deviceName:设备名称,即运行得模拟器或真机的设备型号
查看方式:
$adb devices
5.app:被测应用的存储路径
6.appPackage:app的包名
adb -s emulator-24 shell pm list package –f 命令中emulator-24为对应设备名称
7.appActivity:app的activity名
8.adb命令获取当前启动的apk的packageName和activity
adb shell logcat | grep ActivityManager //查多个
adb shell dumpsys window | grep mCurrentFocus //查当前运行(手机连接电脑,启动app,保持app前端运行,执行该命令)