这一节我们来讲解如何使用Appium-Desktop录制自动化测试脚本。
使用到的工具主要是Appium中的Inspector探测工具。其使用方式如下:
按照上一节所讲的方式启动Appium之后,我们会发现弹出了另一个界面,我们叫它探测工具(Inspector),页面如下:
最左侧是屏幕的即时监控。可能同步的比较慢,我们可以点击上方的刷新按钮来进行刷新,以让它和模拟器的画面保持同步。
中间的“源”页面分为两个部分,一个是App Source,另一个是“选定的元素”。
“App Source”所展示的就是左侧页面对应的DOM结构(类似Web端的F12)。
“选定的元素”模块展示的是被选择的元素的具体信息。选择元素的操作如下:
举个例子:我们点击页面上方的选择按钮
然后在监控页面中随便点击一个自己喜欢的位置:
可以看到右侧的“App Source”和“选定的元素”内容发生了变化。
这个自己点点看看就好。功能基本就和Web端F12审查元素的操作一样。
我们可以使用这个按钮来进行页面滑动操作:
举个栗子:点击上方的滑动坐标按钮,可见左侧弹出“点击滑动起始点”
我们点击图中的某个位置作为滑动起点,点完会自动打上一个粉粉的圆圈。:
然后上方的文字就变成了“点击滑动终止点”,我们再取一个滑动终点:
点击完成之后,它会自动连成一条线,然后执行滑动操作,我这里滑动完就切换到了另一个页面,大家可以自行尝试:
再次点击这个按钮,就可以取消滑动。
我们先把这些展示页面滑掉,进入软件的业务展示页面。
第三个按钮叫做“点击坐标点”:
我们选择它之后,就可以在监控页面中进行点击操作,还可以看到鼠标当前的位置坐标。比如我们点一下页面上的“五险一金”,点击后便可打开对应的功能:
Ps:手机的左上角坐标是(0, 0),向右x轴递增,向下y轴递增。
后面这俩就是返回和刷新的功能,但是没啥好讲的,大家自己点点看就行。
就是这个小眼睛,这个可就厉害了,它就是Appium内置的脚本录制工具。
我们可以使用它来录制我们在页面上的操作,然后让工具自动重复执行。
本节我们使用微博App来进行演示,请大家自行在模拟器中安装新浪微博App,并仿照上面的操作完成Appium中的期望能力配置。
请自己操作一下,也作为对前面学习的知识点的检验。
然后让我们开始搞事情(打开新浪微博,并使用账号密码进行登录):
在Appium中完成期望能力配置后,点击启动会话,会进入如下界面:
进来之后我们点一下小眼睛,开启录制功能,会发现下方多了一个“录制”窗口:
然后我们开始录制脚本。
首先我们选中“选择元素”工具,并选中页面上的“用账号密码登录”:
然后点击右侧“选定的元素窗口中的“点击”按钮,进入账号密码登录页面。
继续使用“选择元素”工具,选中账号输入框,然后点击右侧的“发送秘钥”:
在弹出的窗口中输入账号,并点击“发送秘钥”
(鉴于笔者用的是本人微博号,就打个马赛克了):
同样使用“选择元素”工具,选择密码输入框,然后点击右侧的“发送秘钥”:
同样的方式,在弹出的窗口中输入密码,并点击“发送秘钥”。
使用“元素选择”工具,选中登录按钮,然后单击右侧的“点击”按钮。
完成登录:
Ps:有人可能会有疑问,我们用的这个“发送秘钥”为什么好像是“发送文本”的意思,和我理解的“秘钥”的概念有点偏差。
答:其实你理解的是没错的,是Appium这款工具汉化翻译的不太准确,如果我们把工具切换成英文,会发现这个按钮的名字其实是“Send Keys”,也就是发送关键字的意思。大家只要记住这个工具是用来发送关键字的,就可以了。
Appium脚本录制就是使用“选择元素+点击/发送秘钥等操作”、“点击坐标点”、“返回”、“滑动”等工具来模拟我们在手机上的各类操作,并且将每一步操作都固化为代码,以便我们将代码取出来进行复用,当我们重复执行这些代码时,就相当于再次执行了录制时所进行的操作。能够熟练完成本节的全部操作的话,Appium常用的几大工具就已经基本掌握了。
接下来我们讲如何将脚本代码取出,以及如何在编译器中执行。
如果您留心的话,可以看到在录制脚本过程中,进行每一步操作时,“录制”窗口都会生成一些代码,这些就是我们的脚本了:
但是目前Appium界面上只显示了与我们的操作相关的部分代码,至于App启动,驱动释放等细节并没有包含在这部分代码里。
想要展示全部的代码,我们可以点击右侧的“显示/隐藏样版代码”:
点击后便可以查看完整的脚本,这就是可以拿出来单独执行的Java代码了:
本教程默认使用的是Java语言,如果你想要其他语言的脚本,可以点击图示按钮进行选择:
但这样子看代码其实依旧不方便,毕竟依旧是在工具里面展示的,一旦我们关了Appium就看不到代码了。所以我们可以点击右侧的复制按钮,将代码复制到剪切板,然后将其粘贴到.txt文件里,例如Sina.txt:
然后我们将Sina.txt的文件后缀改为.java,也即Sina.java:
这样我们就拥有了一份java语言编写好的脚本,其功能便是打开微博,输入账号密码进行登录。
我们一起来看一下刚刚录制好的这一段脚本:
这份代码读起来应该没有什么难度,大家可以自行阅读理解。辅助理解如下:
1-9行:声明导入的依赖包,其中的JUnit和我们比较熟悉的TestNG类似,也是一个单元测试框架,可以将TestNG理解为JUnit的升级版。
13行:声明Android驱动。
17行:DesiredCapabilities desiredCapabilities = new DesiredCapabilities();实例化了一个DesiredCapabilities的类。
18-21行:这四个配置熟不熟悉,就是我们在Appium中设置的期望能力配置。
23行URL:这个地址就是Appium的默认通讯地址,我们通过这个地址就可以与Appium通讯连接。
25行:通过实例化driver,就可以启动我们的App。
30-37行:这就不多说了,就是我们刚刚录制到的脚本。
42行:驱动的销毁。
上一篇:Appium自动化测试(07):保存配置并启动会话
下一篇:Appium自动化测试(09):APP自动化原理总结
软件测试工程师一只,也在不断的学习阶段,平时的小经验不定期分享。
博主经验有限,若有不足,欢迎交流,共同改进~
愿与同在CSDN的你共同进步。
有意可加Q群 908417285 交流学习。