CN116719736A - 一种用于测试软件界面的测试用例生成方法及装置 - Google Patents
一种用于测试软件界面的测试用例生成方法及装置 Download PDFInfo
- Publication number
- CN116719736A CN116719736A CN202310735528.2A CN202310735528A CN116719736A CN 116719736 A CN116719736 A CN 116719736A CN 202310735528 A CN202310735528 A CN 202310735528A CN 116719736 A CN116719736 A CN 116719736A
- Authority
- CN
- China
- Prior art keywords
- target
- interface
- software interface
- test case
- test
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 304
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000003993 interaction Effects 0.000 claims abstract description 77
- 230000009471 action Effects 0.000 claims abstract description 76
- 230000002452 interceptive effect Effects 0.000 claims description 16
- 238000000605 extraction Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 3
- 230000006399 behavior Effects 0.000 description 102
- 230000000007 visual effect Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013522 software testing Methods 0.000 description 5
- 238000010998 test method Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本申请涉及软件测试技术领域,更具体地说,涉及一种用于测试软件界面的测试用例生成方法及装置。
背景技术
软件测试是测定某个软件系统的过程,其目的是检验软件系统是否满足用户的需求。软件测试包括人工测试和自动化测试。自动化测试是将以人为驱动的测试行为转化为机器执行的测试过程,自动化测试需要使用测试用例。测试用例是指对一项特定的软件产品进行测试任务的描述,其是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果。
UI测试(User interface testing,用户交互界面测试)为一种自动化测试,UI测试是模拟真实用户的使用行为,即模拟用户在软件界面上的各种操作,并验证这些操作对应的结果是否正确的一种测试过程。目前测试人员通常需要编写自动化测试脚本代码来生成测试用例,再利用测试用例模拟真实用户使用软件的行为,以实现对用户交互界面(即软件界面)的测试,而由于编写代码和维护代码的过程都需要人为参与,因此会导致用于测试软件界面的测试用例生成效率低下。
发明内容
本申请提供一种用于测试软件界面的测试用例生成方法及装置,以解决用于测试软件界面的测试用例生成效率低下的问题。
第一方面,本申请提供一种用于测试软件界面的测试用例生成方法,包括:
从待测试软件界面中提取至少一个目标元素,其中,所述目标元素支持与用户进行交互,所述待测试软件界面响应于所述交互,执行与所述交互对应的操作;
获取针对所述目标元素对应的行为操作组件输入的定位目标数据和动作目标数据,得到被赋值的所述行为操作组件,其中所述定位目标数据表征所述目标元素在所述待测试软件界面中的位置,所述动作目标数据表征对所述目标元素的交互操作;
如果从待测试软件界面中提取至少两个所述目标元素,根据具有相同目标事件标识的所述目标元素对应的被赋值的所述行为操作组件,生成用于测试所述待测试软件界面的测试用例,其中所述目标事件标识用于标记所述目标元素所属的用户交互事件。
在一种实现方式中,如果从待测试软件界面中提取一个所述目标元素,根据一个所述目标元素对应的被赋值的所述行为操作组件,生成用于测试所述待测试软件界面的测试用例。
在一种实现方式中,所述定位目标数据包括定位方式和定位值,所述动作目标数据包括动作类型和动作值,其中所述定位方式表征所述目标元素的元素属性,所述定位值表征所述目标元素的元素名称,所述动作类型表征交互操作类型,所述动作值表征交互操作的实际数据。
在一种实现方式中,如果所述动作类型为非数据输入类型,则所述动作值为空;
如果所述动作类型为数据输入类型,则所述动作值为非空。
在一种实现方式中,如果所述动作类型为断言类型,则所述动作值为断言文本。
在一些实现方式中,在执行测试用例后,所述方法还包括:
如果所述待测试软件界面跳转的目标界面中包含所述断言文本,则确定所述测试用例生成成功。
在一些实现方式中,所述方法还包括:
如果所述待测试软件界面跳转的目标界面中不包含所述断言文本,则获取关联信息,其中所述关联信息记录有所述断言文本与所述目标界面中关联文本的映射关系;
根据所述关联信息在所述目标界面中查找所述关联文本;
如果所述目标界面中包含关联文本,则确定所述测试用例生成成功;
如果所述目标界面中不包含关联文本,则确定所述测试用例生成失败。
在一些实现方式中,所述方法还包括:按照场景标识存储所述测试用例,其中所述场景标识用于标记所述测试用例使用的测试场景。
在一些实现方式中,所述方法还包括:
响应于测试所述待测试软件界面的操作指令,获取测试用例输入接口的接口标识,其中所述接口标识表征测试场景;
根据所述接口标识查找与所述测试场景对应的场景标识,并且根据所述场景标识查找与所述测试场景对应的目标测试用例;
执行所述目标测试用例。
第二方面,本申请提供一种用于测试软件界面的测试用例生成装置,包括:
目标元素提取模块,用于从待测试软件界面中提取至少一个目标元素,其中,所述目标元素支持与用户进行交互,所述待测试软件界面响应于所述交互,执行与所述交互对应的操作;
行为操作组件赋值模块,用于获取针对所述目标元素对应的行为操作组件输入的定位目标数据和动作目标数据,得到被赋值的所述行为操作组件,其中所述定位目标数据表征所述目标元素在所述待测试软件界面中的位置,所述动作目标数据表征对所述目标元素的交互操作;
测试用例生成模块,用于如果从待测试软件界面中提取至少两个所述目标元素,根据具有相同目标事件标识的所述目标元素对应的被赋值的所述行为操作组件,生成用于测试所述待测试软件界面的测试用例,其中所述目标事件标识用于标记所述目标元素所属的用户交互事件。
由以上技术方案可知,本申请提供一种用于测试软件界面的测试用例生成方法及装置,所述方法包括从待测试软件界面中提取至少一个目标元素,目标元素支持与用户进行交互,待测试软件界面响应于所述交互,执行与所述交互对应的操作;获取针对所述目标元素对应的行为操作组件输入的定位目标数据和动作数据,得到被赋值的行为操作组件,其中定位目标数据表征目标元素在待测试软件界面中的位置,动作目标数据表征对目标元素的交互操作;如果从待测试软件界面中提取至少两个目标元素,则根据具有相同目标事件标识的目标元素对应的被赋值的行为操作组件,生成用户测试待测试软件界面的测试用例,其中目标事件标识用于标记目标元素所属的用户交互事件。这样基于目标元素对应的被赋值的行为操作组件,生成测试用例,不需要编写代码和维护代码,从而提升用于测试软件界面的测试用例生成效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中测试用例生成方法流程示意图;
图2为本申请实施例中测试用例生成装置的部分功能模块的连接框图;
图3为本申请实施例中待测试软件界面示意图;
图4为本申请实施例中用例头配置的可视化操作界面示意图;
图5为本申请实施例中行为操作组件配置的可视化操作界面示意图;
图6为本申请实施例中又一种待测试软件界面示意图;
图7为本申请实施例中又一种待测试软件界面示意图;
图8为本申请实施例中自动化测试平台主页的可视化操作界面示意图;
图9为本申请实施例中又一种用例头配置的可视化操作界面示意图;
图10为本申请实施例中又一种行为操作组件配置的可视化操作界面示意图;
图11为本申请实施例中又一种行为操作组件配置的可视化操作界面示意图;
图12为本申请实施例中又一种行为操作组件配置的可视化操作界面示意图;
图13为本申请实施例中又一种行为操作组件配置的可视化操作界面示意图;
图14为本申请实施例中又一种行为操作组件配置的可视化操作界面示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的设备和方法的示例。
软件测试是测定某个软件系统的过程,其目的是检验软件系统是否满足用户的需求。软件测试包括人工测试和自动化测试。自动化测试是将以人为驱动的测试行为转化为机器执行的测试过程,自动化测试需要使用测试用例。测试用例是指对一项特定的软件产品进行测试任务的描述,其是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果。
软件系统的自动化测试流程可以包括如下步骤:
分析测试需求,测试需求即为测试目标,也即自动化测试的功能点,可以通过测试需求分析,判断软件自动化测试要做到什么程度,通过分析测试需求可以提高测试覆盖率。自动化测试可以优先考虑实现正向的测试用例,然后再去实现反向测试用例,其中反向的测试用例可以是通过分析筛选出来的。因此确定测试覆盖率以及自动化测试粒度、筛选测试用例等工作都是分析测试需求的重点。
制订测试计划,自动化测试之前,需要制订测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法等。还需要合理分配测试人员以及测试所需要的硬件、数据等资源。制订测试计划后可使用管理工具监管测试进度。
设计测试用例,在设计测试用例时,要考虑到软件的真实使用环境,例如对于性能测试、安全测试,需要设计场景模拟真实环境以确保测试真实有效。
搭建测试环境,自动化测试的脚本编写需要录制页面控件、添加对象。测试环境的搭建,包括被测系统的部署,测试硬件的调用、测试工具的安装和设置、网络环境的布置等。
编写并执行测试脚本,公共测试框架确定后,可进入脚本编写阶段,根据自动化测试计划和测试用例编写自动化测试脚本。编写测试脚本要求测试人员掌握基本编程,并且需要和开发人员沟通交流,以便于了解软件内部结构从而设计编写出有效的测试脚本。测试脚本编写完成之后需要对测试脚本进行反复测试,确保测试脚本的正确性。
本申请实施例中涉及的测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。可以简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。测试用例可以包括应用程序编程接口(API)的测试用例和用户界面(UI)的测试用例。本申请实施例主要涉及UI的测试用例的生成方法即装置,即最后生成的测试用例用于对应用程序的API进行自动化测试。
分析测试结果、记录测试问题,这一步骤为对自动化测试结果进行分析,以便及早发现软件中的缺陷。跟踪测试Bug(漏洞),测试发现的软件Bug可以记录到缺陷管理工具中,以便定期跟踪处理。
UI测试(User interface testing,用户交互界面测试)为一种自动化测试,UI测试是模拟真实用户的使用行为,即模拟用户在软件界面上的各种操作,并验证这些操作对应的结果是否正确的一种测试过程。目前测试人员通常需要编写自动化测试脚本代码来生成测试用例,再利用测试用例模拟真实用户使用软件的行为,以实现对用户交互界面的测试,而由于编写代码和维护代码的过程都需要人为参与,因此会导致测试用例生成效率低下。
鉴于上述问题,本申请部分实施例提供一种用于测试软件界面的测试用例生成方法,用于自动生成测试用例,以提高测试用例生成效率。为了便于对本申请一些实施例中技术方案的理解,下面结合一些具体实施例和附图对各个步骤进行详细说明。图1为本申请一些实施例提供的用于测试软件界面的测试用例生成方法流程示意图。图2为本申请一些实施例提供的用于测试软件界面的测试用例生成装置的部分功能模块的连接框图。
图2的用于测试软件界面的测试用例生成装置为用于执行图1所示用于测试软件界面的的测试用例生成方法的装置。
测试用例生成装置可以是计算机,测试用例生成装置具有处理器11,并且具有存储器12。处理器11经由信号线与其他硬件连接,控制其他硬件。
作为功能要求要素,处理器11包括程序信息输入接口111、需求描述信息获取模块112、步骤提取模块113、基础组件确定模块114、目标数据获取模块115以及测试用例生成模块116。程序信息输入部模块111、需求描述信息获取模块112、步骤提取模块113、基础组件确定模块114、目标数据获取模块115以及测试用例生成模块116的功能由软件来实现。
处理器11是执行测试用例生成程序的装置。测试用例生成程序是实现程序信息输入接口111、需求描述信息获取模块112、步骤提取模块113、基础组件确定模块114、目标数据获取模块115以及测试用例生成模块116的功能的程序。处理器11可以是CPU(CentralProcessing Unit,中央处理单元)。
存储器12是存储测试用例生成程序的装置。存储器12可以是RAM(Random AccessMemory,随机存取存储器)、闪存或它们的组合。存储器12中还存储有测试对象软件的程序和测试对象软件的规格信息。测试对象软件可以是任意种类的软件,在本实施方式中是嵌入式软件。
测试用例生成程序由处理器11从存储器12读入并由处理器11执行。存储器12中不仅存储有测试用例生成程序,还存储有OS(Operating System,操作系统)。处理器11在执行OS的同时执行测试用例生成程序。另外,测试用例生成程序的一部分或全部也可以被组入到OS。
被测试用例生成程序利用、处理或输出的数据、信息、信号值和变量值被存储到存储器12或处理器11内的寄存器或高速缓冲存储器。
测试用例生成程序是如下程序:使计算机执行由程序信息输入接口111、需求描述信息获取模块112、步骤提取模块113、基础组件确定模块114、目标数据获取模块115以及测试用例生成模块116进行的进程,分别作为程序信息输入进程、需求描述信息获取进程、步骤提取进程、基础组件确定进程、目标数据获取进程和测试用例生成进程。测试用例生成程序可以记录在计算机能读取的介质中来提供,也可以存储在记录介质中来提供,还可以作为程序产品来提供,例如可以记录在存储器12中。
测试用例生成装置可以由1台计算机构成,也可以由多台计算机构成。在测试用例生成装置由多台计算机构成的情况下,程序信息输入接口111、需求描述信息获取模块112、步骤提取模块113、基础组件确定模块114、目标数据获取模块115以及测试用例生成模块116的功能可以被分散在各计算机中实现。
基于图2提供的用于测试软件界面的测试用例生成装置,本申请部分实施例提供的用于测试软件界面的测试用例生成方法包括图1所示的步骤:
步骤S100,从待测试软件界面中提取至少一个目标元素,其中,在接收到针对所述目标元素对应的操作后,所述待测试软件界面执行页面跳转;
待测试软件界面是需要进行模拟真实用户的使用行为的软件界面,其中待测试软件界面包括一个或多个界面元素。界面元素可以是菜单栏、输入框、链接窗口、按钮、图标、文本框、对话框、出错信息、帮助信息、文字、表格、图片等。图3中示出了根据本申请的一些实施例的待测试软件界面,如图3所示,图3中的“登录名”、“密码”、“验证码”等为文字元素,文字元素可以用于指示用户在页面的输入内容。图3中的“登录名”后面的方框为输入框元素,方框内可以输入用户登录名。图3中的带有“登录”文字的方框为按钮元素,点击登录方框按钮可以执行登录操作。图3中的带有“微XX(社交软件的名称)”、“QXX(社交软件的名称)”等文字的为链接窗口元素,点击“微XX”可以打开微XX软件对应的登录页面,点击“QXX”可以打开QXX对应的登录页面。图3中的“LOGO”为图片元素,该图片元素为起到标识作用的图片。
其中,界面元素支持与用户进行交互可以指的是,当用户点击该界面元素,系统可根据该点击操作,生成对应的页面跳转指令,待测试软件页面响应于该页面跳转指令,可从当前的待测试软件页面跳转至其他软件页面,例如图3中的链接窗口元素和登录按钮元素。界面元素支持与用户进行交互还可以指的是,用户可在界面元素中输入内容,系统基于用户在界面元素中输入的内容,记录内容并将记录的内容用于下一步操作,例如图3中的输入框元素。界面元素支持与用户进行交互还可以指的是,用户拖动对话框,系统响应于用户的拖动操作,执行移动对话框位置的操作,例如图3中的。可见本申请实施例对于目标元素与用户的交互方式不作限制,即只要支持与用户进行交互的界面元素,均为本申请实施例涉及的目标元素。
目标元素不支持与用户进行交互指的是,即用户点击或者拖动界面元素,软件界面不作出响应,例如图3中的“LOGO”界面元素不为本申请实施例涉及的目标元素。
另外,图3中还包括不可点击的按钮控件,例如被设置为不可用的按钮控件,即用户如果点击这些按钮控件,界面也不作出任何响应,这些元素也不可供用户进行交互操作,因此也不为本申请实施例涉及的目标元素。
从待测试软件界面中提取至少一个目标元素的具体过程可以是:
网页驱动单元对待测试软件界面的整个界面进行截图操作得到待测试软件界面的界面截图。然后将界面截图的图像转灰度处理,即利用OpenCV(Open Source ComputerVision Library,开源的计算机视觉库)的图像函数库对界面截图进行灰度化处理,得到界面截图的灰度图像。然后利用OpenCV对界面截图的灰度图像进行二值化处理,得到界面截图的二值化图像。然后对二值化图像进行膨胀处理,得到膨胀图像。最后仍然利用OpenCV图像函数库对膨胀图像进行界面元素检测,获取界面元素的截图。然后对界面元素的截图逐个做裁剪处理,即获取每个界面元素最小覆盖矩形,以确定每个界面元素最小覆盖矩形的顶点坐标。基于上述步骤即可从待测试软件界面中提取至少一个界面元素。
然后基于上述对目标元素的定义,可以从界面元素中筛选中本申请实施例的方法涉及的界面元素,即可完成从待测试软件界面中提取至少一个目标元素的步骤。例如,从图3所示的待测试软件界面中提取到输入框、链接窗口、按钮、图标、文本框、对话框、出错信息、帮助信息、文字、表格、图片等界面元素。然后从这些界面元素中筛选支持与用户进行交互的界面元素“输入框、链接窗口、按钮、对话框”,并将这些界面元素作为目标元素,其他界面元素则不作为本申请实施例涉及的界面元素。
需要说明的是,从待测试软件界面中提取至少一个目标元素,可以是从待测试软件界面中只提取一个目标元素,也可以是从待测试软件界面中提取两个目标元素,也可以是从待测试软件界面中提取三个目标元素…。如果从待测试软件界面未提取到目标元素,表示该带测试软件界面不支持与用户进行交互,也就不需要对该待测试软件界面进行测试。
步骤S200,获取针对所述目标元素对应的行为操作组件输入的定位目标数据和动作目标数据,得到被赋值的所述行为操作组件,其中所述定位目标数据表征所述目标元素在所述待测试软件界面中的位置,所述动作目标数据表征对所述目标元素的交互操作;
为了便于测试人员操作,可以在生成测试用例的设备(以下简称测试设备)的显示器上提供可视化操作界面,测试人员可以利用可视化操作界面与测试设备进行交互。例如,测试人员可以通过测试设备提供的可视化操作界面,进行测试用例管理、选择需要测试的功能等操作,测试人员还可以基于可视化操作界面输入目标元素对应的行为操作组件的各个参数的数值。
本申请实施例中一个目标元素对应一个行为操作组件。输入框元素对应一个行为操作组件,测试人员可基于输入框元素对应的行为操作组件的选项框中,选择参数的数值或者输入参数的数值。同样的按钮元素对应一个行为操作组件,测试人员可基于按钮元素对应的行为操作组件的选项框中,选择参数的数值还活着输入参数的数值。行为操作组件的参数可以包括定位参数和动作参数,定位参数又包括定位方式和定位值两个参数,动作参数又包括动作类型和动作值两个参数。
定位方式和定位值具有各自的定位目标数据,动作类型和动作值具有各自的动作目标数据。定位目标数据表征目标元素在待测试软件界面中的位置,动作目标数据表征对目标元素的交互操作。具体的定位方式表征以何种方式定位目标元素,定位值为选择的定位方式的具体数值或内容。具体的动作类型表征交互操作的类型,动作值为交互操作输入的具体动作或者实际数据。其中,如果所述动作类型为非数据输入类型,则所述动作值为空;如果所述动作类型为数据输入类型,则所述动作值为非空。
例如输入框元素对应的行为操作组件包括定位方式可以是名称定位,定位值为具体的名称,动作类型为输入数据。由于针对输入框元素的动作类型为输入类型,则针对输入框元素的动作值为非空。这里可以将动作值设置为实际的用户ID(场景为登录场景时)。按钮元素对应的行为操作组件包括定位方式可以是ID定位,定位值为按钮元素的元素标识,动作类型为点击。由于针对按钮元素的行为操作为非输入类型,则针对按钮元素的动作为为空。定位方式还可以是坐标值定位,即按照目标元素在待测试软件界面中坐标值,确定需要操作的目标元素。此时定位值则为具体的坐标数据。
测试人员可利用测试设备上的可视化操作界面上设置的行为操作组件的输入框,输入相关的参数数据。图4示例性示出了用例头配置的可视化操作界面图,图5示例性示出了行为操作组件的可视化操作界面图,这些可视化操作界面图分别示出了配置用例头和行为操作组件的配置的具体形式。
在图4中,用例头配置的参数信息包括:用例名称、APP(Application,应用程序)、环境、主模块、子模块、新增step(步骤)接口(用于新增行为操作组件)等。用例名称表征当前业务用例简要描述,可以突出用例测试点,如用户商城下单。应用为下拉选项,可选接口自动化和UI自动化两个分类。环境表征用例执行的环境,有UAT(User Acceptance Test,用户验收测试)环境和预上线环境,测试用例可以在不同的部署环境执行,测试人员可以针对不同环境编写标记用例。
主模块表征用例分组,用于不同系统,不同模块,便于后续用例执行颗粒度的划分。测试计划和测试任务制定。子模块表征父级分类下再划分组别,细化分类。拖拽排序按钮支持拖动行为操作组件的对话框,实现对不同的行为操作组件上下移动,完成对不同的行为操作组件的排序。
在图5中,行为操作组件的参数信息包括:步骤描述、定位方式、定位值、动作类型、动作值,断言条件等。步骤描述用于描述当前行为操作组件对应步骤是什么,比如输入账号。
定位方式为定位目标定位的方式,可以是ID(目标元素唯一标识)、name(目标元素名称)、xpath(目标元素的XML路径语言)等。定位值为确定定位方式后要定位的值,例如如果定位方式为name,定位值可以是“输入框”,定位方式如果为定位ID,如果要定位输入框,则定位值为输入框元素的唯一标识。动作类型模拟用户行为,例如点击、滑动、输入等。动作值模拟用户要输入的值,如输入账号。断言条件用于验证是否打开正确的页面。
步骤S300,如果从待测试软件界面中提取至少两个所述目标元素,根据具有相同目标事件标识的所述目标元素对应的被赋值的所述行为操作组件,生成用于测试所述待测试软件界面的测试用例,其中所述目标事件标识用于标记所述目标元素所属的用户交互事件。
经过步骤S100和步骤S200可以生成被赋值的至少一个行为操作组件,不同的行为操作组件对应不同的测试脚本片段,通过拼接不同的行为操作组件,可以将不同的测试脚本片段进行组装,从而实现组成用于实现不同的业务场景的用户测试软件界面的测试用例。
在拼接不同的行为操作组件时存在两种情况:
第一种情况为只从待测试软件界面中提取一个目标元素,则用于生成测试用例的行为操作组件也只为一个。也就是说如果只从待测试软件界面中提取一个目标元素,则只根据被赋值的一个操作组件生成用于测试该待测试软件界面的测试用例。
例如,如图6所示的待测试用户界面中只包括一个链接窗口元素,用户只需要对该链接窗口元素进行点击操作,待测试用户界面即可响应该点击操作执行跳转操作。
第二种情况为从待测试软件界面中提取至少两个目标元素,则需要根据目标元素的目标事件标识对目标元素进行分组,并且根据同一组的目标元素对应的被赋值的行为操作组件生成测试用例。目标事件标识用于标记目标元素所属的用户交互事件。一个待测试软件界面可以包含多个用户交互事件,例如,可以包含登录用户交互事件,下单用户交互事件,窗口最大化用户交互事件等。这些用户交互事件可以同时存在于同一个待测试软件界面中。目标元素在创建时即可标记上目标事件标识,这样在生成测试用例过程中,可根据目标事件标识对目标元素进行分组,并拼接同一组的目标元素的行为操作组件,使得多拼接行为操作组件用于同一用户交互事件。
例如,如图7所示的待测试软件界面中包括登录对话框,在登录对话框中又包括用户名称输入框、用户密码输入框、同意协议复选框、登录按钮、最大化按钮、最小化按钮等目标元素。其中,在进行登录这一用户交互事件时,需要用户在用户名称输入框中输入用户名称,在用户密码输入框中输入用户密码,勾选同意协议复选框,点击登录按钮这些操作,因此登录这一用户交互事件涉及的目标元素包括用户名称输入框、用户密码输入框、同意协议复选框、登录按钮。也就是说,用户名称输入框、用户密码输入框、同意协议复选框、登录按钮在创建时就标记有登录这一用户交互事件对应的目标事件标识。在生成对应登录这一用户交互事件的测试用例时,需要拼接用户名称输入框、用户密码输入框、同意协议复选框、登录按钮对应的行为操作组件。
同样的,在进行最大化对话框这一用户交互事件时,需要用户点击最大化按钮,因此最大化按钮目标元素标记有最大化对话框这一用户交互事件对应的目标事件标识。在生成对应最大化对话框这一用户交互事件的测试用例时,只需要基于最大化按钮目标元素对应的行为操作组件生成测试用例。在进行最小化对话框这一用户交互事件时,需要用户点击最小化按钮,因此最小化按钮目标元素标记有最小化对话框这一用户交互事件对应的目标事件标识。在生成对应最小化对话框这一用户交互事件的测试用例时,只需要基于最小化按钮目标元素对应的行为操作组件生成测试用例。
需要说明的是,在从待测试软件界面中提取至少一个目标元素之后,即可根据目标元素的目标事件标识,对至少一个目标元素进行分组,然后再对分组标记上目标事件标识。测试人员在对待测试软件界面进行测试时,还可以选择不同的目标事件标识,测试设备根据选择的目标事件标识,再拼接对应分组中的目标元素对应的被赋值的行为操作组件。如果不需要使用到的目标元素可以不对其进行赋值(即输入定位目标数据和动作目标数据),而只对需要使用到的目标元素进行赋值。
例如,如图7所示的待测试软件界面中包括登录对话框,在登录对话框中又包括用户名称输入框、用户密码输入框、同意协议复选框、登录按钮、最大化按钮、最小化按钮等目标元素。如果测试人员只需要对最大化对话框的用户交互事件进行测试,可以选择最大化对话框的用户交互事件,测试设备响应于测试人员的输入,只在可视化操作界面中弹出针对最大化按钮目标元素的行为操作组件。测试人员只需要在可视化操作界面中的最大化按钮目标元素对应行为操作组件中输入,定位目标数据和动作目标数据,得到被赋值的行为操作组件,然后基于该行为操作组件生成测试用例。
同样的,如果测试人员需要对登录这一用户交互事件进行测试,可以选择登陆这一用户交互事件,测试设备响应于测试人员的输入,在可视化操作界面中弹出针对分别用户名称输入框、用户密码输入框、同意协议复选框、登录按钮的行为操作组件(这些目标元素具有登录这一用户交互事件对应的目标事件标识)。然后用户可在弹出的用户名称输入框、用户密码输入框、同意协议复选框、登录按钮的行为操作组件中,分别输入定位目标数据和动作目标数据。
在一些实施例中,用户交互事件中如果包括对至少两个目标元素的交互操作,在用户交互事件中,针对至少两个目标元素的交互操作还有先后顺序。相应的,在拼接至少两个目标元素对应的行为操作组件时,也需要按照交互操作的先后顺序进行拼接。生成的测试用例才是与实际交互操作匹配的测试用例。
例如,登录这一用户交互事件包括交互操作:输入用户名称、输入用户密码、勾选同意协议复选框、点击登录按钮,并且在这些交互操作中,输入用户名称、输入用户密码、勾选同意协议复选框三个交互操作,必须在点击登录按钮这一交互操作之前。在拼接对应的行为操作组件时,用户名称输入框、用户密码输入框、同意协议复选框对应的行为操作组件先进行拼接,最后再拼接登录按钮对应的行为操作组件。而由于输入用户名称、输入用户密码、勾选同意协议复选框三个交互操作的顺序不是固定的,因此用户名称输入框、用户密码输入框、同意协议复选框对应的行为操作组件的拼接顺序也可以不是固定的、
在一些实施例中,在拼接行为操作组件以生成测试用例之前,还可以获取针对目标元素对应的行为操作组件输入断言文本,如果待测试软件界面跳转的目标界面中包含断言文本,则可以确定测试用例生成成功。如果待测软件界面跳转的目标界面中不包含断言文本,还可以获取关联信息。其中关联信息中记录有断言文本与目标界面中关联文本的映射关系,即可以从关联信息中查找到与断言文本相关的关联文本。然后判断目标界面中是否包含关联文本,如果包含关联文本,仍然可以确定测试用例生成成功。如果目标界面不包含关联文本,可以确定测试用例生成失败。也就是说,如果目标界面中既不包含断言文本,又不包含关联文本,可以确定测试用例生成失败。
例如,如果事先针对目标元素对应的行为操作组件输入的断言文本为“欢迎你,王XX”,在上述实施例中的登录交互事件中,模拟用户点击登录按钮,从待测试软件界面跳转至目标界面。然后对目标界面截图,从目标界面截图界面查找是否包含断言文本“欢迎你,王XX”,如果检测到目标界面中包含断言文本“欢迎你,王XX”,表示从待测试软件界面跳转至正确的目标界面,可以确定测试用例生成成功。如果检测到目标界面中不含断言文本“欢迎你,王XX”,这里有可能是目标界面中实际上包含断言文本“欢迎你,王XX”,但是没有检测到,例如被其它目标元素遮挡导致没有检测到。此时可以获取与该断言文本对应的关联信息,然后根据关联信息查找与断言文本具有关联关系的关联文本。例如如果该软件测试界面为游戏应用程序的登录界面,登录之后跳转到目标界面除了包含欢迎语,可能还包含请创建角色等提示语。因此断言文本“欢迎你,王XX”的关联文本可以是“请创建角色”。
需要说明的是除了利用断言文本判断是否跳转至正确的目标界面,还可以利用图片、控件等信息判断是否跳转至正确的目标界面。
在一些实施例中,按照上述实施例中的方法生成测试用例之后,还可以按照场景标识存储测试用例,该场景标识用于标记测试用例使用的测试场景,即测试用例对应的用户交互事件。例如,生成与登录这一用户交互事件对应的测试用例之后,将该测试用例进行保存时,可以标记上登录这一用户交互事件的场景标识。测试用例可以保存至存储器中,因此存储器中可以保存多个应用于不同场景的测试用例。例如存储器中保存有具有登陆场景标识的测试用例,具有链接跳转场景标识的测试用例,具有最大化对话框场景标识的测试用例,具有最小化对话框场景标识的测试用例等等。
测试人员可以在可视化操作界面中根据场景标识调取不同的测试用例。具体的过程可以是,响应于测试待测试软件界面的操作指令,获取测试用例输入接口的接口标志,其中接口标识表征测试场景。然后根据接口标识查找测试场景对应的场景标识,并且根据该场景标识查找与测试场景对应的目标测试用例。查找到目标测试用例之后,直接执行目标测试用例,实现对待测试软件界面的测试。
基于上述实施例中的测试用例生成方法,在可视化操作界面上进行测试用例生成可以是如下过程,以下示例为用户交互事件为登录的示例。
在图8所示的可视化操作界面图中,测试人员首先可以登录自动化测试平台,然后选择用例管理下的APP用例管理。然后点击新增用例按钮,页面响应于测试人员输入的按钮指令,从图8所示的可视化操作界面跳转至图9所示的可视化操作界面。图9所示的可视化操作界面中,包括用例头配置区域和新增步骤区域,用例头配置区域用于设置测试用例的基本信息。新增步骤区域包括新增步骤按钮,用于增加新的行为操作组件。需要说明的是,行为操作组件可以由测试人员手动新增,也可以是系统根据用户交互事件的步骤所需要的行为操作组件自动新增。
本示例中,登录业务的执行步骤为填写用户名-填写密码-勾选协议-点击登录按钮,对应的基础组件的拼接顺序为第一行为操作组件-第二行为操作组件-第三行为操作组件-第四行为操作组件。其中第一行为操作组件、第二行为操作组件、第三行为操作组件的拼接顺序必须在第四行为操作组件之前,并且第一行为操作组件、第二行为操作组件、第三行为操作组件三者的顺序可随意调换。
第一行为操作组件的配置如图10所示,配置包括步骤描述“填写用户名”、定位方式“ID定位”、定位值“用户名输入框的ID”、动作类型“输入文本”、动作值“输入的用户名数据”、排位“0(表示第一个拼接的行为操作组件)”、断言条件。第一行为操作组件用于模拟填写用户名这一交互操作,具体可以根据定位值找到账号输入对话框,然后模拟在账号输入对话框中输入动作值中填写的数据“输入的用户名数据”,从而实现模拟填写用户名。
第二行为操作组件的配置如图11所示,配置包括步骤描述“填写密码”、定位方式“ID定位”、定位值“密码输入框的ID”、动作类型“输入文本”、动作值“输入的密码”、排位“1(表示第二个拼接的行为操作组件)”、断言条件。第二行为操作组件用于模拟填写密码这一交互操作,具体可以根据定位值找到密码输入对话框,然后模拟在密码输入对话框中输入动作值中填写的数据“输入的密码”,从而实现模拟填写密码。
第三行为操作组件的配置如图12所示,配置包括步骤描述“勾选协议”、定位方式“ID定位”、定位值“勾选框的ID”、动作类型“点击”、动作值“无”、排位“2(表示第三个拼接的行为操作组件)”、断言条件。第三行为操作组件用于模拟勾选同意协议这一交互操作,具体可以根据定位值找到勾选框,然后模拟在勾选框勾选同意协议。
第四行为操作组件的配置如图13所示,配置包括步骤描述“点击登录按钮”、定位方式“ID定位”、定位值“登录按钮的ID”、动作类型“点击”、动作值“无”、排位“3(表示第四个拼接的行为操作组件)”、断言条件。第四行为操作组件用于模拟点击登录按钮这一交互操作,具体可以根据定位值找到登录按钮,然后模拟在登录按钮上点击。
本示例还包括第五行为操作组件,第五行为操作组件的配置如图14所示,配置包括步骤描述“断言登录成功后页面文本”、动作类型“断言文本”、断言值“欢迎你,王XX”。第五行为操作组件用于判断是否登录成功,登录成功后会进入首页页面,因而可以在首页页面中查找到断言文本“欢迎你,王XX”。
测试用例信息输入完成后,点击板顶对应执行环境执行,传入后台循环步骤,获取到每个步骤中输入的相关信息,通过第三方工具appium(自动化测试开源工具)将行为命令发送至手机端,然后驱动对应的应用程序执行生成的测试用例。
可见本申请实施例从待测试软件界面中提取至少一个目标元素;获取针对所述目标元素对应的行为操作组件输入的定位目标数据和动作数据,得到被赋值的行为操作组件;如果从待测试软件界面中提取至少两个目标元素,则根据具有相同目标事件标识的目标元素对应的被赋值的行为操作组件,生成用户测试待测试软件界面的测试用例,其中目标事件标识用于标记目标元素所属的用户交互事件。这样基于目标元素对应的被赋值的行为操作组件,生成测试用例,不需要编写代码和维护代码,从而提升用于测试软件界面的测试用例生成效率。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
Claims (10)
1.一种用于测试软件界面的测试用例生成方法,其特征在于,包括:
从待测试软件界面中提取至少一个目标元素,其中,所述目标元素支持与用户进行交互,所述待测试软件界面响应于所述交互,执行与所述交互对应的操作;
获取针对所述目标元素对应的行为操作组件输入的定位目标数据和动作目标数据,得到被赋值的所述行为操作组件,其中所述定位目标数据表征所述目标元素在所述待测试软件界面中的位置,所述动作目标数据表征对所述目标元素的交互操作;
如果从待测试软件界面中提取至少两个所述目标元素,根据具有相同目标事件标识的所述目标元素对应的被赋值的所述行为操作组件,生成用于测试所述待测试软件界面的测试用例,其中所述目标事件标识用于标记所述目标元素所属的用户交互事件。
2.根据权利要求1所述的用于测试软件界面的测试用例生成方法,其特征在于,如果从待测试软件界面中提取一个所述目标元素,根据一个所述目标元素对应的被赋值的所述行为操作组件,生成用于测试所述待测试软件界面的测试用例。
3.根据权利要求1所述的用于测试软件界面的测试用例生成方法,其特征在于,所述定位目标数据包括定位方式和定位值,所述动作目标数据包括动作类型和动作值,其中所述定位方式表征所述目标元素的元素属性,所述定位值表征所述目标元素的元素名称,所述动作类型表征交互操作类型,所述动作值表征交互操作的实际数据。
4.根据权利要求3所述的用于测试软件界面的测试用例生成方法,其特征在于,
如果所述动作类型为非数据输入类型,则所述动作值为空;
如果所述动作类型为数据输入类型,则所述动作值为非空。
5.根据权利要求1所述的用于测试软件界面的测试用例生成方法,其特征在于,所述方法还包括:获取针对所述目标元素对应的行为操作组件输入的断言文本;
在执行测试用例后,所述方法还包括:
如果所述待测试软件界面跳转的目标界面中包含所述断言文本,则确定所述测试用例生成成功。
6.根据权利要求5所述的用于测试软件界面的测试用例生成方法,其特征在于,所述方法还包括:
如果所述待测试软件界面跳转的目标界面中不包含所述断言文本,则获取关联信息,其中所述关联信息记录有所述断言文本与所述目标界面中关联文本的映射关系;
根据所述关联信息在所述目标界面中查找所述关联文本;
如果所述目标界面中包含关联文本,则确定所述测试用例生成成功;
如果所述目标界面中不包含关联文本,则确定所述测试用例生成失败。
7.根据权利要求1所述的用于测试软件界面的测试用例生成方法,其特征在于,所述方法还包括:
按照场景标识存储所述测试用例,其中所述场景标识用于标记所述测试用例使用的测试场景。
8.根据权利要求7所述的用于测试软件界面的测试用例生成方法,其特征在于,所述方法还包括:
响应于测试所述待测试软件界面的操作指令,获取测试用例输入接口的接口标识,其中所述接口标识表征测试场景;
根据所述接口标识查找与所述测试场景对应的场景标识,并且根据所述场景标识查找与所述测试场景对应的目标测试用例;
执行所述目标测试用例。
9.一种用于测试软件界面的测试用例生成装置,其特征在于,包括:
目标元素提取模块,用于从待测试软件界面中提取至少一个目标元素,其中,所述目标元素支持与用户进行交互,所述待测试软件界面响应于所述交互,执行与所述交互对应的操作;
行为操作组件赋值模块,用于获取针对所述目标元素对应的行为操作组件输入的定位目标数据和动作目标数据,得到被赋值的所述行为操作组件,其中所述定位目标数据表征所述目标元素在所述待测试软件界面中的位置,所述动作目标数据表征对所述目标元素的交互操作;
测试用例生成模块,用于如果从待测试软件界面中提取至少两个所述目标元素,根据具有相同目标事件标识的所述目标元素对应的被赋值的所述行为操作组件,生成用于测试所述待测试软件界面的测试用例,其中所述目标事件标识用于标记所述目标元素所属的用户交互事件。
10.根据权利要求9所述的用于测试软件界面的测试用例生成装置,其特征在于,所述测试用例生成模块,还用于如果从待测试软件界面中提取一个所述目标元素,根据一个所述目标元素对应的被赋值的所述行为操作组件,生成用于测试所述待测试软件界面的测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310735528.2A CN116719736A (zh) | 2023-06-20 | 2023-06-20 | 一种用于测试软件界面的测试用例生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310735528.2A CN116719736A (zh) | 2023-06-20 | 2023-06-20 | 一种用于测试软件界面的测试用例生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116719736A true CN116719736A (zh) | 2023-09-08 |
Family
ID=87867596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310735528.2A Pending CN116719736A (zh) | 2023-06-20 | 2023-06-20 | 一种用于测试软件界面的测试用例生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116719736A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932414A (zh) * | 2023-09-14 | 2023-10-24 | 深圳市智慧城市科技发展集团有限公司 | 界面测试用例的生成方法、设备及计算机可读存储介质 |
-
2023
- 2023-06-20 CN CN202310735528.2A patent/CN116719736A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932414A (zh) * | 2023-09-14 | 2023-10-24 | 深圳市智慧城市科技发展集团有限公司 | 界面测试用例的生成方法、设备及计算机可读存储介质 |
CN116932414B (zh) * | 2023-09-14 | 2024-01-05 | 深圳市智慧城市科技发展集团有限公司 | 界面测试用例的生成方法、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018010552A1 (zh) | 测试方法和装置 | |
CN109871326B (zh) | 一种脚本录制的方法和装置 | |
CN106844217B (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
US20150378876A1 (en) | Visual graphical user interface verification | |
CN112463580B (zh) | 基于虚拟化装置的测试系统及其方法 | |
CN106776338B (zh) | 一种测试方法、装置及服务器 | |
US20200327043A1 (en) | System and a method for automated script generation for application testing | |
CN113704110B (zh) | 用户界面的自动化测试方法及装置 | |
CN111414309B (zh) | 应用程序的自动化测试方法、计算机设备和存储介质 | |
CN113515453B (zh) | 网页测试系统 | |
CN111966580A (zh) | 基于人工智能的自动化测试方法、装置、设备和存储介质 | |
CN114297056A (zh) | 一种自动化测试方法及系统 | |
CN116719736A (zh) | 一种用于测试软件界面的测试用例生成方法及装置 | |
CN112231206A (zh) | 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台 | |
CN116166525A (zh) | 一种测试脚本的生成方法及装置 | |
CN111736951A (zh) | 自动驾驶的仿真方法、计算机设备、及存储介质 | |
CN111708712A (zh) | 用户行为测试用例的生成方法、流量回放方法及电子设备 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN115514677B (zh) | 服务器拨测方法及系统 | |
CN105339974B (zh) | 模拟传感器 | |
CN112181809B (zh) | 一种基于多种定位方法的图形用户界面自动化测试方法 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 | |
CN111008140B (zh) | 一种跨平台的ui自动化测试方法及装置 | |
CN112486802A (zh) | Flutter测试辅助方法及装置 | |
US20180011784A1 (en) | Method for Testing a Graphical Interface and Corresponding Test System |
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 |