CN105607993B - 一种对应用的用户界面ui进行测试的方法和装置 - Google Patents
一种对应用的用户界面ui进行测试的方法和装置 Download PDFInfo
- Publication number
- CN105607993B CN105607993B CN201510640459.2A CN201510640459A CN105607993B CN 105607993 B CN105607993 B CN 105607993B CN 201510640459 A CN201510640459 A CN 201510640459A CN 105607993 B CN105607993 B CN 105607993B
- Authority
- CN
- China
- Prior art keywords
- current
- guide page
- application
- control features
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012360 testing method Methods 0.000 claims abstract description 101
- 230000001960 triggered effect Effects 0.000 claims abstract description 11
- 230000000694 effects Effects 0.000 claims description 35
- 230000009469 supplementation Effects 0.000 claims description 16
- 238000012423 maintenance Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 7
- 238000004321 preservation Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 241000282693 Cercopithecidae Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Abstract
本发明公开了一种对应用的用户界面UI进行测试的方法和装置,该方法包括:获取提交测试的应用,并启动所述应用;对于所述应用的每个当前UI,识别该当前UI上的控件特征;如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI;如果在该当前UI上没有识别出控件特征,则通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页。本方案实现了智能地根据UI中的控件特征对UI中的控件进行针对性地触发测试,能够大大提高测试的有效性和可靠性,节省测试时间成本。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种对应用的用户界面UI进行测试的方法和装置。
背景技术
现有技术中,对应用的用户界面UI进行测试的方案包括两种:一种是系统自带的Monkey测试方案,顾名思义,像一个猴子一样对应用的界面进行随机点击,由于点击过程完全是随机的,导致该方案能够点击到UI上真正的控件的概率是不大的,使得该方案很多时候都是在无意义地点击UI上没有控件的坐标位置,既浪费测试时间,也无法得到有意义的测试结果。另一种是自定义的UI测试方案,该方案不对应用的UI进行识别,只是在屏幕上做简单的点击和划动动作,该方案一方面存在与Monkey测试相同的测试效率低的问题,另一方面在遇到特殊的UI如引导页时,由于不知道引导页实际指示的滑动方向和效果,该方案容易卡在引导页中无法跳转到下一个UI。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种对应用的用户界面UI进行测试的方法和相应的装置。依据本发明的一个方面,提供了一种对应用的用户界面UI进行测试的方法,该方法包括:
获取提交测试的应用,并启动所述应用;
对于所述应用的每个当前UI,识别该当前UI上的控件特征;
如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI;
如果在该当前UI上没有识别出控件特征,则通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页。
可选地,所述通过查询引导页数据库判断该当前UI是否为引导页包括:
获取所述应用的包名和当前Activity组件的类名;
以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则判断当前UI是引导页;
其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相应的操作信息。
可选地,所述引导页数据库位于服务器侧;
则所述通过查询引导页数据库判断该当前UI是否为引导页包括:通过查询服务器侧的引导页数据库判断该当前UI是否为引导页。
可选地,所述对于所述应用的每个当前UI,识别该当前UI上的控件特征包括:
获取所述应用的关于所述当前UI的源数据;
通过分析获取的源数据识别当前UI上的控件特征。
可选地,该方法进一步包括:
如果当前UI不是引导页,则查询经验列表;
判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串;
如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一个UI。
可选地,该方法进一步包括:
查询经验列表后,还将所述应用添加到新应用统计列表中;
其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将该应用的引导页相关内容添加到所述引导页数据库中。
可选地,该方法进一步包括:
如果当前UI不是引导页,则将当前UI上的文字与协议特征列表进行匹配;
如果匹配,则判断当前UI是所述应用的协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。
可选地,所述如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI包括:
如果识别出当前UI上的登录控件特征,则进一步确定当前UI上的登录信息输入框;
将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框中;
进一步识别出当前UI中的确认登录控件并触发。
可选地,该方法进一步包括:
对提交测试的各应用进行分类;
根据分类结果,确定所述引导页数据库的需要补充的内容;
获取所述需要补充的内容,添加到所述引导页数据库中。
可选地,该方法进一步包括:
记录在所述应用的每个UI上的执行操作和执行的结果,生成测试报告。
依据本发明的另一个方面,提供了一种对应用的用户界面UI进行测试的装置,该装置包括:
获取单元,适于获取提交测试的应用,并启动所述应用;
控件特征识别单元,适于对于所述应用的每个当前UI,识别该当前UI上的控件特征;
测试执行单元,适于当所述控件特征识别单元识别出该当前UI上控件特征时,触发该控件特征对应的控件,跳转到所述应用的下一个UI;当所述控件特征识别单元在该当前UI上没有识别出控件特征时,通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页;
存储单元,适于保存引导页数据库。
可选地,所述测试执行单元,适于获取所述应用的包名和当前Activity组件的类名,以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则判断当前UI是引导页;
其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相应的操作信息。
可选地,所述存储单元位于服务器侧;
则所述测试执行单元,适于通过查询服务器侧的存储单元中的引导页数据库判断该当前UI是否为引导页。
可选地,所述控件特征识别单元,适于获取所述应用的关于所述当前UI的源数据,通过分析获取的源数据识别当前UI上的控件特征。
可选地,所述存储单元,进一步适于保存经验列表;
所述测试执行单元,进一步适于在当前UI不是引导页时,查询经验列表,判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串,如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一个UI。
可选地,所述测试执行单元,进一步适于在查询经验列表后,将所述应用添加到新应用统计列表中;
其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将该应用的引导页相关内容添加到所述引导页数据库中。
可选地,所述存储单元,进一步适于保存协议特征列表;
所述测试执行单元,进一步适于在当前UI不是引导页时,将当前UI上的文字与协议特征列表进行匹配;如果匹配,则判断当前UI是所述应用的协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。
可选地,所述测试执行单元,适于当所述控件特征识别单元识别出当前UI上的登录控件特征时,进一步确定当前UI上的登录信息输入框;将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框中;并进一步识别出当前UI中的确认登录控件并触发。
可选地,该装置进一步包括:
应用分类单元,适于对提交测试的各应用进行分类;根据分类结果,确定所述引导页数据库的需要补充的内容;获取所述需要补充的内容,添加到所述引导页数据库中。
可选地,该装置进一步包括:
报告生成单元,适于记录在所述应用的每个UI上的执行操作和执行的结果,生成测试报告。
由上述可知,本发明提供的技术方案在对应用的UI进行测试时,先识别当前UI上的控件特征,根据识别结果对当前UI上的控件进行针对性地触发,当没有识别出当前UI上的控件特征时,再通过查询引导页数据库获取对应于当前UI是引导页的操作信息以进行相应的操作。与现有技术中通过对UI进行随机盲目触发以完成测试的方案相比,本方案实现了智能地根据UI中的控件特征对UI中的控件进行针对性地触发测试,能够大大提高测试的有效性和可靠性,节省测试时间成本;并且,对于一些无法识别的UI自定义控件特征,进一步提出了通过数据库匹配的方式获取其对应的操作,有效地解决了对UI尤其是引导页的UI进行测试的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种对应用的用户界面UI进行测试的方法流程图;
图2示出了根据本发明一个实施例的一种对应用的用户界面UI进行测试的装置示意图;
图3示出了根据本发明另一个实施例的一种对应用的用户界面UI进行测试的装置示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种对应用的用户界面UI进行测试的方法流程图,如图1所示,该方法包括:
步骤S110,获取提交测试的应用,并启动应用。
步骤S120,对于应用的每个当前UI,识别该当前UI上的控件特征。
步骤S130,如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI。
步骤S140,如果在该当前UI上没有识别出控件特征,则通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页。
可见,图1所示的方法在对应用的UI进行测试时,先识别当前UI上的控件特征,根据识别结果对当前UI上的控件进行针对性地触发,当没有识别出当前UI上的控件特征时,再通过查询引导页数据库获取对应于当前UI是引导页的操作信息以进行相应的操作。与现有技术中通过对UI进行随机盲目触发以完成测试的方案相比,本方案实现了智能地根据UI中的控件特征对UI中的控件进行针对性地触发测试,能够大大提高测试的有效性和可靠性,节省测试时间成本;并且,对于一些无法识别的UI自定义控件特征,进一步提出了通过数据库匹配的方式获取其对应的操作,有效地解决了对UI尤其是引导页的UI进行测试的问题。
在本发明的一个实施例中,图1所示方法的步骤S120,对于应用的每个当前UI,识别该当前UI上的控件特征包括:获取应用的关于所述当前UI的源数据;通过分析获取的源数据识别当前UI上的控件特征。
以一个具体的实施例说明图1所示的方法:
获取提交测试的应用A,将该应用A安装在测试用的智能终端上,将代理程序注入到所述智能终端的系统进程中,使得系统在启动的时候不仅要加载操作系统原生的辅助文件,还要加载代理程序的内容,实现代理程序在系统环境下的初始化环境布局,为后续的测试做准备。
在所述智能终端上运行应用A,对于应用A的每个当前UI,通过调用代理程序获取该当前UI的界面信息,进而识别出该当前UI上的控件特征。具体地,所述智能终端的操作系统是安卓操作系统,代理程序中包含Hook函数,则通过调用代理程序获取应用A的当前UI的界面信息的方式是:因为安卓系统的GUI(Graphical User Interface,图形用户界面)是属于客户端-服务端模式的,也就是说安卓系统在显示一个界面的时候,应用(客户端)会向安卓的一个服务SurfaceFlinger(服务端)要显示的界面信息,SurfaceFlinger通过多重计算合成能见区后发送至OpenGL(Open GraphicsLibrary,开放图形库)接口,由该接口处理后显示到智能终端的屏幕上。基于该原理,为了获取智能终端的屏幕显示信息,本方案通过代理程序中的Hook函数截获应用A发送给服务SurfaceFlinger的关于当前UI的界面信息,进而获知该当前UI中的各控件特性。然后,针对当前UI上的各控件进行触发测试。例如,对于UI上的一个按键,在已获知其基本特性(包括坐标位置、显示内容等)的前提下,对其进行点击测试,包括两种方式:直接调用这个按键原生的点击函数来实现点击该按键的效果,或者,模拟用户点击的方式,根据该按键的坐标位置发送对该坐标位置处进行点击的事件;具体地,通过Hook函数将该按键的坐标位置参数发送至一个点击函数,使得该点击函数运行时在该按键所在位置处进行点击。再次通过Hook函数获取跳转后下一个UI的界面信息,接着按照上述方法对该UI上的控件进行触发测试,再跳转到下一个UI的界面信息,以此类推,直至遍历完应用A的所有UI中的所有控件后,测试停止,得到应用A的UI的测试结果。
其中,对于一些使用自定义控件的UI,可能无法获取到界面信息的UI,则本发明进一步提供了通过引导页数据库对其进行判断处理的机制。
在本发明的一个实施例中,引导页数据库位于服务器侧;则图1所示方法的步骤S140,通过查询引导页数据库判断该当前UI是否为引导页包括:通过查询服务器侧的引导页数据库判断该当前UI是否为引导页。
具体地,引导页数据库中对应保存了包名、Activity组件的类名和相应的操作信息;则步骤S140具体包括以下流程:
步骤S141,获取应用的包名和当前Activity组件的类名。
步骤S142,以包名和Activity组件的类名作为索引查询所述引导页数据库,如果引导页数据库中存在包含相同包名和Activity组件的类名的条目,则判断当前UI是引导页。
经过上述判断过程,如果在引导页数据库中仍未查找到与当前UI对应的操作信息,说明当前UI可能不是引导页,或者说明当前UI的引导页信息未被收集到引导页数据库中,对于此种情况,图1所示的方法进一步执行如下处理方式:
查询经验列表;判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串;如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一个UI。其中,经验列表是根据以往测试的经验而建立的,如果在大量的测试中发现,一个指定界面元素具有被触发后即跳转到下一个UI的特点,则将该指定界面元素放入经验列表中;例如,一般情况下,UI中存在“开始使用”时,点击该“开始使用”即可跳转到下一个UI,因此,将“开始使用”放入经验列表中。
进一步地,对于上述既识别不出UI控件特性、又在引导页数据库中查找不到UI对应的操作信息的应用来说,本发明对其进行统计学习,以逐渐提升UI测试能力,则图1所示的方法在查询经验列表后,还包括:将所述应用添加到新应用统计列表中;其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将该应用的引导页相关内容添加到引导页数据库中。
除了上述的引导页之外,应用的UI中比较特殊的还包括协议页,协议页中一般包括:协议的文字内容,对于该协议“同意”或“不同意”的控件等;由于协议的文字内容是可见的,使得现有技术中的UI测试方案中往往将协议的文字部分也当作测试对象进行触发,不仅浪费了大量的测试时间,也无法得到有意义的测试结果。为了避免这种情况,本发明也提供了对协议页的处理过程,如下所述:经过图1中步骤S140对当前UI是否为引导页的判断,如果当前UI不是引导页,则图1所示的方法进一步包括:将当前UI上的文字与协议特征列表进行匹配;如果匹配,则判断当前UI是应用的协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。本实施例旨在利用尽量少的测试时间拿到最有效有意义的测试结果。
除了上述引导页和协议页之外,应用的UI中比较特殊的还包括登录页,登录页中一般包括:登录信息输入框(用户名输入框、密码输入框)、验证码输入框、“显示密码”控件和“立即登录”控件等。在对应用的UI进行测试的过程中,如果遇到登录页,不登录的话是无法跳转到下一个UI的,对此,本发明提出了解决方案:在本发明的一个实施例中,图1所示方法的步骤S130,如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI包括:如果识别出当前UI上的登录控件特征,则进一步确定当前UI上的登录信息输入框;将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框中;进一步识别出当前UI中的确认登录控件并触发。
在本发明的一个实施例中,图1所示的方法进一步包括:对提交测试的各应用进行分类;根据分类结果,确定引导页数据库的需要补充的内容;获取需要补充的内容,添加到引导页数据库中。本实施例是对测试方案的自学习过程,通过自学习进一步提高本方案的测试能力。
基于上述各实施例,在对应用的UI进行测试的过程中,记录在应用的每个UI上的执行操作和执行的结果,生成测试报告。
图2示出了根据本发明一个实施例的一种对应用的用户界面UI进行测试的装置示意图,如图2所示,该对应用的用户界面UI进行测试的装置包括:
获取单元210,适于获取提交测试的应用,并启动应用。
控件特征识别单元220,适于对于应用的每个当前UI,识别该当前UI上的控件特征。
测试执行单元230,适于当控件特征识别单元220识别出该当前UI上控件特征时,触发该控件特征对应的控件,跳转到应用的下一个UI;当控件特征识别单元220在该当前UI上没有识别出控件特征时,通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页。
存储单元240,适于保存引导页数据库。
可见,图2所示的装置在对应用的UI进行测试时,先识别当前UI上的控件特征,根据识别结果对当前UI上的控件进行针对性地触发,当没有识别出当前UI上的控件特征时,再通过查询引导页数据库获取对应于当前UI是引导页的操作信息以进行相应的操作。与现有技术中通过对UI进行随机盲目触发以完成测试的方案相比,本方案实现了智能地根据UI中的控件特征对UI中的控件进行针对性地触发测试,能够大大提高测试的有效性和可靠性,节省测试时间成本;并且,对于一些无法识别的UI自定义控件特征,进一步提出了通过数据库匹配的方式获取其对应的操作,有效地解决了对UI尤其是引导页的UI进行测试的问题。
在本发明的一个实施例中,测试执行单元230,适于获取所述应用的包名和当前Activity组件的类名,以包名和Activity组件的类名作为索引查询所述引导页数据库,如果引导页数据库中存在包含相同包名和Activity组件的类名的条目,则判断当前UI是引导页;其中,引导页数据库中对应保存了包名、Activity组件的类名和相应的操作信息。
在本发明的一个实施例中,存储单元240位于服务器侧;则测试执行单元230,适于通过查询服务器侧的存储单元240中的引导页数据库判断该当前UI是否为引导页。
在本发明的一个实施例中,控件特征识别单元220,适于获取应用的关于当前UI的源数据,通过分析获取的源数据识别当前UI上的控件特征。
在本发明的一个实施例中,存储单元240,进一步适于保存经验列表。测试执行单元230,进一步适于在当前UI不是引导页时,查询经验列表,判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串,如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一个UI。
以及,测试执行单元230,进一步适于在查询经验列表后,将应用添加到新应用统计列表中。其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将该应用的引导页相关内容添加到所述引导页数据库中。
在本发明的一个实施例中,存储单元240,进一步适于保存协议特征列表。测试执行单元230,进一步适于在当前UI不是引导页时,将当前UI上的文字与协议特征列表进行匹配;如果匹配,则判断当前UI是所述应用的协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。
在本发明的一个实施例中,测试执行单元230,适于当所述控件特征识别单元220识别出当前UI上的登录控件特征时,进一步确定当前UI上的登录信息输入框;将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框中;并进一步识别出当前UI中的确认登录控件并触发。
图3示出了根据本发明另一个实施例的一种对应用的用户界面UI进行测试的装置示意图,如图3所示,该对应用的用户界面UI进行测试的装置300包括:获取单元310、控件特征识别单元320、测试执行单元330、存储单元340、应用分类单元350和报告生成单元360。所述获取单元310、控件特征识别单元320、测试执行单元330和存储单元340与图2所示获取单元210、控件特征识别单元220、测试执行单元230和存储单元240功能对应相同,在此不再赘述。
应用分类单元350,适于对提交测试的各应用进行分类;根据分类结果,确定所述引导页数据库的需要补充的内容;获取所述需要补充的内容,添加到所述引导页数据库中。
报告生成单元360,适于记录在所述应用的每个UI上的执行操作和执行的结果,生成测试报告。
需要说明的是,图2到图3所示装置的各实施例与上文图1所示方法的各实施例对应相同,上文已详细说明,在此不再赘述。
综上所述,本发明提供的技术方案在对应用的UI进行测试时,先识别当前UI上的控件特征,根据识别结果对当前UI上的控件进行针对性地触发,当没有识别出当前UI上的控件特征时,再通过查询引导页数据库获取对应于当前UI是引导页的操作信息以进行相应的操作。与现有技术中通过对UI进行随机盲目触发以完成测试的方案相比,本方案实现了智能地根据UI中的控件特征对UI中的控件进行针对性地触发测试,能够大大提高测试的有效性和可靠性,节省测试时间成本;并且,本方案还进一步公开了提出引导页数据库匹配、协议特征列表匹配、登录页识别等方式,解决了对引导页、协议页和登录页这些特殊UI进行测试的问题。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种对应用的用户界面UI进行测试的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种对应用的用户界面UI进行测试的方法,其中,该方法包括:
获取提交测试的应用,并启动所述应用;
对于所述应用的每个当前UI,识别该当前UI上的控件特征;
如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI;
如果在该当前UI上没有识别出控件特征,则通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页。
A2、如A1所述的方法,其中,所述通过查询引导页数据库判断该当前UI是否为引导页包括:
获取所述应用的包名和当前Activity组件的类名;
以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则判断当前UI是引导页;
其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相应的操作信息。
A3、如A1所述的方法,其中,
所述引导页数据库位于服务器侧;
则所述通过查询引导页数据库判断该当前UI是否为引导页包括:通过查询服务器侧的引导页数据库判断该当前UI是否为引导页。
A4、如A1所述的方法,其中,所述对于所述应用的每个当前UI,识别该当前UI上的控件特征包括:
获取所述应用的关于所述当前UI的源数据;
通过分析获取的源数据识别当前UI上的控件特征。
A5、如A1所述的方法,其中,该方法进一步包括:
如果当前UI不是引导页,则查询经验列表;
判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串;
如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一个UI。
A6、如A5所述的方法,其中,该方法进一步包括:
查询经验列表后,还将所述应用添加到新应用统计列表中;
其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将该应用的引导页相关内容添加到所述引导页数据库中。
A7、如A1所述的方法,其中,该方法进一步包括:
如果当前UI不是引导页,则将当前UI上的文字与协议特征列表进行匹配;
如果匹配,则判断当前UI是所述应用的协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。
A8、如A1所述的方法,其中,所述如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI包括:
如果识别出当前UI上的登录控件特征,则进一步确定当前UI上的登录信息输入框;
将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框中;
进一步识别出当前UI中的确认登录控件并触发。
A9、如A1-A8中任一项所述的方法,其中,该方法进一步包括:
对提交测试的各应用进行分类;
根据分类结果,确定所述引导页数据库的需要补充的内容;
获取所述需要补充的内容,添加到所述引导页数据库中。
A10、如A1-A8中任一项所述的方法,其中,该方法进一步包括:
记录在所述应用的每个UI上的执行操作和执行的结果,生成测试报告。
本发明还公开了B11、一种对应用的用户界面UI进行测试的装置,其中,该装置包括:
获取单元,适于获取提交测试的应用,并启动所述应用;
控件特征识别单元,适于对于所述应用的每个当前UI,识别该当前UI上的控件特征;
测试执行单元,适于当所述控件特征识别单元识别出该当前UI上控件特征时,触发该控件特征对应的控件,跳转到所述应用的下一个UI;当所述控件特征识别单元在该当前UI上没有识别出控件特征时,通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页。
存储单元,适于保存引导页数据库。
B12、如B11所述的装置,其中,
所述测试执行单元,适于获取所述应用的包名和当前Activity组件的类名,以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则判断当前UI是引导页;
其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相应的操作信息。
B13、如B11所述的装置,其中,
所述存储单元位于服务器侧;
则所述测试执行单元,适于通过查询服务器侧的存储单元中的引导页数据库判断该当前UI是否为引导页。
B14、如B11所述的装置,其中,
所述控件特征识别单元,适于获取所述应用的关于所述当前UI的源数据,通过分析获取的源数据识别当前UI上的控件特征。
B15、如B11所述的装置,其中,
所述存储单元,进一步适于保存经验列表;
所述测试执行单元,进一步适于在当前UI不是引导页时,查询经验列表,判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串,如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一个UI。
B16、如B15所述的装置,其中,
所述测试执行单元,进一步适于在查询经验列表后,将所述应用添加到新应用统计列表中;
其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将该应用的引导页相关内容添加到所述引导页数据库中。
B17、如B11所述的装置,其中,
所述存储单元,进一步适于保存协议特征列表;
所述测试执行单元,进一步适于在当前UI不是引导页时,将当前UI上的文字与协议特征列表进行匹配;如果匹配,则判断当前UI是所述应用的协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。
B18、如B11所述的装置,其中,
所述测试执行单元,适于当所述控件特征识别单元识别出当前UI上的登录控件特征时,进一步确定当前UI上的登录信息输入框;将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框中;并进一步识别出当前UI中的确认登录控件并触发。
B19、如B11-B18中任一项所述的装置,其中,该装置进一步包括:
应用分类单元,适于对提交测试的各应用进行分类;根据分类结果,确定所述引导页数据库的需要补充的内容;获取所述需要补充的内容,添加到所述引导页数据库中。
B20、如B11-B18中任一项所述的装置,其中,该装置进一步包括:
报告生成单元,适于记录在所述应用的每个UI上的执行操作和执行的结果,生成测试报告。
Claims (20)
1.一种对应用的用户界面UI进行测试的方法,其中,该方法包括:
获取提交测试的应用,并启动所述应用;
对于所述应用的每个当前UI,识别该当前UI上的控件特征;
如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI;
如果在该当前UI上没有识别出控件特征,则通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页。
2.如权利要求1所述的方法,其中,所述通过查询引导页数据库判断该当前UI是否为引导页包括:
获取所述应用的包名和当前Activity组件的类名;
以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则判断当前UI是引导页;
其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相应的操作信息。
3.如权利要求1所述的方法,其中,
所述引导页数据库位于服务器侧;
则所述通过查询引导页数据库判断该当前UI是否为引导页包括:通过查询服务器侧的引导页数据库判断该当前UI是否为引导页。
4.如权利要求1所述的方法,其中,所述对于所述应用的每个当前UI,识别该当前UI上的控件特征包括:
获取所述应用的关于所述当前UI的源数据;
通过分析获取的源数据识别当前UI上的控件特征。
5.如权利要求1所述的方法,其中,该方法进一步包括:
如果当前UI不是引导页,则查询经验列表;
判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串;
如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一个UI。
6.如权利要求5所述的方法,其中,该方法进一步包括:
查询经验列表后,还将所述应用添加到新应用统计列表中;
其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将该应用的引导页相关内容添加到所述引导页数据库中。
7.如权利要求1所述的方法,其中,该方法进一步包括:
如果当前UI不是引导页,则将当前UI上的文字与协议特征列表进行匹配;
如果匹配,则判断当前UI是所述应用的协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。
8.如权利要求1所述的方法,其中,所述如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI包括:
如果识别出当前UI上的登录控件特征,则进一步确定当前UI上的登录信息输入框;
将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框中;
进一步识别出当前UI中的确认登录控件并触发。
9.如权利要求1-8中任一项所述的方法,其中,该方法进一步包括:
对提交测试的各应用进行分类;
根据分类结果,确定所述引导页数据库的需要补充的内容;
获取所述需要补充的内容,添加到所述引导页数据库中。
10.如权利要求1-8中任一项所述的方法,其中,该方法进一步包括:
记录在所述应用的每个UI上的执行操作和执行的结果,生成测试报告。
11.一种对应用的用户界面UI进行测试的装置,其中,该装置包括:
获取单元,适于获取提交测试的应用,并启动所述应用;
控件特征识别单元,适于对于所述应用的每个当前UI,识别该当前UI上的控件特征;
测试执行单元,适于当所述控件特征识别单元识别出该当前UI上控件特征时,触发该控件特征对应的控件,跳转到所述应用的下一个UI;当所述控件特征识别单元在该当前UI上没有识别出控件特征时,通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页;
存储单元,适于保存引导页数据库。
12.如果权利要求11所述的装置,其中,
所述测试执行单元,适于获取所述应用的包名和当前Activity组件的类名,以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则判断当前UI是引导页;
其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相应的操作信息。
13.如权利要求11所述的装置,其中,
所述存储单元位于服务器侧;
则所述测试执行单元,适于通过查询服务器侧的存储单元中的引导页数据库判断该当前UI是否为引导页。
14.如权利要求11所述的装置,其中,
所述控件特征识别单元,适于获取所述应用的关于所述当前UI的源数据,通过分析获取的源数据识别当前UI上的控件特征。
15.如权利要求11所述的装置,其中,
所述存储单元,进一步适于保存经验列表;
所述测试执行单元,进一步适于在当前UI不是引导页时,查询经验列表,判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串,如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一个UI。
16.如权利要求15所述的装置,其中,
所述测试执行单元,进一步适于在查询经验列表后,将所述应用添加到新应用统计列表中;
其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将该应用的引导页相关内容添加到所述引导页数据库中。
17.如权利要求11所述的装置,其中,
所述存储单元,进一步适于保存协议特征列表;
所述测试执行单元,进一步适于在当前UI不是引导页时,将当前UI上的文字与协议特征列表进行匹配;如果匹配,则判断当前UI是所述应用的协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。
18.如权利要求11所述的装置,其中,
所述测试执行单元,适于当所述控件特征识别单元识别出当前UI上的登录控件特征时,进一步确定当前UI上的登录信息输入框;将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框中;并进一步识别出当前UI中的确认登录控件并触发。
19.如权利要求11-18中任一项所述的装置,其中,该装置进一步包括:
应用分类单元,适于对提交测试的各应用进行分类;根据分类结果,确定所述引导页数据库的需要补充的内容;获取所述需要补充的内容,添加到所述引导页数据库中。
20.如权利要求11-18中任一项所述的装置,其中,该装置进一步包括:
报告生成单元,适于记录在所述应用的每个UI上的执行操作和执行的结果,生成测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510640459.2A CN105607993B (zh) | 2015-09-30 | 2015-09-30 | 一种对应用的用户界面ui进行测试的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510640459.2A CN105607993B (zh) | 2015-09-30 | 2015-09-30 | 一种对应用的用户界面ui进行测试的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105607993A CN105607993A (zh) | 2016-05-25 |
CN105607993B true CN105607993B (zh) | 2018-04-20 |
Family
ID=55987945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510640459.2A Active CN105607993B (zh) | 2015-09-30 | 2015-09-30 | 一种对应用的用户界面ui进行测试的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105607993B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294152B (zh) * | 2016-08-09 | 2019-03-12 | 努比亚技术有限公司 | 应用用户界面的遍历测试装置及方法 |
CN108415822B (zh) * | 2017-02-10 | 2022-09-20 | 阿里巴巴集团控股有限公司 | 一种随机测试方法和装置 |
CN107329898A (zh) * | 2017-06-30 | 2017-11-07 | 上海摩软通讯技术有限公司 | 终端界面自动化测试方法及系统 |
CN110914810B (zh) * | 2017-11-10 | 2022-02-01 | 华为技术有限公司 | Monkey测试方法及终端 |
WO2019205146A1 (en) * | 2018-04-28 | 2019-10-31 | Entit Software Llc | Recommending programmatic descriptions for test objects |
CN109324857B (zh) * | 2018-09-07 | 2021-10-08 | 腾讯科技(武汉)有限公司 | 一种用户引导实现方法、装置和存储介质 |
CN110287094A (zh) * | 2019-05-20 | 2019-09-27 | 平安普惠企业管理有限公司 | Ui自动化测试方法、装置及计算机可读存储介质 |
CN112214397B (zh) * | 2020-09-09 | 2022-05-20 | 腾讯科技(深圳)有限公司 | 用户界面测试方法、装置、计算机设备和存储介质 |
CN113190444B (zh) * | 2021-04-28 | 2022-03-15 | 深圳市腾讯网域计算机网络有限公司 | 一种测试方法、装置及存储介质 |
CN113157377B (zh) * | 2021-05-20 | 2023-06-27 | 读书郎教育科技有限公司 | 一种Android系统实现对应用部分管控的方法及设备 |
CN114463730B (zh) * | 2021-07-15 | 2023-07-14 | 荣耀终端有限公司 | 一种页面识别方法及终端设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102511037A (zh) * | 2010-08-10 | 2012-06-20 | 国际商业机器公司 | 用于自动测试web应用的方法和系统 |
CN102799428A (zh) * | 2012-06-28 | 2012-11-28 | 北京大学 | 交互式软件中的操作记录与回放方法 |
CN104391786A (zh) * | 2014-10-31 | 2015-03-04 | 任子行网络技术股份有限公司 | 网页自动化测试系统及其方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766475B2 (en) * | 2001-01-04 | 2004-07-20 | International Business Machines Corporation | Method and apparatus for exercising an unknown program with a graphical user interface |
US20100114939A1 (en) * | 2008-10-24 | 2010-05-06 | Schulman Elad | Software test management system and method with facilitated reuse of test components |
US20130036108A1 (en) * | 2011-08-02 | 2013-02-07 | Maxime Corbeau | Method and system for assisting users with operating network devices |
US9514027B2 (en) * | 2011-11-08 | 2016-12-06 | Microsoft Technology Licensing, Llc | Context-aware model-driven hierarchical monitoring metadata |
-
2015
- 2015-09-30 CN CN201510640459.2A patent/CN105607993B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102511037A (zh) * | 2010-08-10 | 2012-06-20 | 国际商业机器公司 | 用于自动测试web应用的方法和系统 |
CN102799428A (zh) * | 2012-06-28 | 2012-11-28 | 北京大学 | 交互式软件中的操作记录与回放方法 |
CN104391786A (zh) * | 2014-10-31 | 2015-03-04 | 任子行网络技术股份有限公司 | 网页自动化测试系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105607993A (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105607993B (zh) | 一种对应用的用户界面ui进行测试的方法和装置 | |
US20190188119A1 (en) | System and a method for providing automated performance detection of application programming interfaces | |
CA3018196C (en) | Visual regresssion testing tool | |
US20160352892A1 (en) | Method and apparatus for facilitating speech application testing | |
US20090271351A1 (en) | Rules engine test harness | |
US10248549B1 (en) | Systems and methods for detection of untested code execution | |
CN107688530A (zh) | 软件测试方法及装置 | |
US10740221B2 (en) | Scalable AI framework for test automation | |
CA3062776C (en) | Integrating virtual and human agents in a multi-channel support system for complex software applications | |
CN109840192B (zh) | 自动化测试的方法和装置 | |
CN108595343A (zh) | 应用程序的测试方法及装置 | |
US20180174288A1 (en) | SCORE WEIGHTS FOR USER INTERFACE (ui) ELEMENTS | |
CN108920359A (zh) | 应用程序的测试方法、装置、存储介质和电子装置 | |
CN111414751A (zh) | 质检优化方法、装置、设备及存储介质 | |
US8572553B2 (en) | Systems and methods for providing feedback for software components | |
CN115016831A (zh) | 一种依赖组件信息获取方法、装置及存储介质 | |
US10719482B2 (en) | Data comparison | |
US20210165846A1 (en) | Information processing apparatus, information processing system, and method of processing information | |
CN107229565A (zh) | 测试方法和装置 | |
US20160246698A1 (en) | Change based testing of a javascript software application | |
CN104471531A (zh) | 捕获会话中的应用状态 | |
CN108885574B (zh) | 用于监视和报告设计、编译和运行时的性能和正确性问题的系统 | |
CN114297057A (zh) | 一种自动化测试用例的设计及使用方法 | |
Hudson et al. | Understanding triggers for clarification requests in community-based software help forums | |
CN103377118B (zh) | 一种测试Flash引擎的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220712 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co., Ltd |