appium从入门到放弃(一):环境安装

前言

好的开始是成功的一半。

安装前,讲一个小故事,从前在第一家公司到时候,去南京的那个组安装系统的开发环境,听其他同事说有个新入职的小伙伴安装系统的开发环境,安装了一周,也没有跑通第一个程序,so,他离职了。所以,这个安装过程也是非常重要的一部分,希望大家能和教程里面安装的一样顺利,如果有问题,请根据实际的报错去google或百度一下。
本次教程,是针对在mac ox环境下的,如果是windows的,请参考下百度搜索的结果,里面有很多(我的也是借鉴的)。

安装步骤

1.安装homebrew

打开mac的终端,或者用iterm,输入命令

ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

验证:终端输入(brew -v)提示版本信息说明安装成功

Homebrew 1.3.6
Homebrew/homebrew-core (git revision eb19a; last commit 2017-10-28)

2.安装java

  1. 去官网下载java.dmg安装

  2. brew install java

    验证:终端输入 java -version,有结果说明ok。

    java version "1.7.0_76"
    Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)
    

3.安装android sdk

说实话我也不记得怎么安装的了,抄的博客,可参考这一篇(感谢各位大神分享):

https://www.imooc.com/article/16145?block_id=tuijian_wz

下载地址如果被墙了,可翻一下试试或者百度。。我是找的一个新浪的地址,反正虽然是老版本,但是在线更新的时候会更新最新的部分,大家不要纠结。

下载完之后,解压,到tools里面,双击(666)android这个程序,有几个是必选的

Android SDK Tools
Android SDK Platform-tools
Android SDK Build-tools

其他看小伙伴的心情勾选。据说Extras里面 intel x86需要勾,否则会导致模拟器无法安装apk,我用的另外一种方法。

等待安装(看网速和人品,可能会失败,如果失败,请百度怎么连),安装成功后,你会发现原先目录里面东东变多了,有platform-tools了。然后动动你们的手指,打开终端,写下面的脚本:

cd ~
vim .bash_profile 增加几行
export ANDROID_HOME=/Users/zhongyang/Downloads/android-sdk-macosx
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_76.jdk/Contents/Home
PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$JAVA_HOME/bin
输入 wq 退出
source .bash_profile

输入 adb devices,有这个说明成功

List of devices attached

这个上面附带了JAVA_HOME的地址。

4.安装node

终端输入:

brew intall node

等待进度条打满,告诉你sucess了,说明成功,你可以终端再输入npm -v测试一下

zydeMacBook-Pro-2:~ zhongyang$ npm -v
5.4.2

5.安装appium

终端输入:

npm install -g appium

6.安装appium-doctor

这玩意儿就是用来检测环境是否可用的,终端输入

npm install –g appium-doctor

输入等安装完成之后,终端输入 appium-doctor ,会检查当前环境是否可用,我只测安卓,因而我的代码检测结果如下:

zydeMacBook-Pro-2:~ zhongyang$ appium-doctor
info AppiumDoctor Appium Doctor v.1.4.3
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor  ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor  ✔ Node version is 8.8.1
info AppiumDoctor  ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
WARN AppiumDoctor  ✖ Xcode Command Line Tools are NOT installed!
info AppiumDoctor  ✔ DevToolsSecurity is enabled.
info AppiumDoctor  ✔ The Authorization DB is set up properly.
WARN AppiumDoctor  ✖ Carthage was NOT found!
info AppiumDoctor  ✔ HOME is set to: /Users/zhongyang
info AppiumDoctor  ✔ ANDROID_HOME is set to: /Users/zhongyang/Downloads/android-sdk-macosx
info AppiumDoctor  ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.7.0_76.jdk/Contents/Home
info AppiumDoctor  ✔ adb exists at: /Users/zhongyang/Downloads/android-sdk-macosx/platform-tools/adb
info AppiumDoctor  ✔ android exists at: /Users/zhongyang/Downloads/android-sdk-macosx/tools/android
info AppiumDoctor  ✔ emulator exists at: /Users/zhongyang/Downloads/android-sdk-macosx/tools/emulator
info AppiumDoctor  ✔ Bin directory of $JAVA_HOME is set
info AppiumDoctor ### Diagnostic completed, 2 fixes needed. ###
info AppiumDoctor
info AppiumDoctor ### Manual Fixes Needed ###
info AppiumDoctor The configuration cannot be automatically fixed, please do the following first:
WARN AppiumDoctor - Please install Carthage. Visit https://github.com/Carthage/Carthage#installing-carthage for more information.
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
info AppiumDoctor

