您的位置:首页 > 移动开发

Appium环境的安装与配置_Python版

2016-04-25 17:51 393 查看
一、安装Python 

      Appium Client是对webdriver原生api的一些扩展和封装。它可以帮助我们更容易的写出用例,写出更好懂的用例。  Appium Client是配合原生的webdriver来使用的,因此二者必须配合使用缺一不可。在本文档的开始已经介绍Appium支持多种编程语言编写自动化测试脚本,由于我个人熟悉Python语言,所以选择Python语言来编写自动化测试脚本。

访问Python官方网站:https://www.Python.org/下载最新版本的Python2,截止作者发稿,最新版本为Python2.7.10版本。读者根据自己的平台选择相应的版本进行下载;对于Windows用户来说,如果你的系统是32位的请选择x86版本,如果是64位系统请选择64版本进行下载。下载完成会得到一个以.msi为后缀名的文件,双击进行安装。如图2.1。

  pip是一个安装和管理Python包的工具,通过pip去安装Python包将变得十分简单,我们将省去了搜索--查找版本--下载--安装等繁琐的过程

推荐通过pip进行安装“Appium-Python-Client”。

--------------------------------------------------------------------------------------

C:\package\setuptools-7.0>pipinstall Appium-Python-Client

--------------------------------------------------------------------------------------

二、安装Android及appium 

·  安装jdk,安装好后将jdk相关目录加入环境变量,以我的为例:

将 C:\Program Files (x86)\Java\jdk1.6.0_45\bin 加入path 系统变量

将 C:\Program Files (x86)\Java\jdk1.6.0_45\lib 加入classpath 变量(没有classpath的话自己新建)
·  下 载adt-bundle-windows-x86-20130522(版本可选)并解压,这是个集成了android sdk 的集成开发环境,对于开发android程序很方便。我们的自动化测试主要用到的是其中集成的android sdk,但是为了方便阅读相关代码,这个工具是比较好的一个选择。也可以直接下载android sdk

解压后的目录为(以我为例):D:\adt-bundle-windows-x86-20130522 

添加环境变量,将D:\adt-bundle-windows-x86-20130522\sdk\tools目录以及D:\adt-bundle-windows-x86-20130522\sdk\platform-tools

添加至path系统变量
·  安装node.js,去node.js官网下载msi格式的安装文件,下载后安装
  1) 下载并安装Node.js http://nodejs.org/dist/v0.10.35/node-v0.10.35-x86.msi

   2) 把Node.js的安装路径(也就是node.exe文件所在的目录)添加到环境变量Path

 
·  安 装appium。 node.js安装成功后打开命令行,输入npm install –g appium 命令安装appium,安装完成后在命令行中输入 appium-doctor 检验appium的运行环境是否正常,如果有错误,对照错误解决即可,下图说明appium的android运行环境配置成功:


三、实例

1、启动appium及连接Android机

#coding=utf-8

from appium import webdriver

import unittest,time

 

class CalTest(unittest.TestCase):

   def setUp(self):

       desired_caps = {}

       desired_caps['platformName'] = 'Android'

       desired_caps['platformVersion'] = '4.3'

       desired_caps['deviceName'] = 'Android Emulator'

       desired_caps['appPackage'] = 'com.android.calculator2'

       desired_caps['appActivity'] = '.Calculator'

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

   def tearDown(self):

       self.driver.quit()

 

   def test_add_aa(self):

       time.sleep(5)

       self.driver.find_element_by_name("1").click()

        

       self.driver.find_element_by_name("5").click()

       

       self.driver.find_element_by_name("9").click()

       

       self.driver.find_element_by_name("delete").click()

       

       self.driver.find_element_by_name("9").click()

       

       self.driver.find_element_by_name("5").click()

       

       self.driver.find_element_by_name("+").click()

       

       self.driver.find_element_by_name("6").click()

       #self.driver.find_element_by_name(name).send_keys()

       self.driver.find_element_by_name("=").click()

       #ela =self.driver.find_element_by_android_uiautomator('newUiSelector().description("Animation")')

       #self.assertIsNotNone(ela)

       #els=self.driver.find_elements_by_android_uiautomator('new UiSelector().clickable(true)')

       #self.assertIsInstance(els, list)

       #el1=self.driver.find_element_by_accessibility_id('Animation')

       #self.assertIsNotNone(el1)

       el=self.driver.find_element_by_class_name("android.widget.EditText").text

       #text=el.__getattribute__('text')

       self.assertEqual("1601",el)

       self.driver.lock(10)

       els=self.driver.find_elements_by_class_name('android.widget.TextView')

       self.driver.scroll(els[len(els)-1], els[0])

       el =None

       try:

           el =self.driver.find_element_by_accessibility_id(0)

       except Exception as e:

           els =self.driver.find_elements_by_class_name(id)

           self.driver.scroll(origin_el, destination_el)

       if el is None:

           el =self.driver.find_element_by_accessibility_id(id)

       el.click()

if __name__ == '__main__':

       suite = unittest.TestLoader().loadTestsFromTestCase(CalTest)

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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息