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

花门楼前见秋草,岂能贫贱相看老。这篇文章主要讲述Android手机自动化测试实例详解相关的知识,希望能为你提供帮助。
手机自动化框架也比较多,针对ios,android两个不同的平台,最后我挑选了appium,它是利用webdriver来进行驱动测试的,这个框架我比较熟悉,而且它支持两个平台。于是我就针对这两个不同的平台进行了分别的搭建与测试,IOS平台的环境搭建没有问题,具体搭建方法见:
http://blog.sina.com.cn/s/blog_68f262210102v0ta.html,而测试用例,由于现在我没有办法将ipa文件转化成app文件,所以测试用例还没有搞定。问题解决后,会发相应的文章的。
本篇介绍一下Windows环境下android自动化测试的具体实例,环境安装见:
http://blog.sina.com.cn/s/blog_68f262210102v4aj.html,现在说一下测试用例:
测试对象:网信金融旗下的众筹网的手机应用
运行对象:android模拟器(真机运行见下篇)
测试用例:简单的登录
用例语言:webdriver+python
测试步骤:
1,启动appium
在Windows下,找到appium应用程序,双击打开,然后右上角的appium启动按钮,看到输出日志,表明启动成功。

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

文章图片



 
2,启动android模拟器
模拟器如何创建,参见:
http://blog.sina.com.cn/s/blog_68f262210102v4a7.html,本人创建的模拟器为:antester,启动方法:在cmd下输入:emulator @antester,过一会儿就会弹出android模拟器:
Android手机自动化测试实例详解

文章图片



 
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有一个很好的交流网站:http://www.testerhome.com/topics,大家可以时常去浏览一下,相信能学到很多知识的。快速,准确的定位是要靠经验的,这个帖子http://testerhome.com/topics/167,讲了一些儿定位方法,希望对大家有所启发。
【Android手机自动化测试实例详解】 
   

    推荐阅读