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

news/2024/11/26 5:37:21/

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

在这里插入图片描述

 
 

阅读目录

  • 1.目的
  • 2.说明
  • 3.接上回
  • 4.连接设备
    • 4.1 设置
    • 4.2 调试
    • 4.3 参数获取
      • 1.查看源代码
      • 2.使用ADB
  • 5.启动APP
    • 5.1 启动Inspector
    • 5.2 配置Desired Capabilities
    • 5.3 界面说明

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进行一些自动化测试场景的操作与实践。


http://www.ppmy.cn/news/504959.html

相关文章

mate9 android8.0 rom,华为Mate9 8.0降级:EMUI8.0回退到EMUI5.0/安卓8.0降级7.0

华为Mate9 EMUI 8.0 版本可以通过华为手机助手回退到Android 7.0 + EMUI5.X官方稳定版本,无需下载中转包即可直接回退至稳定版本。回退过程中会将您的个人数据全部清除,请注意备份您的数据。通过华为手机助手进行回退操作,完成升级后手机会自动重启。 注意事项: 1、请确保当…

[转帖]华为Mate20 X 5G版拆解:巴龙5000还配备了3GB独立内存!

华为Mate20 X 5G版拆解:巴龙5000还配备了3GB独立内存! 投递人 itwriter 发布于 2019-07-29 21:35 评论(7) 有1733人阅读 原文链接 [收藏] https://news.cnblogs.com/n/628918/了解一下华为消费者BG的 supplychain 貌似美国公司的确很少了. 北京时间 …

巨屏旗舰 — Mate 20 X 长测

除了特殊的 Mate 20 RS 之外,Mate 20 系列中最能让你挪不开视线的,还是拥有 7.2 英寸巨屏的 Mate 20 X 了,要知道在 2012 年那个手机还是 4 英寸的时候,Nexus 7 以 7 英寸 1280*800 分辨率的屏幕就可以算是平板了。 而今天&#x…

华为Mate 20X 5G手机供应链一览,附手机深度拆解过程

近日,华为刚刚推出5G版Mate 20 X,随后著名电子产品拆解团队iFixit就对这款手机的欧洲版进行了拆解,并给出了4分的拆机难度(得分越高,越易拆解,满分10分),可见这难度还是蛮高的。 iFi…

华为认证HCIA+HCIP题库(超500题含答案解析)

本套题库包含以下内容,覆盖数通Datacom方向HCIA和HCIP两科考题,考试代码为H12-811、H12-821、H12-831。有需要的可以直接拿。 首先来看看各科目的考试内容及分值占比。所有满分均为1000分,只需600分即可拿证,考试时间均为60分钟。…

管理类联考——写作——素材篇——论说文——写作素材07——制篇:积累·习惯08——制篇:容让·宽厚

管理类专业学位联考 (写作能力) 论说文素材 07——制篇:积累习惯 论文说材料: 合抱之木,生于毫末;九层之台,起于累土;千里之行,始于 足下。 ——《老子》 一:道理论据 操千曲而后晓声&#…

达人评测 微星 MEG 271Q Mini LED怎么样

微星发布了 MEG 271Q Mini LED 显示器,它采用了 NVIDIA G-SYNC ULTIMATE 技术和获得专利的 mini LED 背光控制技术。微星 MEG 271Q Mini LED怎么样这些点很重要http://www.adiannao.cn/du 官方表示,该显示器搭载 2K 分辨率的快速 IPS 面板,并…

2023轻薄投影仪推荐:极米投影仪Z7X闭眼可买

在日常生活中,人们对于超薄手机和超薄笔记本电脑已经是再熟悉不过了,今天来说说超薄投影仪。,极米科技最近新发布了一款轻薄投影仪极米Z7X,厚度仅为5cm,重量不到1.5kg,甚至比大多数笔记本电脑还要轻。轻薄投…