CN109359042B - 一种基于路径搜索算法的自动化测试方法 - Google Patents

一种基于路径搜索算法的自动化测试方法 Download PDF

Info

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
Application number
CN201811169017.4A
Other languages
English (en)
Other versions
CN109359042A (zh
Inventor
戴亦斌
尹春鹏
贾志凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Testin Information Technology Co Ltd
Original Assignee
Beijing Testin Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Testin Information Technology Co Ltd filed Critical Beijing Testin Information Technology Co Ltd
Priority to CN201811169017.4A priority Critical patent/CN109359042B/zh
Publication of CN109359042A publication Critical patent/CN109359042A/zh
Application granted granted Critical
Publication of CN109359042B publication Critical patent/CN109359042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test 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文件如下所示:
Figure BDA0001821930010000061
Figure BDA0001821930010000071
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值。
CN201811169017.4A 2018-10-08 2018-10-08 一种基于路径搜索算法的自动化测试方法 Active CN109359042B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947422A (zh) * 2021-01-28 2021-06-11 电子科技大学 一种用于ros无人车的导航控制方法及平台

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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