Appium自动化测试框架构建

简介:

Appium简介
  Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持iOS、Android及FirefoxOS平台测试。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。
  相比其他的移动自动化测试工具,Appium测试由于调用了Selenium的client库使其可以使用任意的语言,包括Python、Ruby、Node.js、Objective-C等。
  Appium下载与安装
  可以去官方下载也可去github下,目前最新的是0.17.6版。当然国内的网盘里也有,这样就不用fan.qiang了。下载后解压即可使用,很方便。
  目前的Appium版本需.net4.5及以上支持,故要想使用Appium还需安装.net4.5.1,可以去微软下载.net4.5.1,当然网盘里也有了,呵呵。
  由于Appium使用了Selenium来进行自动化测试,所以还需安装Selenium,网盘里有下载,Selenium下载地址。下载后解压,切换目录到解压目录,然后执行python setup.py install即可安装Selenium,当然如果您熟悉pip 也可以用pip install Selenium来安装。
  安装、配置Android模拟器
  我们打算在模拟器上使用appium进行自动化测试,故首先得下载安装android开发环境,IDE开发环境配置好以后就可以通过eclipse创建一个android手机模拟器了。
  下载JDK与配置JDK
  下载JDK,下载之后双击压缩包并安装,一路默认下去即可完成,jdk安装到了C:Java目录下了,其下有两个文件夹jdk1.6.0_13和jre6。
  配置jdk比较简单将C:Javajdk1.6.0_13bin目录添加到系统环境变量path里,记住前加分号,之后确认即可。
  怎样测试java是否配置好?cmd之后键入java -verison
  下载android开发环境ADT-bundle
  可以去Google下载也可以去网盘下载android的集成开发环境。下载后解压到c:android目录下就行了。
  配置ADT
  将解压目录下的sdk下的tools和platform-tools目录添加到系统环境变量path里,记住前加分号,之后确认即可。
  怎样测试android的ADT是否配置好?进入c:androideclipse目录双击eclipse.exe,看能否正常启动、使用。
  新AVD模拟器
  启动eclipse,点击Eclipse软件的Windows菜单,选择其下的Android Virtual Device Manager菜单项,进入Android Virtual Device Manager其对话框后,点击左侧New按钮可新建android手机模拟器。在Create new Android Virtual Device Manager对话框的name文本框内给要创建的模拟器起个名字,例如testAVD01。在Device列表框内选择2.7 QVGA 240 X320 ldpi,在选择了Device后,target列表框自动选择了android 4.4 API Level 19{现在已安装的开发环境里只有一套API,读者可自行安装其他API,届时可任选其他API作为自己测试平台}默认即可,其他选项此时可以不做选择默认设置即可,点击对话框的OK按钮确认,即可创建Android 模拟器。
  启动android模拟器
  cmd之后键入 emulator @testAVD01,等待数秒之后android手机模拟器启动。
  安装、配置Python
  这步比较简单,下载Python后默认安装即可。配置只需把c:python27目录加到系统环境变量path后即可,记住前加分号。cmd之后键入python如果见到3个大于号即证明python安装配置成功。Appium自动化测试流程
  启动android手机模拟器
  cmd之后键入 emulator @testAVD01,等待数秒之后android手机模拟器启动。
  另起一个cmd键入adb devices查看模拟器是否正常启动了。
  启动Appium
  进入appium解压目录,双击appium.exe文件,点击launch即可。
  基于Appium的Python自动化测试
  编写代码

