CrayfishXu

专注Android,填坑铺路

0%

Appium自动化测试

配置环境

首先使用的自动化测试工具是Appium,需要Node.js的开发环境,使用的开发语言是Python。我做的是Android测试,自然还需要Android的环境,JDKAndroid SDK,需要配置环境变量,如何配置请自行百度。可以通过appium-doctor检测是否配置正确,npm命令安装npm install -g appium-doctor,接着执行appium-doctor,appium也可以使用npm install -g appium进行安装。

了解Appium

  • 启动appium桌面版服务

    桌面版操作很简单,启动应用程序后,输入host ip点击start server xxx,如图:

    appium_start

  • 配置变量

    配置如下变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    'platformName': 'Android'
    'platformVersion': '5.1' # 填写android虚拟机的系统版本 '5.1'
    'deviceName': '21.237.211.97' # 填写安卓虚拟机的设备名称'emulator-5554'
    'appPackage': 'com.wasu.test.ott' # 填写被测试包名 'com.wasu.test.ott'
    "autoLaunch": False #不自动重启launch
    'appActivity': 'com.wasu.plugin.home.ui.HomeMainActivity' # 填写被测试app入口'com.wasu.plugin.home.ui.HomeMainActivity'
    'unicodeKeyboard': True
    'resetKeyboard': True
    "automationName": "UiAutomator2" #"UiAutomator2" 4.4.2版本的用"UiAutomator1"
  • 操作appium桌面版界面

    随后通过start session启动,如图

    appium_start_session

  • 操作appium

    可获取视图中View的idxpath等各种属性

Appium脚本

  • 启动AppiumService

  • 获取webdriver

  • API举例说明

    1. 根据id获取View find_element_by_id

    2. 通过xpath获取View find_elements_by_xpath

    3. 获取当前页面的源 page_source

  • lxml解析page_source的xml树

    例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 找到视图页面
    pageSource = self.driver.page_source
    n = pageSource.find("\n")+1
    pageXml = pageSource[n:]
    # 转xml tree
    mytree = lxml.etree.XML(pageXml)
    result = mytree.xpath('//*[contains(@text,"错误代码")]')
    for a in result:
    tree = lxml.etree.ElementTree(a)
    xpath = tree.getpath(a)
    view = self.driver1.find_element_by_xpath(xpath)
  • 打包脚本为exe

    1. 安装插件pip install PyInstaller

    2. 使用pyinstaller -F Tools.py

    3. -i xx.ico 增加图标

导出依赖

导出 pip freeze >requirements.txt

安装依赖

安装 pip install -r requirements.txt