app代理爬虫工具-Appium

一、Appium 简介

  1. Appium是一个开源的移动端自动化测试框架,旨在简化移动应用程序的自动化测试。
  2. 它具有跨平台的特性,能够测试原生、混合以及移动端的Web应用。
  3. Appium支持iOS、Android以及Firefox OS等多种移动操作系统。
  4. 作为跨平台工具,Appium能够在OSX、Windows和Linux等桌面系统上运行。
  5. 它支持多种编程语言,包括Ruby、Python、Java、JavaScript、Objective C、PHP、C#以及RobotFramework,使得开发者能够选择最熟悉的语言进行自动化测试。

二、Appium 原理

Appium的核心是一个暴露了一系列REST API的服务器。其工作原理如下:

  • Appium服务器监听一个指定的端口,等待客户端发送命令。
  • 客户端发送命令到Appium服务器,服务器将命令翻译并转换成移动设备可理解的形式。
  • 移动设备执行命令,并将执行结果返回给Appium服务器。
  • Appium服务器将执行结果返回给客户端。

这种基于REST API的设计使得Appium能够实现跨平台自动化测试,并且方便与云测试平台集成,提高了测试的灵活性和效率。

三、名词解释

  • 客户端(client):发起命令的设备,可以是代码或者测试脚本。
  • 会话(Session):是一个测试过程的回话,在会话开始后才能执行各种操作。
  • 期望的配置信息(Desired Capabilities):是启动会话时必须提供的配置信息,通过键值对的形式告诉Appium服务器如何处理测试任务。

下面是一些常用的期望的配置信息示例:

desired_caps = {}desired_caps['platformName'] = 'Android'desired_caps['platformVersion'] = '4.2'desired_caps['deviceName'] = 'Android Emulator'desired_caps['app'] = PATH('../../../apps/selendroid-test-app.apk')self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
desired_caps = {}desired_caps['platformName'] = 'iOS'desired_caps['platformVersion'] = '7.1'desired_caps['deviceName'] = 'iPhone Simulator'desired_caps['app'] = PATH('../../apps/UICatalog.app.zip')self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

四、期望的配置信息(Desired Capabilities)参数详解

期望的配置信息(Desired Capabilities)用于告诉Appium服务器如何处理测试任务,包括指定测试平台、设备信息以及应用程序的相关信息等。常用参数如下:

  • automationName:指定使用的自动化引擎,如Appium(默认)或Selendroid。
  • platformName:指定测试的移动平台,如iOS、Android或FirefoxOS。
  • deviceName:指定测试的设备名称,可以是真机或模拟器。
  • app:指定测试的应用程序路径,必须是绝对路径。
  • browserName:指定移动浏览器的名称,如iOS的Safari或Android的Chrome。
  • udid:指定物理设备的ID,用于真机测试。
  • appPackage:指定待测试应用程序的Java包名,仅适用于Android。
  • appActivity:指定待测试应用程序的Activity名称,仅适用于Android。

对于一些应用中文输入可能出现问题的情况,可以增加如下设置:

desired_caps["unicodeKeyboard"] = "True" desired_caps["resetKeyboard"] = "True"

更多详细参数请参考官方文档