zoukankan      html  css  js  c++  java
  • appium操作

    我是一名测试萌妹,欢迎关注我的公众号

    这里以开发者头条APP为例,演示下APP自动化过程

    一、操作前准备事项

    appium运行的相关环境都配置好后。还要进行一些操作。

    1.下载被测试的APP应用。

    2.运行appium server,就是点击appium desktop

    • 启动后,点击advanced按钮,勾选选项Allow Session Override。如下图:
    • 点击stat server启动appium server

    3.启动被测APP运行环境,要么真实设备,要么模拟器

      3.1连接真实设备,尽量原装数据线连接电脑,否则可能 连不上。

      3.2然后手机要进入开发者模式,USB调试打开

    这里举例Genymotion模拟器讲。

    把刚才下载的开发者头条APP安装到模拟器中,就是将apk文件从文件管理器拖拽到虚拟手机设备窗口。

    测试自动化任务:自动登录,需要事先注册账户

    二、利用Python编写APP自动化代码并运行

    在 pycharm编辑自动化代码

    from appium import webdriver
    import time,traceback


    # 这里定义的 desired_capabilities,作为下面 webdriver.Remote
    # 初始化一个webdriver的参数。
    # 这些键值对告诉appium server 测试程序希望进行的是什么什么样的测试
    # 比如下面 platformName 和 platformVersion 两个配置项
    desired_caps ={}
    desired_caps['platformName'] = 'Android'--测试平台,不能写错
    desired_caps['platformVersion'] = '9'--平台版本,不能写错
    #android手机不一定要有,iOS手机一定要有deviceName
    desired_caps['deviceName'] ='Huawei'--设备名称

    desired_caps['app'] = r'F:\apk\toutiao.apk'--apk文件路径名,如果设备还没此APP,则会安装
    #不是根据它的路径而是appid ,也就是这package name
    desired_caps['appPackage'] ='io.manong.developerdaily'--apk包名,一定要有,是每个APP的ID,标识该APP

    #启动的activity
    desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity'--APP默认activity,就是启动页第一次进入的页面
    # 一定要有该参数,否则测试过程中无法输入中文
    desired_caps['unicodeKeyboard'] = True

    #自动化结束后恢复原始数据模样
    desired_caps['resetKeyboard'] =True

    #保证了App测试前不会清除应用数据,缺省是会清除数据的。
    desired_caps ['noReset'] = True
    #appium server 认为和客户端之间无响应最大时间 超过将就会停止服务
    desired_caps['newCommandTimeout'] = 6000


    注意:
    如何获取apk包名和启动页activity
    方法一:咨询开发
    方法二(推荐):进入本地Android SDK中build-tools文件下--打开cmd窗口--执行命令【aapt.exe dump badging apk路径
    aapt.exe不是文件夹,所以别忘了输入


    #appium server 在这个URI上接受客户端发送的rest API
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    #下面操作自动化登录的过程
    try:
    driver.implicitly_wait(10)
    driver.find_element_by_id('io.manong.developerdaily:id/tab_bar_plus').click()
    time.sleep(1)
    driver.find_element_by_id("io.manong.developerdaily:id/btn_email").click()
    time.sleep(1)

    # 输入用户名、密码
    ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_email")
    ele.send_keys('jcyrss@163.com')
    ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_password")
    ele.send_keys('sdfsdf')

    time.sleep(2)
    # 点击登录
    driver.find_element_by_id('io.manong.developerdaily:id/btn_login').click()
    pass

    except:
    print (traceback.format_exc())


    input('**** Press to quit..')
    driver.quit()
  • 相关阅读:
    关于C++顺序容器一致初始化的问题
    44. 通配符匹配(Wildcard Matching)
    76. 最小覆盖子串(Minimum Window Substring)
    72. 编辑距离(Edit Distance)
    首入大观园
    删除链表的倒数第N个节点
    目标和
    克隆图
    最长回文子串
    旋转矩阵
  • 原文地址:https://www.cnblogs.com/lixuefang69/p/10628192.html
Copyright © 2011-2022 走看看