• Appium IOS 自己主动化測试初探


    手机平台的自己主动化測试工具非常多,之前研究过了安卓和苹果的原生自己主动化測试框架。经一些同事介绍,貌似Appium是个不错的工具。

    想记录一下研究的结果,也算是篇干货的文章

    在网上也看了一些视频。个人觉得这个自己主动化測试的特点就是


    1. 多编程语言支持

    相对于传统的IOS UIautomation仅仅能支持js语言,Appium起到了一个翻译的作用,它事实上是一个CS架构。server和IOS模拟器或真机直接通讯,client和server之间用HTTP协议进行交互,所以client用什么语言事实上不重要。以下会有一个python编程的实际样例。


    2. 远程測试支持

    正如上面说的,client和server之间用HTTP协议通讯。那么也就是说,client能够和server在同一台机器或者不同的机器。


    3. 较好的录制功能

    Appium提供了一个非常好的录制工具。能够让程序猿一步一步的把步骤进行精确的录制


    4. 单步调试

    程序猿能够利用高级脚本语言。比方Python对被測程序进行单步调试,比方一条命令相应一个UI动作


    怎样使用appium,基于2014年5月份公布的appium 1.0来说,大约是这种,

    你必需要有xcode进行自己主动化測试的基础,假设没有的话,请先补习


    A. 假设是模拟器測试

    1. 选择应用安装包的位置

    2. 再选择期望的模拟器平台,IOS版本号,再点Launch就能够了



    3. Launch之后会发现什么都没有,事实上Appium已经执行了。请注意执行的窗体中有没有错误

    4. 以下就是录測试用例,点击一个蓝色的底,白色的i的button

    5. 过一段时间后就会出现inspector的窗体



    6. 以下是一个样例,比方我要点一个button,

         6.1 首先如今左边的树形窗体里面找到一个button的位置,有点类似Firebug找网页控件

         6.2 然后在以下的动作框选择你想要的动作,点击就是Tap,然后你会发现这个button真的被点击了(这是一个单步调试非常直观的样例)



    7. 怎样把录制变成脚本

    7.1 首先要点击inspector窗体的Recordbutton

    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的button,接下来应用会显示在iPad上。可是过一会就会闪退(我试了好几个应用都有这个问题),我已经给Appium报告了一个bug,看看会不会有回复吧。

    假设有人在真机上成功使用inspector的。也请留言分享一下



  • 相关阅读:
    [毕业设计]多文档自动摘要.面向灾害事件
    windows,无法启动承载网络,解决办法
    【现代程序设计】【期末作业】【homework-09】
    ColorNote.疑难解答
    【现代程序设计】【homework-08】
    【现代程序设计】【homework-07】
    【现代程序设计】【homework-05】
    【现代程序设计】【homework-04】
    homework-10
    homework-06&homework-09
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6970147.html
Copyright © 2020-2023  润新知