CN112131136A - 自动化交互测试方法及装置 - Google Patents

自动化交互测试方法及装置 Download PDF

Info

Publication number
CN112131136A
CN112131136A CN202011326617.4A CN202011326617A CN112131136A CN 112131136 A CN112131136 A CN 112131136A CN 202011326617 A CN202011326617 A CN 202011326617A CN 112131136 A CN112131136 A CN 112131136A
Authority
CN
China
Prior art keywords
application
test
interaction
tested
inter
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.)
Granted
Application number
CN202011326617.4A
Other languages
English (en)
Other versions
CN112131136B (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.)
Zhidao Network Technology Beijing Co Ltd
Original Assignee
Zhidao Network Technology Beijing 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 Zhidao Network Technology Beijing Co Ltd filed Critical Zhidao Network Technology Beijing Co Ltd
Priority to CN202011326617.4A priority Critical patent/CN112131136B/zh
Publication of CN112131136A publication Critical patent/CN112131136A/zh
Application granted granted Critical
Publication of CN112131136B publication Critical patent/CN112131136B/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/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • 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/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种自动化交互测试方法及装置,首先获取待测试应用的用户界面UI自动化测试脚本,然后根据UI自动化测试脚本的功能归属、测试用例的数量以及每个测试用例的优先级,确定与UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;最后将系统交互事件和/或应用间交互事件注入至UI自动化测试脚本,并基于得到的目标UI自动化测试脚本对待测试应用进行自动化交互测试。通过在UI自动化测试脚本中注入系统交互事件和/或应用间交互事件,可实现对待测试应用与所处系统的交互测试和/或与所处系统中其他应用的交互测试,不再需要针对待测试应用单独开发独其与系统之间的交互测试脚本或其与其他应用之间的交互测试脚本。

Description

