Appium IOS 自动化测试初探

简介:
手机平台的自动化测试工具很多,之前研究过了安卓和苹果的原生自动化测试框架,经一些同事介绍,貌似Appium是个不错的工具。
  想记录一下研究的结果,也算是篇干货的文章
  在网上也看了一些视频,个人认为这个自动化测试的特点就是
  1. 多编程语言支持
  相对于传统的IOS UIautomation只能支持js语言,Appium起到了一个翻译的作用,它其实是一个CS架构,服务器和IOS模拟器或真机直接通讯,客户端和服务器之间用HTTP协议进行交互,所以客户端用什么语言其实不重要。下面会有一个python编程的实际例子。
  2. 远程测试支持
  正如上面说的,客户端和服务器之间用HTTP协议通讯,那么也就是说,客户端可以和服务器在同一台机器或者不同的机器。
  3. 较好的录制功能
  Appium提供了一个很好的录制工具,可以让程序员一步一步的把步骤进行精确的录制
  4. 单步调试
  程序员可以利用高级脚本语言,比如Python对被测程序进行单步调试,比如一条命令对应一个UI动作
  如何使用appium,基于2014年5月份发布的appium 1.0来说,大约是这样的,
  你必须要有xcode进行自动化测试的基础,如果没有的话,请先补习
  A. 如果是模拟器测试
  1. 选择应用安装包的位置
  2. 再选择期望的模拟器平台,IOS版本,再点Launch就可以了
  3. Launch之后会发现什么都没有,其实Appium已经运行了,请注意运行的窗口中有没有错误
  4. 下面就是录测试用例,点击一个蓝色的底,白色的i的按钮
  5. 过一段时间后就会出现inspector的窗口
  6. 下面是一个例子,比如我要点一个按钮,
  6.1 首先现在左边的树形窗口里面找到一个按钮的位置,有点类似Firebug找网页控件
  6.2 然后在下面的动作框选择你想要的动作,点击就是Tap,然后你会发现这个按钮真的被点击了(这是一个单步调试很直观的例子)

  8. 如何重录测试
  8.1 关掉inspector,
  8.2 代码需要稍微的修改,Python的代码录出来居然有语法错误,这里给个例子,对照看就好了(当然必要的python库必须安装)
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.common.action_chains import ActionChains
import time
import os
import selenium
success = True
desired_caps = {}
desired_caps['browserName'] = 'iOS'
desired_caps['platform'] = 'Mac'
desired_caps['version'] = '6.1'
desired_caps['device'] = 'iPad'
desired_caps['app'] = os.path.abspath('/Users/marshall/Library/Developer/Xcode/DerivedData/TestAutomation-empzzpwyyxctxidnwdsrtlssueqi/Build/Products/Debug-iphonesimulator/TestAutomation.app')
wd = selenium.webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)
wd.implicitly_wait(60)
def is_alert_present(wd):
try:
wd.switch_to_alert().text
return True
except:
return False
try:
wd.find_element_by_name("First").click()
wd.find_element_by_name("Second").click()
finally:
wd.quit()
if not success:
raise Exception("Test failed.")
  8.3 运行代码,查看测试结果
  B. 如果是真机测试
  真机测试其实遇到了些问题,我大概说一下我的步骤
  1. 配置应用的BundleID和设备的UDID
  BundleID不知道怎么看的请用itools
  UDID不知道怎么找的请用iTunes或itools
  应用必须是你自己的开发者账号签名过的
  2. Launch Appium
  3. 点击inspector的按钮,接下来应用会显示在iPad上,但是过一会就会闪退(我试了好几个应用都有这个问题),我已经给Appium报告了一个bug,看看会不会有回复吧。
  如果有人在真机上成功使用inspector的,也请留言分享一下


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
1月前
|
移动开发 安全 数据安全/隐私保护
iOS 全局自动化代码混淆工具!支持 cocoapod 组件代码一并混淆
iOS 全局自动化代码混淆工具!支持 cocoapod 组件代码一并混淆
|
4月前
|
XML Java 测试技术
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
171 3
|
4月前
|
编解码 Java 测试技术
『App自动化测试之Appium应用篇』| uiautomator + accessibility_id定位方法完全使用攻略
『App自动化测试之Appium应用篇』| uiautomator + accessibility_id定位方法完全使用攻略
126 0
|
4月前
|
XML 测试技术 开发工具
『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程
『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程
76 4
|
4月前
|
移动开发 安全 测试技术
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
84 0
|
1月前
|
iOS开发
iOS自动混淆测试处理笔记
iOS自动混淆测试处理笔记
12 0
|
1月前
|
机器学习/深度学习 测试技术 API
iOS系统下轻松构建自动化数据收集流程
iOS系统下轻松构建自动化数据收集流程
26 0
|
2月前
|
iOS开发
  iOS 自动混淆测试处理笔记
  iOS 自动混淆测试处理笔记
|
2月前
|
Java 测试技术 API
安卓APP和iOS APP在测试上的区别是什么?
安卓APP和iOS APP在测试上的区别是什么?
|
3月前
|
人工智能 测试技术 iOS开发
iOS性能指标和性能测试工具
iOS性能指标和性能测试工具

热门文章

最新文章