事件背景:

前几日在群里看到关总说他的server端是搭建在linux环境下,包括对客户端与服务端的交互处理,感觉整体思路清晰可鉴,于是就想尝试,动手实践,接着从环境搭建开始搞起,于是就有了这篇文章,不得不吐槽下,这是段很深刻的回忆呀,历时1.5工作日,终于搞定环境搭建!!

依赖关联:

ps:以我现在的为例,个别根据自己情况调整

  • JDK 1.8
  • Android SDK 1.0.40
  • nodejs 8.7
  • appium 1.9.1

一、安装jdk:

参考我之前写过的《ubuntu12.04 安装配置jdk1.7》

二、安装Android SDK:

1、下载sdk

  1. cd /opt
  2. mkdir androidSdk
  3. wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
  4. unzip sdk-tools-linux-.zip

2、配置环境变量

  1. sudo vim /etc/profile

保存退出,输入以下命令使之立即生效

  1. source /etc/profile

3、查看已安装信息

  1. sdkmanager --list
  2.  
  3. Installed packages:
  4. Path | Version | Description | Location
  5. ------- | ------- | ------- | -------
  6. tools | 26.0. | Android SDK Tools 26.0. | tools/
  7.  
  8. Available Packages:
  9. Path | Version | Description
  10. ------- | ------- | -------
  11. add-ons;addon-g..._apis-google- | | Google APIs
  12. add-ons;addon-g..._apis-google- | | Google APIs
  13. add-ons;addon-g..._apis-google- | | Google APIs
  14. add-ons;addon-g..._apis-google- | | Google APIs
  15. add-ons;addon-g..._apis-google- | | Google APIs
  16. add-ons;addon-g..._apis-google- | | Google APIs
  17. add-ons;addon-g..._apis-google- | | Google APIs
  18. add-ons;addon-g..._apis-google- | | Google APIs
  19. add-ons;addon-g..._apis-google- | | Google APIs
  20. add-ons;addon-g...e_gdk-google- | | Glass Development Kit Preview
  21. build-tools;19.1. | 19.1. | Android SDK Build-Tools 19.1
  22. build-tools;20.0. | 20.0. | Android SDK Build-Tools
  23. build-tools;21.1. | 21.1. | Android SDK Build-Tools 21.1.
  24. build-tools;22.0. | 22.0. | Android SDK Build-Tools 22.0.
  25. build-tools;23.0. | 23.0. | Android SDK Build-Tools 23.0.
  26. build-tools;23.0. | 23.0. | Android SDK Build-Tools 23.0.
  27. build-tools;23.0. | 23.0. | Android SDK Build-Tools 23.0.
  28. build-tools;24.0. | 24.0. | Android SDK Build-Tools
  29. build-tools;24.0. | 24.0. | Android SDK Build-Tools 24.0.
  30. build-tools;24.0. | 24.0. | Android SDK Build-Tools 24.0.
  31. build-tools;24.0. | 24.0. | Android SDK Build-Tools 24.0.
  32. build-tools;25.0. | 25.0. | Android SDK Build-Tools
  33. build-tools;25.0. | 25.0. | Android SDK Build-Tools 25.0.
  34. build-tools;25.0. | 25.0. | Android SDK Build-Tools 25.0.
  35. build-tools;25.0. | 25.0. | Android SDK Build-Tools 25.0.
  36. build-tools;26.0. | 26.0. | Android SDK Build-Tools
  37. cmake;3.6. | 3.6. | CMake 3.6.
  38. docs | | Documentation for Android SDK
  39. emulator | 26.1. | Android Emulator
  40. extras;android;gapid; | 1.0. | GPU Debugging tools
  41. extras;android;gapid; | 3.1. | GPU Debugging tools
  42. extras;android;m2repository | 47.0. | Android Support Repository
  43. extras;google;auto | 1.1 | Android Auto Desktop Head Unit...
  44. extras;google;g...e_play_services | | Google Play services
  45. extras;google;instantapps | 1.0. | Instant Apps Development SDK
  46. extras;google;m2repository | | Google Repository
  47. extras;google;m...t_apk_expansion | | Google Play APK Expansion library
  48. extras;google;market_licensing | | Google Play Licensing Library
  49. extras;google;play_billing | | Google Play Billing Library
  50. extras;google;simulators | | Android Auto API Simulators
  51. extras;google;webdriver | | Google Web Driver
  52. extras;m2reposi...ut-solver;1.0. | | Solver for ConstraintLayout 1.0.
  53. extras;m2reposi...er;1.0.-alpha2 | | com.android.support.constraint...
  54. extras;m2reposi...er;1.0.-alpha3 | | com.android.support.constraint...
  55. extras;m2reposi...er;1.0.-alpha4 | | com.android.support.constraint...
  56. extras;m2reposi...er;1.0.-alpha5 | | Solver for ConstraintLayout ....
  57. extras;m2reposi...er;1.0.-alpha6 | | Solver for ConstraintLayout ....
  58. extras;m2reposi...er;1.0.-alpha7 | | Solver for ConstraintLayout ....
  59. extras;m2reposi...er;1.0.-alpha8 | | Solver for ConstraintLayout ....
  60. extras;m2reposi...er;1.0.-alpha9 | | Solver for ConstraintLayout ....
  61. extras;m2reposi...ver;1.0.-beta1 | | Solver for ConstraintLayout ....
  62. extras;m2reposi...ver;1.0.-beta2 | | Solver for ConstraintLayout ....
  63. extras;m2reposi...ver;1.0.-beta3 | | Solver for ConstraintLayout ....
  64. extras;m2reposi...ver;1.0.-beta4 | | Solver for ConstraintLayout ....
  65. extras;m2reposi...ver;1.0.-beta5 | | Solver for ConstraintLayout ....
  66. extras;m2reposi...ut-solver;1.0. | | Solver for ConstraintLayout 1.0.
  67. extras;m2reposi...ut-solver;1.0. | | Solver for ConstraintLayout 1.0.
  68. extras;m2reposi...nt-layout;1.0. | | ConstraintLayout for Android ...
  69. extras;m2reposi...ut;1.0.-alpha2 | | com.android.support.constraint...
  70. extras;m2reposi...ut;1.0.-alpha3 | | com.android.support.constraint...
  71. extras;m2reposi...ut;1.0.-alpha4 | | com.android.support.constraint...
  72. extras;m2reposi...ut;1.0.-alpha5 | | ConstraintLayout for Android ...
  73. extras;m2reposi...ut;1.0.-alpha6 | | ConstraintLayout for Android ...
  74. extras;m2reposi...ut;1.0.-alpha7 | | ConstraintLayout for Android ...
  75. extras;m2reposi...ut;1.0.-alpha8 | | ConstraintLayout for Android ...
  76. extras;m2reposi...ut;1.0.-alpha9 | | ConstraintLayout for Android ...
  77. extras;m2reposi...out;1.0.-beta1 | | ConstraintLayout for Android ...
  78. extras;m2reposi...out;1.0.-beta2 | | ConstraintLayout for Android ...
  79. extras;m2reposi...out;1.0.-beta3 | | ConstraintLayout for Android ...
  80. extras;m2reposi...out;1.0.-beta4 | | ConstraintLayout for Android ...
  81. extras;m2reposi...out;1.0.-beta5 | | ConstraintLayout for Android ...
  82. extras;m2reposi...nt-layout;1.0. | | ConstraintLayout for Android ...
  83. extras;m2reposi...nt-layout;1.0. | | ConstraintLayout for Android ...
  84. lldb;2.0 | 2.0. | LLDB 2.0
  85. lldb;2.1 | 2.1. | LLDB 2.1
  86. lldb;2.2 | 2.2. | LLDB 2.2
  87. lldb;2.3 | 2.3. | LLDB 2.3
  88. ndk-bundle | 15.1. | NDK
  89. patcher;v4 | | SDK Patch Applier v4
  90. platform-tools | 26.0. | Android SDK Platform-Tools
  91. platforms;android- | | Android SDK Platform
  92. platforms;android- | | Android SDK Platform
  93. platforms;android- | | Android SDK Platform
  94. platforms;android- | | Android SDK Platform
  95. platforms;android- | | Android SDK Platform
  96. platforms;android- | | Android SDK Platform
  97. platforms;android- | | Android SDK Platform
  98. platforms;android- | | Android SDK Platform
  99. platforms;android- | | Android SDK Platform
  100. platforms;android- | | Android SDK Platform
  101. platforms;android- | | Android SDK Platform
  102. platforms;android- | | Android SDK Platform
  103. platforms;android- | | Android SDK Platform
  104. platforms;android- | | Android SDK Platform
  105. platforms;android- | | Android SDK Platform
  106. platforms;android- | | Android SDK Platform
  107. platforms;android- | | Android SDK Platform
  108. platforms;android- | | Android SDK Platform
  109. platforms;android- | | Android SDK Platform
  110. platforms;android- | | Android SDK Platform
  111. sources;android- | | Sources for Android
  112. sources;android- | | Sources for Android
  113. sources;android- | | Sources for Android
  114. sources;android- | | Sources for Android
  115. sources;android- | | Sources for Android
  116. sources;android- | | Sources for Android
  117. sources;android- | | Sources for Android
  118. sources;android- | | Sources for Android
  119. sources;android- | | Sources for Android
  120. sources;android- | | Sources for Android
  121. sources;android- | | Sources for Android
  122. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  123. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  124. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  125. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  126. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  127. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  128. system-images;a...;default;mips | | MIPS System Image
  129. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  130. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  131. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  132. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  133. system-images;a...;default;mips | | MIPS System Image
  134. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  135. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  136. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  137. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  138. system-images;a...;default;mips | | MIPS System Image
  139. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  140. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  141. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  142. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  143. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  144. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  145. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  146. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  147. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  148. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  149. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  150. system-images;a...-tv;armeabi-v7a | | Android TV ARM EABI v7a System...
  151. system-images;a...;android-tv;x86 | | Android TV Intel x86 Atom Syst...
  152. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  153. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  154. system-images;a...;default;x86_64 | | Intel x86 Atom_64 System Image
  155. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  156. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  157. system-images;a...gle_apis;x86_64 | | Google APIs Intel x86 Atom_64 ...
  158. system-images;a...-tv;armeabi-v7a | | Android TV ARM EABI v7a System...
  159. system-images;a...;android-tv;x86 | | Android TV Intel x86 Atom Syst...
  160. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  161. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  162. system-images;a...;default;x86_64 | | Intel x86 Atom_64 System Image
  163. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  164. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  165. system-images;a...gle_apis;x86_64 | | Google APIs Intel x86 Atom_64 ...
  166. system-images;a...-tv;armeabi-v7a | | Android TV ARM EABI v7a System...
  167. system-images;a...;android-tv;x86 | | Android TV Intel x86 Atom Syst...
  168. system-images;a...ear;armeabi-v7a | | Android Wear ARM EABI v7a Syst...
  169. system-images;a...ndroid-wear;x86 | | Android Wear Intel x86 Atom Sy...
  170. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  171. system-images;a...;default;x86_64 | | Intel x86 Atom_64 System Image
  172. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  173. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  174. system-images;a...gle_apis;x86_64 | | Google APIs Intel x86 Atom_64 ...
  175. system-images;a...;android-tv;x86 | | Android TV Intel x86 Atom Syst...
  176. system-images;a...fault;arm64-v8a | | ARM v8a System Image
  177. system-images;a...ult;armeabi-v7a | | ARM EABI v7a System Image
  178. system-images;a...-;default;x86 | | Intel x86 Atom System Image
  179. system-images;a...;default;x86_64 | | Intel x86 Atom_64 System Image
  180. system-images;a..._apis;arm64-v8a | | Google APIs ARM v8a System ...
  181. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  182. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  183. system-images;a...gle_apis;x86_64 | | Google APIs Intel x86 Atom_64 ...
  184. system-images;a...s_playstore;x86 | | Google Play Intel x86 Atom Sys...
  185. system-images;a...;android-tv;x86 | | Android TV Intel x86 Atom Syst...
  186. system-images;a...ear;armeabi-v7a | | Android Wear ARM EABI v7a Syst...
  187. system-images;a...ndroid-wear;x86 | | Android Wear Intel x86 Atom Sy...
  188. system-images;a..._apis;arm64-v8a | | Google APIs ARM v8a System ...
  189. system-images;a...pis;armeabi-v7a | | Google APIs ARM EABI v7a Syste...
  190. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  191. system-images;a...gle_apis;x86_64 | | Google APIs Intel x86 Atom_64 ...
  192. system-images;a...;android-tv;x86 | | Android TV Intel x86 Atom Syst...
  193. system-images;a...ndroid-wear;x86 | | Android Wear Intel x86 Atom Sy...
  194. system-images;a...google_apis;x86 | | Google APIs Intel x86 Atom Sys...
  195. system-images;a...s_playstore;x86 | | Google Play Intel x86 Atom Sys...
  196. tools | 26.0. | Android SDK Tools
  197.  
  198. Available Updates:
  199. ID | Installed | Available
  200. ------- | ------- | -------
  201. tools | 26.0. | 26.0.

