水一水移动端自动化的事情 👀

背景

看到有很多大佬对移动端自动化测试感兴趣,所以我把我所知道和做过的内容分享一下,希望佬们可以了解一下。如果有条件有兴趣的话,也可以自己尝试写一些脚本,做一些帮助自己的事情。

因为个人的见识和经历有限,如果有大佬发现错误或者了解相关其他的方案的话,为了弘扬社区的互助精神,请一定要不吝赐教地回复,以便纠正楼主的不足或者补充新的知识,也让论坛里其他大佬们可以获得更优质的知识。:grin:

因为移动端自动化有很多种形式,比如说:

  • 用电脑写测试用例,然后用电脑运行脚本来驱动手机执行操作
  • 或者直接在手机上安装一定的软件进行自动化操作,等。

楼主工作中有跟自动化测试相关的内容,因此个人接触比较多的是上述中的**“用电脑驱动手机执行操作”**这一种,所以主要要说明的就是这种方式啦。(如果有佬们对其他的感兴趣的话,可以提出来,其他了解的佬可以来分享相关的知识,我也可以学习一下,跟佬们积极交流)。

这次写的先大概说明一下自动化可以做到的事情,以及大概如何做。具体的实现甚至是代码示例很难一次全部说清楚,所以可以看佬们的兴趣点,后面跟帖继续说明哈。希望写的这些可以:

  • 让之前没有了解过但是感兴趣的佬们对 自动化是什么大概怎么个流程 有个概念。
  • 希望有了解的佬们可以积极回复一起交流。:grin:

说明

移动端的自动化是什么?可以用来做什么?

移动端的自动化,就是通过某些方式,让移动端设备(例如手机、平板,等)可以按照设定的步骤来执行一些操作,已达到节约人力、提升效率的目的。 :grin:

举例:通过移动端的自动化技术,我们可以做到这些事情:

  • 打开某个应用,自动输入账号密码,并且自动点击登录。自动点击一些“签到”按钮等。
  • 在浏览器里打开某个网页,自动化地执行某个操作。例如自动评论,自动提取网页信息并保存,等。
  • 判断当前页面里面是否有符合要求的目标元素并进行一些操作。比如说判断页面里面是不是有一只熊猫。(这可能可以用来做一些手游辅助?但是我不是很了解这些方面,有了解的佬可以补充说明一下哈 :grin:

移动端的自动化怎么做?

移动端的自动化目前有很多种方法,有需要编码的方法,也有简化的不需要编码的方式(比如一些平台)。因为楼主接触的低代码平台比较少,所以了解的不是很多,如果佬们需要的话,楼主就去看看总结一下低代码的自动化。

接下来先大概说一下其中基于自己写代码的自动化形式。

所需的工具&技术栈:

  • Android : appium + adb + python
  • iOS : appium + wda + python
  • 其他 : 目标检测、OCR(提取文本) 等工具能力。

上面这些工具可以提供这些能力:

  • 操作手机的能力。
    • 点击、拖拽,等。
    • 打开/关闭 某个应用。
  • 从手机读取信息的能力。
    • 获取手机截图、录屏,等。
    • 提取 应用/浏览器 里的视图的信息(获取某个视图的位置,获取某个视图的内容,等。比如获取一个应用内的帖子的标题和内容、图片等。)
    • 判断当前屏幕里是否有某个目标(比如“骑着一辆自行车的鱼”:grin:)。

基于上述的“工具+工具提供的能力”,移动端自动化,就是写一些代码,将这些能力串起来了。举一个例子:

目标:要写一个自动化的脚本,来实现自动签到的能力。 假设此时已经明确了如何进入签到页面。

分析&实现 : 只需要写一个脚本,完成如下功能即可:

  1. 打开目标应用。
  2. 识别某些按钮,点击某些地方,以进入签到页面。
  3. 点击签到按钮。

那么可能有佬们不耐烦了:你说了这么多,怎么写代码来自动化呀!

佬们稍安勿躁,我继续说 :grin:

工具怎么用

我想了想,这里也没啥可说的,要说的话也就是重复这些工具 API 文档了……

要不我先贴几个工具链接和网络上不错的学习文档吧,然后如果有佬感兴趣的话,我再搞一个手把手说明,比如搞一个小 demo 实现一个功能,说明一下。(其实是要去吃饭了,所以得先暂停一下 :grin: )

配置环境:

  • python
  • appium

使用 appium 写代码说明:

低代码的自动化(这部分了解的真的很少,希望有佬们可以补充):

这篇只说了一些概念上的内容,有点水 :grin: (主要也是不知道写啥比较重要)。 佬们有想进一步了解的东西,可以直接说,我就继续写,继续水。。。

你一瞥,我一瞥,凌晨两点也能写。

你一赞,我一赞,到了五点还能干!

24 Likes

前排支持大佬

4 Likes

话说现在appium有办法打出apk包来了吗

4 Likes

低代码用过 testin 不够灵活 但够用

3 Likes

很不错,打开我的新领域,谢谢佬

2 Likes

佬是测开吗?

1 Like

OCR现在用得比较多,什么照片内截取文字呀这些

1 Like

太强了,大佬!期待更多

1 Like

真不错啊

1 Like

佬友太强了

1 Like

太强了佬友

1 Like

做的一些事情比较类似哈哈 :grin:

佬,你说的是将基于 appium 的测试代码,整体打成一个 apk 安装到设备上独立运行吗? :scream: 我倒没有了解过这些呢

是的. 我搜了一下reddit, 基本上都不可能. 如果你需要打包独立的apk运行, 可以去了解一下GitHub的autojs6

1 Like

good​:+1:t2:

1 Like

水水更健康

1 Like

走ui的自动化太麻烦了,已经很久没去搞这些东西,还是直接走接口方便

autojs我记得已经很久不维护了

1 Like

移动端自动化也可以看下sonic自动化测试平台,用起来感觉是挺好用的

1 Like

二开的, 勉强能用

1 Like