`
fantaxy025025
  • 浏览: 1311582 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Appium+java实现自动化测试实例_入门最简单例子_HelloWorld

 
阅读更多

 

说实在的,大家应该取原站点看呀:支持原创,强烈的额。

原文,请点击过去:http://www.jianshu.com/p/84aa9383f8fd

转一下,主要怕丢了。转载产生效益。

 

另外补充了下源码中没有的:

1.改成了junit。

2.加了maven仓位配置。

public class AppiumHelloTest {

    private AppiumDriver driver;

    @Before
    public void setup() throws Exception {
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(CapabilityType.BROWSER_NAME, "");
        cap.setCapability("platformName", "Android"); //指定测试平台
        cap.setCapability("deviceName", "0605edb8db97ee23"); //指定测试机的ID,通过adb命令`adb devices`获取
        cap.setCapability("platformVersion", "4.4");

        //将上面获取到的包名和Activity名设置为值
        cap.setCapability("appPackage", "com.android.calculator2");
        cap.setCapability("appActivity", "com.android.calculator2.Calculator");

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

        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    }

    @Test
    public void plus(){

        //获取1
        driver.findElementById("com.android.calculator2:id/digit1").click();
        //获取+
        driver.findElementById("com.android.calculator2:id/plus").click();
        //获取2
        driver.findElementById("com.android.calculator2:id/digit2").click();
        //获取=
        driver.findElementById("com.android.calculator2:id/equal").click();


    }

    @After
    public void tearDown() throws Exception {

        driver.quit();

    }

}

 maven:

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.1.22</version>
        </dependency>

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


    </dependencies>

 

===========================

④Appium+java实现自动化测试实例

前面我已经搭建好了appium所需要的环境,本文我以系统自带的计算器app为测试对象,进行学习。

一、将测试机与PC连接

(本人使用的是真机)通过Usb接口将真机与PC端连接起来,在安装appium搭建环境中我们已经安装了SDK,所以打开CMD命令窗口,用adb devices命令来查看是否可以检测到手机设备,如果如下图显示出设备,则证明我们可以对手机进行测试操作。


查看设备.png

记下设备名,测试代码要使用。

二、打开指定测试App的指定Activity

通过上一步操作,我已经看到我的设备是可以操作的了,那究竟应该如何让appium去自动找到指定的APP和指定的Activity呢?想要打开指定的App,需要知道App的包名,同样想要打开指定Activity也需要知道其名,如何获取?
1、问公司的开发人员,一定可靠。
2、通过命令获取:adb shell dumpsys window w |findstr \/ |findstr name=(这条命令的作用是,获取当前app和当前Activity的名字,我现在手机已经打开了计算器应用)如图:


获取包名.png
三、打开uiautomatorviewer获取元素

接下来需要用uiautomatorviewer对测试app的元素(button、text Field)进行抓取,比如通过id、class和text等来确定具体的元素。 uiautomatorviewer是在android-sdk的一个工具,具体目录\android-sdk-windows\tools\uiautomatorviewer.bat

操作:

1、双击uiautomatorviewer.bat,打开UI Automator viewer 窗口,如图所示:


uiautomatorviewer.png

2、在手机与PC端连接的情况下,点击 “Device screenshot”, 连接手机应用的窗口将显示出来,如图:


Paste_Image.png

3、测试“1+2=3”的用例,在uiautomatorviewer界面,点击“1”,选中该按钮,查看右边的panel来找到“text”或“resource-id” 或“class”的值,如图:


1按钮.png


保存其:resource-id


+按钮.png


保存其:resource-id


2按钮.png


保存其:resource-id


=按钮.png


保存其:resource-id

四、创建java项目

我们已经获取到想要的元素,下一步就是用代码编写测试用例了,打开eclipse软件,创建一个java project ,导入依赖,如图:


Paste_Image.png
五、测试源代码

代码实现1+2= 3的自动化测试

package com.occall.ui;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;

import java.net.URL;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;



public class loginOccall2 {

    private AppiumDriver  driver;


  @BeforeClass
  public void setup() throws Exception {
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(CapabilityType.BROWSER_NAME, ""); 
        cap.setCapability("platformName", "Android"); //指定测试平台
        cap.setCapability("deviceName", "71MBBLG26R76"); //指定测试机的ID,通过adb命令`adb devices`获取
        cap.setCapability("platformVersion", "5.1"); 

        //将上面获取到的包名和Activity名设置为值
        cap.setCapability("appPackage", "com.meizu.flyme.calculator");
        cap.setCapability("appActivity", "com.meizu.flyme.calculator.Calculator");

        //A new session could not be created的解决方法
        cap.setCapability("appWaitActivity","com.meizu.flyme.calculator.Calculator");
        //每次启动时覆盖session,否则第二次后运行会报错不能新建session
        cap.setCapability("sessionOverride", true);

        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
  }

  @Test 
  public void plus(){

      //获取1
      driver.findElementById("com.meizu.flyme.calculator:id/digit1").click();
      //获取+
      driver.findElementById("com.meizu.flyme.calculator:id/plus").click();
      //获取2
      driver.findElementById("com.meizu.flyme.calculator:id/digit2").click();
      //获取=
      driver.findElementById("com.meizu.flyme.calculator:id/eq").click();


  }

  @AfterClass
  public void tearDown() throws Exception {

      driver.quit();

  }



}
六、启动Appium

手机设备连接到PC端,手机屏幕打开着。接着启动Appium,启动成功如下图:


Paste_Image.png
七、运行测试类

Paste_Image.png
八、大功告成,注意查看运行日志和appium控制台日志

Paste_Image.png

Paste_Image.png

可以看到,手机端的计算器app,也会自动出现1+2 = 3的自动化输入测试

 

===

==

=

 

分享到:
评论

相关推荐

    基于appium+java 的APP UI自动化测试框架.zip

    基于appium+java 的APP UI自动化测试框架.zip基于appium+java 的APP UI自动化测试框架.zip基于appium+java 的APP UI自动化测试框架.zip基于appium+java 的APP UI自动化测试框架.zip基于appium+java 的APP UI自动化...

    appium+java的iOS自动化测试实践

    基于最新的XCUITEST框架的iOS自动化测试介绍,关键技术包含: appium,xcuitest,app-inspector,iOS自动化测试环境搭建

    Java+appium+Android模拟器自动化demo

    这个“Java+appium+Android模拟器自动化demo”旨在教你如何在Android Studio环境下设置一个完整的自动化测试框架,以便对Android应用程序进行功能测试。 首先,确保你已经安装了Java JDK 1.7或1.8。Java是编写自动...

    python+appium+Android 自动化测试框架

    本框架的核心是利用Python作为编程语言,Appium作为跨平台的自动化测试工具,以及Android SDK为运行环境,来实现对Android应用程序的自动化测试。 首先,Python是一种广泛应用于各种领域的高级编程语言,其简洁明了...

    appium+java使用3个jar包

    Appium作为一个流行的开源自动化测试框架,允许开发者使用多种编程语言,如Java,来自动化Android和iOS应用程序的测试。本篇文章将深入探讨如何使用Appium与Java结合,并重点讲解提及的三个关键jar包:`java-client-...

    Appium+RF实现手机应用的自动化测试-iOS篇

    本文将详细介绍如何结合Appium和Robotframework来实现iOS移动应用的自动化测试。首先,我们会讨论Appium的基本概念,它的优势以及如何在iOS系统中进行环境的准备与配置。接着,我们将涉及到Appium中的一些必备工具,...

    详解基于Android的Appium+Python自动化脚本编写

    基于Android的Appium+Python自动化脚本编写 在本文中,我们将详解基于Android的Appium+Python自动化脚本...基于Android的Appium+Python自动化脚本编写可以帮助我们自动化测试Android应用程序,提高测试效率和准确性。

    Appium+Python自动化框架介绍.pdf

    在实际使用中,我们通常通过PyCharm来编写和管理Appium自动化测试脚本,利用Appium提供的API,可以在脚本中调用各种操作,实现自动化测试。 需要注意的是,由于文档是OCR扫描文字,可能有文字识别错误或遗漏,需要...

    appium+Java+eclipse需要的jar包

    总的来说,"appium+Java+eclipse需要的jar包"是移动应用自动化测试的基础,理解这些组件的作用以及如何在Eclipse中配置和使用它们,对于有效进行Appium测试至关重要。在实际工作中,还需要学习如何编写可维护、可...

    基于python+appium+pytest+allure实现的的android/ios自动化测试系统

    【作品名称】:基于python+appium+pytest+allure实现的的android/ios自动化测试系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 ...

    _appium_UI_自动化测试框架_appium-python3.zip

    _appium_UI_自动化测试框架_appium-python3

    appium+Genymotion自动化测试环境搭建

    Appium+Genymotion自动化测试环境搭建 一、安装 NodeJs NodeJs 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用于构建高性能的服务器和桌面应用程序。在 Appium+Genymotion 自动化测试环境搭建中,NodeJs ...

    appium+android自动化测试源码

    【标题】:“Appium+Android自动化测试源码” 在IT行业中,自动化测试是提升软件开发效率和质量的重要手段,尤其在移动应用开发领域。Appium是一个跨平台的自动化测试工具,支持iOS和Android应用程序的自动化测试。...

    Appium+RF实现手机应用的自动化测试-Android篇

    Appium是一个开源的移动应用自动化测试框架,它适用于iOS、Android和Firefox OS平台的原生、混合以及移动Web应用的自动化测试。使用Appium可以编写自动化测试脚本,并且可以在不同操作系统中通过真实设备或者模拟器...

    Appium+Python自动化测试连接真机.doc

    Appium+Python 自动化测试连接真机 在本文中,我们将详细介绍如何使用 Appium 和 Python 进行自动化测试,并且连接真机。首先,我们需要准备一台手机,例如 Android 的 OPPO R9s,并确保 adb 的安装情况。 一、...

    Appium+RF实现手机应用的自动化测试Android篇

    Appium+Robotframework进行Android应用自动化测试的实现,还需要掌握一个简单的例子。例子通常包括了Appium的初始化设置、启动应用、定位元素、执行操作、验证结果以及清理测试环境等环节。通过这个例子,可以快速...

    Appium+TestNG自动化测试

    Appium+TestNG自动化测试是现代移动应用测试领域中一种高效的方法,尤其在Android平台上。这个主题涵盖了如何结合这两个强大的工具来构建一个自动化测试框架,从而提高测试效率和质量。 Appium是一个开源的自动化...

Global site tag (gtag.js) - Google Analytics