4、安装需要的package

  1. sdkmanager "build-tools;26.0.0"

5、配置platform tools

打开 /etc/profile 添加环境变量

验证配置结

三、安装nodejs:

安装版本:8.7.0

1、从源码下载Nodejs

  1. cd /usr/local/src
  2. wget https://npm.taobao.org/mirrors/node/v8.7.0/node-v8.7.0.tar.gz

2、解压缩 nodejs 安装包

  1. tar xvf node-v8.7.0.tar.gz

3、进入解压的node文件夹,安装必要的编译软件包

  1. cd node-v8.7.0
    ./configure

如提示gcc too old (英文那一大串我忘记了),大概意思让你升级ggc到4.90以上版本,因为nodejs8.7.0编译时gcc版本要求在4.9.4+。

升级gcc参考我另一篇Centos7升级gcc版本方法之一使用scl软件集

再次执行

  1. ./configure
  2. make

注:make过程较为耗时,可能需要30分钟以上

4、安装Nodejs

  1. sudo make instal

5、验证是否正确安装

node -v

四、安装appium:

1、源码安装:

  1. git clone https://github.com/appium/appium.git

2、进入appium源码文件夹,使用cnpm install安装依赖

  1. cnpm install

如在安装期间执行到这卡住了,一直不走,

  1. Downloading Selendroid standalone server version 0.17. from http://repo1.maven.org/maven2/io/selendroid/selendroid-standalone/0.17.0/selendroid-standalone-0.17.0-with-dependencies.jar --> /usr/local/lib/node_modules/appium/node_modules/_appium-selendroid-driver@1.6.4@appium-selendroid-driver/selendroid/download/selendroid-server-7cf7163ac47f1c46eff95b62f78b58c1dabdec534acc6632da3784739f6e9d82.jar

