Appium IOS 自动化测试初探

来源:互联网 发布:腾讯qq微信红包数据 编辑:程序博客网 时间:2024/05/29 12:13
手机平台的自动化测试工具很多,之前研究过了安卓和苹果的原生自动化测试框架,经一些同事介绍,貌似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,然后你会发现这个按钮真的被点击了(这是一个单步调试很直观的例子)


 7. 如何把录制变成脚本
  7.1 首先要点击inspector窗口的Record按钮
  7.2 选择你需要的编程语言
  7.3 再继续重复你需要做的UI操作
  7.4 最后就是把代码拷贝出去
  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的,也请留言分享一下
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信注册忘记密码怎么办 旅行青蛙换手机iphone怎么办 网页邮箱添加不了附件怎么办 pos机密码忘了怎么办 在4楼上课地震了怎么办 微鲸电视待机打不开怎么办 苹果手机微信听不到语音怎么办 电信怎么办腾讯频看电视不要流量 孩子做事效率低怎么办教案 孩子做事效率低怎么办读后感 做事效率低总是焦虑怎么办 红米手机黑屏打不开怎么办 手机萤石云视频下载打不开怎么办 oppo打开网页视频慢怎么办? 晒课显示待提交怎么办 华为手机无法访问移动网络怎么办 晒课上传课堂实录太大怎么办 手机酷狗音乐下载要钱怎么办 手机酷狗下载要钱怎么办 酷我音乐没有声音怎么办 手机酷我音乐没有声音怎么办 酷我音乐歌曲下载收费怎么办 网易云下载超过每日上限怎么办 全民k歌领不了花怎么办 安卓全民k歌延迟怎么办 全民k歌唱歌延迟怎么办 全民k歌耳机延迟怎么办 word文档打开是乱码怎么办 全民k歌不能录音怎么办 全民k歌登录不上怎么办 平果手机迅雷闪退怎么办 电脑打开央视影音死机怎么办 先锋影音二级网页打不开怎么办 手机qq音乐登录失效怎么办 酷狗账号忘记了怎么办 手机qq音乐听不了歌怎么办 第一试用网密码忘了怎么办 玩h1z1画面卡顿怎么办 uu跑腿抢不到单怎么办 比特币加密忘了怎么办 路虎发现cd卡死怎么办