Skip to content

Latest commit

 

History

History
135 lines (106 loc) · 11.1 KB

File metadata and controls

135 lines (106 loc) · 11.1 KB

WeAutomator IDE的界面介绍

1. WeAutomator IDE主界面介绍

figure

WeAutomator IDE的主交互界面由5个部分组成:顶部功能栏、设备交互界面、脚本编辑栏、右部功能栏和输出栏。在本文档中我们默认已经连接移动Android设备,具体如何连接设备,请参考连接Android设备连接iOS设备

2. 顶部功能栏

1)连接设备

连接设备主要负责IDE和移动设备连接,用户需要先将测试的移动端设备和电脑连接,再通过连接设备完成移动设备与IDE的连接。
具体的连接方式参看连接Android设备连接iOS设备

2)运行

运行负责运行当前编写的主脚本。用户在主脚本编写相关的测试代码后,可以通过点击顶部功能栏中的运行,运行脚本。脚本运行过程中,运行会变为停止运行,你可以通过点击停止运行,中断脚本运行。

3)录制

录制功能提供了方便的脚本编写的录制功能,可以用来记录使用者的相关操作,并实时生成对应的代码,降低了自动化测试的代码能力门槛,提高了自动化测试脚本编写的效率。
WeAutomator IDE提供了三种录制方式,分别是智能录制电脑录制控件录制,其中控件录制包含原生Unity(GA)UE(GA) 三种控件录制方式。

  • 智能录制 智能录制功能会根据用户当前操作,智能生成相应代码。例如,用户打开智能录制,点击手机上的应用,智能录制会自动在主脚本区域生成点击应用的代码。
    figure
    完成智能录制后,我们可以退回到初始界面,运行生成的脚本,看看运行情况是否和录制情况一致。 figure
    智能录制的功能远不止录制生成点击应用这么简单,它可以记录下用户在手机界面操作的位置信息,并通过调用click()slide()等函数还原用户的所有操作操作。使用者可以根据自身需求,使用智能录制功能,大大简化代码编写难度。

  • 电脑录制 电脑录制会记录用户点击的位置信息,并生成相应的位置点击代码click(pos, by=DriverType.POS, duration=0.05),并且在两次点击之间,电脑录制还会记录两次操作的时间间隔,并生成time.sleep()函数,还原用户两次点击的间隔。

  • 控件录制 控件录制功能是通过记录用户点击的控件信息,生成相应代码还原用户操作。控件录制分为原生Unity(GA)和UE(GA)三种方式,这里以Android设备为例。
    原生控件录制主要针对于APP进行操作,获取各种软件上的元素列表,点击控件。打开原生
    控件录制即可获得以下页面。 figure

    • 区域1为控件树,根据手机界面元素层级显示此树
    • 区域2为元素属性名和属性值 figure
    • 区域3为控件查询路径,可根据此路径操作控件
    • 区域4为录制选项,勾选控件+图像+坐标可以同时进行这三种录制操作,在元素不稳定时就可以自动化切换至图像和坐标的操作,可以增加操作的鲁棒性。
    • 在手机交互界面操作控件后,手机界面会刷新,控件也会自动刷新,相关的操作代码会自动生成在代码区。用户可接着操作控件,直到完成整个脚本流程。

    Unity(GA)UE(GA)控件录制统称为游戏控件录制。游戏控件录制基于GAutomator框架,它支持Unity、UE游戏引擎控件的获取,需要游戏接入SDK使用。
    GAutomator是一个针对手游的UI自动化测试开源框架,支持Unity、UE游戏引擎。设计理念与使用方式类似于Android的Uiautomator。GAutomator以引擎中的元素为操作对象(如Unity中的GameObject),通过操作GameObject实现UI自动化测试。基于GameObject的方式,不存在手机分辨率适配问题,一份脚本可以运行在不同的手机之上。基于GameObject的另外一个优点是鲁棒性较强,游戏的UI界面经常发生变化,GameObject变化频率相对较低。

    figure

    • GA控件是专门针对游戏做的获取控件的功能,根据游戏使用unity和ue引擎来选择
    • 区域1为控件树,根据手机界面元素层级显示此树
    • 区域2为元素属性名称和属性值 figure
    • 区域3为控件查询路径,可根据此路径操作空间。
    • 区域4为录制选项,勾选控件+图像+坐标可以同时进行这三种录制操作,在元素不稳定时就可以自动切换至图像和坐标的操作来增加操作鲁棒性。
    • 操作控件后会自动刷新(在手机上直接操作控件不会自动刷新),如需要手动刷新,请点击关闭按钮旁边的刷新按钮。

4)导出

导出功能是为了将当前工程存储为.zip格式,后续可使用导出的.zip工程上传终端云测。

5)应用

应用中包含Android设备中的QQ/微信登录。用户可以使用QQ登录/微信登录快速登QQ/微信,也可以使用用QQ登录/用微信登录完成在其他应用使用QQ/微信账号登录。

6)Monkey