自行到maven仓库下载 上传到对应目录下, 重命名为存放的文件名即可

3、最后用appium -v试一下安装好的版本

五、客户端部署(以Java为例)

1、pom添加依赖

  1. <dependency>
  2. <groupId>io.appium</groupId>
  3. <artifactId>java-client</artifactId>
  4. <version>5.0.-BETA9</version>
  5. <scope>test</scope>
  6. </dependency>

2、代码实例

  1. package com.demo.test;
  2.  
  3. import io.appium.java_client.android.AndroidDriver;
  4. import org.openqa.selenium.remote.DesiredCapabilities;
  5.  
  6. import java.net.URL;
  7.  
  8. /***
  9. * @author longrong.lang
  10. * appium demo
  11. */
  12. public class CalculatorTest {
  13.  
  14. public static void main(String[] args) throws Exception {
  15. DesiredCapabilities capabilities = new DesiredCapabilities();
  16. capabilities.setCapability("deviceName", "GALAXY S7");//deviceID
  17. capabilities.setCapability("automationName", "Appium");
  18. capabilities.setCapability("platformName", "Android");//操作系统
  19. capabilities.setCapability("platformVersion", "8.0.0");//系统版本
  20. capabilities.setCapability("appPackage", "cn.pear.browser");//应用包名
  21. capabilities.setCapability("appActivity", "cn.pear.browser.activities.WelcomeActivity");//启动页面
  22. AndroidDriver driver = new AndroidDriver(new URL("http://172.25.40.208:4723/wd/hub"), capabilities);//appium服务端连接
  23. Thread.sleep();
  24. driver.quit();
  25. }
  26.  
  27. }

