51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2071|回复: 0
打印 上一主题 下一主题

appium 安卓真机学习记录

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-12 15:29:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
前提:
1. 安装好appium server,配置好环境变量
2. 下载并配置好adb,有问题先请教百度,再请教安卓的同事

步骤:
3. 通过Usb接口将真机与PC端连接起来
4. 用adb devices命令来查看手机设备,复制下来这个设备号
5. 打开指定测试App的指定Activity,能找到类似下面的一行: adb shell dumpsys activity activities
realActivity=com.maihaoche.bentley.debug/com.maihaoche.bentley.activity.LauncherActivity
com.maihaoche.bentley.debug是appPackage
com.maihaoche.bentley.activity.LauncherActivity是appActivity
6. 找到adb里自带的uiautomatorviewer,作为参考:我的目录是/Users/user/Library/Android/sdk/tools/bin/
7. 启动uiautomatorviewer,手机点到你要抓取元素的那个界面,点击uiautomatorviewer界面上文件夹icon右边的那个按钮
8. 选中你要处理的元素,拷贝出右下角resource-id对应的值,之后靠这个来定位元素

代码如下:

  1. package com.appiumDemo;

  2. import io.appium.java_client.AppiumDriver;
  3. import io.appium.java_client.android.AndroidDriver;
  4. import org.openqa.selenium.remote.CapabilityType;
  5. import org.openqa.selenium.remote.DesiredCapabilities;
  6. import org.testng.annotations.AfterClass;
  7. import org.testng.annotations.BeforeClass;
  8. import org.testng.annotations.Test;

  9. import java.net.URL;

  10. /**
  11. * Created by douhua on 2018/3/1.
  12. * 注意:这个类仅针对于安卓机子
  13. */
  14. public class loginMHC {
  15.     private AppiumDriver appiumDriver;

  16.     @BeforeClass
  17.     public void setup() throws Exception {
  18.         DesiredCapabilities cap = new DesiredCapabilities();
  19.         cap.setCapability(CapabilityType.BROWSER_NAME, "");
  20.         cap.setCapability("platformName", "Android"); //指定测试平台
  21.         cap.setCapability("deviceName", "17d6720d"); //指定测试机的ID,通过adb命令`adb devices`获取
  22.         cap.setCapability("platformVersion", "6.0.1");

  23.         //将上面获取到的包名和Activity名设置为值
  24.         cap.setCapability("appPackage", "com.maihaoche.bentley.debug");
  25.         cap.setCapability("appActivity", "com.maihaoche.bentley.activity.LauncherActivity");

  26.         //A new session could not be created的解决方法
  27.         //cap.setCapability("appWaitActivity","com.maihaoche.bentley.activity.LauncherActivity");
  28.         //每次启动时覆盖session,否则第二次后运行会报错不能新建session
  29.         cap.setCapability("sessionOverride", true);

  30.         appiumDriver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
  31.     }

  32.     @Test
  33.     public void plus(){
  34.         try {
  35.             Thread.sleep(30000);
  36.         } catch (InterruptedException e) {
  37.             e.printStackTrace();
  38.         }
  39.         //点击登录
  40.         appiumDriver.findElementById("com.maihaoche.bentley.debug:id/txt_login").click();
  41.         //获取手机号的输入框
  42.         appiumDriver.findElementById("com.maihaoche.bentley.debug:id/et_mobile").sendKeys("18267909637");
  43.         //获取密码框
  44.         appiumDriver.findElementById("com.maihaoche.bentley.debug:id/et_pwd").sendKeys("qqqqqq");
  45.         //获取登录按钮
  46.         appiumDriver.findElementById("com.maihaoche.bentley.debug:id/btn_login").click();
  47.     }

  48.     @AfterClass
  49.     public void tearDown() throws Exception {
  50.         appiumDriver.quit();
  51.     }

  52. }
复制代码

pom.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>

  6.     <groupId>com.mhc.test</groupId>
  7.     <artifactId>appium-demo</artifactId>
  8.     <version>1.0-SNAPSHOT</version>

  9.     <dependencies>
  10.         <dependency>
  11.             <groupId>org.testng</groupId>
  12.             <artifactId>testng</artifactId>
  13.             <version>6.14.2</version>
  14.         </dependency>
  15.         <dependency>
  16.             <groupId>io.appium</groupId>
  17.             <artifactId>java-client</artifactId>
  18.             <version>RELEASE</version>
  19.         </dependency>
  20.     </dependencies>

  21. </project>
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 09:05 , Processed in 0.068892 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表