自动化交互测试方法及装置
技术领域
本发明涉及移动应用测试技术领域,尤其涉及一种自动化交互测试方法及装置。
背景技术
当前,用户界面(User Interface,UI)自动化测试是一种比较主流的自动化测试生成技术,例如安卓(Android)UI自动化测试,已日益成熟。
Android UI自动化测试时通常采用的自动化测试框架可以包括:Robotium、UIAutomator、UIAutomator2、Espresso以及Appium等。基于以上自动化测试框架,测试人员可以手动编写自动化测试脚本,针对某个应用的某些特定场景编写或录制测试步骤,进行自动化执行,并编写对应断言语句,判断功能是否符合要求,这种测试方法适合重复率较高的测试场景,例如bvt测试,Daily build测试等。
但是,针对某个应用进行的自动化测试,通常测试场景单一,无法涵盖应用与系统之间的交互测试以及应用与其他应用之间的交互测试,如果针对某个应用单独开发其与系统之间的交互测试脚本或其与其他应用之间的交互测试脚本,不仅非常考验测试人员的用例设计能力,无疑也会白白浪费掉很多人力,增加测试成本。
发明内容
本发明实施例提供一种自动化交互测试方法及装置,用以解决现有技术中存在的缺陷。
本发明实施例提供一种自动化交互测试方法,包括:
获取待测试应用的用户界面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自动化测试脚本,并基于得到的目标UI自动化测试脚本对待测试应用进行自动化交互测试。通过在UI自动化测试脚本中注入系统交互事件和/或应用间交互事件,即可实现对待测试应用与所处系统的交互测试和/或与所处系统中其他应用的交互测试,不再需要针对待测试应用单独开发独其与系统之间的交互测试脚本或其与其他应用之间的交互测试脚本,可以降低对测试人员的用例设计能力的要求,节约人力,降低测试成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种自动化交互测试方法的流程示意图;
图2是本发明实施例提供的对待测试应用进行自动化交互测试的流程示意图;
图3是本发明实施例提供的一种自动化交互测试装置的结构示意图;
图4是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例中提供的一种自动化交互测试方法的流程示意图,如图1所示,该方法包括:
S1,获取待测试应用的用户界面UI自动化测试脚本,其中,所述UI自动化测试脚本至少包括一个测试用例;
S2,根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;
S3,将所述系统交互事件和/或所述应用间交互事件注入至所述UI自动化测试脚本;
S4,通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试。
具体地,本发明实施例中提供的自动化交互测试方法,其执行主体为自动化交互测试装置,用以实现待测试应用与所处系统以及所处系统内其他应用之间的交互测试,该自动化交互测试装置可以基于服务器构建,服务器具体可以是本地服务器,例如智能手机、计算机以及平板电脑等,还可以是云端服务器,本发明实施例中对此不做具体限定。
首先执行步骤S1,获取待测试应用的用户界面(User Interface,UI)自动化测试脚本,待测试应用是指需要进行交互测试的应用,例如可以是音乐播放器、电子地图等。待测试应用具体可以安装于某一系统内,该系统具体可以是安卓(Android)系统。该系统可以部署于车辆中的车联网安卓设备内,形成车联网系统。车辆可以是火车、地铁等列车。此时,本发明实施例中提供的自动化交互测试方法可以理解为是基于车联网Android自动化交互测试方法。
UI自动化测试脚本可以通过UI自动化测试框架生成,UI自动化测试框架可以事先搭建,能够为UI自动化测试脚本中包含的测试用例注入功能归属以及单条测试用例优先级等,并统计测试用例的数量以及测试用例优先级分布,还可以开发能够动态增加接收前置条件或后置条件的功能等。
然后执行步骤S2,UI自动化测试脚本的功能归属是指UI自动化测试脚本能够测试的目标功能,也即待测试应用能够实现的功能,例如音频播放、网络连接等功能,测试用例的数量是指UI自动化测试脚本中包含的测试用例的数量,测试用例的优先级是指每个测试用例的重要程度,即在对待测试应用进行测试时每个测试用例被选用的先后顺序。
根据UI自动化测试脚本的功能归属、测试用例的数量以及测试用例的优先级,确定与UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。具体的确定方式可以是,利用UI自动化测试脚本的功能归属、测试用例的数量以及每个测试用例的优先级构建选取规则,从预先生成的系统交互事件集合以及应用间交互事件集合中选取与UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。与UI自动化测试脚本相关联的系统交互事件,是指可以用于实现待测试应用与所处系统之间的交互测试的事件,UI自动化测试脚本中每个测试用例均对应若干系统交互事件;与UI自动化测试脚本相关联的应用间交互事件,是指可以用于实现待测试应用与所处系统内其他应用之间的交互测试的事件,UI自动化测试脚本中每个测试用例均对应若干应用间交互事件。
然后执行步骤S3。将系统交互事件和/或应用间交互事件注入至UI自动化测试脚本,具体是将系统交互事件和/或应用间交互事件注入至UI自动化测试脚本中包含的每个测试用例中,得到目标UI自动化测试脚本。目标UI自动化测试脚本包含了系统交互事件和/或应用间交互事件,即满足了对待测试应用进行自动化交互测试的条件。
最后执行步骤S4,通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试。交互测试的过程就是:通过注入操作得到的目标UI自动化测试脚本的处理结果,自动实现待测试应用与待测试应用所处的系统之间,和/或待测试应用所处的系统内其他应用之间的交互,并判断交互产生的结果数据是否准确。其中,交互可以是待测试应用与待测试应用所处的系统之间,和/或待测试应用所处的系统内其他应用之间的数据传输、状态反馈等。
本发明实施例中提供的自动化交互测试方法,首先获取待测试应用的用户界面UI自动化测试脚本,然后根据UI自动化测试脚本的功能归属、测试用例的数量以及每个测试用例的优先级,确定与UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;最后将系统交互事件和/或应用间交互事件注入至UI自动化测试脚本,并基于得到的目标UI自动化测试脚本对待测试应用进行自动化交互测试。通过在UI自动化测试脚本中注入系统交互事件和/或应用间交互事件,即可实现对待测试应用与所处系统的交互测试和/或与所处系统中其他应用的交互测试,不再需要针对待测试应用单独开发独其与系统之间的交互测试脚本或其与其他应用之间的交互测试脚本,可以降低对测试人员的用例设计能力的要求,节约人力,降低测试成本。
在上述实施例的基础上,本发明实施例中提供的自动化交互测试方法,所述根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件,具体包括:
从预先生成的系统交互事件集合和/或应用间交互事件集合中提取与所述功能归属对应的所有备选系统交互事件和/或备选应用间交互事件;
根据所述测试用例的数量以及所述测试用例的优先级,从所有备选系统交互事件和/或备选应用间交互事件中选取与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。
具体地,在确定与UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件时,首先可以以功能归属构建提取规则,根据该提取规则从预先生成的系统交互事件集合和/或应用间交互事件集合中提取符合该提取规则的所有备选系统交互事件和/或备选应用间交互事件。其中,系统交互事件集合中的系统交互事件以及应用间交互事件集合中的应用间交互事件均携带有对应的功能归属以及交互优先级,交互优先级是指待测试应用与所处系统交互或与所处系统内其他应用交互时,交互动作的重要性,也即交互动作的先后顺序。相应地,提取规则可以是提取出与UI自动化测试脚本的功能归属相匹配的系统交互事件和/或应用间交互事件。
然后可以以测试用例的数量以及每个测试用例的优先级构建选取规则,根据该选取规则从所有备选系统交互事件和/或备选应用间交互事件中选取符合该选取规则的系统交互事件和/或应用间交互事件,即为与UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。其中,选取规则可以是测试用例的数量小于预设数量时,从所有备选系统交互事件和/或备选应用间交互事件中为每个测试用例选取适当交互优先级的系统交互事件和/或应用间交互事件。测试用例的数量大于预设数量时,则按测试用例的优先级,从所有备选系统交互事件和/或备选应用间交互事件中选取相匹配的交互优先级对应的系统交互事件和/或应用间交互事件。例如,当测试用例的数量为1个时,则可以从所有备选系统交互事件和/或备选应用间交互事件中选取交互优先级排序中靠前的若干系统交互事件和/或应用间交互事件。当测试用例的数量为10个时,则可以对于优先级最高的测试用例,从所有备选系统交互事件和/或备选应用间交互事件中选取交互优先级最高的若干系统交互事件和/或应用间交互事件。
在上述实施例的基础上,本发明实施例中提供的自动化交互测试方法,所述根据所述测试用例的数量以及所述测试用例的优先级,从所有备选系统交互事件和/或备选应用间交互事件中选取与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件,具体包括:
基于所述测试用例的数量以及每个测试用例的优先级,构建选取规则,并对所述选取规则进行动态调整;
基于调整后的选取规则,从所有备选系统交互事件和/或备选应用间交互事件中选取与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。
具体地,本发明实施例中,可以在基于测试用例的数量以及每个测试用例的优先级构建的选取规则中,引入随机种子数,通过随机种子数实现对选取规则的动态调整。此处,随机种子数可以理解为是影响选取规则的一个变量,通过随机种子数的不同取值即可实现对选取规则的动态调整。然后根据调整后的选取规则,从所有备选系统交互事件和/或备选应用间交互事件中选取与UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。可以增加选取结果的随机性,进而提高测试结果的可靠性。
在上述实施例的基础上,本发明实施例中提供的自动化交互测试方法,所述系统交互事件集合和/或应用间交互事件集合基于如下方式生成:
接收所述待测试应用所处的系统发送的广播信息后,模拟所述系统中与所述待测试应用产生交互的功能模块,并在所述广播信息中注入所述待测试应用中产生交互的功能归属以及交互优先级,基于注入操作后得到的所有广播信息,生成所述系统交互事件集合;
获取所述系统内的常用应用,根据所述常用应用中与所述待测试应用产生交互的核心功能生成目标UI自动化测试脚本,并在所述目标UI自动化测试脚本中注入所述待测试应用中产生交互的功能归属以及交互优先级,根据注入操作后得到的所有目标UI自动化测试脚本,生成所述应用间交互事件集合。
具体地,本发明实施例中,生成系统交互事件集合时,可以编写系统交互控制应用,通过发送系统广播信息的方式,启动后台服务,实现对待测试应用所处的系统的功能模块进行操作。例如:模拟系统的功能模块(蓝牙、wifi、内存、网络等)、模拟发送gps定位信息功能、模拟车联网设备实体按键操作等。然后将广播信息进行封装,且对各条广播信息注入功能归属、交互优先级,每条注入操作后得到的广播信息则对应一个系统交互事件。
生成应用间交互事件集合时,可以选取典型性较高的常用应用,例如:常用的音视频应用、常用的导航应用等,并选取常规应用与待测试应用间的交互场景,编写常用应用中与待测试应用产生交互的核心功能的目标UI自动化测试脚本,并确保其作为前置条件的通用性和可复用性,以及后置条件的断言可靠性和稳定性。在每个目标UI自动化测试脚本中注入待测试应用中产生交互的功能归属以及交互优先级,每个注入操作后得到的目标UI自动化测试脚本则对应一个应用间交互事件。
在上述实施例的基础上,本发明实施例中提供的自动化交互测试方法,所述通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试,具体包括:
确定所述系统交互事件和/或所述应用间交互事件对应的测试资源,并将所述测试资源下载至所述待测试应用所处的系统中;
基于所述目标UI自动化测试脚本以及所述测试资源,对所述待测试用于进行自动化交互测试。
具体地,在根据目标UI自动化测试脚本对待测试应用进行自动化交互测试时,首先需要确定出目标UI自动化测试脚本中的系统交互事件和/或应用间交互事件对应的测试资源,测试资源是指对待测试应用进行自动化交互测试时所需要的资源,例如音乐播放器Android应用程序包(Android application package,APK)、电子地图导航APK、mp3文件等。可以将确定的测试资源下载至待测试应用中,即从服务端拉取对应的测试资源到待测试应用所处的系统中。
然后,根据目标UI自动化测试脚本以及测试资源,即可实现对待测试用于进行自动化交互测试。
在上述实施例的基础上,本发明实施例中提供的自动化交互测试方法,所述将所述系统交互事件和/或所述应用间交互事件注入至所述UI自动化测试脚本,具体包括:
将所述系统交互事件和/或所述应用间交互事件注入至所述UI自动化测试脚本的前置条件和/或后置条件中。
具体地,本发明实施例中,系统交互事件和/或应用间交互事件的注入过程就是将系统交互事件和/或应用间交互事件注入至UI自动化测试脚本中包含的测试用例的前置条件和/或后置条件中。其中,前置条件是指:测试用例在调用某个方法时必须满足的条件,后置条件是指:测试用例实现在方法中返回时必须达到的要求。
在上述实施例的基础上,本发明实施例中提供的自动化交互测试方法,所述基于注入操作得到的目标UI自动化测试脚本对所述待测试用于进行自动化交互测试,之后还包括:生成测试报告。
具体地,测试报告中可以包括待测试应用的名称、测试步骤、前置条件、后置条件、测试结果、通过率、失败截图、失败日志等内容。
在生成测试报告后,还可以标准化的形式渲染出图表和对比图,并自动以邮件的方式发送至指定收件人。
图2为本发明实施例中提供的对待测试应用进行自动化交互测试的流程示意图,如图2所示,首先构建出UI自动化测试脚本,然后确定与UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件,然后将系统交互事件和/或应用间交互事件以交互事件注入的方式注入到UI自动化测试脚本中,得到目标UI自动化测试脚本。在服务器上获取测试资源,通过目标UI自动化测试脚本和测试资源,对待测试应用进行测试。最后,生成测试报告。其中,与UI自动化测试脚本相关联的系统交互事件,是指可以用于实现待测试应用与所处系统之间的交互测试的事件,UI自动化测试脚本中每个测试用例均对应若干系统交互事件;与UI自动化测试脚本相关联的应用间交互事件,是指可以用于实现待测试应用与所处系统内其他应用之间的交互测试的事件,UI自动化测试脚本中每个测试用例均对应若干应用间交互事件。
以下以对一款音乐播放应用进行自动化交互测试为例进行说明:
第一步,编写待测音乐播放应用的常规功能UI自动化测试脚本,并将UI自动化测试脚本的功能归属标记为音频、网络,为UI自动化测试脚本内每个测试用例制定优先级。
第二步,通过判断UI自动化测试脚本的功能归属、每个测试用例的优先级以及测试用例的数量,筛选出对应的系统交互事件,并将系统交互事件注入到UI自动化测试脚本中包含的测试用例的前置条件和后置条件中,例如:开启4G、开启WIFI、增加/降低音量等。
通过判断UI自动化测试脚本的功能归属、每个测试用例的优先级,筛选出对应的应用间交互事件,并将应用间交互事件注入到UI自动化测试脚本中包含的测试用例的前置条件和后置条件中,例如:后台播放蓝牙音乐、后台进入导航应用播报模式等。
第三步,判断系统交互事件和/或应用间交互事件对应的测试资源,自动从服务端拉取对应的测试资源到待测音乐播放应用所处的系统,根据测试资源以及注入操作得到的目标UI自动化测试脚本,对待测音乐播放应用进行自动化测试。
第四步,自动化测试执行结束后,生成测试报告。
本发明实施例中提供的自动化交互测试方法,由于加入了待测试应用与所处系统和所处系统内其他应用间交互的考虑,采用动态注入交互事件的方式,可以让既定的自动化测试脚本覆盖面更加广泛,且将交互事件与UI自动化测试脚本解耦,实现UI自动化测试脚本和交互事件间的改动互不影响,可以适用于绝大多数安卓车机应用的UI自动化测试、且交互事件可作为插件形式进行扩展,具有较强的通用性和可扩展性。
如图3所示,在上述实施例的基础上,本发明实施例中提供了一种自动化交互测试装置,包括:UI自动化测试脚本获取模块31、交互事件确定模块32、交互事件注入模块33和自动化交互测试模块34。其中,
UI自动化测试脚本获取模块31用于获取待测试应用的用户界面UI自动化测试脚本,其中,所述UI自动化测试脚本中至少包括一个测试用例;
交互事件确定模块32用于根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;
交互事件注入模块33用于将所述系统交互事件和/或所述应用间交互事件注入至所述UI自动化测试脚本;
自动化交互测试模块34用于通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试。
具体地,本发明实施例中提供的自动化交互测试装置中各模块的作用与上述方法类实施例中各步骤的操作流程是一一对应的,实现的效果也是一致的,具体参见上述实施例,本发明实施例中对此不再赘述。
在上述实施例的基础上,本发明实施例中提供了一种自动化交互测试装置,所述交互事件注入模块具体用于:
从预先生成的系统交互事件集合和/或应用间交互事件集合中提取与所述功能归属对应的所有备选系统交互事件和/或备选应用间交互事件;
根据所述测试用例的数量以及所述测试用例的优先级,从所有备选系统交互事件和/或备选应用间交互事件中选取与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。
在上述实施例的基础上,本发明实施例中提供了一种自动化交互测试装置,所述交互事件注入模块具体用于:
根据所述测试用例的数量以及所述测试用例的优先级,构建选取规则,并对所述选取规则进行动态调整;
根据调整后的选取规则,从所有备选系统交互事件和/或备选应用间交互事件中选取与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。
在上述实施例的基础上,本发明实施例中提供了一种自动化交互测试装置,还包括:系统交互事件集合生成模块和/或应用间交互事件集合生成模块;
所述系统交互事件集合生成模块用于:接收所述待测试应用所处的系统发送的广播信息后,模拟所述系统中与所述待测试应用产生交互的功能模块,并在所述广播信息中注入所述待测试应用中产生交互的功能归属以及交互优先级,基于注入操作后得到的所有广播信息,生成所述系统交互事件集合;
所述应用间交互事件集合生成模块用于:获取所述系统内的常用应用,根据所述常用应用中与所述待测试应用产生交互的核心功能生成目标UI自动化测试脚本,并在所述目标UI自动化测试脚本中注入所述待测试应用中产生交互的功能归属以及交互优先级,根据注入操作后得到的所有目标UI自动化测试脚本,生成所述应用间交互事件集合。
在上述实施例的基础上,本发明实施例中提供了一种自动化交互测试装置,所述自动化交互测试模块,具体包括:
测试资源管理子模块,用于确定所述系统交互事件和/或所述应用间交互事件对应的测试资源,并将所述测试资源下载至所述待测试应用所处的系统中;
测试子模块,用于基于所述目标UI自动化测试脚本以及所述测试资源,对所述待测试用于进行自动化交互测试。
在上述实施例的基础上,本发明实施例中提供了一种自动化交互测试装置,所述交互事件注入模块,具体用于:
将所述系统交互事件和/或所述应用间交互事件注入至所述UI自动化测试脚本的前置条件和/或后置条件中。
在上述实施例的基础上,本发明实施例中提供了一种自动化交互测试装置,还包括:测试报告生成模块,用于生成测试报告。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行自动化交互测试方法,该方法包括:获取待测试应用的用户界面UI自动化测试脚本,其中,所述UI自动化测试脚本至少包括一个测试用例;根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;将所述系统交互事件和/或所述应用间交互事件注入所述UI自动化测试脚本;通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的自动化交互测试方法,该方法包括:获取待测试应用的用户界面UI自动化测试脚本,其中,所述UI自动化测试脚本至少包括一个测试用例;根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;将所述系统交互事件和/或所述应用间交互事件注入所述UI自动化测试脚本;通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的自动化交互测试方法,该方法包括:获取待测试应用的用户界面UI自动化测试脚本,其中,所述UI自动化测试脚本至少包括一个测试用例;根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;将所述系统交互事件和/或所述应用间交互事件注入所述UI自动化测试脚本;通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种自动化交互测试方法,其特征在于,包括:
获取待测试应用的用户界面UI自动化测试脚本,其中,所述UI自动化测试脚本至少包括一个测试用例;
根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;
将所述系统交互事件和/或所述应用间交互事件注入所述UI自动化测试脚本;
通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试。
2.根据权利要求1所述的自动化交互测试方法,其特征在于,所述根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件,具体包括:
从预先生成的系统交互事件集合和/或应用间交互事件集合中提取与所述功能归属对应的所有备选系统交互事件和/或备选应用间交互事件;
根据所述测试用例的数量以及所述测试用例的优先级,从所有备选系统交互事件和/或备选应用间交互事件中选取与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。
3.根据权利要求2所述的自动化交互测试方法,其特征在于,所述根据所述测试用例的数量以及所述测试用例的优先级,从所有备选系统交互事件和/或备选应用间交互事件中选取与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件,具体包括:
根据所述测试用例的数量以及所述测试用例的优先级,构建选取规则,并对所述选取规则进行动态调整;
根据调整后的选取规则,从所有备选系统交互事件和/或备选应用间交互事件中选取与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件。
4.根据权利要求2所述的自动化交互测试方法,其特征在于,所述系统交互事件集合和/或应用间交互事件集合基于如下方式生成:
接收所述待测试应用所处的系统发送的广播信息后,模拟所述系统中与所述待测试应用产生交互的功能模块,并在所述广播信息中注入所述待测试应用中产生交互的功能归属以及交互优先级,基于注入操作后得到的所有广播信息,生成所述系统交互事件集合;
获取所述系统内的常用应用,根据所述常用应用中与所述待测试应用产生交互的核心功能生成目标UI自动化测试脚本,并在所述目标UI自动化测试脚本中注入所述待测试应用中产生交互的功能归属以及交互优先级,根据注入操作后得到的所有目标UI自动化测试脚本,生成所述应用间交互事件集合。
5.根据权利要求1所述的自动化交互测试方法,其特征在于,所述通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试,具体包括:
确定所述系统交互事件和/或所述应用间交互事件对应的测试资源,并将所述测试资源下载至所述待测试应用所处的系统中;
基于所述目标UI自动化测试脚本以及所述测试资源,对所述待测试用于进行自动化交互测试。
6.根据权利要求1所述的自动化交互测试方法,其特征在于,所述将所述系统交互事件和/或所述应用间交互事件注入至所述UI自动化测试脚本,具体包括:
将所述系统交互事件和/或所述应用间交互事件注入至所述UI自动化测试脚本的前置条件和/或后置条件中。
7.根据权利要求1-6中任一项所述的自动化交互测试方法,其特征在于,所述通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试,之后还包括:生成测试报告。
8.一种自动化交互测试装置,其特征在于,包括:
UI自动化测试脚本获取模块,用于获取待测试应用的用户界面UI自动化测试脚本,其中,所述UI自动化测试脚本中至少包括一个测试用例;
交互事件确定模块,用于根据所述UI自动化测试脚本的功能归属、所述测试用例的数量以及所述测试用例的优先级,确定与所述UI自动化测试脚本相关联的系统交互事件和/或应用间交互事件;
交互事件注入模块,用于将所述系统交互事件和/或所述应用间交互事件注入至所述UI自动化测试脚本;
自动化交互测试模块,用于通过注入操作得到的目标UI自动化测试脚本的处理结果,在所述待测试应用与所述待测试应用所处的系统之间,和/或所述待测试应用所处的系统内其他应用之间进行自动化交互测试。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述自动化交互测试方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述自动化交互测试方法的步骤。
CN202011326617.4A 2020-11-24 2020-11-24 自动化交互测试方法及装置 Active CN112131136B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011326617.4A CN112131136B (zh) 2020-11-24 2020-11-24 自动化交互测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011326617.4A CN112131136B (zh) 2020-11-24 2020-11-24 自动化交互测试方法及装置

