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()
  • 相关阅读:
    Palindrome Linked List 解答
    Word Break II 解答
    Array vs Linked List
    Reverse Linked List II 解答
    Calculate Number Of Islands And Lakes 解答
    Sqrt(x) 解答
    Find Median from Data Stream 解答
    Majority Element II 解答
    Binary Search Tree DFS Template
    188. Best Time to Buy and Sell Stock IV
  • 原文地址:https://www.cnblogs.com/lixuefang69/p/10628192.html
Copyright © 2011-2022 走看看