背景:想要在Jenkins上跑appium的自动化测试,所以想要在Jenkins服务器(Linux远程)上安装appium服务,故而研究了一下appium+Linux下安装。虽然有无数的前辈踩过坑,但自己还是吭哧吭哧搞了一天半,终于大功告成。详细安装步骤,以及曲折的安装试错过程如下:
 
1、nodeJs安装
apt-get install node.js
 
2、npm安装
apt-get install npm
 
3、cnpm安装
npm install -g cnpm --registry=https://registry.npm.taobao.org // -g全局安装
 
4、appium安装
在非root用户权限下安装
cnpm install -g appium //appium server安装

cnpm install wd //appium client安装

说明:新版appium(我的是当前最新版本1.7.1)在root权限下,可以安装成功,但无法启动appium
5、极其曲折的appium安装过程
1)、最开始按appium官网教程来安装,但执行npm install -g appium 一直卡在第一步文件下载中,N久之后,返回timeout的错误
2)、尝试FQ,设置npm代理(据说和浏览器代理一致即可)
npm config set proxy http://server:port(或npm config set https-proxy http://server:port
 
查看当前代理:npm config get proxy
 
然鹅,没用。不知道有没有成功的小伙伴。
先取消npm代理:
npm config delete proxy(npm config delete https-proxy)
 
3)改为npm淘宝镜像安装
npm install -g appium --registry=https://registry.npm.taobao.org
理论上应该是可以的,但可能当时自己电脑网络有问题,还是timeout。没办法只好让同事在他电脑上安装(root权限下)。但由于网络极慢,安装了太久,我并不知道安装过程 是否报错,同事说应该安装好了,让我试试。
执行appium命令:appium -v ,报错 appium:command not found
但/usr/local/lib/node_modules下明明已经安装了appium
尝试:
  • 我想可能是缺少appium的环境变量,到profile文件中配置APPIUM_HOME和PATH环境变量,仍是报错 appium:command not found
  • /usr/local/bin下有已经存在的npm,newman等软连接,而且可以直接执行,我强行手动建立软连接:ln -s /usr/local/lib/node_modules/appium/lib/appium.js /usr/local/bin/appium,再执行appium -v ,报了一堆错。(ps:当然会报错,只怪小白的我怕根本没搞清楚appium执行原理,后来发现需要软连接源文件并不是这个目录下的,而是/usr/local/lib/node_modules/appium/build/lib/main.js)
4)但网上看很多人说新版appium不能使用root权限安装,否则启动失败。最后决定卸载appium,再去非root权限用户下,重新安装appium。
appium卸载命令:npm uninstall appium
 
5)非root用户权限安装appium
cnpm install -g appium //cnpm已经安装好
还是报错,permission denied
赋予当前用户权限:chown -R dev node_modules //node_modules目录及其子目录下的所有文件
再执行安装命令 cnpm install -g appium
虽然速度稍慢,但还是比较顺利的安装中,直到在安装的收尾阶段,突然报了错,还是权限问题
我索性使用root权限, sudo ln -s ../lib/node_modules/appium/build/lib/main.js /usr/local/bin/appium
appium软连接创建成功,再执行appium,惊喜的发现真的成功了。截图纪念。

appium+Linux环境安装配置的更多相关文章

  1. appium 使用环境安装配置记录

    一.安装配置Java (cmd输入java,回车,没有出现“不是内部或外部命令,也不是可运行的程序或批处理文件”,即为成功) 二.安装node.js (cmd输入node -v,显示版本号即为成功) ...

  2. Linux环境安装配置Swftools

    系统:CentOS6.5的64位版本   这里有一位仁兄的几个错误处理办法,下面是swftools的安装配置步骤:   1.安装所需的库和组件.机器之前安装过了,主要安装的是下面几个组件.如果不安装会 ...

  3. Linux环境安装配置JDK

    本文安装环境为Ubuntu14 64位,jdk版本为jdk1.6.0_38,安装文件名为jdk-6u38-linux-x64.bin(根据系统不同,下载不同的安装文件) 下载地址:http://www ...

  4. Linux环境安装配置maven

     按照下面命令执行即可 1.下载apache-maven-3.5.3-bin.tar.gz 并上传到服务器上 提取地址:https://pan.baidu.com/s/11nxZp84lmonRBCR ...

  5. linux环境安装配置nginx

    安装依赖 yum install gcc yum install pcre-devel yum install zlib zlib-devel yum install openssl openssl- ...

  6. Linux下xampp集成环境安装配置方法 、部署bugfree及部署禅道

    XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.XAMPP 是一个易于安装且包含 MySQL.PHP 和 Perl 的 Apache 发行版.XAMPP 的确非 ...

  7. LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2

    LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2 你是否遇见过:安装LNMP1.3环境后,运行ThinkPHP 3.2,只能打开首页,不能访问控制器,报404错误. 按照 ...

  8. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...

  9. (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记

    Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...

随机推荐

  1. 对Spring事务一些问题的讨论

    提起spring事务,就会让人联想起四大基本特征,五个隔离级别,七大传播特性.相信大多数人都知道这些东西,但是知道是一回事情,能用好真的是另一回事了.在使用Spring事务的时候,我曾遇到过几个比较严 ...

  2. 利用VS2008发布一个简单的webservice

    一个开发好的webservice,怎样发布出去,供其他电脑访问呢? 本文将介绍如何发布一个简单的webservice,其中的内容都是在网上查看别人文章,自己仿照着做了一遍,因此,难免会发生错误,如果发 ...

  3. css给div添加阴影效果

    直接上代码: <style type="text/css">.mydiv{   width:250px; height:auto; border:#909090 1px ...

  4. Luogu 2296 寻找道路

    https://www.luogu.org/problemnew/show/2296 题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以 ...

  5. Samba服务安装及配置

    服务器环境:CentOS6.9 Linux 2.6.32-696.10.1.el6.x86_64 安装Samba服务 过程中会安装3个服务smb(文件.打印共享服务,使用139.445端口).nmb( ...

  6. 浅谈postgresql的GIN索引(通用倒排索引)

    1.倒排索引原理 倒排索引来源于搜索引擎的技术,可以说是搜索引擎的基石.正是有了倒排索引技术,搜索引擎才能有效率的进行数据库查找.删除等操作.在详细说明倒排索引之前,我们说一下与之相关的正排索引并与之 ...

  7. 多线程环境下非安全Dictionary引起的“已添加了具有相同键的项”问题

    问题: 代码是在多线程环境下,做了简单的Key是否存的判断, 测试代码如下: public class Program { static Dictionary<string, Logger> ...

  8. QT中槽的使用

    一.建立槽和按钮之间的连接 connect(信号发送者,发送的信号,信号接收者,信号接收者的槽函数) 1.例子 connect(ui->pushButton,SIGNAL(clicked(boo ...

  9. ThreadLocal 原理解析

    1.对Thread local 理解 ThreadLocal 是为了解决线程间同步而创建的一个新的思路.简单来说就是每个线程都保存一个变量副本. 如果在Thread 内部定义一个field变量,也可以 ...

  10. 在ASP.NET Core Web API中为RESTful服务增加对HAL的支持

    HAL(Hypertext Application Language,超文本应用语言)是一种RESTful API的数据格式风格,为RESTful API的设计提供了接口规范,同时也降低了客户端与服务 ...