到此为止,appium的测试环境基本上就完成了一个段落。

模拟器安装步骤

测试的时候,还没熟悉就拿自己手机试,可能会存在XXX等等一系列情况,so,安装一个安卓模拟器还是有用的,选用了Genymotion这个,还是挺好看的一款模拟器,不过使用之前要去官网注册一下,选个人用途就好,另外需要安装下virtualBox,否则安装完成之后,无法安装模拟的手机。

这些都是简单粗暴的下载,双击安装即可。

设置adb地址

模拟器安装完打开Genymotion之后,在Setting里面,选ADB,use custom Android SDK tools, 选自己安装的路径。

image.png

打开一个模拟器之后:

image.png

继续打开终端,输入命令 adb devices,出来

List of devices attached
192.168.56.101:5555 device

代表一切ok。

java的appium hello world

mac的idea、maven安装好(不懂请自行百度一下),然后创建第一个maven项目,我取名appiumTest,修改pom,增加

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.appium</groupId>
      <artifactId>java-client</artifactId>
      <version>3.4.1</version>
    </dependency>

    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-server</artifactId>
      <version>2.53.1</version>
    </dependency>

等jar包安装完,写个简单的初始化程序:

package appiumTest;

import io.appium.java_client.AppiumDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.MalformedURLException;
import java.net.URL;

/**
 * Hello world!
 *
 */
public class AppiumTest
{
    public static void main( String[] args )
    {
        System.out.println("==============init AppiumDriver start====================");
        try {
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability(CapabilityType.BROWSER_NAME, "");//这句不是必须的
            capabilities.setCapability("deviceName","Android Emulator");
            capabilities.setCapability("platformVersion", "7.0");
            capabilities.setCapability("platformName","Android");
            capabilities.setCapability("appPackage", "com.sankuai.meituan");
            capabilities.setCapability("appActivity", "com.meituan.android.pt.homepage.activity.MainActivity");

            AppiumDriver driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities) {
                public WebElement scrollTo(String s) {
                    return null;
                }

                public WebElement scrollToExact(String s) {
                    return null;
                }
            };

            System.out.println("==============init AppiumDriver end======================");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
}

终端输入 appium,启动完成之后,run这个程序,能打开美团。

备注:

  1. 我的pom文件,选的appium和selenium不是最新的,因为历史原因,我只能用jdk7,如果本机装了jdk8的小伙伴,可以使用最新的jar版本。

  2. 后台安装模拟器的apk,首先下载apk,然后cd到这个路径,用 adb install xxxxxx.apk即可,模拟器是x86架构,如果失败,请下载Genymotion-ARM-Translation_v1.1.zip,然后拖到模拟器内部,安装成功,重启模拟器里面的手机,再执行adb install xxxxxx.apk即可。

  3. 关于appPackage、appActivity,终端输入 adb shell

    logcat | grep cmp=,然后你之前打开的记录里面,cmp=aaa/bbbb,前面就是 appPackage,后面是appActivity

    05-29 11:49:18.029   554  1101 I ActivityManager: START u0 {cmp=com.sankuai.meituan/com.meituan.android.pt.homepage.activity.MainActivity} from uid 10064 on display 0
    05-29 11:57:27.313   554   565 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.sankuai.meituan/com.meituan.android.pt.homepage.activity.Welcome (has extras)} from uid 10014 on display 0
    05-29 12:01:24.984   554  1101 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.calculator2/.Calculator (has extras)} from uid 10014 on display 0
    

    具体可参考:https://testerhome.com/topics/1030

    结语

    不要问我为什么写这个,我希望我还能写二、三 and so on!(笑脸;可爱)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容