声明 部分内容转载于以下文章:
https://www.cnblogs.com/Jadie/p/6061428.html
https://www.cnblogs.com/fnng/p/7683427.html
https://blog.csdn.net/wuguixiaomei/article/details/82977265
https://blog.csdn.net/xl_lx/article/details/78717917
环境搭建:
开始搭建吧!
安装Node.js(Appium是使用Node.js平台编写的“HTTP服务器” ,使用Webdriver JSON有线协议驱动iOS和Android会话。因此,在初始化Appium Server之前,必须在系统上预安装Node.js)。安装版本:v10.15.1 地址:https://nodejs.org/download/release/, 选择node-v10.15.1-x64.msi 版本
验证是否已经安装成功,在dos界面输入命令:node -v, 如图:
下载Android SDK (这里也可以直接下载android studio),下载地址:http://tools.android-studio.org/index.php/sdk , 下载.exe文件后,一步步默认安装即可
安装完成了后,sdk目录下含有tools,platform-tools 需要自行到 Android SDK manager ,对默认下载项全部下载。
验证是否安装成功,输入命令行:adb ,显示如图:
3. JDK安装:下载JDK1.8版本,直接在官网下载
设置坏境变量:
安装安卓模拟器,我选择的是网易mumu(sdk自带的模拟器一直黑屏,目前还没有解决,难受。)下载地址:http://mumu.163.com/ ,安装一直点下一步即可,安装完成,可以测试下adb连接模拟器, 在dos界面输入命令:adb connect 127.0.0.1:7555 , 成功如下图:我之前已经连接过了,所以它提示已经连接了
安装appium-desktop, 下载地址:https://github.com/appium/appium-desktop/releases ,选择合适的版本,比如:appium-desktop-Setup-1.2.4.exe ,我下载是1.8.2 版本,下载安装一键完成,然后启动appium,如下图
点击启动,在点击start inspector session(右上角搜索图标),设置Desired capabilities,可以把自己定义好的保存下来,方便下次使用,不然关闭后就会消失掉。
点击Start Session 按钮,成功入下图:这里,我用小米便签做测试app
Desired Capabilities基本的设置如下:
设置参考官网:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
配置Maven:http://maven.apache.org/ 下载之后解压,放在一个指定目录:
设置环境变量 :
验证是否配置成功,输入命令: mvn -v
maven本地仓库设置:打开Maven 的文件夹,打开conf->settings.xml,配置本地仓库地址,不修改则默认为C盘用户目录下的m2文件,可设置自己本地仓库存放的地址
设置仓库的镜像,在setting.xml文档中添加:
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
如图:
7. 安装Intellij ,官网一键安装即可。
到此环境搭建完毕。
接下来,创建maven的工程文件,开始编写自动化脚本
io.appium
java-client
4.1.2
test
org.seleniumhq.selenium
selenium-java
3.1.0
org.testng
testng
7.0.0-beta1
test
com.google.inject
guice
3.0
test
org.junit.jupiter
junit-jupiter-api
RELEASE
compile
io.appium
java-client
RELEASE
compile
从现在开始,我们开始编辑脚本。
package util;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.BeforeClass;
import java.net.MalformedURLException;
import java.net.URL;
public class Basic{
public static AppiumDriver driver;
@BeforeClass
public void setUp() throws InterruptedException, MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "Android Emulator");
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "6.0.1");
capabilities.setCapability("appPackage", "com.xiaomi.notes");
capabilities.setCapability("app", "C:\\Users\\herby\\Downloads\\xiaomiNotes.apk");
capabilities.setCapability("clearSystemFiles", true);
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities );
Thread.sleep(2000);
}
}
package Pages;
import org.openqa.selenium.support.PageFactory;
import util.Basic;
public class BasicPage {
public BasicPage() {
//Initialize PageObject
PageFactory.initElements(Basic.driver, this);
}
}
package Pages;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class HomePage extends BasicPage {
@FindBy(xpath = "//android.widget.ImageButton[@resource-id = 'com.xiaomi.notes:id/notelist_MenuBar_Add']")
public WebElement btnOfAdd;
}
package TestCase;
import Pages.HomePage;
import org.testng.annotations.Test;
import util.Basic;
public class TC01_AddNotes extends Basic {
HomePage homePage;
@Test
public void AddNotes(){
homePage = new HomePage();
homePage.btnOfAdd.click();
}
}