自动化测试之路 —— Appium使用教程

Posted Austin_zhai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试之路 —— Appium使用教程相关的知识,希望对你有一定的参考价值。

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。
📡主页地址:【Austin_zhai】
🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。

 
 

阅读目录

1.目的

  当今社会,人们的生活几乎已经无法离开形形色色的APP了,它提供给我们的便利与服务意义远远超出了其本身的软件价值。作为测试来说移动应用也早已是各大互联网公司的拳头产品,其本身的开发周期短,附属产品价值高等特性决定了今后的主导地位。

  那么在日常的测试活动中,移动应用的质量保障就成为了各个测试团队的主要课题,面对高速迭代的功能、日益缩短的项目周期、逐渐庞大的人力与资源投入,以上的这些因素都会让测试团队不得不在项目中加入自动化测试策略。

  Appium作为一个自动化移动应用测试框架来说,就可以很好的满足大部分移动应用测试的需求。作为当今仍然主流的自动化测试框架,各位测试同学要熟练的使用也就成为大家日常的基本内容之一。

 
 

2.说明

  1.此笔记的中所使用的操作系统为Win 10,笔记中所涉及的软件版本有可能会因为时间的推移而导致不匹配或其他额外的操作,请大家有针对性的选择阅读与参考。
  2.这里因操作系统关系,只针对安卓与鸿蒙OS来进行教程讲解,后续会推出ios的相关Appium安装与配置、日常使用教程。
  3.本文是使用Python语言配合Appium进行讲解,其他语言相关教程不在此做赘述。

 
 

3.接上回

  前一篇我们已经成功的配置了环境与安装Appium,服务也可以正常运行起来了。接下来就给大家展示一下日常工作中如何通过Appium开展相关工作。

 
 

4.连接设备

4.1 设置

首先将手机的开发者模式打开,不同手机的开启方法不同,这里演示的测试机为华为mate20X,其他机型的开启方法大家可以直接百度搜索。

 

进入手机的【设置】选项

 

进入【关于手机】

 

点击【版本号】7次,即可进入开发者模式

 

退回【设置】主菜单,选择【系统和更新】

 

选择【开发人员选项】

 

打开【USB调试】,如果不想每次调试都选择传输照片或传输文件的话可以打开【“仅充电”模式下允许ADB调试】

 
 

4.2 调试

如果已经跟着前一篇文章安装完adb并配置过环境变量的话,可以直接在cmd中进行设备连接调试。

 

使用数据线连接上手机,如果跳出USB调试确认框且电脑为自己信任的设备时,选择“始终允许使用这台计算机进行调试”并确定,否则只需要点确定即可。

 

在保持连接且已经授权USB调试的情况下,调出cmd,输入adb devices

如果连接成功就可以看到你的手机deivce id

 

device id 可以在手机的【设置】中的【状态消息】可以查到。

 

 

如果出现device not found,优先检查手机的驱动是否安装正确,也可以到硬件管理器中去查看对应的设备驱动是否异常。
这里推荐使用adb driver installer这个软件来安装对应的设备驱动,网上很多的,随便百度一下都有下载。

 

另外如果像图中显示出现了多个设备连接,其中一个的端口是5555 的话,后续的一些操作可以指定对应的device id去进行操作,比如adb -s XXXXXX(device id) shell来进行操作。


 

 
 

4.3 参数获取

我们想要通过Appium来运行相关APP,还需要获取与其相关的几个参数。

 

appPackage:包名,在android系统中是判断一个App的唯一标识。
appActivity:这里可以理解启动名或启动页。
platformName:设备的平台名,Android或iOS。
deviceName:设备名,这里填入刚才ADB里的device id即可。

 

以下为获取appPackage与appActivity的几种方法。

1.查看源代码

这里推荐这种方法,如果被测对象是自研的APP,直接问下对应开发同学,这两个参数的值就可以啦,省时省力。

 

2.使用ADB

在手机连接的状态下,先打开想操作的APP,之后在cmd中输入adb shell "dumpsys window | grep mCurrentFocus"即可查看对应APP的appPackage了。如果有多个设备,则需要先用adb -s XXXX shell来制定进入的设备,再输入dumpsys window | grep mCurrentFocus查看即可。

 

红框处的就是appPackage。但这里需要注意,因为你进入APP后可能会进行其他操作,所以当前APP所在的页面不一定是启动页面,所以appActivity的值不一定是对的。

 

这边我们使用monkey命令来进行appActivity的获取,使用命令adb shell monkey -p com.xxxxxxx(appPackage) -vvv 1来进行获取。

 

找到对应的appActivity名即可。

 

另外可以使用logcat来进行两者的快速查询。
首先启动你要获取的APP,接着将logcat的日志内容重定向到电脑的指定目录。adb logcat>E:/app_log.txt这样就讲日志文件重定向到了E盘根目录下,文件名叫app_log。操作完成后使用Ctrl+c结束这个命令。然后查看指定路径下的日志文件。

 

