android phone 下载_Python + Android + Uiautomator自动化测试

81ff2fc94a9907217fb8f02920054abf.png

1.首先来介绍下UIAutomator工具

UIAutomator是Android官方推出的安卓应用界面自动化测试工具,是最理想的针对APK进行自动化功能回归测试的利器。

2.UIAutomator测试环境搭建

2.1 在http://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 如下图:

c4b18e4d1498349887751422fdfcca6e.png

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("8888")
            d(resourceId="com.isentech.attendance:id/regis_pass").set_text("123456")
            d(resourceId="com.isentech.attendance:id/regis_passAgain").set_text("123456")
            d(text="注册").click()
            time.sleep(2)
            if d(text="立刻去登录").exists:
                d(text="立刻去登录").click()
            d(resourceId="com.isentech.attendance:id/txtLoginPassword").set_text("123456")
            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("123456")
            d(text="登录").click()
            d(text="请输入您的姓名").set_text("123456")
            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(['139', '188', '185', '136', '158', '151'])+"".join(random.choice("0123456789") 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的整体测试框架了。

为什么要Android自动化呢?!每次回归测试,就像打地鼠一样,打下去一个又冒出来另一个,真的很心痛,测试人员太苦逼了,每天拿着手机点呀点,所以才选择用uiautomator工具进行协助测试,但这个工具也有很多不好的地方,很多测试场景很难模拟出来,还得人工去进行手工测试。写完这个Android得自动化,接下来要写iOS自动化测试工具-Appium,这个工具和uiautomator类似,就是环境上有点不一样而已

另:笔者创建了一个测试交流群,欢迎大家加入交流探讨(群号见文章开头图片)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值