分享

Appium--Appium Desktop环境配置

 wenxuefeng360 2022-07-02 发布于四川

简介

Appium是可以用于native app(原生应用)、web app(web应用)及hybrid app(混合模式)的自动化测试框架。它使用的是WebDriver协议

一些概念

在开始学习之前,介绍一点必要的概念,对理解Appium框架是很有好处的。

C/S模型

Appium的核心是一个支持REST API的web服务器。因为它是一个服务器,所以,对应地,就有客户端。客户端与服务器间建立连接,客户端向服务器发送命令,服务器接收并执行这些命令,最后再将这些命令的结果返回给客户端。

Session(会话)

Appium的自动化工作都需要在session的环境中完成。客户端给服务器发送一个请求POST /session,带上desired capabilities这个json对象,就可以开启一个session了。

desired capabilities

Desired capabilities是一组键值对(key-value),用来告诉服务器要启动怎样的session,说白了就是一些配置信息。

Appium Server/Appium Desktop

Appium是用Node.js编写的,你可以通过源码编译安装,当然,也可以直接使用npm。

不过,我安装的是Appium Desktop,它对Appium Server进行了GUI封装,集成了运行Appium server所需的组件,还带了appium Inspector(检查工具),可以用它检查app的层级结构(与Chrome DevTools的“检查”类似)。

Appium Client

Appium支持的客户端库有:Java、Ruby、Python、PHP、JS和C#等。你可以根据你实际的编程经验选择对应语言的客户端库。

下载

环境说明

尽管appium支持在多个操作系统上使用,但为了让环境更通用易得,笔者采用的是windows系统(如Windows 7和Windows 10)和Android设备,使用python进行Appium Case的编写。

Client Libraries

python版的客户端库下载地址https://pypi./pypi/Appium-Python-Client

其它客户端库下载地址http:///downloads.html

Desktop Apps

Windows版本下载地址https://github.com/appium/appium-desktop/releases/download/v1.0.0/appium-desktop-Setup-1.0.0.exe

appium-desktop-Setup-1.0.0.exe运行后直接安装在C盘,不能修改安装路径。

其它系统下载地址https://github.com/appium/appium-desktop/releases/tag/v1.0.0

其它

Java JDK

安装Java JDK,并设置JAVA_HOME为JDK的路径,将JDK的bin目录添加到PATH变量中。

Android SDK

安装Android SDK(Level17或更高版本api),设置ANDROID_HOME为Android SDK的路径,并将toolsplatform-tools目录添加到PATH变量中。

编程语言

因为打算使用Python编写Case,所以需要安装python,这里选择的版本是Python2.7

安装后请安装python版的客户端库,后续根据需要,还将安装其它python库。

环境使用

运行Appium Server

  1. 双击appium的快捷方式,打开appium desktop的界面;

图片

  1. 点击“Start Server v1.6.4”按钮,弹出Appium Server的运行界面;

图片

启动Appium session

  1. 连接一个安卓真机,该设备需要打开USB调试,获取设备名称:

adb devices
List of devices attached
55546a4c7ce4    device
  1. 点击上图中的“Start New Session”,弹出session配置界面,在启动Session之前,需要配置Desired Capabilities:

    图片

  2. 如图,设置了platformNameplatformVersiondeviceName后,点击“Start Session”,出现提示信息:即,desired capabilities必须包含app、appPackage或browserName 

图片

以下,以app和appPackage两种capability来说明配置方法:

  • app

        

图片

app的值为你电脑本地的apk文件。

点击“Start Session”,该apk会自动安装到设备中并运行,最终出现该apk的appium调试界面:

图片

  • appPackage

    设置appPackage后创建Session是不可以的,还需要launchable activity name

图片

添加appActivity的键值对:

图片

其中,

appPackage的值为设备中某app的包名;

appActivity为该包名的launchable activity name;

点击“Start Session”后,该app自动启动,最终出现该apk的appium调试界面:

图片

总结

  1. 整个过程中遇到了一些报错和阻碍,但经过搜索就得到了解决,不再一一分享具体过程,如:

    5037端口被占用、锁屏间隔时间太短、设备默认不支持usb安装app等等。

  2. 为了快速地熟悉appium,建议多点击Appium Desktop工具的各个菜单,先混个脸熟;

  3. 可以在输入不同组合的Desired Capabilities的键值后就创建Session,“以试错的方式”来熟悉它相当不错;

相关知识

native app、web app和hybrid app

Native App(原生应用)是一种基于智能手机本地操作系统(如iOS、Android等)并使用原生程式编写运行的第三方应用程序,也叫本地app。

Web App就是运行于网络和标准浏览器上,基于网页技术开发实现特定功能的应用。

Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App。Hybrid App同时使用网页语言与程序语言开发,总体特性更接近Native App但是和Web App区别较大。

WebDriver协议

详见:https://www./TR/webdriver/

REST API

详见:http://www./

根据包名获取launchable activity name

进入adb shell中:

pm dump com.gudong.client | grep -A 1 MAIN
android.intent.action.MAIN:
   966df8 com.gudong.client/.LoadActivity

那么,.LoadActivity就是该app的launchable activity name。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多