CN109359042B - 一种基于路径搜索算法的自动化测试方法 - Google Patents
一种基于路径搜索算法的自动化测试方法 Download PDFInfo
- Publication number
- CN109359042B CN109359042B CN201811169017.4A CN201811169017A CN109359042B CN 109359042 B CN109359042 B CN 109359042B CN 201811169017 A CN201811169017 A CN 201811169017A CN 109359042 B CN109359042 B CN 109359042B
- Authority
- CN
- China
- Prior art keywords
- interface
- test
- search algorithm
- identification code
- path search
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于路径搜索算法的自动化测试方法,主要分为功能遍历、有向图生成和自动测试三大步骤,经过一次功能遍历之后,会包含几乎所有的测试点。测试一个或者多个功能时,只需要指定一个起始页面和结束界面,便可以完成测试。多次测试,不再需要重新录制脚本。测试过程中,如果出现未预见的界面,或者找不到对应的操作控件时,可以回退到一个已知的页面,然后重新搜索路径进行测试。这样可以应对更多的异常情况,提高测试的健壮性。
Description
技术领域
本发明涉及移动应用的自动化测试技术领域,具体涉及基于路径搜索算法的自动化测试方法。
背景技术
当前移动应用的自动化测试,主要通过控件识别和录制脚本的方式实现。现有的方法主要有以下两个缺点:
1)灵活性不足:脚本的录制是一次性的连续性操作,为了能够测试尽可能多的功能,需要在一次录制中,将所有的测试点都添加到路径上。测试点之间会形成顺序依赖,即使它们是完全独立的两个测试点。这样需要修改某个测试点或者添加新的测试点时,必须重新录制脚本。
2)健壮性差:脚本需要提前设定测试的每一步骤,包括界面的操作控件和操作类型。如果脚本执行过程中,出现了录制脚本时未设置的场景,比如网络超时、系统弹框等,脚本的自动化将被打断。移动设备的碎片化,总会出现录制脚本时无法预知所有的场景,导致录制的脚本在部分设备上执行出现问题。
发明内容
针对现有技术的不足,本发明旨在提供一种路径搜索算法的自动化测试方法,可以很好的解决当前脚本录制的问题。
为了实现上述目的,本发明采用如下技术方案:
一种基于路径搜索算法的自动化测试方法,包括如下步骤:
S1、功能遍历:应用启动后,从一个可操作界面开始,随机点击界面里的控件,完成从一个界面到另一个界面的切换,将所有的控件都操作一遍,并对每个界面均作如下操作:
1)保存每个界面的截图,并对每个界面生成UUID;
2)获取界面的控件树信息,保存到xml文件中,文件名为步骤S1中生成的对应界面的UUID;
3)保存操作记录到csv文件,所述操作记录包括操作前的界面UUID、操作后的界面UUID、操作类型、操作的控件信息、操作的坐标位置;
S2、有向图生成:根据步骤S1中得到的保存有控件树信息的xml文件和保存有操作记录的csv文件,生成所有界面的有向图;具体过程为:
S2.1、解析所述保存有控件树信息的xml文件,生成界面的唯一标识md5值;
S2.2、关联所有界面截图的UUID和唯一标识码md5值,并生成json文件,其中key为各个界面的唯一标识码md5值,value为所有UUID组成的列表;
S2.3、使用S2.2中的json文件,用各个界面的唯一标识码md5值替换步骤S1中得到的csv文件中对应界面的UUID,得到最终的csv文件;
S3、开始进行自动化测试:
S3.1、安装待测试游戏;
S3.2、启动待测试游戏;
S3.3、设定测试结束界面;
S3.4、根据路径搜索算法,以测试起始界面和测试结束界面的唯一标识码md5值为输入,从步骤S2.3生成的csv文件中计算出测试路径;
S3.5、获取当前界面的控件树信息;
S3.6、根据界面唯一性判断,获取当前界面的唯一标识码md5值;
S3.7、根据当前界面的唯一标识码md5值判断当前界面是否为测试结束界面,如果是,则测试结束,否则跳转至步骤S3.8;
S3.8、判断步骤S3.6中获取的唯一标识码md5值是否在步骤S3.4中计算得到测试路径中,如果是,则跳转至步骤S3.9,否则返回上一个界面后返回步骤S3.4;
S3.9、根据测试路径,执行对应的操作,进入下一个界面,并返回步骤S3.5。
进一步地,步骤2)中,利用Uiautomatorviewer工具获取界面的控件树信息。
进一步地,步骤3)中,操作类型包括单击、双击、长按、滑动中的一种。
进一步地,步骤S2.1中,解析所述保存有控件树信息的xml文件之后、生成界面的唯一标识md5值之前,先执行如下规则:
a)去除系统UI元素;
b)去除无用控件;
c)去除布局控件,只保留其子控件;
d)去除动态的子控件。
更进一步地,步骤a)中,系统UI元素包括状态栏、通知栏。
更进一步地,步骤b)中,所述无用控件为宽或者高只占用1-2像素值的控件。
更进一步地,步骤c)中,所述布局控件包括FrameLayout、LinearLayout、RelativeLayout、ViewPager。
更进一步地,步骤d)中,动态的子控件包括WebView、RecyclerView、ListView、GridView。
进一步地,步骤S2.3中,最终的csv文件每行格式如下:
操作前的界面唯一标识码md5值,操作类型,控件信息,操作后的界面唯一标识码md5值。
本发明的有益效果在于:
1)经过一次功能遍历之后,会包含几乎所有的测试点。测试一个或者多个功能时,只需要指定一个测试起始页面和测试结束界面,便可以完成测试。多次测试,不再需要重新录制脚本。
2)测试过程中,如果出现未预见的界面,或者找不到对应的操作控件时,可以回退到一个已知的页面,然后重新搜索路径进行测试。这样可以应对更多的异常情况,提高测试的健壮性。
附图说明
图1为本发明实施例的总体实施流程示意图;
图2为图1中步骤S1的实施流程示意图;
图3为图1中步骤S2的实施流程示意图;
图4为图1中步骤S3的实施流程示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,以下实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
首先对本实施例中涉及的专业术语作简要解释。
测试点:是指要测试的某个具体功能,可能包含多个操作步骤和多个界面,比如登录功能测试,需要输入用户名、输入密码、点击登录三个操作。
界面的唯一性判定:移动应用的界面会有很多的动态内容,但从测试的角度可以归为一个。比如商品详情页,无论展示的是某个手机的详情,还是某个电脑的详情,测试时认定为是一个界面。再比如,资讯的首页,会有一个资讯的列表,展示的一条条资讯都是实时更新的,无论列表项如何变化,都可以认为是同一个界面。
控件树:一个界面是由很多控件组合而成的,并且这些控件之间具有层级关系,类似于树型结构。
测试路径:指从一个界面到另一个界面的过程界面及对应的操作,比如从A界面到D界面,路径如下:A界面的md5-->点击控件a-->B界面的md5-->点击控件b-->C界面的md5-->点击控件c-->D界面的md5。
本实施例提供一种基于路径搜索算法的自动化测试方法,如图1所示,包括如下步骤:
S1、功能遍历:应用启动后,从一个可操作界面开始,随机点击界面里的控件,完成从一个界面到另一个界面的切换,将所有的控件都操作一遍,并对每个界面均作如下操作,如图2所示:
1)保存每个界面的截图,并对每个界面生成UUID;
2)利用Uiautomatorviewer等工具,获取界面的控件树信息,保存到xml文件中,文件名为步骤S1中生成的对应界面的UUID;
3)保存操作记录到csv文件,所述操作记录包括操作前的界面UUID、操作后的界面UUID、操作类型(单击、双击、长按、滑动)、操作的控件信息、操作的坐标位置等;
步骤S1只需要在任意一台手机上操作完成即可。
S2、有向图生成:根据步骤S1中得到的保存有控件树信息的xml文件和保存有操作记录的csv文件,生成所有界面的有向图;如图3所示,具体过程为:
S2.1、解析所述保存有控件树信息的xml文件,执行以下规则后,生成界面的唯一标识md5值:
a)去除系统UI元素,比如状态栏、通知栏等;
b)去除无用控件,所述无用控件为宽或者高只占用1-2像素值的控件;这类控件对整个界面的控件布局不产生实质的影响,故将其去除;
c)去除布局控件,只保留其子控件,比如FrameLayout、LinearLayout、RelativeLayout、ViewPager等;
d)去除动态的子控件,比如WebView、RecyclerView、ListView、GridView等;
S2.2、关联所有界面截图的UUID和唯一标识码md5值,并生成json文件,其中key为各个界面的唯一标识码md5值,value为所有UUID组成的列表;在本实施例中,所述json文件如下所示:
S2.3、使用S2.2中的json文件,用各个界面的唯一标识码md5值替换步骤S1中得到的csv文件中对应界面的UUID,最终的csv文件每行格式如下:
操作前的界面唯一标识码md5值,操作类型,控件信息,操作后的界面唯一标识码md5值;
S3、自动化测试:在所有设备上并行执行自动化脚本,完成所有测试流程;所述自动化脚本的执行流程如下,如图4所示:
S3.1、安装待测试游戏;
S3.2、启动待测试游戏;
S3.3、设定测试结束界面;
S3.4、根据路径搜索算法,以测试起始界面和测试结束界面的唯一标识码md5值为输入,从S2.3生成的csv文件中计算出测试路径;
S3.5、获取当前界面的控件树信息;
S3.6、根据界面唯一性判断,获取当前界面的唯一标识码md5值;
S3.7、根据当前界面的唯一标识码md5值判断当前界面是否为测试结束界面,如果是,则测试结束,否则跳转至步骤S3.8;
S3.8、判断步骤S3.6中获取的唯一标识码md5值是否在步骤S3.4中计算得到测试路径中,如果是,则跳转至步骤S3.9,否则返回上一个界面后返回步骤S3.4;
S3.9、根据测试路径,执行对应的操作,进入下一个界面,并返回步骤S3.5。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。
Claims (9)
1.一种基于路径搜索算法的自动化测试方法,其特征在于,包括如下步骤:
S1、功能遍历:应用启动后,从一个可操作界面开始,随机点击界面里的控件,完成从一个界面到另一个界面的切换,将所有的控件都操作一遍,并对每个界面均作如下操作:
1)保存每个界面的截图,并对每个界面生成UUID;
2)获取界面的控件树信息,保存到xml文件中,文件名为步骤S1中生成的对应界面的UUID;
3)保存操作记录到csv文件,所述操作记录包括操作前的界面UUID、操作后的界面UUID、操作类型、操作的控件信息、操作的坐标位置;
S2、有向图生成:根据步骤S1中得到的保存有控件树信息的xml文件和保存有操作记录的csv文件,生成所有界面的有向图;具体过程为:
S2.1、解析所述保存有控件树信息的xml文件,生成界面的唯一标识md5值;
S2.2、关联所有界面截图的UUID和唯一标识码md5值,并生成json文件,其中key为各个界面的唯一标识码md5值,value为所有UUID组成的列表;
S2.3、使用S2.2中的json文件,用各个界面的唯一标识码md5值替换步骤S1中得到的csv文件中对应界面的UUID,得到最终的csv文件;
S3、开始进行自动化测试:
S3.1、安装待测试游戏;
S3.2、启动待测试游戏;
S3.3、设定测试结束界面;
S3.4、根据路径搜索算法,以测试起始界面和测试结束界面的唯一标识码md5值为输入,从步骤S2.3生成的csv文件中计算出测试路径;
S3.5、获取当前界面的控件树信息;
S3.6、根据界面唯一性判断,获取当前界面的唯一标识码md5值;
S3.7、根据当前界面的唯一标识码md5值判断当前界面是否为测试结束界面,如果是,则测试结束,否则跳转至步骤S3.8;
S3.8、判断步骤S3.6中获取的唯一标识码md5值是否在步骤S3.4中计算得到测试路径中,如果是,则跳转至步骤S3.9,否则返回上一个界面后返回步骤S3.4;
S3.9、根据测试路径,执行对应的操作,进入下一个界面,并返回步骤S3.5。
2.根据权利要求1所述的基于路径搜索算法的自动化测试方法,其特征在于,步骤2)中,利用Uiautomatorviewer工具获取界面的控件树信息。
3.根据权利要求1所述的基于路径搜索算法的自动化测试方法,其特征在于,步骤3)中,操作类型包括单击、双击、长按、滑动中的一种。
4.根据权利要求1所述的基于路径搜索算法的自动化测试方法,其特征在于,步骤S2.1中,解析所述保存有控件树信息的xml文件之后、生成界面的唯一标识md5值之前,先执行如下规则:
a)去除系统UI元素;
b)去除无用控件;
c)去除布局控件,只保留其子控件;
d)去除动态的子控件。
5.根据权利要求4所述的基于路径搜索算法的自动化测试方法,其特征在于,步骤a)中,系统UI元素包括状态栏、通知栏。
6.根据权利要求4所述的基于路径搜索算法的自动化测试方法,其特征在于,步骤b)中,所述无用控件为宽或者高只占用1-2像素值的控件。
7.根据权利要求4所述的基于路径搜索算法的自动化测试方法,其特征在于,步骤c)中,所述布局控件包括FrameLayout、LinearLayout、RelativeLayout、ViewPager。
8.根据权利要求4所述的基于路径搜索算法的自动化测试方法,其特征在于,步骤d)中,动态的子控件包括WebView、RecyclerView、ListView、GridView。
9.根据权利要求1所述的基于路径搜索算法的自动化测试方法,其特征在于,步骤S2.3中,最终的csv文件每行格式如下:
操作前的界面唯一标识码md5值,操作类型,控件信息,操作后的界面唯一标识码md5值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811169017.4A CN109359042B (zh) | 2018-10-08 | 2018-10-08 | 一种基于路径搜索算法的自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811169017.4A CN109359042B (zh) | 2018-10-08 | 2018-10-08 | 一种基于路径搜索算法的自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109359042A CN109359042A (zh) | 2019-02-19 |
CN109359042B true CN109359042B (zh) | 2021-08-03 |
Family
ID=65348603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811169017.4A Active CN109359042B (zh) | 2018-10-08 | 2018-10-08 | 一种基于路径搜索算法的自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109359042B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947422A (zh) * | 2021-01-28 | 2021-06-11 | 电子科技大学 | 一种用于ros无人车的导航控制方法及平台 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411538A (zh) * | 2011-11-22 | 2012-04-11 | 南京大学 | 基于事件可达性模型的图形用户界面测试脚本修复方法 |
CN102567201A (zh) * | 2011-12-15 | 2012-07-11 | 南京大学 | 跨模型的图形用户界面测试脚本自动修复方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131556A1 (en) * | 2010-11-19 | 2012-05-24 | International Business Machines Corporation | Xpath-based selection assistance of gui elements during manual test script authoring for xml-based applications |
US8949795B2 (en) * | 2012-08-23 | 2015-02-03 | International Business Machines Corporation | Generating test cases for covering enterprise rules and predicates |
-
2018
- 2018-10-08 CN CN201811169017.4A patent/CN109359042B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411538A (zh) * | 2011-11-22 | 2012-04-11 | 南京大学 | 基于事件可达性模型的图形用户界面测试脚本修复方法 |
CN102567201A (zh) * | 2011-12-15 | 2012-07-11 | 南京大学 | 跨模型的图形用户界面测试脚本自动修复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109359042A (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928772B (zh) | 一种测试方法及装置 | |
US9280451B2 (en) | Testing device | |
US9442832B2 (en) | User workflow replication for execution error analysis | |
CN111752843B (zh) | 用于确定影响面的方法、装置、电子设备及可读存储介质 | |
CN107678948B (zh) | 测试用例生成方法、终端及存储介质 | |
CN111108481B (zh) | 故障分析方法及相关设备 | |
CN110532056B (zh) | 一种应用于用户界面中的控件识别方法及装置 | |
CN111190827A (zh) | 接口自动化测试方法、装置、存储介质及电子设备 | |
CN112817866A (zh) | 录制回放方法、装置、系统、计算机设备以及存储介质 | |
CN111859047A (zh) | 一种故障解决方法及装置 | |
CN112069068A (zh) | 自动化测试数据处理方法、装置、设备及可读存储介质 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN111625471A (zh) | 测试用例的执行处理、异常定位方法、装置、设备及介质 | |
CN110442583B (zh) | 数据处理的方法及装置、电子设备、存储介质 | |
CN109359042B (zh) | 一种基于路径搜索算法的自动化测试方法 | |
CN107430590B (zh) | 用于数据比较的系统和方法 | |
CN112905451A (zh) | 应用程序的自动化测试方法及装置 | |
CN105912467A (zh) | 一种性能测试方法及装置 | |
CN112765041B (zh) | 游戏自动化测试方法、装置及电子设备 | |
JP2008197897A (ja) | テストパターン作成装置及び作成方法 | |
TWI650710B (zh) | 測試流程的檢測方法 | |
CN107102938B (zh) | 测试脚本的更新方法及装置 | |
WO2020230241A1 (ja) | テスト装置、テスト方法及びプログラム | |
CN111309598A (zh) | 一种测试用例执行环境恢复方法、系统、终端及存储介质 | |
CN105359111A (zh) | 用户界面检查方法、设备及程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210721 Address after: 100016 no.4301, No.52 Jiuxianqiao hospital, Chaoyang District, Beijing Applicant after: BEIJING TESTIN INFORMATION TECHNOLOGY Co.,Ltd. Address before: Room 2016, building 2, No.8, Fenghuang Third Road, Zhongxin Guangzhou Knowledge City, Guangzhou 510260, Guangdong Province Applicant before: GUANGZHOU TESTIN INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right |