android手机自动化测试,Android手机自动化测试实例详解

2014-9-24

本人从参加工作以来,一直在做自动化测试方面的工作。最初接触的是Web自动化,后来又做接口自动化测试。由于最近几年手机应用越来越广泛,手机应用的自动化测试也发展的很快,所以我就利用工作之余去学习手机自动化测试。

手机自动化框架也比较多,针对ios,android两个不同的平台,最后我挑选了appium,它是利用webdriver来进行驱动测试的,这个框架我比较熟悉,而且它支持两个平台。于是我就针对这两个不同的平台进行了分别的搭建与测试,IOS平台的环境搭建没有问题,具体搭建方法见:

,而测试用例,由于现在我没有办法将ipa文件转化成app文件,所以测试用例还没有搞定。问题解决后,会发相应的文章的。

本篇介绍一下Windows环境下android自动化测试的具体实例,环境安装见:

测试对象:网信金融旗下的众筹网的手机应用

运行对象:android模拟器(真机运行见下篇)

测试用例:简单的登录

用例语言:webdriver+python

测试步骤:

1,启动appium

在Windows下,找到appium应用程序,双击打开,然后右上角的appium启动按钮,看到输出日志,表明启动成功。

a4c26d1e5885305701be709a3d33442f.png

2,启动android模拟器

模拟器如何创建,参见:

,本人创建的模拟器为:antester,启动方法:在cmd下输入:emulator

@antester,过一会儿就会弹出android模拟器:

a4c26d1e5885305701be709a3d33442f.png

3,编写测试用例

使用你习惯的编辑软件来写你的测试用例,我用语言是python,下面介绍一下具体的测试用例。

#-*- coding: UTF-8 -*-

#导入常用的包

import os

import time

import unittest

from selenium import webdriver

from lib2to3.pgen2.driver

import Driver

from lib2to3.tests.support

import driver

#设置路径信息

PATH=lambda p:os.path.abspath(

os.path.join(os.path.dirname(__file__),p)

)

global driver

class LoginAndroidTests(unittest.TestCase):

def setUp(self):

#初始化测试平台

desired_caps={}

desired_caps['device'] = 'android'

desired_caps['platformName']='Android' #测试平台

desired_caps['browserName']=''

desired_caps['version']='4.2.2'#系统版本

desired_caps['deviceName']='antester'#模拟器名称

desired_caps['app-package']='com.subject.zhongchou'#要测试的app

desired_caps['app-activity']='.ZhongChou'#当前活动应用

self.driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)

def tearDown(self):

self.driver.quit()

def test_login(self):

time.sleep(30)

#点击“注册登录”按钮

button=self.driver.find_element_by_id("com.subject.zhongchou:id/register_button")

button.click()

time.sleep(10)

#登录

name = self.driver.find_element_by_id('com.subject.zhongchou:id/loginnumber_phone')

name.click()

name.send_keys('183XXXXX905') #输入用户名

psd = self.driver.find_element_by_id('com.subject.zhongchou:id/loginnumber_password')

psd.click()

psd.send_keys('XXXXXXX') #输入密码

blogin=self.driver.find_element_by_id('com.subject.zhongchou:id/go_numberlogin') #单击登录按钮

blogin.click()

time.sleep(10)

#此处要检测是否登录成功,我懒省事,略了!

if __name__ == '__main__':

suite =

unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)

unittest.TextTestRunner(verbosity=2).run(suite)

上面是一个完整的测试用例,关系到元素的定位,内容的输入等操作。其实还可以优化一下,把测试数据独立出来放到一个xml文件中,而且通用的操作,可以放到一个类中封闭成通用方法,此代码只为了说明测试用例结构用的。

元素的定位

元素的定位是自动化测试的头等大事,在页面自动化测试的时候,Selenium

IDE提供了很好的定位,录制等方法。可是在手机自动化测试的时候,没有很好的工具 ,一般用的是appium inspector,

uiautomatorviewer和hierarchyviewer等工具,具体使用方法自己去网上查一下。可是没有很好的录制方法,虽然appium inspector在mac上可以对IOS的App进行录制,但是不太好用。

Appium有一个很好的交流网站:

要做好自动化测试,要大胆地尝试,学会在网上搜索各种相关的资料,并且善于总结。通常比较先进的东西,网上的资料都不多,那些儿一搜一大堆资料的东西,建议不要学习,会的人太多,你都没有一点儿优势。这是我最近在android手机自动化测试过程中摸索的一点儿总结,希望能帮助大家,也是对学习的一个总结。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值