2.3 模拟器管理
经过上面的环境配置,我们已经搭建起了一个Appium+Python安卓App的测试环境。不过要运行具体的app测试用例的时候,我们需要有运行环境,通常有模拟器和真机两种。在此我们先创建一个模拟器,检测一下我们的环境是否搭建成功。
新AVD模拟器
Ø 启动我们安装的ADT中的eclipse,点击Eclipse软件的Windows菜单,选择其下的Android Virtual Device Manager菜单项,进入Android Virtual Device Manager其对话框。如图2.3.1所示:
图2.3.1 Android Virtual Device Manager
Ø 点击左侧Create按钮可新建android手机模拟器。在Create new Android Virtual Device Manager对话框的输入相应的内容:
A, name文本框内给要创建的模拟器起个名字,例如antester。
B,在Device列表框内选择Galaxy Nexus(4.65,720*1280;xhdpi)。
C, target列表框自动选择了android 4.4 API Level 19{现在已安装的开发环境里只有一套API,读者可自行安装其他API,届时可任选其他API作为自己测试平台}默认即可,其他选项此时可以不做选择默认设置即可。
D,点击对话框的OK按钮确认,即可创建Android 模拟器。
以上所有设置,如图2.3.2所示。
图2.3.2,创建模拟器
启动android模拟器
模拟器的启动方法有两种:
一,在Android Virtual Device Manager中选择要启动的模拟器,单击右侧的“start”按钮,然后在弹出的对话框中单击“launch” 按钮即可启动。
二,cmd之后键入 emulator @antester,等待数秒之后android手机模拟器启动。如图2.3.3所示:
图2.3.3 启动模拟器
2.4 检测测试环境
1,启动appium
在Windows下,找到appium应用程序,双击打开,然后单击右上角的appium启动按钮,看到输出日志,如图2.4.1所示,表明启动成功。
2,启动android模拟器
启动方法:在cmd下输入:emulator @antester,过一会儿就会弹出android模拟器:如图2.3.3所示。使用adb安装要测试的App,我们使用的是众筹网的App。
3,编写测试用例
使用你习惯的编辑软件来写你的测试用例,我用语言是python,下面介绍一下具体的测试用例login.py。
#-*- 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)
上面是一个完整的测试用例,如果里面有不明白的地方,不要紧先对这个自动化测试用例有个整体的了解,后面的章节我们会详细介绍。
4,运行测试用例
打开终端,进入到测试用例的目录下,运行测试用例文件:
Python login.py,回车后可以看到Appium终端有日志输出,而在模拟器上会安装众筹的App,安装过程是看不到的。
然后启动要测试的App,进入例登录界面,输入用户名和密码,登录成功。如果这个过程没有出错的话,说明我们的环境没有任何问题,就可以开始我们的Appium手机App自动化编程旅了。
当然不同的操作系统,不同的软件版本,难免会遇到各种奇葩的问题。在此我也不能一一列举出所遇到的问题及解决方案。大家要会在网上查询,以及查看appium的输出日志。很多问题都是因为手机或是模拟器Android版本,Appium Api版本以及app的版本不一致造成的。希望大家从此入手,去排查出现在各种问题、
2.5 本章小结
本章我们讲解了Windows环境下appium开发环境的搭建,而且通过一个简单的测试用例来检测一下我们搭建的环境是否成功。通过本章的学习,你应该能搭建出自己的开发环境,如果测试用例不理解,没有关系,我们后面会逐步讲解的。工欲成其事,必先利其器。有好的开发环境,在以后的学习中才能如虎添翼。