美文网首页appiumAppium知识点汇总
使用python编写appium用例

使用python编写appium用例

作者: adonisjph | 来源:发表于2016-08-01 10:44 被阅读1315次

    Appium 服务关键字

    关键字 描述 实例
    automationName 你想使用的自动化测试引擎 Appium (默认) 或 Selendroid
    platformName 你要测试的手机操作系统 iOS, Android, 或 FirefoxOS
    platformVersion 手机操作系统版本 例如: 7.1, 4.4
    deviceName 使用的手机类型或模拟器类型 iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等。在 iOS 上,这个关键字的值必须是使用 instruments -s devices 得到的可使用的设备名称之一。在 Android 上,这个关键字目前不起作用。
    app .ipa or .apk文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的.zip。 Appium会先尝试安装路径对应的应用在适当的真机或模拟器上。针对Android系统,如果你指定app-packageapp-activity(具体见下面)的话,那么就可以不指定app会与 browserName 冲突 比如/abs/path/to/my.apkhttp://myapp.com/app.ipa
    browserName 需要进行自动化测试的手机 web 浏览器名称。如果是对应用进行自动化测试,这个关键字的值应为空。 iOS 系统上可以用 'Safari' ,Android 系统上可以用 'Chrome', 'Chromium', 或 'Browser'。
    newCommandTimeout 设置命令超时时间,单位:秒。达到超时时间仍未接收到新的命令时 Appium 会假设客户端退出然后自动结束会话。 比如 60
    autoLaunch Appium是否需要自动安装和启动应用。默认值true true, false
    language (Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的语言。 如: fr
    locale (Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的区域设置。 如: fr_CA
    udid 连接的物理设备的唯一设备标识 如: 1ae203187fc012g
    orientation (Sim/Emu-only) 在一个设定的方向模式中开始测试 LANDSCAPE (横向) 或 PORTRAIT (纵向)
    autoWebview 直接转换到 WebView 上下文。 默认值 false true, false
    noReset 不要在会话前重置应用状态。默认值false true, false
    fullReset (iOS) 删除整个模拟器目录。(Android) 通过卸载——而不是清空数据——来重置应用状态。在 Android 上,这也会在会话结束后自动清除被测应用。默认值 false true, false

    Android特有

    关键字 描述 实例
    appActivity 你要从你的应用包中启动的 Android Activity 名称。它通常需要在前面添加 . (如:使用.MainActivity 而不是 MainActivity) MainActivity, .Settings
    appPackage 你想运行的Android应用的包名 比如com.example.android.myApp, com.android.settings
    appWaitActivity 你想要等待启动的 Android Activity 名称 SplashActivity
    deviceReadyTimeout 设置等待一个模拟器或真机准备就绪的超时时间 5
    enablePerformanceLogging (仅适用于 Chrome 和 webview) 开启 Chromedriver 的性能日志。 (默认 false) true, false
    androidDeviceReadyTimeout 等待设备在启动应用后准备就绪的超时时间。以秒为单位。 30
    androidDeviceSocket 开发工具的 socket 名称。只有在被测应用是一个使用 Chromium 内核的浏览器时需要。 socket 会被浏览器打开,然后 Chromedriver 把它作为开发者工具来进行连接。 chrome_devtools_remote
    chromedriverExecutable webdriver 可执行文件的绝对路径 (如果 Chromium 核心提供了对应的 webdriver, 应该用它代替 Appium 自带的 webdriver) /abs/path/to/webdriver
    stopAppOnReset 在使用 adb 启动应用前停止被测应用的进程 ( process ) 。如果被测应用是被另一个应用创建的,当这个参数被设定为 false 时,允许另一个应用的进程在使用 adb 启动被测应用时继续存活。默认值 true truefalse

    在这里需要注意的就是 appActivity,appPackage这两个参数,是安卓测试所必须的,这两个参数的获取方法在之前的adb命令介绍中有讲到。

    appium的测试用例支持多种语言,这里选用python进行编写。
    首先需要在python中安装appium python-client。

    安装 Appium Python client

    这里介绍三种方法安装appium python-client

    1. PyPi安装
      'Appium-Python-Client'.

      pip install Appium-Python-Client
      
    2. 通过下载源码安装PyPi.'Appium-Python-Client',
      download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).

      tar -xvf Appium-Python-Client-X.X.tar.gz
      cd Appium-Python-Client-X.X
      python setup.py install
      
    3. GitHub上下载安装.

      git clone git@github.com:appium/python-client.git
      cd python-client
      python setup.py install
      

    使用pycharm新建一个工程后,输入以下代码

    # -*- coding: utf-8 -*-
    from appium import webdriver
    from time import sleep
    
    desired_caps = {}desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '4.4'
    desired_caps['deviceName'] = 'galaxy s4'
    desired_caps['appPackage'] = 'com.sina.weibog3'
    desired_caps['appActivity'] = '.SwitchUser'
    
    dr = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    sleep(3)
    dr.find_element_by_id('com.sina.weibog3:id/etLoginUsername').send_keys('username')
    dr.find_element_by_id('com.sina.weibog3:id/etPwd').send_keys('password')
    dr.find_element_by_id('com.sina.weibog3:id/bnLogin').click()
    sleep(15)
    dr.quit()
    

    保存后,接下来连接真机运行一下demo

    android手机需要打开usb调试
    连接之后,打开命令行,输入adb devices,查看是否连接成功,记录下device name。

    appium -a 127.0.0.1 -p 4723  –U  4ca1558c  --no-reset
    
    Paste_Image.png

    当程序输出如上图信息的时候,表示appium启动成功,此时便可以运行测试脚本了。

    相关文章

      网友评论

        本文标题:使用python编写appium用例

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