背景
看到有很多大佬对移动端自动化测试感兴趣,所以我把我所知道和做过的内容分享一下,希望佬们可以了解一下。如果有条件有兴趣的话,也可以自己尝试写一些脚本,做一些帮助自己的事情。
因为个人的见识和经历有限,如果有大佬发现错误或者了解相关其他的方案的话,为了弘扬社区的互助精神,请一定要不吝赐教地回复,以便纠正楼主的不足或者补充新的知识,也让论坛里其他大佬们可以获得更优质的知识。
因为移动端自动化有很多种形式,比如说:
- 用电脑写测试用例,然后用电脑运行脚本来驱动手机执行操作;
- 或者直接在手机上安装一定的软件进行自动化操作,等。
楼主工作中有跟自动化测试相关的内容,因此个人接触比较多的是上述中的**“用电脑驱动手机执行操作”**这一种,所以主要要说明的就是这种方式啦。(如果有佬们对其他的感兴趣的话,可以提出来,其他了解的佬可以来分享相关的知识,我也可以学习一下,跟佬们积极交流)。
这次写的先大概说明一下自动化可以做到的事情,以及大概如何做。具体的实现甚至是代码示例很难一次全部说清楚,所以可以看佬们的兴趣点,后面跟帖继续说明哈。希望写的这些可以:
- 让之前没有了解过但是感兴趣的佬们对 自动化是什么 和 大概怎么个流程 有个概念。
- 希望有了解的佬们可以积极回复一起交流。
说明
移动端的自动化是什么?可以用来做什么?
移动端的自动化,就是通过某些方式,让移动端设备(例如手机、平板,等)可以按照设定的步骤来执行一些操作,已达到节约人力、提升效率的目的。
举例:通过移动端的自动化技术,我们可以做到这些事情:
- 打开某个应用,自动输入账号密码,并且自动点击登录。自动点击一些“签到”按钮等。
- 在浏览器里打开某个网页,自动化地执行某个操作。例如自动评论,自动提取网页信息并保存,等。
- 判断当前页面里面是否有符合要求的目标元素并进行一些操作。比如说判断页面里面是不是有一只熊猫。(这可能可以用来做一些手游辅助?但是我不是很了解这些方面,有了解的佬可以补充说明一下哈
)
移动端的自动化怎么做?
移动端的自动化目前有很多种方法,有需要编码的方法,也有简化的不需要编码的方式(比如一些平台)。因为楼主接触的低代码平台比较少,所以了解的不是很多,如果佬们需要的话,楼主就去看看总结一下低代码的自动化。
接下来先大概说一下其中基于自己写代码的自动化形式。
所需的工具&技术栈:
- Android : appium + adb + python
- iOS : appium + wda + python
- 其他 : 目标检测、OCR(提取文本) 等工具能力。
上面这些工具可以提供这些能力:
- 操作手机的能力。
- 点击、拖拽,等。
- 打开/关闭 某个应用。
- 从手机读取信息的能力。
- 获取手机截图、录屏,等。
- 提取 应用/浏览器 里的视图的信息(获取某个视图的位置,获取某个视图的内容,等。比如获取一个应用内的帖子的标题和内容、图片等。)
- 判断当前屏幕里是否有某个目标(比如“骑着一辆自行车的鱼”
)。
基于上述的“工具+工具提供的能力”,移动端自动化,就是写一些代码,将这些能力串起来了。举一个例子:
目标:要写一个自动化的脚本,来实现自动签到的能力。 假设此时已经明确了如何进入签到页面。
分析&实现 : 只需要写一个脚本,完成如下功能即可:
- 打开目标应用。
- 识别某些按钮,点击某些地方,以进入签到页面。
- 点击签到按钮。
那么可能有佬们不耐烦了:你说了这么多,怎么写代码来自动化呀!
佬们稍安勿躁,我继续说
工具怎么用
我想了想,这里也没啥可说的,要说的话也就是重复这些工具 API 文档了……
要不我先贴几个工具链接和网络上不错的学习文档吧,然后如果有佬感兴趣的话,我再搞一个手把手说明,比如搞一个小 demo 实现一个功能,说明一下。(其实是要去吃饭了,所以得先暂停一下 )
配置环境:
- python
- appium
使用 appium 写代码说明:
- appium python 文档 : Write a Test (Python) - Appium Documentation
- 同级下还有其他语言( js / java ) 的文档。不过还是推荐 python ,感觉自动化相关的生态更好一些
。
- 同级下还有其他语言( js / java ) 的文档。不过还是推荐 python ,感觉自动化相关的生态更好一些
低代码的自动化(这部分了解的真的很少,希望有佬们可以补充):
- airtest , 网易搞的一个自动化测试平台。
这篇只说了一些概念上的内容,有点水 (主要也是不知道写啥比较重要)。 佬们有想进一步了解的东西,可以直接说,我就继续写,继续水。。。
你一瞥,我一瞥,凌晨两点也能写。
你一赞,我一赞,到了五点还能干!