Appium

Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对IOS系统的支持得益于Dan Cuellar’s对于IOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。

使用Appium进行自动化测试有两个好处:

1. Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用。

2. Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。Appium实现了真正的跨平台自动化测试。

mac下搭建appium环境有两种方法:

1.直接下载appium.dmg 运行即可

2.使用node从命令行运行appium

下面我们主要讲解MAC下的appium环境搭建:

1.brew install node 想要生效首先必须先安装homebrew才行,所以第一步应当是检查自己是否已经安装homebrew

命令行中输入:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
查看版本brow -v

PC-0080:~ guokr$ brew -v
Homebrew 0.9.5
移除版本的话,在命令行中输入:

rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
2.在终端输入brew install node 命令安装node.js 安装完成后在终端输入node -v 命令检查是否安装成功,出现版本信息说明安装成功。

PC-0080:~ guokr$ node -v
v0.10.33
或者用另外一种安装方式:

git clone git://github.com/ry/node.git
cd node
./configure
make
sudo make install
3.在终端输入npm install -g appium,这里重点提一下,使用sudo安装appium能够安装,但是运行不起来,这里给出一个解决方案:

方法:

PC-0080:~ guokr$ sudo npm uninstall appium -g //卸载appium
unbuild appium@1.3.4
PC-0080:~ guokr$ sudo chmod -R 777 /usr/local //权限就一刀切了。
PC-0080:~ guokr$ npm install -g appium //重新安装

4.安装appium client ,appium主站上给出的命令是npm install wd 这应该是老版本的安装方法。。

我去github上的appium分支下下载了python-client-master,然后在终端下进入该目录,输入python setup.py install 命令进行模块的安装。

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
5. 启动appium

appium &
PC-0080:python-client guokr$ appium &
[1] 35465
PC-0080:python-client guokr$ info: Welcome to Appium v1.3.4 (REV c8c79a85fbd6870cd6fc3d66d038a115ebe22efe)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: Console LogLevel: debug
6.appium提供了命令来检查appium的依赖是否安装

终端输入appium-doctor

结果如下:

PC-0080:~ guokr$ appium-doctor
Running iOS Checks
✔ Xcode is installed at /Applications/Xcode.app/Contents/Developer
✔ Xcode Command Line Tools are installed.
✔ DevToolsSecurity is enabled.
✔ The Authorization DB is set up properly.
✔ Node binary found at /usr/local/bin/node
✔ iOS Checks were successful.
Running Android Checks
✔ ANDROID_HOME is set to "/Users/guokr/Downloads/adt/sdk"
✖ JAVA_HOME is not set
由于我这次只需要执行一个ios测试用例,所以基础要保证ios依赖没有问题就可以了。

写到这里mac下的appium环境搭建已经全部完成了,下面让我们去运行人森中第一个测试用例吧,学习一个框架最好的办法,当然是直接运行appiunm提供的例子了,例子是从github上appium中下载的,点这里download zip去吧-—-。直接git clone遇到了文件权限问题。。。或者在这里直接下载ios 例子。

下载完成后,在终端进入 cd Downloads/samplecode-master/sample-code/apps/TestApp,目录下通过如下命令编译生成示例程序:xcodebuild -sdk iphonesimulator 当看到**BUILD SUCCEEDED**则说明编译成功

注意:这行命令在TestApp项目底下创建了一个build/Release-iphonesimulator目录,并且声称一个可以透过Appium服务器交流的.app封装包。

成功后在终端进入cd Downloads/samplecode-master/sample-code/examples/python目录下,然后在appium运行的情况下输入python ios_simple.py. 示例文件会执行两个用例,一个是侧滑效果,一个是计算求和。

踩过的坑:

运行appium报错:Appium will not work if used or installed with sudo

bixiaopeng@bixiaopengtekiMacBook-Pro ~$ error: Appium will not work if used or installed with sudo. Please rerun/install as a non-root user. If you had to install Appium using `sudo npm install -g appium`, the solution is to reinstall Node using a method (Homebrew, for example) that doesn't require sudo to install global npm packages.

[1]+ Exit 1 appium

出错原因:

权限问题,无法使用sudo来运行appium

解决办法:

步骤1. 改变node的所有者

cd /usr/local/lib
sudo chown -R bixiaopeng node_modules

步骤2. 卸载appium

npm uninstall appium -g

步骤3. 重新安装appium

npm install -g appium
步骤4. 启动

appium &
步骤5. 查看是否运行成功

浏览器打开:

http://0.0.0.0:4723/

显示:

That URL did not map to a valid JSONWP resource

说明成功

Appium踩过的坑二:

运行iOS用例报错:We don't have write access to /Applications/Xcode.app..

