• app ui自动化2、元素定位+通过appium启动被测app


    一、环境搭建,参考:

    https://www.cnblogs.com/wxinyu/p/16016918.html

    二、模拟器配置(或者使用真机)

    1、下载夜神模拟器

    2、将D:\software\AndroidSDK24.4.1\platform-tools目录下的adb.exe复制到D:\software\Nox\bin目录下,分别替换D:\software\Nox\bin目录下的adb.exe和nox_adb.exe

    3、启动夜神模拟器

    4、使用adb devices命令查找设备链接,出现127.0.0.1:62001的代表配置成功

    5、在模拟器中安装被测程序

    三、元素定位工具,介绍:

    1、使用Android SDK自带的uiautomatorviewer.bat工具进行元素定位

    做自动化测试最重要的是要先定位到元素,appium定位元素和selenium类似,准确的说appium也是继承了selenium的方法。

    a)前置条件:通过真机或虚拟机连接上电脑,可通过adb devices命令验证

    b)双击打开uiautomatorviewer.bat工具,工具在AndroidSDK安装目录的tools文件夹中

    c)选择图中标记的区域,可展示手机当前页面的元素

     d)通过点击手机页面相关区域,可以获取到元素的信息,例如text、class等,拿到元素信息后就可以使用代码来操作了

    四、查找Packagename和Activity

    方法1、
    
    adb shell "logcat | grep START"
    
    方法2、 下载AAPT build
    -tools,并配置环境变量,下载地址:https://androidaapt.com/ aapt dump badging xx.apk (apk的绝对路径) 这个命令会输出很多东西,翻到最前方,找到package:name=xxx,引号中的就是packagename 向下拉,找到launchable-activity:name=xxx,引号中的就是activity name

    五、自动化代码编写

    1、前置条件

    a)启动Appium服务。--在命令行中输入

    appium

    2、连接手机--使用python

    a)导入webdriver

    from appium import webdriver

    b)连接设备和App

    from appium import webdriver
    
    server = 'http://localhost:4723/wd/hub'             # appium服务器的地址,端口默认就是4723,启动appium服务时,可看到端口号
    devices_system = {
        'platformName': 'Android',                      # 平台名
        'driverName': 'A5RNW17C03006527',               # 设备名,可通过adb devices查询
        'platformVersion': '8.0.0',                     # 系统版本,可通过该命令查询adb shell getprop ro.build.version.release,若是鸿蒙系统,写10.0(实际测试鸿蒙系统貌似不支持连接uiautomatorviewer工具)
        'appPackage': 'com.xxx',                        # 被测系统的包名,可通过adb shell "logcat | grep START"查询
        'appActivity': 'xxx.WelcomeActivity'            # 被测系统的Activity,可通过adb shell "logcat | grep START"查询
    }
    
    driver = webdriver.Remote(server,devices_system)    # 连接手机和App

    c)运行测试一下,以上代码会执行打开App操作

    说明:首次运行时,会自动向手机中安装应用:Appium Settings、io.appium.uiautomato2.server这两个工具

  • 相关阅读:
    Java main方法继承
    MySQL 事务
    数据库日志文件和内存刷新机制
    MySQL 存储过程
    MySQL 索引
    JVM锁优化
    JVM字节码执行引擎和动态绑定原理
    虚拟机类加载机制
    JVM内存分配与回收
    JVM垃圾收集器
  • 原文地址:https://www.cnblogs.com/wxinyu/p/16021310.html
Copyright © 2020-2023  润新知