from selenium import webdriver
# Returns abs path relative to this file and not cwd
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)
desired_caps = {}
desired_caps['device'] = 'android'
desired_caps['browserName'] = ''
desired_caps['version'] = '4.2'
desired_caps['app-package'] = 'com.android.calculator2'
desired_caps['app-activity'] = '.Calculator'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 点击计算器上的数字和运算符
el = driver.find_element_by_name("1")
el.click()
el = driver.find_element_by_name("5")
el.click()
el = driver.find_element_by_name("9")
el.click()
el = driver.find_element_by_name("delete")
el.click()
el = driver.find_element_by_name("9")
el.click()
el = driver.find_element_by_name("5")
el.click()
el = driver.find_element_by_name("+")
el.click()
el = driver.find_element_by_name("6")
el.click()
el = driver.find_element_by_name("=")
el.click()
driver.quit()

  执行代码
  另起cmd,切到python代码所在目录,执行python xxx.py即可见模拟器在被操作了。

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
1天前
|
运维 监控 安全
构建高效自动化运维体系:策略与实践
【4月更文挑战第25天】在数字化转型的浪潮中,企业IT基础设施日趋复杂多变,传统的手动运维模式已难以满足快速响应和高效管理的需求。本文探讨了构建一个高效自动化运维体系的关键环节,并结合实际案例分析,提出了一系列切实可行的策略与实践方法。文章着重分析了自动化工具选择、流程设计优化以及持续监控的重要性,并讨论了如何通过这些手段降低运维成本,提升系统稳定性和安全性。
|
1天前
|
测试技术 API Python
Appium控件交互策略:优化自动化测试效率的关键方法
该文介绍了如何使用Selenium与APP进行交互,包括点击、输入和状态判断等操作。例如,通过element.click()点击控件,element.send_keys()输入文本,以及element.is_displayed()检查元素是否可见。还展示了如何获取元素属性,如resource-id、text和class,并提供了Python代码示例来定位并操作APP元素,如滑动条的显示、可点击性检测及点击滑动条中心位置。在编写测试脚本时,应注意元素定位和状态验证以确保测试稳定性。
8 1
|
1天前
|
人工智能 运维 监控
构建高效自动化运维体系的五大关键步骤
【4月更文挑战第25天】 在现代IT架构的复杂多变环境中,传统的手动运维方式已无法满足快速迭代与稳定性的双重要求。本文将深入探讨构建一个高效自动化运维体系的关键步骤,涵盖从工具选型到流程优化的全方位考量。通过引入自动化工具、实施标准化流程、建立监控预警机制、持续集成与部署以及文档化管理,组织能够实现运维效率的显著提升,确保系统的稳定性和可靠性。
5 0
|
1天前
|
存储 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的协同策略
【4月更文挑战第25天】 在当今快速迭代的软件开发过程中,自动化运维已成为提升效率、保证一致性和降低人为错误的关键。本文将探讨如何利用Ansible作为配置管理工具,以及Kubernetes作为容器编排系统,共同构建一个高效、可靠的自动化运维体系。文章首先概述了自动化运维的基本概念及其重要性,随后详细分析了Ansible与Kubernetes在自动化流程中的作用与优势,并通过一系列实践案例,展示了两者如何协同工作以优化部署、扩缩容和灾难恢复等关键运维任务。最后,文中还讨论了在实际应用中可能遇到的挑战及相应的解决策略,为读者提供了一套完整的自动化运维解决方案参考。
|
6天前
|
Web App开发 JavaScript 前端开发
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第20天】 在软件测试领域,自动化测试已成为提升测试效率和确保产品质量的关键手段。Selenium作为一款广泛使用的开源自动化测试框架,其设计精巧且功能强大,为Web应用提供了一种灵活、高效的测试解决方案。本文将深入探讨Selenium的核心架构与实现细节,解析其如何通过模拟用户操作来执行测试用例,以及它如何适应不断变化的Web技术标准。通过对Selenium内部机制的剖析,旨在帮助测试工程师更好地掌握该工具,并在测试实践中发挥其最大效能。
|
8天前
|
监控 测试技术 数据安全/隐私保护
如何将代理IP集成到自动化测试框架中?
如何将代理IP集成到自动化测试框架中?
|
10天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
15 1
|
11天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。
|
11天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
12天前
|
监控 测试技术 API
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第14天】在软件开发过程中,自动化测试是确保代码质量、减少人工重复劳动的关键步骤。Selenium作为一款广泛使用的自动化测试工具,提供了对多种浏览器和操作系统的支持。本文将探讨Selenium的核心组件及其架构设计,分析其如何通过WebDriver与浏览器交互,以及它如何支持多种编程语言进行脚本编写。同时,我们还将讨论Selenium Grid的作用以及它如何实现并行测试,以缩短测试周期并提高测试效率。
178 59