如何在Mac OS上设置Appium,以便在Android和iOS设备上从JAVA类运行自动测试

如何在Mac OS上设置Appium,以便在Android和iOS设备上从JAVA类运行自动测试,java,android,macos,ui-automation,appium,Java,Android,Macos,Ui Automation,Appium,我和阿皮姆面对的问题是,我决定如下。如果不使用SUDO,我无法找到为Appium安装所需组件的方法。在使用SUDO安装了所有这些之后,然后尝试运行Appium,我得到了一个错误,即Appium和NODE应该在没有SUDO的情况下安装。尝试在线搜索解决方案花了我相当长的时间,因为几乎没有在线教程可以让Appium在MAC上运行,同时使用JAVA开发测试。下面是关于如何在Mac OS上设置Appium并在Java类中运行第一个测试的分步说明。只需将命令复制并粘贴到Mac上的终端,您就可以进行设置。我

我和阿皮姆面对的问题是,我决定如下。如果不使用SUDO,我无法找到为Appium安装所需组件的方法。在使用SUDO安装了所有这些之后,然后尝试运行Appium,我得到了一个错误,即Appium和NODE应该在没有SUDO的情况下安装。尝试在线搜索解决方案花了我相当长的时间,因为几乎没有在线教程可以让Appium在MAC上运行,同时使用JAVA开发测试。下面是关于如何在Mac OS上设置Appium并在Java类中运行第一个测试的分步说明。只需将命令复制并粘贴到Mac上的终端,您就可以进行设置。我希望在线上有更多关于Appium的分步教程。Appium开发者编写的教程非常模糊,我甚至不想建议在他们的网站上寻找答案。

由Igor Vishnevskiy回答。 我一直在互联网上到处寻找答案,但什么也找不到。我花了一些时间来完成这项工作。我希望本快速指南能帮助下一位工程师节省一些时间,在安卓设备上设置Appium以运行自动化。如果NODE或Appium本身是使用SUDO安装的,则Appium将不会运行,如果不使用SUDO,MAC也不允许您安装。不过,还有一个变通办法。我的步骤使安装和设置Appium成为可能,而无需使用SUDO进行安装。一切都经过测试,一切正常。以下是步骤。享受吧

使用以下步骤设置Appium时可能存在一个问题。如果在创建数据或将数据保存到某些目录时遇到一些错误,这是由于对这些目录设置了写入权限造成的。您需要做的是将CHMOD设置为777,以便安装Appium组件时尝试写入目录,然后重新运行所有步骤。

第1步: 安装Java6。您将需要Java6和Appium。Mac OS的JAVA 6必须从苹果的支持页面下载:

第二步: 在bash中,使用以下格式添加以下路径:

export PATH=$HOME/local/bin:$PATH
第三步: Setup Maven(下载并设置Maven的Bash概要文件路径):

------> 这就是Bash配置文件的外观:

export PATH="/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140702/sdk/platform-tools":$PATH
export PATH="/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140702/sdk/tools":$PATH
export PATH=$HOME/local/bin:$PATH
export ANDROID_HOME=/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140321/sdk
export PATH="/Users/your_username/Desktop/apache-maven-3.2.2/bin":$PATH
export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local 
make install

sudo ln -s /path_to_maven_folder/bin/mvn /usr/bin/mvm

npm ln -s /Users/[your username]/Desktop/Appium/Tools/apache-maven-3.2.5/bin/mvn /usr/bin/mvn

$ mvn –version
显然,要在Android设备上运行测试,您需要下载Android SDK并将其添加到您的Bash配置文件中。要在iOS设备上运行测试,只需安装XCode,无需将其添加到Bash配置文件中。但必须添加Android SDK。

第4步: 将以下命令序列复制并粘贴到终端窗口中,然后按ENTER键。把它全部复制粘贴在一起就行了。安装NODE需要一些时间,所以请耐心等待

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install
第五步: 步骤4中的安装完成后,在终端窗口中运行以下命令:

curl https://www.npmjs.com/install.sh | sh
第6步: 然后在终端窗口中执行以下命令:

npm install -g grunt-cli
npm install -g appium
npm install wd
open -e .bash_profile
第7步: 然后在终端窗口中执行以下命令:

npm install -g grunt-cli
npm install -g appium
npm install wd
open -e .bash_profile
第8步: 然后在终端窗口中执行以下命令:

npm install -g grunt-cli
npm install -g appium
npm install wd
open -e .bash_profile
第9步: 然后在终端窗口中执行以下命令以启动Appium服务器:

appium &
(步骤9将启动服务器)

