uiautomator +python 安卓UI自动化尝试
使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://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自动化尝试的更多相关文章
- 使用appium+python做UI自动化的demo
使用appium+python做UI自动化的demo 案例使用的知乎app,下载最新的知乎apk,存在了电脑上,只需要配置本机上app目录,不需要再配置appPackage和appActivity # ...
- 谷歌安卓UI自动化测试策略
中文翻译版: 为了使大家确信"应做单元测试,就一定能做单元测试",谷歌测试工程师Mona El Mahdy专门写了一篇博客,提出了几种执行安卓应用用户界面单元测试的方法.Mahdy ...
- 【Python】UI自动化-1
一.安装selenium和环境配置 1 pip install selenium 2 三个驱动文件放到d:盘根目录 3 安装火狐版本33 4 安装插件:selenium ide\firebug\fir ...
- Python实现UI自动化
1. Selenium2 + WebDriver API 2. unittest单元测试框架 3. HTMLTestRunner.html测试报告 4. 自动化测试模型介绍 5. ...
- python WEB UI自动化在日期框中动态输入当前日期
要在日期框中输入当前日期,如下图 代码为 本想用最简单的方法,直接用sendkeys发送当前日期,如下: current_time=time.strftime('%Y-%m-%d',time.loca ...
- Android_UiAutomator(安卓UI自动化)环境搭建
一.配置JDK环境变量 1.新建系统变量JAVA_HOME,然后输入引号内的内容(JDK安装目录) "C:\Program Files\Java\jdk1.8.0_51" ...
- python+selenium UI自动化不同浏览器之间的切换
class register(): ROBOT_LIBRARY_SCOPE = 'GLOBAL' def __init__(self): pass # m默认打开chrome def open_bro ...
- Python Selenium 搭建Web UI自动化
Python搭建UI自动化环境 下载Python3 Python官网 PyCharm 环境配置 安装Python 勾选Add Python to PATH,一直下一步. 验证:CMD输入Python ...
- 测试自动化:java+selenium3 UI自动化(1) - 环境搭建
1.前言 我大概是在2012年第一次正式接触到自动化测试,那个时候跟随我的团队一起,就当时项目的UI自动化尝试做出了探索. 在我离开那家公司的时候,我们的自动化测试体系仍然难言完美,但是也已经达到了非 ...
随机推荐
- BZOJ 2592 随机化(伪)
思路: 放yousiki大爷题解 http://yousiki.net/index.php/archives/82/ 我写的是随机化 既然gzz证了最终答案的上界是O(N)的 那么我们可以n^2枚举所 ...
- xampp中localhost与DreamWaver站点设置问题
作为一个初学者,在DreamWaver中配置web服务器用于本地测试,中间碰到了好多问题,百度答案模糊不清,自己摸索出来,把自己碰到的,易错的地方做个总结. step1 : 安装xampp(安装位置记 ...
- html——特殊字符
- 【转载】HTTP 请求头与请求体
原文地址: https://segmentfault.com/a/1190000006689767 HTTP Request HTTP 的请求报文分为三个部分 请求行.请求头和请求体,格式如图:一个典 ...
- 【技术累积】【点】【java】【21】序列化二三事
基础概念 把对象等转为二进制进行传输的是序列化,反之为反序列化: 应用场景一般为读写文件,传输数据/接口调用: Externalizable和Serializable java的序列化方式有两种: S ...
- strcmp 与 _tcscmp
strcmp 用来比较ANSI字符串,而_tcscmp用来比较UNICODE(宽字符)的字符串.ANSI字符串中,1个英文字母为1个字节,1个中文字符为2个字节,遇到0字符表示字符串结束.而在UNIC ...
- 关于Staltstack
saltstate服务搭建: cat /etc/hosts(master和minion都添加) 127.0.0.1 localhost localhost.localdomain localhos ...
- 人工智能时代,你为什么一定要学Python?
Python岗位年薪至少在10-20w之间,而且除了北.上.广.深外,杭州和合肥等二.三线城市的待遇正在与一线城市持平.未来,无论你身处何地,都能享受到人工智能.Python“带来的“市场红利”. P ...
- 五、Scrapy中Item Pipeline的用法
本文转载自以下链接: https://scrapy-chs.readthedocs.io/zh_CN/latest/topics/item-pipeline.html https://doc.scra ...
- 四、Spider用法
本文转载自以下链接: https://scrapy-chs.readthedocs.io/zh_CN/latest/topics/spiders.html https://doc.scrapy.org ...