在日志文件中搜索Displayed关键字,可以直接找到appPackage与appActivity的对应值。

 

当然也还有其他很多的方法可以查看,这里仅介绍几种较为简单的获取方式作为抛砖引玉。

 
 

5.启动APP

5.1 启动Inspector

确保Appium-Server已经启动,并且连接手机。

 

然后启动Appium Inspector,一般通过Appium启动即可,如果没反应可以去官网单独安装Inspector。另外有些同学在使用了网页版的Inspector之后,点击放大镜的图标会提示如下报错:
Could not connect to server; are you sure it's running? If you are using the browser version, also ensure your Appium server has been started with --allow-cors.

解决的方法同上,在github或官网下载客户端版的Inspector,之后每次运行Appium Server之后直接启动Inspector客户端,无需再点击放大镜图标来开启Inspector。

 

启动后界面如下

 

画面自上而下,分别为:
Automatic Server:使用的为本地的服务IP与端口,用的最多的选项;
Custom Server:可以使用自定义的Appium服务,并发的时候会用到;
Select Cloud Providers:使用云服务商提供的服务;
Allow Unauthorized Certificates:代表允许使用未经授权的证书;
Use Proxy:使用代理;
Desired Capabilities:启动参数的配置;(常用项)
Saved Capability Sets:将已配置的参数进行模板保存;
Attach to Session:添加会话至。

 
 

5.2 配置Desired Capabilities

我们要启动APP就需要在Appium Inspector中填写对应APP的启动参数。
通过右边的加号来进行属性的添加

 

填入之前获取的各项参数

 

填写完成后后边会出现JSON格式的表示信息,然后点击【Start Session】即可启动APP。

 

启动时会在测试手机上安装Appiium的APP,启动完成后手机会自动打开你启动的APP,并且在Inspector上显示与APP同步的画面。

 
 

5.3 界面说明

自左向右,依次为:

Native App Mode:切换为原生APP模式;
 
Web/Hybrid App Mode:切换为混合APP模式,如果APP有内有小程序(Uni App)或者H5的话可以试试这个模式;
 
Select Elements:选择元素模式,在左侧预览窗口中鼠标的点击模式会变成元素的选取,而不是直接模拟点击的操作,类似于浏览器调试模式的Ctrl+Shift+C;

 

Swipe By Coordinates:使用坐标滑动,顾名思义,就是利用鼠标在A和B点分别进行点击,之后会根据点击的顺序与方向进行相应方向的滑动动作模拟;

 

Tap By Coordinates:使用坐标点击,类似于现实中的点击动作,用哪点哪,同步设备与预览窗的画面;
 
Back:退回上一步,类似手机的返回按钮;
 
Refresh Source & Screenshot:刷新资源与截图,一般在Select Element模式下用的比较多一点,在元素抓取的过程中如果需要查看功能互动或页面跳转的时候可以进行画面的刷新操作,但Swipe By Coordinates与Tap By Coordinates模式下就用不太到了;
 
Start Recording:开始录制,我们可以在打开这个选项后直接对APP的预览画面进行一些操作,Appium会自动帮我们把动作转换成指定语言的相关代码;

该功能不太推荐测试同学使用,特别是已经有简单代码基础的同学,它默认会使用xpath的定位方式。xpath的定位方式十分的脆弱,特别是绝对路径定位,一旦发生变化,脚本的维护就会变得十分的困难,如果一定要用,推荐使用相对路径的定位方法。
 

Search for element:搜索元素,我们可以根据各类元素的定位条件进行元素的相关搜索,方便我们快速定位。

 

Copy XML Source to Clipboard:复制页面元素,可以将该页面中所有的元素信息复制。
 
Quit Session & Close Inspector:关闭会话且关闭Inspector。

 

当我们选中一个元素后,被选中的元素会显示以下选项,自左向右依次为:

 

Tap:模拟点击;

Send Keys:如果为输入框的话可以使用这个选项来填写对应的内容;

 
Clear:可以对编辑框内的内容进行清除;
 
Copy Attributes to Clipboard:将选中的元素相关信息复制到粘贴板中;
 
Get Timing:获取选中的元素响应所需的时长。

 
 

  以上就是一些基础的Appium操作与相关介绍,但对于日常的自动化测试工作来说,仅仅掌握这些还是不够的。下一篇我们将会使用Python+Appium来对APP进行一些自动化测试场景的操作与实践。

自动化测试之路 —— Appium安装教程

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。
📡主页地址:【Austin_zhai】
🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。

 
 

阅读目录

 
 

1.目的

  当今社会,人们的生活几乎已经无法离开形形色色的APP了,它提供给我们的便利与服务意义远远超出了其本身的软件价值。作为测试来说移动应用也早已是各大互联网公司的拳头产品,其本身的开发周期短,附属产品价值高等特性决定了今后的主导地位。

  那么在日常的测试活动中,移动应用的质量保障就成为了各个测试团队的主要课题,面对高速迭代的功能、日益缩短的项目周期、逐渐庞大的人力与资源投入,以上的这些因素都会让测试团队不得不在项目中加入自动化测试策略。

  Appium作为一个自动化移动应用测试框架来说,就可以很好的满足大部分移动应用测试的需求。作为当今仍然主流的自动化测试框架,各位测试同学要熟练的使用也就成为大家日常的基本内容之一。

 
 

