使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.htmlhttps://blog.csdn.net/Eugene_3972/article/details/76629066

环境准备:https://www.cnblogs.com/keeptheminutes/p/7083816.html

简单实例

1.自动化安装与卸载 :https://my.oschina.net/yangyanxing/blog/498403

2.自动化登录测试 :http://www.cnblogs.com/leiziv

注:安卓6.0以上的手机不会自动安装app-uiautomator.apk和app-uiautomator-test.apk,需要手动安装,否则报错ioerror RPC server not started

uiautomator +python+HTMLTestRunner 安卓UI自动化实现

#coding:utf-8
from uiautomator import Device
import os
import unittest
from HTMLTestRunner import HTMLTestRunner
import time d=Device('127.0.0.1:62001')
print d.info class TestEle(unittest.TestCase):
def setUp(self):
cmd = 'adb shell am start me.ele/me.ele.application.ui.home.HomeActivity'
os.system(cmd)
cmd = 'adb shell am start me.ele/me.ele.shopping.ui.search.SearchActivity'
os.system(cmd) def tearDown(self):
cmd='adb shell am force-stop me.ele'
os.system(cmd) def testSearch(self):
d(resourceId='me.ele:id/editor').set_text('coco')
d(resourceId='me.ele:id/search').click()
d.screenshot(r"E:\code\auto\ele_search.png")
self.assertTrue(d(text="coco").exists) if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestEle))
now = time.strftime('%Y-%m-%d', time.localtime(time.time()))
test_dir = r'E:\code\auto'
filename = test_dir + '/' + now + 'test_result.html'
fp = file(filename,'wb')
runner = HTMLTestRunner(stream=fp, title='ele demo by uiautomator', description= u'测试结果')
runner.run(suite)

注:

1.通过adb devices获取设备名,127.0.0.1:62001是夜神模拟器的设备名

2.通过adb shell dumpsys window | findstr mCurrentFocus命令获取apk应用名和.MainActivity,如me.ele/me.ele.application.ui.home.HomeActivity

3.通过'adb shell am start  me.ele/me.ele.application.ui.home.HomeActivity' 启动模拟器上app的activity,使用真机无法启动,可能是app应用不允许外部访问

C:\Users\admin>adb shell am start  me.ele/me.ele.application.ui.home.HomeActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=me.ele/.application.ui.home.HomeActivity }
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
flg=0x10000000 cmp=me.ele/.application.ui.home.HomeActivity } from null (pid=21101, uid=2000) not exported from uid 10046
        at android.os.Parcel.readException(Parcel.java:1468)
        at android.os.Parcel.readException(Parcel.java:1422)
        at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2150)
        at com.android.commands.am.Am.runStart(Am.java:694)
        at com.android.commands.am.Am.onRun(Am.java:272)
        at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
        at com.android.commands.am.Am.main(Am.java:78)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:243)
        at dalvik.system.NativeStart.main(Native Method)

4.通过uiautomatorviewer获取resourceId

运行结果:d(text="coco").exists包含了搜索栏的'coco',故而断言成功

