Appium小试

摘要:
最近有空玩了一下Appium,记录一下1.下载Appiumforwindows,现在是0.12.3版本https://bitbucket.org/appium/appium.app/downloads/解压后如下图双击Appium.exe就能启动Appium界面点击Launch开启服务2.下载AndroidSDKhttps://developer.android.com/sdk/index.htm

最近有空玩了一下Appium,记录一下

1.下载Appium for windows,现在是0.12.3版本

https://bitbucket.org/appium/appium.app/downloads/

解压后如下图

Appium小试第1张

双击Appium.exe就能启动Appium界面

Appium小试第2张

点击Launch开启服务

Appium小试第3张

2. 下载Android SDK

https://developer.android.com/sdk/index.html

解压后

Appium小试第4张

3. 配置系统环境变量

ANDROID_HOME:C:adt-bundle-windows-x86_64-20131030sdk

Appium小试第5张

Path添加:%ANDROID_HOME% ools;%ANDROID_HOME%platform-tools

4. 启动AVD,耗资源啊,这时候我T400的CPU已经100%了

Appium小试第6张

Appium小试第7张

5. 编写Test,使用ADT安装好Maven插件,创建一个Maven项目,添加一个文件夹apps用来存放被测的app,这里测试的是ContactManager.apk

Appium小试第8张

pom.xml添加如下依赖

1   <dependencies>
2     <dependency>
3             <groupId>junit</groupId>
4             <artifactId>junit</artifactId>
5             <version>4.11</version>
6             <scope>test</scope>
7         </dependency>
8         <dependency>
9             <groupId>org.seleniumhq.selenium</groupId>
10             <artifactId>selenium-java</artifactId>
11             <version>LATEST</version>
12             <scope>test</scope>
13         </dependency>
14   </dependencies>

编写AndroidContactsTest

1 packagecom.guowen.appiumdemo;
2 
3 importorg.junit.After;
4 importorg.junit.Before;
5 importorg.junit.Test;
6 import org.openqa.selenium.*;
7 importorg.openqa.selenium.interactions.HasTouchScreen;
8 importorg.openqa.selenium.interactions.TouchScreen;
9 importorg.openqa.selenium.remote.CapabilityType;
10 importorg.openqa.selenium.remote.DesiredCapabilities;
11 importorg.openqa.selenium.remote.RemoteTouchScreen;
12 importorg.openqa.selenium.remote.RemoteWebDriver;
13 importjava.io.File;
14 importjava.net.URL;
15 importjava.util.List;
16 
17 public classAndroidContactsTest {
18     privateWebDriver driver;
19 
20 @Before
21     public void setUp() throwsException {
22         //set up appium
23         File classpathRoot = new File(System.getProperty("user.dir"));
24         File appDir = new File(classpathRoot, "apps/ContactManager");
25         File app = new File(appDir, "ContactManager.apk");
26         DesiredCapabilities capabilities = newDesiredCapabilities();
27         capabilities.setCapability("device","Android");
28         capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
29         capabilities.setCapability(CapabilityType.VERSION, "4.4");
30         capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");
31         capabilities.setCapability("app", app.getAbsolutePath());
32         capabilities.setCapability("app-package", "com.example.android.contactmanager");
33         capabilities.setCapability("app-activity", ".ContactManager");
34         driver = new SwipeableWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
35 }
36 
37 @After
38     public void tearDown() throwsException {
39 driver.quit();
40 }
41 
42 @Test
43     public voidaddContact(){
44         WebElement el = driver.findElement(By.name("Add Contact"));
45 el.click();
46         List<WebElement> textFieldsList = driver.findElements(By.tagName("textfield"));
47         textFieldsList.get(0).sendKeys("Some Name");
48         textFieldsList.get(2).sendKeys("Some@example.com");
49         driver.findElement(By.name("Save")).click();
50 }
51 
52     public class SwipeableWebDriver extends RemoteWebDriver implementsHasTouchScreen {
53         privateRemoteTouchScreen touch;
54 
55         publicSwipeableWebDriver(URL remoteAddress, Capabilities desiredCapabilities) {
56             super(remoteAddress, desiredCapabilities);
57             touch = newRemoteTouchScreen(getExecuteMethod());
58 }
59 
60         publicTouchScreen getTouch() {
61             returntouch;
62 }
63 }
64 }

6. 运行Test,注意AVD里的Android如果没有解锁需要先解锁

这时候我们可以看到AVD在运行了,

Appium小试第9张

同时Appium的命令行有对应的输出

Appium小试第10张

7. 更多信息请参考Appium的Github

https://github.com/appium/appium

建议可以Clone下这个项目,在Sample-code文件夹下有示例

https://github.com/appium/appium/tree/master/sample-code

同时Testerhome发起翻译活动的中文文档也提交进去了

https://github.com/appium/appium/tree/master/docs/cn

免责声明:文章转载自《Appium小试》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Dapr发布/订阅excel 导入 sqlserver 字符串被截取为255长度解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python appium自动化,走过的坑

使用的夜神模拟器,使用android5.1.1 或者真机 第一个坑:使用的android7.1.2,刚开始写好了登录的代码,需要的是滑屏进入到登录界面,结果运行的时候,没有自动滑屏就报错;因为运行时,报了一个进程被另一个程序在使用,怀疑是这个原因,又改了在进行滑屏前强行等待了几秒,还是不行;截其他界面的元素,也经常报一个UI的错,百度说这个是android...

Appium如何自动判断浏览器驱动

问题:有的测试机chrome是这个版本,有的是另一个版本,怎么能让自动判断去跑呢?? 解决办法:使用appium的chromedriverExecutableDir和chromedriverChromeMappingFile 切忌使用chromedriverExecutableDir和chromedriverChromeMappingFile时,一定不要再...

appium基础一:连接手机和appium-desktop定位元素

一、获取手机信息 adb devices获取手机或模拟器的设备名 aapt dump badging xxxx.apk获取app的包名、入口等基本信息 如果想要知道手机原生携带的app的基本信息,首先是无法获取到这个apk软件包,也就无法用aapt的方法来获取对应的信息。此时可以通过抓取日志的方法获取基本信息。 举例:想要获取到手机功能---设置  的...

Appium Server启动方式

执行自动化测试之前,需要先运行appium server,这样才能形成server与java client的通信,启动server有两种方式,一种是命令,一种是按钮图标,具体使用如下: 1、用命令启动,命令如下: appium -a 127.0.0.1 -p 4723–U4ca1558c--no-reset 2、点击快捷图标中的启动按钮启动: 第一次进...

Android自动化测试学习路线

最近在整理Android自动化测试的相关资料,大体上把一些知识点梳理了,这里做一个简单的分享! Android里面测试相关的工具和框架太多了。你应该从以下几个方面入手。 编程语言的选择 如果你要学习的是Appium的话,当然它是移动自动化测试领域最流主流的工具之一,同时支持iOS和Android两大平台,最主要是还支持多种编程语言(Java/Python...

UI自动化学习之坑

1.  解决: 设置 - 更多设置 - 开发者选项 - USB调试(安全设置)- 开启 2.  解决:开发者选项中打开allow install via USB 3.Appium链接手机出错: 解决办法:(目前仅用了这2个手机,其他遇到再说) 小米:在开发者选项里,把“USB调试(安全设置)"打开即可。  允许USB调试修改权限或模拟点击 oppo:...