美文网首页pythonIT实用分享python
简单的Appium+python自动化小实例

简单的Appium+python自动化小实例

作者: 张小Di | 来源:发表于2019-04-17 16:59 被阅读32次

    上篇文章介绍了Appium环境配置(安装的是Appium-desktop,版本号为1.12.1)

    接下来通过Appium进行简单的自动化实战

    1. 首先,用户需要连接手机设备/虚拟机,然后,桌面启动应用后并启动appium服务。

    通过adb devices可查看设备是否连接成功,并获取到设备的信息

    连接设备.png
    也可通过adb logcat>e:/log.txt将设备运行的日志保存到相应的路径,此时只需要运行需要测试的APP就行了,可以在日志中找到测试的包名及需启动的Activity,如下:
    日志信息.png
    2. 点击左上角配置入口,如下图
    Appium主界面.png
    3. 在配置信息页面,初始化设备信息

    操作系统(platformName),系统版本号(platformVersion),设备名称(deviceName),所测试的应用的包名(appPackage),及启动的Activity参数(appActivity),配置如下:


    配置信息.png
    4. 最后点击配置信息弹窗右下角的startSession即可启动

    启动后,Appium desktop中即可看到相关日志

    接下来实现appium+python实现自动化测试

    1. 通过pip install Appium_Python_Client安装

    之前已经安装过Appium了,为什么还要下载Appium_Python_Client呢?
    Appium是一个服务,Appium_Python_Client是让python连接Appium服务的驱动,即python语言封装和Appium api通讯的一个库

    2. 通过python初始化设备基础信息,代码如下:
    
    from appium import webdriver
    
    desired_caps={}
    desired_caps["platformName"]="Android"
    desired_caps["platformVersion"]="8.0"
    desired_caps["deviceName"]="emulator-5554"
    desired_caps["appPackage"]="com.android.calculator2"
    desired_caps["appActivity"]=".Calculator"
    #设置收到下一条命令的超时时间,超时时Appium会自动关闭session,默认为60s
    desired_caps["newCommandTimeout"]="300"
    #webdriver.Remote实际上就是原生selenium webdriver的字类
    #新建driver时须指定一个desired_caps对象
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
    
    3. 定位操作元素并操作
    #通过id定位到需要操作的元素
    driver.find_element_by_id('com.android.calculator2:id/digit_3').click()
    driver.find_element_by_id('com.android.calculator2:id/op_mul').click()
    driver.find_element_by_id('com.android.calculator2:id/digit_3').click()
    driver.find_element_by_id('com.android.calculator2:id/eq').click() 
    driver.quit()   # 最后记得退出
    
    

    操作元素的信息是怎么获取到的呢?
    方法一:
    通过Android SDK自带的Uiautomatorviwer工具获取页面元素信息,操作如下,可获取到操作元素的id class等信息,同时也可知道包名,如下图:

    Uiautomatorviwer.png
    方法二:
    通过Appium获取元素信息,通过上面的操作,startSession后,Appium会自动获取设备操作页面信息,用户将鼠标定位至需要获取的元素上后,即可获得元素的信息,如下:
    image.png
    参考文档:
    我的Appium学习记录——从搭建环境到一个简单Android App测试实例
    获取安卓app的appPackage和appActivity
    appium、appium-python-client 有什么不同作用?另外 appium-python-client 安装的时候会把我旧版本的 selenium 卸载然后装很新版本的 selenium,原理又是什么呢?

    相关文章

      网友评论

        本文标题:简单的Appium+python自动化小实例

        本文链接:https://www.haomeiwen.com/subject/xrufwqtx.html