Monkey中集成了智能Monkey功能,用户可以调用monkey()方法完成相关测试。
figure

7)图像算法

图像算法中集成了边缘匹配滑动验证点特征匹配黑白屏判断。API使用方式参见API文档

3. 设备交互界面

设备交互界面为使用者提供了查看和操作所连接设备的交互界面,配合IDE的其他功能,可以让使用者可视化自己的操作(获取控件树、显示点击位置、显示点击图标、显示截图等),方便使用者编写出高质量的测试脚本。

  • 区域1显示了当前鼠标停放在手机界面的位置
  • 区域2显示了当前手机的屏幕
  • 区域3包含手机的Power键、Home键、Back键和RecentApps键

4. 脚本编辑栏

如上文演示的那样,录制功能可以帮助我们在脚本编辑窗口自动生成测试脚本,用户也可以自己手动在脚本编辑窗内编写自动化脚本。

5. 右部功能栏

右部功能栏提供了一些快捷生成代码的按钮,可以帮助使用者完成常见的应用操作、点击操作、滑动操作、查找操作、输入文本操作、输入按钮操作、弹窗操作等。

  • 应用操作
    将鼠标置于启动APP上,可以看到其包含以下几个功能。

figure

启动App:用户先打开想要测试的App,接着点击启动App,IDE会跳出以下界面。
figure 点击从当前屏幕获取,IDE便可获取当前手机界面打开的App,并自动填入package框中,接着点击确定,IDE将自动在代码区生成打开指定App的代码。
点击重装App卸载App,将在代码区生成 restart_app(pkg)uninstall_app(pkg)函数,用户需要手动输入目标App名(可以通过启动App获取目标App的package name)。
点击安装App,将跳出电脑的文件系统,用户可自己选择相应的安装包,进行App的安装。

  • 点击操作
    将鼠标置于点击上,可以看到其包含以下几个功能。
    figure
    点击点击设备交互界面将进入编辑中,这时用户可以按住鼠标左键,截取想要点击的区域,松开鼠标左键,再鼠标左键点击目标区域,代码区将生成click("obj_xxxxxxx.jpg", by=DriverType.CV, timeout=30), 实现按照图像匹配方式点击目标区域的操作。
    双击长按的使用方式和点击方式一样,IDE将分别生成double_click("obj_xxxxxx.jpg", by=DriverType.CV, timeout=30)long_click("obj_xxxxxx.jpg", by=DriverType.CV, duration=1, timeout=30)函数,来完成相应的操作。
    点击点击文字,IDE将直接在代码区生成click(loc="", by=DriverType.OCR, offset=None, timeout=30, duration=0.05, times=1)函数,用户可以手动输入点击目标区域的文本信息,完成OCR文字识别的点击操作。
    注:在脚本中可能会存在多次点击的情况,每次点击过后,手机屏幕都会跳转刷新,当使用基于OCR文字识别的点击操作时,可能在页面 刷新时识别出目标文字区域,这时页面尚未稳定,识别出的目标文字区域并不一定就是页面稳定后的目标区域,从而导致误点击。为了避免这种 设备跳转刷新带来影响,建议每次调用基于OCR文字识别的相关指令时,先使用time.sleep(2),给页面2秒钟(根据情况设定时间)跳转刷新时间, 从而避免误操作(下面的例子中增加了等待时间,保证相关操作的正确)。
    使用点击功能编写脚本:
    figure 运行脚本(这里在基于OCR文字识别的点击操作前增加了time.sleep(2),以保证在手机界面稳定时,进行文字识别) figure

  • 滑动操作
    点击滑动,IDE将自动生成基于位置的滑动函数slide(loc_from=None, loc_to=None, loc_shift=None, by=DriverType.POS, timeout=30, duration=None),用户可配合使用 右部功能框中给出的快捷键,得到目标位置的坐标信息。

  • 查找操作
    点击查找,IDE将自动在代码区生成基于CV的查找函数find(loc by=DriverType.CV, timeout=30),用于获取目标图像区域的坐标。find()函数返回 目标区域的坐标信息,可以用来赋值。

  • 输入文本操作
    输入文本用来一次性输入目标信息,避免频繁调用click()方法去点击手机键盘输入。

  • 输入按键
    输入按键可以快速生成点击手机常用按钮的代码,其中包含的常见按钮如下。
    figure
    用户可以选择点击的目标按键(如Home键),IDE将在代码区自动生成press(DeviceButton.HOME)

  • 弹窗处理操作
    弹窗处理用来处理系统弹窗(不支持应用内弹窗),该功能包括启用预设弹窗自动处理(对应start_event_handler())、 添加事件自动处理规则'(对应add_event_handler())、清除事件自动处理规则(对应clear_event_handler())、 事件自动处理立即生效(对应sync_event_handler()`)。请参考API文档,获取相关api使用方法。

6. 输出栏

输出栏可以用来查看运行脚本的情况,还可以点击查看报告,跳转到脚本运行的报告页面
figure
脚本运行的报告页面
figure