20200812_adb常用命令&第一个App自动化测试脚本

1、adb介绍

  • adb(Android Debug Bridge)是android sdk的一个工具
  • adb是用来连接安卓手机和PC端的桥梁,要有adb作为二者之间的维系,才能让用户在电脑上对手机进行全面的操作。
  • Android的初衷是用adb这样的一个工具来协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能。

2、adb常用命令

  • 检测连接到电脑的安卓设备(模拟器/真机)-$adb devices
  • 从手机中拉取信息放到本地电脑上-$adb pull <手机路径> <本机路径>
  • 从本地推送信息到手机上去-$adb push <本机路径> <手机路径>
  • 登录设备shell模式(命令行的人机界面)- $adb shell
  • 安装应用-$adb install xxx.apk
  • 卸载应用-$adb uninstall com.tencent.mobileqq
  • 启动App-$adb shell am start -W 包名/启动入口
  • 打印日志,Android系统的日志 其中包括了App应用日志

    $adb logcat
    $adb logcat > 本地PC端文件路径

3、App的类型

 4、ActivityName 类名& PackageName包名

packageName(包名)-应用的唯一身份标示,系统通过包名识别不同的应用,如两个相同包名的应用在安装时会提示覆盖

activityName(类名)-Activity:android四大组件之一,简单来说就是一个界面,和用户进行交互

adb shell dumpsys activity | find "mFocusedActivity"
  • 启动入口appActivity 和 Activity有什么区别??

appActivity在App中是唯一,它的作用是用来启动App的

  • 获取App入口Activity
aapt dump badging <应用路径> | find “launchable-activity”

5、App页面控件

 6、第一个代码

pom.xml 导入库,注意不要导入selenium,会和java-client冲突

 <dependencies>


        <!-- https://mvnrepository.com/artifact/org.testng/testng -->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.0.0</version>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/io.appium/java-client -->
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>7.0.0</version>
        </dependency>


    </dependencies>
import io.appium.java_client.MobileBy;
import io.appium.java_client.android.AndroidDriver;
// import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;

public class AppAutoTest {
    public AndroidDriver androidDriver;
    @BeforeTest
    public void setUpTest() throws MalformedURLException, InterruptedException {
        //前置动作-打开测试App,并且进入到登录
        //创建所需功能的对象
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        //deviceName -- 找到测试的设备
        desiredCapabilities.setCapability("deviceName","127.0.0.1:62001");
        //platformName -- 指定测试的平台是为Android or IOS
        desiredCapabilities.setCapability("platformName","Android");
        //appPackage -- 测试App的包名
        desiredCapabilities.setCapability("appPackage","com.lemon.lemonban");
        //appActivity --测试App的启动入口
        desiredCapabilities.setCapability("appActivity","com.lemon.lemonban.activity.WelcomeActivity");
        //把配置发送给Appium服务器,Appium服务器根据这些配置找到测试的设备、启动测试App
        //Appium服务器的地址127.0.0.1:4723
        URL url= new URL("http://127.0.0.1:4723/wd/hub");

        //创建驱动对象
        androidDriver = new AndroidDriver(url,desiredCapabilities);

        Thread.sleep(5000);
        //进入到登录页面
        //1、点击题库
        androidDriver.findElement(MobileBy.id("com.lemon.lemonban:id/navigation_tiku")).click();
        //2、点击去登陆
        androidDriver.findElement(MobileBy.id("com.lemon.lemonban:id/button_go_login")).click();
    }
    @Test
    public void testLogin() throws InterruptedException {
        Thread.sleep(2000);
        androidDriver.findElement(MobileBy.id("com.lemon.lemonban:id/et_mobile")).sendKeys("13323234545");
        androidDriver.findElement(MobileBy.id("com.lemon.lemonban:id/et_password")).sendKeys("123456");
        androidDriver.findElement(MobileBy.id("com.lemon.lemonban:id/btn_login")).click();
     

    }
    @AfterTest
    public void tearDownTest(){
        //后置
        androidDriver.quit();
    }
}

报错1:

C:Userslizhenhua>adb connect 127.0.0.1:62001
adb server version (36) doesn't match this client (40); killing...
could not read ok from ADB Server
* failed to start daemon
error: cannot connect to daemon

https://www.cnblogs.com/yoyoketang/p/9024620.html

报错2:

org.openqa.selenium.WebDriverException: Connection refused: connect
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'DESKTOP-AICTF6C', ip: '192.168.136.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144'
Driver info: driver.version: AndroidDriver

打开appium服务就可以了

原文地址:https://www.cnblogs.com/shishibuwan/p/13770093.html