与众不同,才会备受关注。。。。。

基于centos7下appium环境搭建的更多相关文章

  1. RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

    消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...

  2. 基于Python的Appium环境搭建合集

    自动化一直是测试圈中的热聊,也是大家追求的技术方向.在测试中,往往回归测试也是测试人员的“痛点”.对于迭代慢.变更少的功能,就能用上自动化来替代人工回归,减轻工作量. 问题 在分享环境搭建之前,先抛出 ...

  3. Mac OS下Appium环境搭建及Genymotion模拟器安装

    说明:本机Mac本上已经安装的有:Python3.JDK.Node.js. Selenium Appium环境搭建 Step1:安装Appium Python Client库 1,命令:pip ins ...

  4. MAC平台基于Python的Appium环境搭建

    前言 最近笔者要为python+appium课程做准备,mac在2019年重新安装了一次系统,这次重新在mac下搭建appium环境,刚好顺带写个文稿给大家分享分享搭建过程. 一.环境和所需软件概述 ...

  5. 基于CentOS7.x gitlab环境搭建,卸载,汉化 --汉化篇

    gitlab环境搭建,卸载,汉化--汉化篇 注意gitlab的版本需和汉化版本一致 安装git yum install -y git 下载最新的汉化包 cd git clone https://git ...

  6. 基于CentOS7.x gitlab环境搭建,卸载,汉化 --搭建篇

    gitlab环境搭建,卸载,汉化 --搭建篇 环境搭建 安装依赖软件 yum -y install policycoreutils openssh-server openssh-clients pos ...

  7. Centos7下lamp环境搭建的小笔记

    刚刚把校赛弄完,赛前在环境搭建上花了蛮多时间,也正好记一下笔记 0.首先更新源 清华大学开源镜像站的源 https://mirrors.tuna.tsinghua.edu.cn/help/centos ...

  8. 基于CentOS7.x gitlab环境搭建,卸载,汉化 --卸载篇

    gitlab环境搭建,卸载,汉化 --卸载篇 完全卸载 停止gitlab gitlab-ctl stop 卸载gitlab rpm -e gitlab-ce 查看gitlab进程  ps aux | ...

  9. 基于GTK+3 开发远程控制管理软件(C语言实现)系列二 Centos7下开发环境搭建

    一.安装gcc gcc-c++ make等编译工具 yum install gcc gcc-c++ kernel-devel 这一步,其实可以不用做,你在安装Centos7的时候,如果选择开发模式安装 ...