2.说明

1.此笔记的中所使用的操作系统为Win 10,笔记中所涉及的软件版本有可能会因为时间的推移而导致不匹配或其他额外的操作,请大家有针对性的选择阅读与参考。
2. 这里因操作系统关系,只针对安卓与鸿蒙OS来进行教程讲解,后续会推出iOS的相关Appium安装与配置、日常使用教程。

 
 

3.环境准备

3.1 安装nodejs

进入nodejs官网进行下载:【Node.js官网下载地址】

这里选择长期支持版本即可

 

安装过程很简单,直接下一步即可。

 

安装完毕后将程序路径添加至环境变量PATH。

 

确认可以正常运行即可

 

3.2 安装JDK

在官网进行软件下载【Java downloads】

 

选择对应的OS即可,三种安装包形式都可以。

 

下载完后运行安装程序,这里的默认安装路径建议选其他盘符,尽量不放在C盘。

 

安装完成后配置环境变量

JAVA_HOME

填写自己jdk的安装路径

 

PATH

这边按照图片上填写即可(使用刚设置的环境变量)

 

保存,使用cmd验证安装与设置是否成功
这里博主已经安装过了,而且安装的是Java17,安装方法与版本无关,通用。

3.3 安装Android SDK

这里不介绍用IDE下载,也不用官方下载,而是进入Android Studio org进行下载。【Android SDK Manager】

下载对应的OS版本安装包即可

 

下载后进行默认安装,完成后进入目录打开SDK Manager.exe。

 

根据自己的网络情况来进行是否需要配置代理。默认选择的是谷歌的下载地址(非必选操作)

点击Tools ——> Options 在代理中输入对应的服务域名和端口

国内镜像节点:mirrors.neusoft.edu.cn 端口:80

 

如果配置完成后点击Close关闭,再选择Packages ——> Reload进行配置的重新加载

 

然后进行对应的SDK与工具的安装,安装内容可根据下图(另外对应的Android版本SDK根据各自公司的测试业务适配的机型进行选择即可)

 

 

 

如果你的被测APP里有用到H5的话就需要勾上Web Driver。

 

点击安装

 

选择接受许可并进行安装

 

完成后添加环境变量ANDROID_SDK_HOME,路径为Android SDK的安装目录

 

环境变量PATH中追加platform-tools与tools两个文件夹的路径


 

 

Maven与Git根据个人的测试业务需求进行安装,如果你需要使用java下的appium-client就安装Maven吧,博主这边不需要用到,所以没装。另外adb自己另行安装一个,下载下来可以直接运行,顺便加到环境变量中方便后续使用。

 

4. 安装Appium

4.1 下载

在官网进行软件的下载,下载会跳转至Git上。【Appium官网下载】

 

根据自己的OS进行安装程序的选择

 

4.2 安装

直接打开下载完成的安装程序,一直下一步即可。

 

安装完毕后点击图标进入Appium

 

4.3 启动

启动成功后进入以下界面
默认IP为本机的,这里无需改动,端口默认4723。

 

这里直接点启动服务,如果之前没有成功安装Android-sdk或者JDK的话这里是无法启动的。

 

看到下图的界面就说明服务是启动成功的。

至此Appium相关的服务就安装完毕了。

 

4.4 错误排查

1.Appium运行失败:一般来说如果是win7系统的话优先检查.net是否已经安装且至少是4.5版本;
2.Appium运行失败:检查JDK、Android SDK是否已经安装且配置了环境变量,一般Appium的服务启动后无需手动指定以上两个服务;
3.Appium安装失败:如果使用的是npm安装,先确认安装源是否正确,另外尽量不用国外的源地址,配置国内的源可以最大限度的减少下载与安装的出错几率;
4.Appium运行失败:提示:“Error starting Appium server:listen EADDRINUSE 0.0.0.0.4723”,检查端口是否被其他应用占用,关闭应用或更改Appium再启动即可;
5.Appium运行失败:提示:“error: uncaughtException: primordials is not defined date=Thu XXXX 2022 XX:XX GMT+0800 (GMT+08:00)” 软件间版本可能不兼容,检查JDK、nodejs与Appium的版本,可以去网上搜索一下比较推荐的三个软件版本号。

以上是关于自动化测试之路 —— Appium使用教程的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试之路 —— Appium安装教程

关于移动端自动化测试-Appium的搭建

软件测试进阶之自动化测试——python+appium实例

app 自动化测试 - 多设备并发 -appium+pytest+ 多线程

自动化测试之路 —— Appium元素定位

自动化测试之路 —— Appium输入及模拟手势