Publications (2)

Publication Number Publication Date
CN112131136A true CN112131136A (zh) 2020-12-25
CN112131136B CN112131136B (zh) 2021-02-23

Family

ID=73852282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011326617.4A Active CN112131136B (zh) 2020-11-24 2020-11-24 自动化交互测试方法及装置

Country Status (1)

Country Link
CN (1) CN112131136B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963900A (zh) * 2009-07-23 2011-02-02 北京数码大方科技有限公司 Ui层的行为传播控制方法
CN104461901A (zh) * 2014-12-23 2015-03-25 浪潮(北京)电子信息产业有限公司 一种自动生成测试用例的方法及系统
CN106022135A (zh) * 2016-02-23 2016-10-12 北京工业大学 一种可动态判断xss漏洞的自动化检测系统
CN107967207A (zh) * 2016-10-20 2018-04-27 腾讯科技(北京)有限公司 用户界面交互功能的测试方法和装置
CN110109837A (zh) * 2019-05-06 2019-08-09 上海蔚来汽车有限公司 集成测试方法、装置以及控制器和介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963900A (zh) * 2009-07-23 2011-02-02 北京数码大方科技有限公司 Ui层的行为传播控制方法
CN104461901A (zh) * 2014-12-23 2015-03-25 浪潮(北京)电子信息产业有限公司 一种自动生成测试用例的方法及系统
CN106022135A (zh) * 2016-02-23 2016-10-12 北京工业大学 一种可动态判断xss漏洞的自动化检测系统
CN107967207A (zh) * 2016-10-20 2018-04-27 腾讯科技(北京)有限公司 用户界面交互功能的测试方法和装置
CN110109837A (zh) * 2019-05-06 2019-08-09 上海蔚来汽车有限公司 集成测试方法、装置以及控制器和介质