uiautomator +python 安卓UI自动化尝试的更多相关文章

  1. 使用appium+python做UI自动化的demo

    使用appium+python做UI自动化的demo 案例使用的知乎app,下载最新的知乎apk,存在了电脑上,只需要配置本机上app目录,不需要再配置appPackage和appActivity # ...

  2. 谷歌安卓UI自动化测试策略

    中文翻译版: 为了使大家确信"应做单元测试,就一定能做单元测试",谷歌测试工程师Mona El Mahdy专门写了一篇博客,提出了几种执行安卓应用用户界面单元测试的方法.Mahdy ...

  3. 【Python】UI自动化-1

    一.安装selenium和环境配置 1 pip install selenium 2 三个驱动文件放到d:盘根目录 3 安装火狐版本33 4 安装插件:selenium ide\firebug\fir ...

  4. Python实现UI自动化

    1.   Selenium2 + WebDriver API 2.   unittest单元测试框架 3.   HTMLTestRunner.html测试报告 4.   自动化测试模型介绍 5.    ...

  5. python WEB UI自动化在日期框中动态输入当前日期

    要在日期框中输入当前日期,如下图 代码为 本想用最简单的方法,直接用sendkeys发送当前日期,如下: current_time=time.strftime('%Y-%m-%d',time.loca ...

  6. Android_UiAutomator(安卓UI自动化)环境搭建

    一.配置JDK环境变量 1.新建系统变量JAVA_HOME,然后输入引号内的内容(JDK安装目录) "C:\Program Files\Java\jdk1.8.0_51"      ...

  7. python+selenium UI自动化不同浏览器之间的切换

    class register(): ROBOT_LIBRARY_SCOPE = 'GLOBAL' def __init__(self): pass # m默认打开chrome def open_bro ...

  8. Python Selenium 搭建Web UI自动化

    Python搭建UI自动化环境 下载Python3 Python官网 PyCharm 环境配置 安装Python 勾选Add Python to PATH,一直下一步. 验证:CMD输入Python ...

  9. 测试自动化:java+selenium3 UI自动化(1) - 环境搭建

    1.前言 我大概是在2012年第一次正式接触到自动化测试,那个时候跟随我的团队一起,就当时项目的UI自动化尝试做出了探索. 在我离开那家公司的时候,我们的自动化测试体系仍然难言完美,但是也已经达到了非 ...

随机推荐

  1. python爬虫之处理验证码

    云打码实现处理验证码 处理验证码,我们需要借助第三方平台来帮我们处理,个人认为云打码处理验证码的准确度还是可以的 首先第一步,我们得先注册一个云打码的账号,普通用户和开发者用户都需要注册一下 然后登陆 ...

  2. Android 8.0 启动后台service 出错 IllegalStateException: Not allowed to start service Intent

    错误原因: Android 8.0 不再允许后台service直接通过startService方式去启动, 具体行为变更如下: 如果针对 Android 8.0 的应用尝试在不允许其创建后台服务的情况 ...

  3. JS——client

    clientTop.clientLeft: clientTop:盒子的上boder clientLeft:盒子的左border clientWidth与clientHeight 1.在有DTD情况下: ...

  4. JS——冒泡排序

    核心思想: 1.外层for循环控制比较的轮数 2.内层for循环控制每轮比较的次数 3.外层每进行一轮比较,内层就少一次比较,因为外层每进行一轮比较都会产生一个最大值 <script> v ...

  5. CSS——个人资料demo

    1.上下外边距合并,选最大值. 2.两个input标签在编辑中如果换行了,在浏览器中显示的时候会自动增加一些距离. <!DOCTYPE html> <html lang=" ...

  6. RHEL7配置中文输入法-智能拼音

    RHEL7配置中文输入法-智能拼音 RHEL7.x(CentOS7.x)系统相对之前的6.x系统变化较大,虽然安装时选择了中文环境,但是进入系统后,在控制台及编辑器中仍无法切换输入法进行中文输入. 原 ...

  7. ARM架构与体系学习(二)——3级流水线

    ARM架构与体系学习(二)——3级流水线 标签: 存储嵌入式汇编c 2012-04-18 00:44 5414人阅读 评论(4) 收藏 举报  分类: ARM7(16)  版权声明:本文为博主原创文章 ...

  8. Django - ORM创建基本类

    DBFirst CodeFirst 创建类 1.根据类自动创建数据库表 在app下的models.py中创建表 创建数据库之前,需要在django下的setting.py模块中的INSTALLED_A ...

  9. centos 7.x 安装开源堡垒机Jumpserver

    环境 虚拟机 系统:centos 7 IP:192.168.168.8 目录:/opt 代理:nginx 数据库:mysql 版本大于等于 5.6    mariadb 版本大于等于 5.5.6 更新 ...

  10. odoo api介绍

    odoo api修饰器介绍与应用 参考文档:https://www.cnblogs.com/kfx2007/p/6093994.html 一.one one的用法主要用于self为单一集合的情况,被o ...