【转】Python + Android + Uiautomator自动化测试
1.首先来介绍下UIAutomator工具
UIAutomator是Android官方推出的安卓应用界面自动化测试工具,是最理想的针对APK进行自动化功能回归测试的利器。
2.UIAutomator测试环境搭建
2.1 在pypi.Python.org网站下载uiautomator压缩包,解压后python setup.py install安装;或者直接pip install uiautomator
2.2 对于uiautomator工具而言,adb是必不可少的,adb提供的adb shell可实现android的远程操作,安装好adb,adb device可查看USB连接的手机设备,安装adb建议直接安装91手机助手,91手机助手会自动帮你安装adb,
2.3 介绍UIAutomator测试框架的UI工具:uiautomatorviewer 如下图:
uiautomatorviewer位于sdk/tools目录下,可以扫描、分析待测试应用界面,分析结果可以导出为xml与截图。通过该工具可以分析出UI控件的id,text,focusable等等各种属性,甚至布局上的层次关系。
可以通过./uiautomatorviewer启动该工具。
3.UIAutomator工具的使用
先上一个小Demo代码:
# -*- coding:utf-8 -*-
from uiautomator import device as d
import time
import sys
import random
import unittest
import HTMLTestRunner reload(sys)
sys.setdefaultencoding("utf-8") class My_Test_Suite(unittest.TestCase):
def setUp(self):
try:
d.press.home()
d(text="***").click()
time.sleep(2)
if d(text="我的").exists:
d(text="我的").click()
d(text="注销").click()
d(text="确定").click()
if d(text="登录").exists:
d(resourceId="com.isentech.attendance:id/title_back").click()
else:
time.sleep(3)
print u"开启APP"
except Exception, e:
print u"Error: 开启APP失败\n", e # 测试注册
def test_reg(self):
try:
d(text="注册").click()
# 测试已注册手机号
d(text="请输入手机号码").set_text("1313384****")
d(text="获取验证码").click()
# 测试注册
d(text="请输入手机号码").set_text(phone_number)
d(text="请输入验证码").set_text("")
d(resourceId="com.isentech.attendance:id/regis_pass").set_text("")
d(resourceId="com.isentech.attendance:id/regis_passAgain").set_text("")
d(text="注册").click()
time.sleep(2)
if d(text="立刻去登录").exists:
d(text="立刻去登录").click()
d(resourceId="com.isentech.attendance:id/txtLoginPassword").set_text("")
d(text="登录").click()
except Exception, e:
print u"Error: 注册失败\n", e # 测试登陆
def test_login(self, phone):
try:
d(text="登录").click()
d(resourceId="com.isentech.attendance:id/txtLoginUserName").clear_text()
d(resourceId="com.isentech.attendance:id/txtLoginUserName").set_text(phone)
d(resourceId="com.isentech.attendance:id/txtLoginPassword").set_text("")
d(text="登录").click()
d(text="请输入您的姓名").set_text("")
d(text="完成").click()
time.sleep(2)
if d(text="签到").exists:
print u"登录成功"
except Exception, e:
print u"Error: 登录失败\n", e # 测试忘记密码
def test_forget_password(self):
try:
pass # 一些测试步骤
except Exception, e:
print u"Error: 重置密码or修改密码失败\n", e #......更多的测试模块用例 def tearDown(self):
try:
d.press.home()
d.press.recent()
time.sleep(3)
d.swipe(200, 500, 200, 0, steps=10)
d.press.home()
print u"关闭APP"
except Exception, e:
print u"Error: 关闭APP失败\n", e if __name__ == "__main__":
phone_number = random.choice(['', '', '', '', '', ''])+"".join(random.choice("") for i in range(8))
test_unit = unittest.TestSuite()
test_unit.addTest(My_Test_Suite("test_reg"))
filename = './Result_auto_android.html'
fp = file(filename, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u"测试报告",description=u"测试结果详情:")
runner.run(test_unit)
以上代码是一个APP的整体测试框架,有些代码隐藏掉了,对代码的理解我希望大家去查看这个文章:https://github.com/Xuyangting/uiautomator
为什么要Android自动化呢?!每次回归测试,就像打地鼠一样,打下去一个又冒出来另一个,真的很心痛,测试人员太苦逼了,每天拿着手机点呀点,所以才选择用uiautomator工具进行协助测试,但这个工具也有很多不好的地方,很多测试场景很难模拟出来,还得人工去进行手工测试。写完这个Android得自动化,接下来要写iOS自动化测试工具-Appium,这个工具和uiautomator类似,就是环境上有点不一样而已
【转】Python + Android + Uiautomator自动化测试的更多相关文章
- python+Android+uiautomator的环境
Python+Android+uiautomator的环境搭建 Python 下载适合系统的版本并安装,安装时勾选把路径加入path 验证:windows下打开cmd输入python 出现以下界面说明 ...
- Android UiAutomator 自动化测试编译运行---新手2
1.首先打开eclipse创建java项目
- Android UIAutomator自动化测试
描述:UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试. UIAutomator不需要测试人员了解代码 ...
- Android UiAutomator 自动化测试一些代码实例---新手3
1.打开浏览器,打开百度实例 public void testBrowser() throws RemoteException, UiObjectNotFoundException{ //灭屏幕-亮屏 ...
- Android UiAutomator 自动化测试环境搭建---新手1
1.首先需要准备的工具有 1.java jdk 2. android开发工具 adt 3.ant 安装包(如果下载adt里面有) 2.首先安装java环境,jdk这个百度就可以了. 3.android ...
- Appium python自动化测试系列之Android UIAutomator终极定位(七)
android uiautomator text定位 可能有人不知道为什么说android uiautomator是终极定位,而且android uiautomator和appium有什么关系呢?如果 ...
- Appium+python自动化(十二)- Android UIAutomator终极定位凶“胸”器(七)(超详解)
简介 乍眼一看,小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了,其实不然,上次介绍和分享的大哥是uiautomatorviewer,是一款定位工具.今天介绍的是一个java库,提供执行自动化测 ...
- UiAutomator自动化测试框架介绍
UiAutomator自动化测试框架介绍 环境搭建 1 必要条件 1.1 JDK 1.2 SDK(API高于15) 1.3 Eclipse 2 ...
- 通过实例介绍Android App自动化测试框架--Unittest
1.为什么需要使用框架实现自动化测试 作为测试工程师,可能在代码能力上相比开发工程师要弱一点,所以我们在写脚本的时候就会相对容易的碰到更多的问题,如果有一个成熟的框架供给我们使用的话,可以帮助我们避免 ...
随机推荐
- 在页面实现qq跳转链接
http://shang.qq.com/v3/widget/consult.html
- 解决 Cocos2d-x 3.2 error C1041: 无法打开程序数据库vc120.pdb
单个项目解决方案 解决方案是为项目添加 /FS (Force Synchronous PDB Writes) 编译选项,具体位置在: 一劳永逸的解决方案 直接修改cocos的项目模板templates ...
- zookeeper系列 (第一章 :ubuntu 下安装zookeeper)
1.zookeeper是分布式一致性管理服务.解决了分布式中死锁,不一致,原子性操作等问题. 2.环境:系统ubuntu,zookeeper 下载地址:http://archive.apache.or ...
- CPU性能的评价
人们通常用benchmark 来衡量CPU的性能,常见的benchmark有dhrystone和coremark. 由于dhrystone 受编译器影响比较大,所以,结果不是很准确,现在大多采用cor ...
- java实现打开Windows控制台窗口
在写Python程序的时候突发奇想了一下,能不能用java代码实现打开控制台窗口呢? 经过查询网络资料和java API文档,终于实现了: package com.primeton.cmd; impo ...
- codevs 2776 寻找代表元
时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 广州二中苏元实验学校一共有n个社团,分别用1到n编号.广州二中苏元实验 ...
- tomcat配置 —— 各个目录的作用
tomcat各目录(文件)作用 tomcat-7.0.50解压版,主目录一览: 我们可以看到主目录下有bin,conf,lib,logs,temp,webapps,work 7个文件夹,下面对他们分别 ...
- 按Home键切换到后台后会触发libGPUSupportMercury.dylib: gpus_ReturnNotPermittedKillClient导致crash
转自:http://www.eoeandroid.com/thread-251598-1-1.html 好像有很多朋友都碰到过这个问题,即在真机调试时,按hone键返回桌面,再回到app时,app会c ...
- 常用的 Excel 函数
概述 Excel 学的好,函数不可少.接下来就了解常用的函数. 首先作下简要说明: 本文的内容大多从网上搜集并加以个人理解整理而来,由于初学,可能会出现错误,如有欢迎指出: 所用演示软件为免费丑陋的 ...
- [已解决]gitee初次使用git clone报错
本文描述的错误按实际出现先后顺序排列,并且附上一些其他可能会出现的问题 错误1: JZKJ@DESKTOP-I7Q9QJ4 MINGW64 ~ $ git clone https://gitee.co ...