Also Published As

Publication number Publication date
CN112131136B (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
CN111159049B (zh) 接口自动化测试方法及系统
US8226477B1 (en) Automatic simulation of call center scenarios
US8731896B2 (en) Virtual testbed for system verification test
CN112214405B (zh) 一种软件测试方法、装置、电子设备和可读存储介质
CN111897724A (zh) 一种适用于云平台的自动化测试方法及装置
CN105045602A (zh) 一种构建Hadoop应用开发框架的方法、装置及电子装置
CN113051163A (zh) 单元测试方法、装置、电子设备及存储介质
CN112052172A (zh) 第三方通道的快速测试方法、装置和电子设备
CN109918292B (zh) 一种处理器指令集测试方法和装置
CN108512682B (zh) 一种确定虚假终端标识的方法和装置
CN111708712A (zh) 用户行为测试用例的生成方法、流量回放方法及电子设备
CN105760300A (zh) 一种stk/utk业务的自动化测试方法及测试系统
CN112131136B (zh) 自动化交互测试方法及装置
CN106557414A (zh) 应用程序测试系统和方法
CN113064816B (zh) 一种可编程逻辑器件软件的测试装置及测试方法
CN109815121B (zh) 接口自动化测试用例生成方法及相关设备
CN113238935A (zh) 应用测试方法、系统、设备、介质及计算机程序产品
CN111538646B (zh) 一种空间信息网络性能的测试系统及方法
CN109985387B (zh) 自动化测试方法和装置
CN112650689A (zh) 测试方法、装置、电子设备及存储介质
CN116860322A (zh) 前端数据源处理方法、装置、设备及存储介质
CN106776284A (zh) 一种软件测试方法以及系统
CN114327522B (zh) 私有化部署方法及系统
CN114564382A (zh) 基于数据模拟的移动端用户界面测试方法及存储介质
CN115407981A (zh) 一种基于中间件适配的前端数据mock方法及系统

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