前言
好的开始是成功的一半。
安装前,讲一个小故事,从前在第一家公司到时候,去南京的那个组安装系统的开发环境,听其他同事说有个新入职的小伙伴安装系统的开发环境,安装了一周,也没有跑通第一个程序,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
去官网下载java.dmg安装
-
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, 选自己安装的路径。
打开一个模拟器之后:
继续打开终端,输入命令 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这个程序,能打开美团。
备注:
我的pom文件,选的appium和selenium不是最新的,因为历史原因,我只能用jdk7,如果本机装了jdk8的小伙伴,可以使用最新的jar版本。
后台安装模拟器的apk,首先下载apk,然后cd到这个路径,用 adb install xxxxxx.apk即可,模拟器是x86架构,如果失败,请下载Genymotion-ARM-Translation_v1.1.zip,然后拖到模拟器内部,安装成功,重启模拟器里面的手机,再执行adb install xxxxxx.apk即可。
-
关于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!(笑脸;可爱)