一种应用弹窗的处理方法和装置的制造方法_2

文档序号:9810441阅读:来源:国知局
施例,以下以UIAutomator作为自动化 测试框架的示例进行说明。
[0065] UIAutomator 提供了 一组UI 测试的组件和API (Appl i cat ion Programming Interface,应用程序编程接口),UI测试确保应用在一系列用户操作后,如键盘输入、点击 工具栏、菜单、对话框、图片或其他UI控件,返回正确的UI输出。
[0066] 当准备测试的时候,待测的应用可能还没有发布到市场上,但应该具有该应用的 APK(Andr〇idPackage,安装包)文件,可以通过ADB工具或其他工具将待测试的应用安装到 移动设备中。
[0067] UIAutomator测试案例(Test case)继承至UiAutomatorTestCase类。
[0068] 而1^六111:〇1]1&1:〇1^681:0&8 6类继承至」1111;[1:.;1^&1116¥0^.16 81:0&8 6类,所以可以用 JUnit的Assert类来比较测试结果。
[0069] 由于在UI测试中,在不同的测试环境中,会出现许多弹窗(即自动弹出的窗口),且 弹窗的类型繁多、弹窗中控件的类型也繁多,因此,本发明实施例中,可以通过UIAutomator 自动触发弹窗中的控件。
[0070] UI测试的任务之一就是访问测试的移动设备,一般都是从移动设备的主屏开始测 试的,通过UIAutomator提供的API可以从主屏来模拟用户的操作。
[0071 ]在具体实现中,UIAutomator提供的API之一为UiSelector,UiSelector是 UIAutomator提供的获取界面元素的选择器,在UI化测试时,启动检测线程,该检测线程为 一个自动检测弹窗的线程,可以每间隔固定的时间(如1秒)检测应用在运行过程中是否出 现弹窗。
[0072] 步骤102,当所述检测线程检测到弹窗时,判断所述弹窗的类型;
[0073] 在实际应用中,弹窗类型主要包括权限获取类、升级更新类、消息确认类等等,而 有些弹窗还有复选框,有些只有一个按钮,所以能够实时识别弹窗中的文本信息和弹窗的 控件(包括类型)是识别弹窗类型的途径之一。
[0074] Ui Selector代表一个搜索UI控件的条件,在构造 Ui Selector的时候可以组合使用 多个条件来定位具体的控件,如果发现多个满足条件的控件则会返回第一个控件,返回的 结果为UiObject对象,如果没有找到控件则会抛出UiAutomatorOb jectNotFoundException 异常。
[0075] 在本发明实施例中,可以在Ui Selector中设置条件为:控件的类型、控件中的文本 信息、复选框。
[0076] 则在检测到弹窗时,可以检测在所述弹窗中的文本信息、控件的类型,及是否具有 复选框,当控件的类型为按键(如android, widget. Button)时,查找文本信息对应的弹窗的 类型。
[0077] 在具体实现中,将弹窗中的文本信息、复选框信息、控件的类型与需要触发的控件 建立映射关系,记载在弹窗规则表格中,该弹窗规则表格的示例可以如下表所示:
[0079]其中,若一个弹窗同时出现两个控件,其中一个控件的文本信息为"拒绝",另一个 控件的文本信息为"允许",则该弹窗的类型为获取权限类。
[0080] 步骤103,按照所述弹窗的类型在所述弹窗中触发所述类型对应的一个或多个控 件。
[0081] 若弹窗中的文本信息、复选框信息、控件的类型与需要触发的控件建立映射关系, 记载在弹窗规则表格中,则可以在该弹窗规则表格中,查找弹窗类型关联的控件信息,在弹 窗中触发所述控件信息对应的一个或多个控件。
[0082] 具体而言,可以通过Click()方法模拟用户点击该控件,从而触发该控件,其中, click(int X,int y)单机执行用户指定的任意坐标,例如要点击哪个Button的时候,可以 使用取坐标的方式,实现点击。
[0083] 需要说明的是,在弹窗具有复选框时,勾选复选框。
[0084] 例如,在上述弹窗规则表格的示例中,若弹窗的类型为获取权限类型,具有复选 框,在测试流程中需要获取权限,则可以勾选复选框,触发点击"允许"控件。
[0085] 本发明实施例通过检测线程在检测到弹窗时,依据弹窗的类型触发该类型对应的 一个或多个控件,从而实现了弹窗的自动点击,避免了人工点击,在保证自动化处理的同 时,保降低了成本,提高了处理效率。
[0086]参照图2,示出了根据本发明一个实施例的一种应用弹窗的处理方法实施例2的步 骤流程图,具体可以包括如下步骤:
[0087]步骤201,启动检测线程,检测应用在运行过程中是否出现弹窗;
[0088]步骤202,当所述检测线程检测到弹窗时,判断所述弹窗的类型;
[0089]步骤203,按照所述弹窗的类型在所述弹窗中触发该类型对应的一个或多个控件; [0090] 步骤204,当触发某个控件之后退出处理时,重新启动处理;
[0091]步骤205,当所述检测线程再次检测到所述弹窗时,在所述弹窗中触发其他控件;
[0092]在本发明实施例中,根据弹窗类型在较短时间内准确点击对应的按钮并关闭弹 窗,如果点击后导致处理(如UI测试)中断,则说明点击控件错误,重新启动处理(如启动UI 测试),并点击其他控件。
[0093]需要说明的是,其他控件可以指除在先已触发的控件之外的控件。
[0094]步骤206,当触发某个控件之后退出未处理时,记录所述弹窗的类型与其他控件匹 配。
[0095]在本发明实施例中,如果点击后处理继续(如UI测试)中断,则说明点击控件正确, 可以将弹窗的类型与其他控件的匹配关系添加到弹窗规则表格中,从而实现自动完善弹窗 规则。
[0096] 具体而言,可以记录弹窗中的文本信息、控件的类型、复选框信息,与,其他控件的 控件信息之间的关联关系。
[0097] 本发明实施例针对错误的点击,自动进行纠正,并记录弹窗的类型与其他控件的 匹配关系,实现了自动完善弹窗规则,进一步提高了处理的效率。
[0098] 对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域 技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施 例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书 中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0099] 参照图3,示出了根据本发明一个实施例的一种应用弹窗的处理装置实施例1的结 构框图,具体可以包括如下模块:
[0100] 弹窗检测模块301,适于启动检测线程,检测应用在运行过程中是否出现弹窗;
[0101] 弹窗类型判断模块302,适于当所述检测线程检测到弹窗时,判断所述弹窗的类 型;
[0102] 控件触发模块303,适于按照所述弹窗的类型在所述弹窗中触发该类型对应的一 个或多个控件。
[0103]在本发明的一种可选实施例中,所述弹窗检测模块301还可以适于:
[0104]启动检测线程,每间隔固定的时间检测应用在运行过程中是否出现弹窗。
[0105] 在本发明的一种可选实施例中,所述弹窗类型判断模块302还可以适于:
[0106] 检测在所述弹窗中的文本信息、控件的类型;
[0107] 当控件的类型为按键时,查找所述文本信息对应的弹窗的类型。
[0108] 在本发明的一种可选实施例中,所述控件触发模块303还可以适于:
[0109]查找所述弹窗类型关联的控件信息;
[0110] 在所述弹窗中触发所述控件信息对应的一个或多个控件。
[0111] 在本发明的一种可选实施例中,所述控件触发模块303还可以适于:
[
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1