org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: We don't have write access to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/Applications/MobileSafari.app, please re-run authorize as bixiaopeng) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 308 milliseconds
Build info: version: '2.41.0', revision: '3192d8a6c4449dc285928ba024779344f5423c58', time: '2014-03-27 11:29:39'
---------com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Process finished with exit code 255

问题原因:

又是权限问题

解决办法:更改Xcode.app的权限

bixiaopeng@bixiaopengtekiMacBook-Pro Applications$ sudo chown -R bixiaopeng Xcode.app
Password:
再次运行:

OK

转自:

appium mac 下 安装及踩坑的更多相关文章

  1. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  2. Mac下安装GIT的坑

    先去 https://git-scm.com/download/mac 下载 GIT 客户端 双击安装,界面中有三个文件 接着双节 .pkg 文件,却提示无法安装 解决方式是按住 Control ,再 ...

  3. linux下安装node踩坑总结

    1.在node官网下载linux二进制文件(确定文件的类型)本文以二进制文件为例 2.放入linux的对应目录下之后: tar -xvf node-v10.15.3-linux-x64.tar.xz ...

  4. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三) 安装PHP 1.yum方式安装PHP方法同安装apache一样传送门:linux cent ...

  5. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(一) 一.Linux下安装MySQL 1.下载 下载地址:http://dev.mysql.co ...

  6. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二) 安装apache web容器 . yum方式安装apache 注意apache在linux ...

  7. Mac下安装及配置Appium环境

    candiceli   Mac下安装及配置Appium环境 我是小白,自己研究appium好几周了. 一开始按照同事这篇文章设置Mac下的环境,http://www.cnblogs.com/tangd ...

  8. CentOS7.4安装MySQL踩坑记录

    CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...

  9. Mac 下安装运行Rocket.chat

    最近花了一周的时间,复习了HTML.CSS.原生JS,并学习了Node.js.CoffeeScript.js.MongoDB,入了下门. 因为准备在Rocket.chat 上做二次开发,所以先下载和安 ...

随机推荐

  1. POJ 2785 4 Values whose Sum is 0(哈希表)

    [题目链接] http://poj.org/problem?id=2785 [题目大意] 给出四个数组,从每个数组中选出一个数,使得四个数相加为0,求方案数 [题解] 将a+b存入哈希表,反查-c-d ...

  2. iOS开发 Swift开发数独游戏(四) 游戏界面的界面与逻辑

    一.游戏界面涉及到的功能点 1)数独格子的建模 (1)绘制数独格子要考虑到标记功能 所以要在每个格子内预先塞入9个标记数字,仅数独格子算下来就有9*9*9=729个格子且存在大量嵌套(这导致我在操作S ...

  3. Springboot集成BeanValidation扩展二:加载jar中的资源文件

    一.需求 今天在搭建Springboot框架的时候,又遇到一个需求:在多模块系统中,有些模块想自己管理BeanValidation的资源文件(默认是启动项目claspath下的 ValidationM ...

  4. openfire源码修改后如何打包部署到linux服务器上

    原文:http://blog.csdn.net/jinzhencs/article/details/50457152 1.linux版本的3.10.3解压部署启动(过程略,参考我的另一篇博文http: ...

  5. 永久关闭WPS热点

    可以通过设置WPS,关闭广告推送和热点即可,方法如下 准备:打开已经安装wps的设备 1.单击电脑左下角,找到wps 2.选中WPS Office中的配置工具 3.在弹窗中选择“高级” 4.打开之后选 ...

  6. HDFS源码分析之UnderReplicatedBlocks(一)

    http://blog.csdn.net/lipeng_bigdata/article/details/51160359 UnderReplicatedBlocks是HDFS中关于块复制的一个重要数据 ...

  7. scp拷贝本地文件到服务器

    拷贝远程服务器的文件到本地:scp -r -P  端口号   用户名@IP地址:/usr/local/tomcat_airc/webapps/        /tmp/kyj/ 拷贝本地文件到远程服务 ...

  8. zabbix自动化监控之自动注册

    自动注册与自动发现刚好相反,是zabbix agent主动联系zabbix server,最后由zabbix server将这些agent加到host里.活动的Zabbix agent可以自动注册到服 ...

  9. ubuntu12.04下sun-java1.6-jdk配置

    1. 下载安装 2. 设置安装的默认程序 $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_2 ...

  10. Hello,Android

    项目介绍 由于要參加某信息安全比赛.选择了安卓apk的行为分析与评估的课题,所以首先须要了解安卓程序是如何编写和执行的.我们的第一个任务就是写出一个多人通信的app. 我本人之前没有不论什么安卓和ja ...