随机推荐

  1. AAndroid Studio的\drawable还是mipmap

    图片应该放在drawable文件夹下,而mipmap文件夹只适合放app icons

  2. python 小技巧

    计算时间差,时间加减运算代码 最近在学习数据预处理,碰到日期型数据不会处理,上网查了下: Q:如何方便的计算两个时间的差,如两个时间相差几天,几小时等A:使用datetime模块可以很方便的解决这个问 ...

  3. PHP文件系统管理

    文件概念: 第一个是windows的文件,另一个php根据LINUX的文件,两者是有所不同的,我们说的页面基于windows的文件可以是是文件夹(也就是目录)或是文件,而php两者都必须有,它包含目录 ...

  4. Debian Security Advisory(Debian安全报告) DSA-4405-1 openjpeg2

    package :openjpeg2 相关CVE ID: CVE-2017-17480 CVE-2018-5785 CVE-2018-6616 CVE-2018-14423 CVE-2018-1808 ...

  5. Tomcat7基于redis的session共享

    一,项目需求 因开发人员在登录后台时需要反复认证,tomcat反复切换,所以给运维组提出需求,解决session共享问题. 二,解决方法 环境:基于Centos6.8 Jdk 版本   java ve ...

  6. 【blog】Markdown的css样式推荐

    参考博客 分享一款Markdown的css样式:https://www.cnblogs.com/zhangjk1993/p/5442676.html 美化Markdown输出的HTML文档:http: ...

  7. 【blog】批量删除时,guava Splitter与Java String的split 方法有什么区别

    参考链接 http://www.cnblogs.com/hxfirefox/p/4832913.html

  8. Spring所有子项目

    官网地址 https://spring.io/projects 包含子项目 Spring IO Platform Spring Boot Spring Framework Spring Cloud D ...

  9. python web cgi

    知识详解: cgi:通用网关接口,网络脚本的解析 python cgi 自带有cgi轻量级服务器,我们通过cgi命令可以开启该服务器 python2 python -m CGIHTTPServer p ...

  10. C++11 override 和 final 关键字

    C++11之前,一直没有继承控制关键字.禁用一个类的进一步衍生是可能的但也很棘手.为避免用户在派生类中重载一个虚函数,你不得不向后考虑. C++ 11添加了两个继承控制关键字:override和fin ...