• Appium入门自动化测试(3) —— Appium 常用API


    Appium 常用API

    经过前几期的学习,是不是各位都已经成功的将脚本跑起来了?是不是很有成就感?是不是想要了解更多的内容?不要慌张,学习今天的内容,我们就可以更愉快的玩耍Appium了。常见的API是基于java-client 4.12 如果与你之前了解的内容不同,那么以本教程为主,毕竟4.12是当前最新版本,以前的API很多都已经改掉了。 阅读此文需要10分钟,更需要之前内容的基础,如果你没有阅读之前的教程,请在菜单中点击往期精彩。、

     

    1、Appium API官方文档

    所谓的API是指java-client的API,官方文档: http://www.javadoc.io/doc/io.appium/java-client/4.1.2 

    官方文档说明

    文档结构:

    io.appium.java_client.AppiumDriver 是一个抽象类; io.appium.java_client.AppiumDriver 类包含所有Android和iOS共享的方法 一个.io.appium.java_client.ios.IOSDriver 和 io.appium.java_client.android.AndroidDriver 并且都是继承io.appium.java_client.AppiumDriver 类而各自又能够实现特定的方法。类似的 io.appium.java_client.ios.IOSElement 和 io.appium.java_client.android.AndroidElement 都是继承 io.appium.java_client.MobileElement。

    常见API简介

    常见的API一般分为以下几类:1. 安装卸载操作 2. 元素定位 3.相关手势操作 。

    而对于使用Appium进行自动化测试,最为重要的就是首先掌握元素定位的API。

    Appium 元素定位API

     单个元素定位:

    1.        //继承selenium,可以直接在By里面实现xpath/name/id等
    2. driver.findElement(By.className("className"));
    3. //Android和iOS都支持的
    4. driver.findElementByAccessibilityId("AccessId");
    5. driver.findElementByClassName("Class Name");
    6. driver.findElementByCssSelector("css Selector");
    7. driver.findElementById("id");
    8. driver.findElementByLinkText("link text");
    9. driver.findElementByTagName("tag Name");
    10. driver.findElementByXPath("xpath");
    11. //Android系统特有的
    12. driver.findElementByAndroidUIAutomator("UI Automator");
    13. //iOS特有的
    14. driver.findElementByIosUIAutomation("UI Automation");
    15. 多个元素定位:
    16.        //继承selenium,可以直接在By里面实现xpath/name/id等
    17. driver.findElements(By.className("className"));
    18. //Android和iOS都支持的
    19. driver.findElementsByAccessibilityId("AccessId");
    20. driver.findElementsByClassName("Class Name");
    21. driver.findElementsByCssSelector("css Selector");
    22. driver.findElementsById("id");
    23. driver.findElementsByLinkText("link text");
    24. driver.findElementsByTagName("tag Name");
    25. driver.findElementsByXPath("xpath");
    26. //Android系统特有的
    27. driver.findElementsByAndroidUIAutomator("UI Automator");
    28. //iOS特有的
    29. driver.findElementsByIosUIAutomation("UI Automation");

    顾名思义: driver.findElement(By.id("id"))就是通过id定位,而driver.findElementByXPath("//android.widget.TextView[contains(@text,'is xpathname')]") 就是通过xpath进行定位。

    了解了这些常见的定位API,那么该如何使用呢? 接下来我将举例说明。

    以android为例,定位三部曲

    第一步:连接你的Android设备,可以是虚拟机也可以是真机,可通过adb devices 进行验证。

    第二步:打开Android SDK自带的UIAutomatorViewer ,在

    sdk/tools路径下

           第三部:选择元素,找出其唯一属性进行定位

    使用text定位

    driver.findElementByText("button");

    使用className定位

    driver.findElementByClassName("android.widget.Button");

    使用UIAutomator定位

    driver.findElementByAndroidUIAutomator("new UiSelector().text(\"button\")");

    使用xpath

    driver.findElementByXPath("//android.widget.Button[@text='button']");

    当然你也可以使用Android Studio 自带的 DDMS 辅助定位。

    如何获取APK信息

    首先打开Appium GUI,选择Android。接着选择APK路径和package就能获取相关信息。

    以上就是今天的内容,回顾一下那个脚本,分为以下几个部分:

    1. 设置DesiredCapabilities,把待测APP的相关信息和device的相关信息设置完毕。

    2. 创建driver并编写测试操作内容

    3. 针对测试点进行判断,即使用Assert

    4. 测试结束,结束session

    可以归纳为,一个完整的测试用例是有测试步骤和Assert组成。


    最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

    这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

  • 相关阅读:
    SQL之连接表
    java-php-python-ssm基于网络游戏后台管理系统计算机毕业设计
    Java属性setProperty()方法与示例:java中的property
    MySQL总结(一)
    JavaScript相关操作
    移动端/微信小程序/uni-app 性能优化随手总结
    网络编程基础知识
    APK的反编译,签名,对齐
    uniapp中swiper 轮播带左右箭头,点击切换轮播效果demo(整理)
    Mac 多版本jdk安装与切换
  • 原文地址:https://blog.csdn.net/m0_58026506/article/details/126990451