如何使用uiautomator测试框架的Python API对Android应用进行测试

uiautomator测试框架可以对Android应用进行黑盒测试, 通过获得当前窗口视图(View)体系结构中的组件,对指定的组件进行操作,可以跨APP进行测试.通常在写测试功能逻辑代码时, 可以利用uiautomatorviewer工具获得待操作组件的属性,比如class name, resource ID或者text等等,uiautomator可以使用这些属性获得对应的组件,以便对其进行操作.关于uiautomator具体的介绍,请参考Android官网https://developer.android.com/training/testing/ui-automator. 另外,uiautomatorviewer工具在Android SDKtools/bin目录下可以找到.

下面说明如何使用该框架进行Android应用程序功能测试.https://github.com/xiaocong/uiautomator#uiautomator提供了对uiautomator框架API的Python封装.本工程程序基于该封装API进行设计. 下面是工程的目录结构:
在这里插入图片描述

  • uiautomator目录是Python封装的uiautomator框架库,可以从前文的github链接中下载.
  • 文件__main__.py是测试工程执行入口. 定义该文件名, 可以使工程根目录成为Python可执行模块.
  • com目录下是具体的测试程序.其目录结构为:
    在这里插入图片描述
    func目录下是一个测试用例文件:
    在这里插入图片描述

本工程主要说明uiautomator框架的使用,因为具体的测试代码是和待测试APP的功能相关的, 这里只通过一个测试用例来说明该测试框架的Python封装API的调用.

该测试用例来测试某APP首次启动页面, 点击不同国家进行资源装载:
在这里插入图片描述
首先是工程入口文件__main__.py的实现:

import os
import sys
import time

from com.autotest.adb_cmd import AdbCmd
from com.autotest.device_info import DeviceInfo
from com.autotest.func.start_page import StartPage
from com.autotest.pkg_info import PkgInfo
from com.autotest.utils import to_str, Timeout, dump
from uiautomator import device as d


def test(device, *, ostream=None):
    StartPage.test(device, ostream=ostream)


def make_ready(adb, *, ostream=None):
    _, err = d.server.adb.cmd(*adb.cmds["install"]).communicate()
    if err:
        err = to_str(err).strip()
        # Note: err return Success if install successfully sometimes.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值