第10步: 从单独的终端窗口 cd到工作区中JAVA项目的根目录。 (示例:
cd/Users/ivishnevskiy/Documents/workspace/ApiumJUnit

第11步: 将Android设备连接到USB和MAC电脑

第12步: 在步骤10的同一终端窗口中,运行以下命令以启动Appium测试:

mvn -Dtest=test.java.com.saucelabs.appium.AndroidContactsTest test
其中test.java.com.saucelabs.appium是一个包名 和 AndroidContactsTest是一个类名

如果您仍然需要帮助进行设置。让我知道。我可以帮忙。我的LinkedIn:

在您的设备上设置APPIUM后,请按照我的下一个教程在ECLIPSE中创建,并在实际的iOS设备(而不是模拟器)上运行您的第一个测试:


对不起,有点凌乱,从我的笔记上取下来

考虑 您的系统环境位于.bash_配置文件中 您必须在那里添加jre jdk文件

如果您想从mac上运行适用于android和ios的appium,也可以使用android sdk

有一个ui自动机,你必须安装它

appium中有一个安装dr,您可以检查是否正确安装了appium

这是我为[android设备和ios设备]在ios上运行appium所采取的步骤; 我注意每一步 有些步骤可能是不必要的 我希望它能帮助你

转到终端:

export PATH="/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140702/sdk/platform-tools":$PATH
export PATH="/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140702/sdk/tools":$PATH
export PATH=$HOME/local/bin:$PATH
export ANDROID_HOME=/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140321/sdk
export PATH="/Users/your_username/Desktop/apache-maven-3.2.2/bin":$PATH
export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local 
make install

sudo ln -s /path_to_maven_folder/bin/mvn /usr/bin/mvm

npm ln -s /Users/[your username]/Desktop/Appium/Tools/apache-maven-3.2.5/bin/mvn /usr/bin/mvn

$ mvn –version
下载适用于iOS的android捆绑包,然后运行命令

tools/android update sdk --no-ui

curl https://www.npmjs.org/install.sh | sh
npm install -g grunt-cli
npm install -g appium
npm install wd
==================================== 打开并编辑.bash_配置文件

open-e.bash_配置文件 如果您的计算机路径中没有.bash_配置文件,请创建一个。在下面输入命令以创建新文件。创建后,请执行步骤2

touch.bash_个人资料 步骤3

添加并保存 并再次在终端运行

导出ANDROID_HOME=/Applications/Appium/Tools/ANDROID sdk macosx/ 导出路径=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform tools 步骤4设置java主页导出 JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/HOME

并将其添加到bash概要文件中

安装Eclipse: 在eclipse中安装测试ng
添加selenium库 添加maven 新java项目 udid>>在xcode中查找udi 在模拟器中安装应用程序 默认写入 com.apple.Finder AppleShowAllFiles TRUE 去找finder\

在XCODE设备中启用ui自动机
设置>>开发人员

安装brew ruby-e“$(curl-fsSL )"

安装idevice brew安装ideviceinstaller

添加maven jar fi
brew install carthage
npm install -g ios-deploy
npm install -g deviceconsole
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew install node
npm install -g npm
open -e .bash_profile
export ANDROID_HOME=/Users/user/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH

export JAVA_HOME=$(/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk)
export PATH=${JAVA_HOME}/Contents/Home/bin:$PATH
export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH
export PATH=$PATH:/opt/bin:$PATH
npm install -g appium@1.6.0-beta1
npm install wd
cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
brew install carthage
npm i -g webpack
cd
appium
[Appium] Welcome to Appium v1.6.0-beta1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
public AppiumDriver<WebElement> setUp() throws Exception {

    builder = new AppiumServiceBuilder();
    //builder.usingAnyFreePort();
    //builder.withIPAddress("0.0.0.0");
    //builder.usingPort(4723);
    builder.withCapabilities(cap);
    builder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
    builder.withArgument(GeneralServerFlag.LOG_LEVEL,"error");
    builder.withAppiumJS(newFile("/usr/local/lib/node_modules/appium/build/lib/main.js"));
    builder.usingDriverExecutable(new File("/usr/local/bin/node"));
    service = AppiumDriverLocalService.buildService(builder);
service.start();


DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("app", "/Users/user/Documents/yourapp.app");
    capabilities.setCapability("noReset", "false");
    capabilities.setCapability(MobileCapabilityType.VERSION, "12.0");
    capabilities.setCapability(MobileCapabilityType.PLATFORM, "iOS");
    capabilities.setCapability(MobileCapabilityType.UDID,"abcddjkfg...");  
    capabilities.setCapability("bundleId", "com...");
    capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "user's iPhone");

    driver = new IOSDriver<>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    return driver;
}
echo $PATH