作者:cryanimal QQ:164166060

本文简要介绍了appnium自动化框架的架构、加载流程、支持语言、相关配置,以及元素定位工具等。

官方网站:

http://appium.io

Appnium是由SauceLabs支持,一家业界领先的测试产品公司, 有成熟的企业测试解决方案

Appium支持的平台

  • Android上使用了instrumentation和uiautomator两套技术
  • iOS使用uiautomation
  • 同时还支持firefox, 并可扩展其他平台

Appium的优点

  • 跨架构,native hybrid webview
  • 跨设备,android iosfirefoxos
  • 跨语言,java python ruby nodejsphp
  • 跨app, 可以在多个app之间交互
  • 不依赖源代码
  • 不限制测试框架和平台

Appium在Android上的架构

Appium在iOS上的架构

Appium的安装

详见:http://blog.csdn.net/kaka1121/article/details/51698700

Appium的启动,上文中也有详解

通过命令:Appium–help 可以看到一些可选参数

默认开启4723端口接受webdriver请求

默认开启4724用于和android通讯

视频演示:http://v.youku.com/v_show/id_XNjM0ODIxNTUy.html

Appium自动化所需工具及android开发环境安装

依赖工具包括uiautomatorviewer、abd、DDMS等

详见:http://blog.csdn.net/kaka1121/article/details/51698745

Appium的加载流程

Appium支持主流语言

Appium webdriver的capabilities配置

Capabilities是由客户端发送给Appium服务器端的用来告诉服务器去启动哪种我们想要的会话的一套键值对集合。当中也有一些键值对是用来在自动化的过程中修改服务器端的行为方式。

必填的项目

deviceName :我无论填写什么值,在我机器上都可以跑通测试,但是这项又是必填。我用得Appium版本是V1.2.2。

app :如果填写了,appium会在目标机器上安装测试目标app,如果没有的话,会根据appActivity和appPackage去目标机器查找目标app

appPackage : 可以通过sdk自带工具aapt获得

appActivity:同样可以通过以上工具获得。

有一点需要注意的是,值可以附加packageName,也可以不附加。

也就是说以下两种填写方式都是对的“.NotesList”和”com.example.android.notepad.NotesList”

通用配置:

android only:

IOS ONLY

配置原文参见:http://blog.sina.com.cn/s/blog_700be1c00102vgha.html

java Demo示例

详细情况,参见我的另一篇博文

元素定位

  • Android和iOS的原生控件以及webview控件映射为特定的命名, 比如把所有平台的按钮映射为button元素
  • 把当前的结构树映射为html文档
  • 通过xpath来选择元素

三种定位方式

  • Name: id,label text
  • Tag_name: component type
  • Xpath

查看元素的属性以及xpath,使用uiautomatorview

元素交互

Webdriver已经支持

  • 点击
  • 输入
  • 按键事件

Mobile相关:

  • 拖动
  • 划动
  • 长按

附录:业界top框架综合对比

最新文章

  1. HTML5 的一些小的整理吧
  2. WPF下的Richtextbox中实现表格合并,添加删除行列等功能
  3. -XX:+PrintGCTimeStamps 打印CG发生的时间戳
  4. java 、android 知识图谱
  5. object-c实现的 在PHP中oauth加密算法
  6. 【Mongous】write after end
  7. hdu 5144 NPY and shot
  8. Linux 基本命令(持续更新ing)
  9. SmartBusinessDevFramework架构设计-1:结构简介
  10. ViewPager+Fragment取消预加载(延迟加载)
  11. Java下拼接执行动态SQL语句(转)
  12. Linux 学习记录 一(安装、基本文件操作).
  13. 解决NTPD漏洞,升级Ntpd版本
  14. python RE模块的使用
  15. 集群技术(二) MySQL集群简介与配置详解
  16. Linux时间子系统之三:时间的维护者:timekeeper
  17. 服务器资源迁移到aliyun对象存储及oss的权限管理配置
  18. C# 从配置文件中读取/写入信息
  19. Vue stage2
  20. Django框架之第二篇

热门文章

  1. [LeetCode] Sentence Similarity 句子相似度
  2. [LeetCode] Largest Palindrome Product 最大回文串乘积
  3. Redis常用命令--SortedSet
  4. github学习(三)
  5. 51 nod 1023 石子归并 V3(GarsiaWachs算法)
  6. 【HNOI2016】序列 莫队+单调栈+RMQ
  7. NOIP 2013
  8. 网络编程基础API
  9. [bzoj4755][Jsoi2016]扭动的回文串
  10. quartz问题记录-missed their scheduled fire-time