自动化测试学习笔记

自动化测试按被测平台划分,分为web和app,其中app又分为android和ios。

ios系统使用UIAutomation库,android系统使用UIAutomator框架。

web可以使用selenium,app可以使用appium。

appium支持selenium支持的所有语言,且可以使用selenium的api。

appium目前最新版本是1.6.3

appium客户端(appium server的GUI图形化操作界面)最新版本是1.5.3

appium GUI目前还只支持到iOS10以下基于UIAutomation框架的测试,iOS10以后苹果已经更改为XCUITest

自动化测试项目的搭建

开发环境

Mac系统最新版是2017年10月12日更新macOS High Sierra(10.13),之前还有macOS Sierra(10.12.3)和OS X Yosemite(10.10.5)

Xcode最新版已经是9.1,OS X Yosemite(10.10.5)无法安装最新版的Xcode

搭建满足UIAutomation和XCUITest的测试环境

开发工具:Xcode 8.2.1(iOS10.2)+ Xcode7.3.1(iOS9.3)

iOS10 以下支持UIAutomation

appium GUI1.5.3 + Xcode7.3.1(iOS9.3) + appium-python-client

iOS10 以上支持XCUITest

appium1.6.3 + app-inspector + Xcode8.2.1(iOS10.2) + appium-python-client

前期准备,需要安装的辅助工具
homebrew
npm/cnpm
node

安装homebrew

首先命令行检查是否安装:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果mac没有安装homebrew的话,需要先安装homebrew:curl -LsSf http://github.com/mxcl/homebrew/tarball/master | tar xvz -C/usr/local --strip 1

查看homebrew版本: brew -v

homebrew自检:brew doctor

安装node(安装nodejs后,npm会自动安装好)

使用homebrew安装node,命令行:brew install node

查看node版本: node -v

查看npm版本: npm -v

安装appium,appium-doctor  命令行:npm install -g appium 命令行: npm install -g appium-doctor

执行npm install -g appium,可能会遇到的问题:

╭─────────────────────────────────────╮
│ │
│ Update available 5.4.2 → 5.5.1 │
│ Run npm i -g npm to update │
│ │
╰─────────────────────────────────────╯

npm ERR! cb() never called!

根据提示,命令行:npm i -g npm

继续报错:

npm ERR! code EINTEGRITY
命令行:npm cache clean --force

然后再次执行,命令行:npm i -g npm,这次安装成功了。

再次安装appium,命令行:npm install -g appium

以上过程比较慢,与网络和wall有关,期间也打开过科学上网软件,因此网络上也有很多使用cnpm指定源的做法。

安装appium GUI,appium和appium GUI只要安装其中一项就可以启动服务,但是如果要用到其中的inspector去检查元素的xpath,所以还是安装了。

下载地址

https://bitbucket.org/appium/appium.app/downloads/

安装最新的版本1.5.3就行,但是即使最新的,也只能支持iOS10以下系统的元素检查。

使用appium-doctor检查appium环境

命令行:appium-doctor //appium-doctor --ios 只检测iOS环境

info AppiumDoctor Appium Doctor v.1.4.1
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor ✔ Node version is 6.3.1
info AppiumDoctor ✔ Xcode is installed at: /Applications/Xcode_7.3.1.app/Contents/Developer
info AppiumDoctor ✔ Xcode Command Line Tools are installed.
info AppiumDoctor ✔ DevToolsSecurity is enabled.
info AppiumDoctor ✔ The Authorization DB is set up properly.
info AppiumDoctor ✔ Carthage was found at: /usr/local/bin/carthage
info AppiumDoctor ✔ HOME is set to: /Users/iSteven
info AppiumDoctor ✔ ANDROID_HOME is set to: /Users/iSteven/Library/Android/sdk
info AppiumDoctor ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
info AppiumDoctor ✔ adb exists at: /Users/iSteven/Library/Android/sdk/platform-tools/adb
info AppiumDoctor ✔ android exists at: /Users/iSteven/Library/Android/sdk/tools/android
info AppiumDoctor ✔ emulator exists at: /Users/iSteven/Library/Android/sdk/tools/emulator
info AppiumDoctor ✔ Bin directory of $JAVA_HOME is set
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor

✖ Xcode Command Line Tools are NOT installed!
命令行 xcode-select --install #按照提示安装即可
✖ Carthage was NOT found!
命令行 brew install carthage #carthage:类似cocoapods管理第三方代码,自动将工程编译为动态库,所以仅支持iOS8以上,对Xcode版本有要求。

WARN AppiumDoctor ✖ ANDROID_HOME is NOT set!
建议安装AS,可以解决其他Android环境的其他问题 Android Studio
下载地址 https://developer.android.com/studio/index.html?hl=zh-cn
设置 ANDROID_HOME 路径
https://stackoverflow.com/questions/19986214/setting-android-home-enviromental-variable-on-mac-os-x
设置 JAVA_HOME 路径
Mac OS X 下查看和设置JAVA_HOME
https://stackoverflow.com/questions/6588390/where-is-java-home-on-osx-sierra-10-12-el-capitan-10-11-yosemite-10-10

在.bash_profile文件中设置JAVA和Android环境变量

#android sdk
export ANDROID_HOME=~/Library/Android/sdk
#export ANDROID_HOME=~/Downloads/adt-bundle-mac-x86_64-20140702/sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/build-tools/android-4.4W:$ANDROID_HOME/build-tools/26.0.1

#java_home
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH

以下未测试

#android sdk
export ANDROID_HOME=~/Library/Android/sdk
export PATH="$HOME/.yarn/bin:$PATH"
#java_home
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib

安装appium client端,有ruby,python,java三个版本。

python版

pip安装,命令行:pip install Appium-Python-Client

如果安装过程出现 could not create ‘/Library/Python/2.7/site-packages/appium’: Permission denied 错误,使用 pip install Appium-Python-Client –user 命令可以安装成功。

源码安装,下载地址:https://github.com/appium/python-client

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

安装 Selenium WebDriver

pip安装,pip install -U selenium

源码安装,下载地址:https://pypi.python.org/pypi/selenium

解压以后,从终端进入selenium webdriver 目录,运行命令行:python setup.py install

安装app-inspector

npm install app-inspector -g

其他相关安装

brew install libimobiledevice --HEAD

brew install ideviceinstaller

npm install -g ios-deploy

sudo gem install xcpretty

2017年12月12日

MAC升级selenium

sudo pip install -U selenium

定位元素原则:通过url定位不灵活,在测试和生产环境切换不方便,尽量使用通用元素

2018年08月13日

Install Xcode(9.4.1) from App Store

Download Appium-1.6.2.dmg from http://appium.io/

2018年08月14日

# node -v

v9.11.1 (当前版本)

# npm -v

5.6.0 (当前版本)

# npm i npm (无效,升级是失败,原因待查)

升级MAC系统

Sierra 10.13.6

2018年08月15日

命令行升级appium

# npm install -g appium (成功与否与网络有很大关系)

# npm install -g appium@你想用的版本 (未测试)

https://blog.csdn.net/ei__nino/article/details/17340685(npm国内镜像,未测试)

原文地址:https://www.cnblogs.com/sgwjj/p/7691605.html