• appium mac 下 安装及踩坑


    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

    转自:

  • 相关阅读:
    网站服务架构
    10年工作经验老程序员推荐的7个开发类工具
    极限挑战—C#+ODP 100万条数据导入Oracle数据库仅用不到1秒
    SQL SERVER发布与订阅
    C#开发可以可视化操作的windows服务
    highcharts图表中级入门:非histock图表的highcharts图表如何让图表产生滚动条
    MS Chart Control 學習手記(二)
    MsChart,饼状图
    c#中如何退出程序后自动重新启动程序
    2016 系统设计第一期 (档案一)MVC 控制器接收表单数据
  • 原文地址:https://www.cnblogs.com/melody-emma/p/4763691.html
Copyright © 2020-2023  润新知