CN117149611A - 测试结果确定方法和装置 - Google Patents

测试结果确定方法和装置 Download PDF

Info

Publication number
CN117149611A
CN117149611A CN202210572203.2A CN202210572203A CN117149611A CN 117149611 A CN117149611 A CN 117149611A CN 202210572203 A CN202210572203 A CN 202210572203A CN 117149611 A CN117149611 A CN 117149611A
Authority
CN
China
Prior art keywords
interface
information
test
tested
result
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
Application number
CN202210572203.2A
Other languages
English (en)
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.)
Shenzhen Tencent Network Information Technology Co Ltd
Original Assignee
Shenzhen Tencent Network 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 Shenzhen Tencent Network Information Technology Co Ltd filed Critical Shenzhen Tencent Network Information Technology Co Ltd
Priority to CN202210572203.2A priority Critical patent/CN117149611A/zh
Publication of CN117149611A publication Critical patent/CN117149611A/zh
Pending legal-status Critical Current

Links

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/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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自动化测试)。
但相关技术中的UI自动化测试过程无法在不同平台中精确定位到对应的控件位置,从而使得UI自动化测试的精度较低。
发明内容
为了解决上述问题,本申请提供一种测试结果确定方法和装置。
一方面,本申请提出了一种测试结果确定方法,所述方法包括:
接收驱动设备基于测试脚本发送的测试信息;
在所述测试信息用于指示对第一界面操作进行测试的情况下,获取本地待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;
根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件,
将所述当前位置信息发送至所述驱动设备,以使所述驱动设备基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
另一方面,本申请实施例提供了一种测试结果确定方法,所述方法包括:
执行测试脚本,向待测设备发送测试信息;在所述测试信息用于指示对第一界面操作进行测试的情况下,以使所述待测设备获取所述待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;以及以使所述待测设备根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件;
接收所述待测设备发送的所述当前位置信息;
基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
另一方面,本申请实施例提供了一种测试结果确定装置,所述装置包括:
测试信息接收模块,用于接收驱动设备基于测试脚本发送的测试信息;
调整偏移信息获取模块,用于在所述测试信息用于指示对第一界面操作进行测试的情况下,获取本地待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;
当前位置信息确定模块,用于根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件;
当前位置信息发送模块,用于将所述当前位置信息发送至所述驱动设备,以使所述驱动设备基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
另一方面,本申请实施例提供了一种测试结果确定装置,所述装置包括:
测试信息发送模块,用于执行测试脚本,向待测设备发送测试信息;在所述测试信息用于指示对第一界面操作进行测试的情况下,以使所述待测设备获取所述待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;以及以使所述待测设备根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件;
当前位置信息接收模块,用于接收所述待测设备发送的所述当前位置信息;
第一测试结果生成模块,用于基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
另一方面,本申请提出了一种测试结果确定的电子设备,该电子设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述所述的测试结果确定方法。
另一方面,本申请提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述所述的测试结果确定方法。
另一方面,本申请提出了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述所述的测试结果确定方法。
本申请实施例提出的测试结果确定方法和装置,通过接收驱动设备执行测试脚本发送的测试信息,在测试信息用于指示对第一界面操作进行测试的情况下,获取本地待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;根据界面尺寸调整信息界面位置偏移信息,确定对第一界面操作进行测试所需要操作的目标控件的当前位置信息,该第一界面操作的操作复杂度小于预设复杂度阈值;将当前位置信息发送至驱动设备,以使驱动设备基于该当前位置信息,生成第一界面操作的第一测试结果。本申请实施例由于可以基于本地待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息,确定控件位置信息,由于不同平台的界面尺寸调整信息和界面位置偏移信息不同,使得针对不同平台可以采用不同的定位方式精准定位到对应的控件位置,从而提高不同平台中的控件位置信息的确定精度,进而提高不同平台中的自动化测试结果的确定精度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是根据一示例性实施例示出的一种测试结果确定方法的实施环境示意图。
图2是根据一示例性实施例示出的测试结果确定方法的流程示意图一。
图3是根据一示例性实施例示出的一种自动化测试框图。
图4是根据一示例性实施例示出的一种获取待测设备中的当前界面对应的界面尺寸调整信息的流程示意图。
图5是根据一示例性实施例示出的一种获取待测设备中的当前界面对应的界面位置偏移信息的流程示意图。
图6是根据一示例性实施例示出的测试结果确定方法的流程示意图二。
图7是根据一示例性实施例示出的测试结果确定方法的流程示意图三。
图8是根据一示例性实施例示出的测试结果确定方法的流程示意图四。
图9是根据一示例性实施例示出的测试结果确定方法的流程示意图五。
图10是根据一示例性实施例示出的一种测试结果确定装置框图。
图11是根据一示例性实施例示出的另一种测试结果确定装置框图。
图12是根据一示例性实施例示出的一种测试结果确定的服务器的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是根据一示例性实施例示出的一种测试结果确定方法的实施环境示意图。如图1所示,该实施环境至少可以包括驱动设备01和待测设备02,该驱动设备01和待测设备02之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
可选地,该驱动设备01可以用于编写测试脚本,以及执行测试脚本向待测设备发送测试信息;以及用于接收待测设备发送的目标控件的当前位置信息;以及用于基于所述当前位置信息,生成第一界面操作的第一测试结果。可选地,该驱动设备01可以为是智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能手表等,但并不局限于此。
可选地,该待测设备02可以包括但不限于:安卓设备、iOS设备、个人计算机(PC设备),其中,iOS指的是苹果公司开发的移动操作系统。该待测终端中可以设置有自动化测试框架、待测应用、待测应用对应的引擎等。由于自动化测试框架可能不支持iOS设备和PC设备,为了使同一份测试脚本可以控制不用的待测设备进行自动化测试,可以整合iOS端自动化框架(例如,wda)和PC设备对应的应用程序编程接口(例如,win32api)在自动化测试框架中,同时泛化一些常见的UI操作在不同的平台端上,以支持同一份测试脚本可以在不用待测试设备中实现相同的功能。其中,Wda指的是Facebook官方提供iOS端自动化框架,win32api指的是为Microsoft 32位平台的应用程序编程接口,win32是指MicrosoftWindows操作系统的32位环境。此外,还可以预先在引擎中集成软件开发工具包插件(SDK插件),从而创建一个嵌套字(Socket)端口。驱动设备01可以通过该Socket端口与待测设备02进行通信,例如,驱动设备01通过该Socket端口,向待测设备02发送测试信息。
具体地,该待测设备可以用于在测试信息用于指示对第一界面操作进行测试的情况下,获取当前界面的界面尺寸调整信息和界面位置偏移信息;以及用于根据界面尺寸调整信息和界面位置偏移信息,确定目标控件的当前位置信息;以及用于将当前位置信息发送至所述驱动设备。可选地,该待测设备02可以为是智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能手表等,但并不局限于此。
需要说明的是,图1仅仅是一种示例性的实施环境示意图。在其他场景中,还可以包括其他实施环境。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
图2是根据一示例性实施例示出的测试结果确定方法的流程示意图一。该方法可以用于图1中的实施环境中。本说明书提供了如实施例或流程示意图上述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,该方法可以包括:
S101.驱动设备执行测试脚本,向待测设备发送测试信息。
可选地,驱动设备用于控制自动化测试流程,其可以响应于测试脚本编写指令,使用目标脚本语言编写测试脚本,并执行该测试脚本,以向待测设备发送测试信息。作为一种示例,该目标脚本语言可以为Python语言,该测试信息可以为用于进行自动化测试的命令字段和参数。其中,Python语言是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
可选地,在上述步骤S101中,驱动设备执行测试脚本之后,可以采用多种方式向待测设备发送测试信息,本申请实施例对此不做具体限定。图3是根据一示例性实施例示出的一种自动化测试框图,如图3所示,驱动设备可以通过上述Socket端口向待测设备发送该测试信息。
S103.在上述测试信息用于指示对第一界面操作进行测试的情况下,上述待测设备获取待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息。
继续如图3所示,在上述步骤S103中,在待测设备在通过上述Socket端口接收到驱动设备发送的测试信息之后,待测设备中的自动化测试框架可以将接收到的测试信息放在测试信息队列中,在该测试信息为命令时,该测试信息队列可以为命令队列(CommandHandle)。待测设备中的自动化测试框架可以解析该测试信息队列中的测试信息,并根据解析结果区分是对第一界面操作进行测试,还是对第二界面操作进行测试。作为一种示例,该第一界面操作的操作复杂度小于预设复杂度阈值,其可以为常用的UI操作或一些固定的UI操作。例如,游戏场景中的获取当前地貌(world)的名称、获取当前控件布局等操作。如果是对第一界面操作进行测试,则待测设备中的自动化测试框架可以获取上述待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息,从而对控件位置信息进行定位,进而完成对常用的UI操作或一些固定的UI操作的自动化测试。作为另一种示例,该第二界面操作的操作复杂度大于或等于该预设复杂度阈值,其可以为除了UI操作或一些固定的UI操作之外的较为复杂的操作。例如,如在第一人称射击类游戏(First-person shootinggame,FPS)中,在局内需要控制角色移动,获取伤害等操作。如果是对第二界面操作进行测试,则待测设备中的自动化测试框架可以调用待测应用对应的引擎中的函数,从而完成对较为复杂的UI操作的自动化测试。
可选地,该待测应用可以包括但不限于:游戏应用、视频应用等。在该待测应用为游戏应用的情况下,该待测应用对应的引擎可以为运行该待测应用的游戏引擎。示例性地,该游戏引擎可以包括但不限于:虚幻引擎(Unreal引擎,例如,UE4),Unity引擎、Cocos2d引擎等。其中,Unreal引擎是一个由EpicGames开发的游戏引擎,是一套跨平台的游戏引擎,可用于开发视窗操作系统(Windows)、图形化操作系统(MacOS)、Linux平台的单机游戏,或是iOS、安卓移动设备的游戏。Unity引擎是由Unity Technologies开发的一个应用于三维场景下的引擎,例如,应用于三维视频游戏、三维动画等类型游戏应用中。Cocos2d引擎是一个基于MIT协议的开源框架,应用于构建游戏、应用程序和其他图形界面交互的应用。
以待测应用为游戏应用为例,该自动化测试框架可以为Gautomator自动化测试框架,该Gautomator是针对手游的来源的自动化测试框架。该Gautomator可以在项目代码中集成SDK,在游戏外部与SDK通信,控制游戏执行测试。可选地,该游戏应用可以包括但不限于:二维游戏应用、三维游戏应用、虚拟现实游戏应用、增强现实游戏应用、混合现实游戏应用。
可选地,该当前界面可以指的是待测设备所能够呈现的界面。该界面尺寸调整信息可以指的是界面尺寸缩放信息,即界面尺寸的缩小或放大信息。该界面位置偏移信息可以指的是界面位置的变化情况。
可选地,在上述步骤S103中,可以采用多重方式获取待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息,本申请实施例对此不做具体限定。
在一种实施方式中,在上述步骤S103中,上述待测设备中设置有待测应用,上述待测设备获取待测设备中的当前界面对应的界面尺寸调整信息,可以包括:
上述待测设备从上述待测应用对应的引擎中的缩放因子属性中,获取上述界面尺寸调整信息。
可选地,该待测设备可以为iOS设备。对于iOS设备,可以使用每英寸点数(DotsPer Inch,DPI)的方案来标识缩放比例,iOS的dpi缩放比例的系数可以如表1所示。
表1 iOS的dpi缩放比例的系数
对于iOS设备,在另一种实施方式中,以待测应用为游戏为例,由于游戏会因为一些优化而改变dpi缩放比例,为了提高界面尺寸调整信息的获取精度,进而提高自动化测试的精度,待测设备中的自动化测试框架可以调用SDK获取待测应用对应的引擎中的缩放因子属性(Mobile Content Scale Factor),从而获取该界面尺寸调整信息。
在另一种实施方式中,图4是根据一示例性实施例示出的一种获取待测设备中的当前界面对应的界面尺寸调整信息的流程示意图,如图4所示,在上述步骤S103中,上述待测设备中设置有待测应用,上述待测设备获取待测设备中的当前界面对应的界面尺寸调整信息,可以包括:
S201.上述待测设备获取上述待测应用对应的引擎的视口尺寸信息,以及上述引擎对应的渲染窗口在当前界面中的实际尺寸信息。
S203.上述待测设备基于实际尺寸信息和视口尺寸信息,确定界面尺寸调整信息。
可选地,该待测设备为安卓设备,则在上述S201中,待测设备中的自动化测试框架可以调用SDK获取待测应用对应的引擎的视口尺寸信息(即原始Viewport Size),并使用表面尺寸接口(例如,Calculate Surface Size接口)获取引擎对应的渲染窗口在上述当前界面中的实际尺寸信息。其中,视口尺寸信息指的是引擎的可视区域的尺寸信息,实际尺寸信息指的是引擎对应的渲染窗口在当前界面整体布局中所占的尺寸信息,渲染窗口指的是用于渲染对象的窗口。
可选地,在上述步骤S203中,待测设备中的自动化测试框架可以对比上述实际尺寸信息和上述视口尺寸信息,得到该界面尺寸调整信息。例如,自动化测试框架可以计算实际尺寸信息和视口尺寸信息之间的比值,并根据该比值确定该界面尺寸调整信息。
在另一个可行的实施方式中,在待测设备为PC设备的情况下,该PC设备的当前界面对应的界面尺寸调整信息可以默认为1。
本申请实施例中,对于安卓设备,根据引擎的视口尺寸信息和引擎对应的渲染窗口在当前界面中的实际尺寸信息,确定界面尺寸调整信息,能够针对安卓设备采用适用于安卓设备的方式确定界面尺寸调整信息,兼容了不同设备的尺寸调整信息,提高了安卓设备的界面尺寸调整信息的确定精度,从而提高了控件位置信息的确定精度,进而提高了自动化测试结果的确定精度。
在一个可选的实施例中,图5是根据一示例性实施例示出的一种获取待测设备中的当前界面对应的界面位置偏移信息的流程示意图,如图5所示,在上述步骤S103中,上述待测设备中设置有待测应用,上述待测设备获取待测设备中的当前界面对应的界面位置偏移信息,可以包括:
S301.上述待测设备获取当前界面的界面布局信息。
可选地,对于安卓设备,由于安卓设备的刘海屏或下巴屏会导致渲染窗口的位置相对于从引擎中获取到的渲染窗口的实际位置信息有所偏移,为了确定安卓设备的界面位置偏移信息,在上述S301中,待测设备中的自动化测试框架可以使用当前界面的UI层次获取指令(uiautomator dump指令),调用SDK获取当前界面的界面布局信息。示例性地,该界面布局信息用于描述待测设备中的当前界面的整体局部情况。例如,该界面布局信息可以为当前界面的布局xml文件。
S303.上述待测设备从待测应用对应的引擎中,获取引擎对应的渲染窗口的第一位置信息。
可选地,在上述步骤S301中,待测设备中的自动化测试框架可以调用SDK,从引擎中获取引擎对应的渲染窗口的第一位置信息,该第一位置信息用于表征从引擎中获取到的渲染窗口的实际位置信息。
S305.上述待测设备对上述界面布局信息进行解析,得到上述渲染窗口在当前界面中的第二位置信息。
可选地,在上述步骤S305中,待测设备中的自动化测试框架可以对该界面布局信息进行解析,得到该界面的整体分布情况。该界面的整体分布情况可以包括但不限于:窗口分布情况、控件分布情况等。待测设备中的自动化测试框架根据该界面的整体分布情况,可以确定渲染窗口在该当前界面中的第二位置信息,即确定渲染窗口位于整体分布的哪个地方。
S307.上述待测设备根据第一位置信息和第二位置信息,确定界面位置偏移信息。
可选地,在上述步骤S307中,待测设备中的自动化测试框架可以根据第一位置信息对应的坐标信息和第二位置信息对应的坐标信息,确定第一位置信息和第二位置信息之间的坐标偏移量,从而得到界面位置偏移信息。
本申请实施例中,对于安卓设备,根据当前界面的界面布局信息和从待测应用对应的引擎中,获取到的渲染窗口的第一位置信息,确定界面位置偏移信息,能够针对安卓设备采用适用于安卓设备的方式确定界面位置偏移信息,兼容了不同设备的位置偏移信息,提高了安卓设备的位置偏移信息的确定精度,从而提高了控件位置信息的确定精度,进而提高了自动化测试结果的确定精度。
在一个可选的实施例中,上述待测设备中设置有预设应用程序编程接口,上述待测设备获取待测设备中的当前界面对应的界面位置偏移信息,可以包括:
上述待测设备基于预设应用程序编程接口,获取界面位置偏移信息。
可选地,对于PC设备而言,由于预先在自动化测试框架中设置预设应用程序编程接口(即Win32API),PC设备中的自动化测试框架可以基于该Win32API,获取由于窗口标题栏、操作栏等带来的界面位置偏移信息。
需要说明的是,对于iOS设备,其界面位置偏移信息可以忽略不计。
本申请实施例中,对于PC设备,可以直接根据预设应用程序编程接口,获取由于窗口标题栏、操作栏等带来的界面位置偏移信息,能够针对PC设备采用适用于PC设备的方式确定位置偏移信息,兼容了不同设备的位置偏移信息,提高了PC设备的位置偏移信息的确定精度,从而提高了控件位置信息的确定精度,进而提高了自动化测试结果的确定精度。
S105.上述待测设备根据界面尺寸调整信息和界面位置偏移信息,确定目标控件的当前位置信息;目标控件为对第一界面操作进行测试所需要操作的控件,第一界面操作的操作复杂度小于预设复杂度阈值。
可选地,在上述步骤S105中,待测设备中的自动化测试框架可以根据界面尺寸调整信息和上述界面位置偏移信息,确定当前界面中的各个控件的当前位置信息。其中,控件指的是可以在窗体上放置的可视化图形“元件”,如按钮、文件编辑框等。当前界面中的各个控件包括为对上述第一界面操作进行测试所需要操作的目标控件。例如,第一界面操作为对登陆按钮进行点击操作,则目标控件为登陆控件。
可选地,本申请实施例可以采用多种方式根据界面尺寸调整信息和界面位置偏移信息,确定目标控件的当前位置信息,对此不做具体限定。
在一种实施方式中,图6是根据一示例性实施例示出的测试结果确定方法的流程示意图二,如图6所示,在上述步骤S105中,上述待测设备中设置有待测应用,上述待测设备根据界面尺寸调整信息和界面位置偏移信息,确定目标控件的当前位置信息,可以包括:
S1051.上述待测设备根据界面尺寸调整信息,确定待测应用对应的引擎中的控件,在当前界面中的缩放后的位置信息;上述引擎中的控件包括目标控件。
S1053.上述待测设备根据缩放后的位置信息和界面位置偏移信息,确定当前位置信息。
可选地,在上述步骤S1051中,待测设备中的自动化测试框架可以将待测应用对应的引擎将引擎画面投影至待测设备上,得到一个画布,由于引擎画面的尺寸与待测设备的当前界面的尺寸不一致,将引擎画面投影至待测设备时,会按照界面尺寸调整信息对引擎画面的尺寸进行缩放,得到引擎中的控件在当前界面中的缩放后的位置信息。需要说明的是,引擎中的控件包括对第一界面操作进行测试所需要操作的目标控件。
可选地,在上述S1053,待测设备中的自动化测试框架可以采用多种方式确定当前位置信息,本申请实施例在此不做具体限定。
在一种实施方式中,待测设备中的自动化测试框架可以将缩放后的位置信息与界面位置偏移信息相加,得到当前位置信息。
在一种实施方式中,待测设备中的自动化测试框架,还可以根据待测设备的属性信息确定缩放后的位置信息的第一权重和界面位置偏移信息的第二权重,并计算确缩放后的位置信息与第一权重的第一乘积,以及界面位置偏移信息与第二权重的第二乘积,接着计算第一乘积和第二乘积的和,得到当前位置信息。
需要说明的是,该当前位置信息可以用于表征目标控件所在的位置的当前地貌、目标控件在当前地貌中的位置方向信息等。
本申请实施例中,由于不同待测设备具有不同的缩放信息和偏移信息,根据待测设备的界面尺寸调整信息和界面位置偏移信息,确定目标控件的当前位置信息,能够针对不同设备采用不同的定位方案精准定位控件的位置信息,兼容了不同设备的缩放和偏移,提高了目标控件的当前位置信息的确定精度,进而提高了自动化测试结果的确定精度。
S107.上述待测设备将当前位置信息发送至驱动设备。
可选地,在上述步骤S107中,上述待测设备可以通过上述Socket端口,将当前位置信息发送至该驱动设备。
S109.上述驱动设备基于当前位置信息,生成第一界面操作的第一测试结果。
可选地,在上述步骤S109中,驱动设备就可以采用多种方式生成第一界面操作的第一测试结果,本申请实施例对此不作具体限定。
在一种实施方式,继续如图6所示,在上述S109中,上述驱动设备基于上述当前位置信息,生成第一界面操作的第一测试结果,可以包括:
S1091.上述驱动设备从待测应用对应的引擎中获取当前界面的控件文件树;上述控件文件树用于表征控件的属性信息与控件的位置信息之间的关联关系。
S1093.上述驱动设备基于当前位置信息、控件文件树和目标控件的属性信息,确定目标控件的目标位置信息。
S1095.上述驱动设备基于目标位置信息,控制待测设备对目标控件进行测试,得到第一测试结果。
可选地,引擎中的控件一般用图形UI设计器(UMG)类来进行排布,为了能够支持用户部件(UuserWidget)的子类型(比如,UpanelWidget)的位置查找,从而得到该场景的全景视图。在上述步骤S1091中,驱动设备可以调用SDK插件,通过深度遍历的方式,从待测应用对应的引擎获得当前场景中的控件文件树(即dump_tree文件)。其中,dump_tree文件可以是一个xml格式的控件树文本,其用于表征控件的属性信息与控件的位置信息之间的关联关系。
可选地,由于上述当前位置信息用于表征目标控件所在的位置的当前地貌、目标控件在当前地貌中的位置方向信息等,为了获取到目标控件对应的准确的目标位置信息,在上述步骤S1093中,上述驱动设备可以基于当前位置信息,确定控件文件树中与当前位置信息匹配的匹配部分,即确定当前位置信息在控件文件树中的方向等信息,并基于目标控件的属性信息从该匹配部分中查询得到目标控件的目标位置信息,从而实现在较为复杂的关联关系中定位想要的控件,提高目标位置信息的确定精度。示例性地,该属性信息可以包括但不限于:控件类型信息、控件标识信息、控件边界位置信息、控件序号信息。
可选地,在上述步骤S1095中,上述驱动设备可以基于该目标位置信息,生成第一测试指令,并通过上述Socket端口将该第一测试指令发送至待测设备;待测设备响应于该第一测试指令,根据该控件位置信息对该目标控件进行操作,得到该第一界面操作的第一测试结果。待测设备将该第一测试结果通过上述Socket端口发送至驱动设备,驱动设备可以通过Python解析器对该第一测试结果行解析,得到实际测试结果,驱动设备对比实际测试结果和预期结果之间的差异,生成测试报告,并将测试结果发送至相关账号。
本申请实施例中,通过查找UMG控件排布的方法,输出当前结构的控件文件树,并可以使用控件文件树的方式精准定位目标控件的目标位置信息,从而支持了扩展子类型的位置查找,提高了目标控件的目标位置信息的确定精度,进而提高了自动化测试结果的确定精度。
在一个可选的实施例中,图7是根据一示例性实施例示出的测试结果确定方法的流程示意图三,上述待测设备中设置有待测应用,上述方法还可以包括:
S401.在上述测试信息用于指示对第二界面操作进行测试的情况下,待测设备调用待测应用对应的引擎中的函数,得到函数调用结果;第二界面操作的操作复杂大于或等于预设复杂阈值。
可选地,在上述步骤S401中,待测设备在通过上述Socket端口接收到驱动设备发送的测试信息之后,可以首先根据该测试信息区分是对第一界面操作进行测试,还是对第二界面操作进行测试,如果是对第二界面操作进行测试,则可以通过SDK插件,调用待测应用对应的引擎中的函数,得到函数调用结果。
可选地,本申请实施例可以通过多种方式调用上述待测应用对应的引擎中的函数,得到函数调用结果,在此不做具体限定。
在一个可选的实施方式中,上述待测设备中设置有预设脚本语言对应的预设脚本语言插件,在上述待测设备调用上述待测应用对应的引擎中的函数,得到函数调用结果之前,上述方法还可以包括目标业务逻辑的生成和发送的步骤。具体地,该目标业务逻辑的生成和发送的步骤,可以包括:
上述驱动设备基于预设脚本语言对待测应用的业务逻辑进行编写,得到目标业务逻辑。
上述驱动设备将目标业务逻辑发送至待测应用对应的引擎。
上述引擎将目标业务逻辑发送至预设脚本语言对应的预设虚拟机。
可选地,可以在待测设备中的自动化测试框架中整合预设脚本语言插件,在预设脚本语言插件整合完成之后,自动化测试框架就拥有了调用预设脚本语言接口的功能。驱动设备可以响应于业务逻辑编辑指令,通过预设脚本语言对待测应用的业务逻辑进行编写,得到目标业务逻辑。驱动设备可以将该目标业务逻辑发送至待测应用对应的引擎,并由待测应用对应的引擎传递给预设虚拟机进行运行。
以待测应用为游戏应用,自动化测试框架为Gautomator为例,该预设语言可以为lua,其中,Lua是一种轻量小巧的脚本语言。可以预先在自动化测试框架中整合Lua插件,此时自动化测试框架就拥有了调用Lua接口的能力,驱动设备可以响应于业务逻辑编辑指令,对游戏应用的业务逻辑进行编写,得到游戏应用的目标业务逻辑。驱动设备可以将游戏应用对应的目标业务逻辑发送至游戏应用对应的游戏引擎,游戏引擎将该目标业务逻辑发送至Lua对应的Lua虚拟机中进行运行。
在一种实施方式中,在上述步骤S401中,上述待测设备调用待测应用对应的引擎中的函数,得到函数调用结果,可以包括:
在上述预设虚拟机运行目标业务逻辑的过程中,上述待测设备基于预设脚本语言插件,从预设虚拟机中调用函数,得到函数调用结果。
可选地,由于预先在待测设备中的自动化测试框架中整合预设脚本语言插件,在预设虚拟机运行该目标业务逻辑的过程中,待测设备中的自动化测试框架可以基于该预设脚本语言插件,从该预设虚拟机中便捷调用函数,得到该函数调用结果。
以待测应用为游戏应用,自动化测试框架为Gautomator,该预设语言为lua为例,在预设虚拟机运行该游戏应用对应的目标业务逻辑的过程中,Gautomator可以基于该lua插件,从该预设虚拟机中调用函数对目标业务逻辑进行解析和测试,得到该函数调用结果。
本申请实施例中在待测设备中设置预设脚本语言插件,通过预设脚本语言插件的嵌入功能,调用引擎中的函数和属性值,以进行自动化测试,提高了引擎函数调用的便捷性和可读性,从而便捷且精准地实现了复杂的UI操作的自动化测试。
在另一种实施方式中,在上述步骤S401中,上述待测设备调用待测应用对应的引擎中的函数,得到函数调用结果,可以包括:
上述待测设备从引擎中的属性系统中调用上述函数,得到函数调用结果。
可选地,待测设备中的自动化测试框架还可以利用函数属性系统的反射功能,动态的对函数进行调用,即对于项目中使用UFUNCTION标记的函数和使用UPROPERTY标记的变量可以在运行时在引擎中的属性系统中查找到,对于这些已加入属性系统中的函数,待测设备中的自动化测试框架可以直接调用进行自动化测试,从而得到该函数调用结果。其中,UFUNCTION指的是UE4反射系统可识别的C++函数,UPROPERTY指的是将变量公开到编辑器或蓝图,UPROPERTY标记的变量指的是被公开到编辑器或蓝图的变量。
本申请实施例中,对于使用UFUNCTION标记的函数和使用UPROPERTY标记的变量,可以直接在运行时在引擎中的属性系统中查找得到,拓展了函数调用的方式,提高了函数调用的便捷性、效率和精度,从而提高了函数调用结果确定的效率和精度。
在另一种实施方式中,上述测试信息为基于数据包格式协议编写得到,在上述步骤S401中,上述待测设备调用待测应用对应的引擎中的函数,可以包括:
上述待测设备基于数据包格式协议解析测试信息,得到数据包格式协议对应的数据包信息;上述数据包信息包括多个函数。
上述待测设备执行多个函数,得到函数调用结果。
本申请实施例中,对于在lua中无法调取的引擎函数还可以通过JSON解析调用函数,其中,JSON是一种轻量级的数据交换格式。其中,JSON解析调用函数的实现方式可以如下:设计一个数据包格式协议,按照该数据包格式协议编写测试信息(例如,命令、字段等),通过上述Socket端口发送至待测设备,待测设备中的SDK插件收到测试信息之后,按照该数据包格式协议解析该测试信息,得到数据包格式协议对应的数据包信息,待测设备中的SDK插件执行该多个函数,得到函数调用结果。
示例性地,数据包格式协议使用的JSON格式可以如下:
1)一个数据包,包括ops和out两个字段,ops是一个数组,包含多个操作(Operation),out是一个字符用于指定返回值。
2)每个操作(Operation)分为静态函数和非静态函数,使用static字段(True或False)区分,每个操作使用name设置操作名称,返回值out使用操作的name设置。
3)一个静态函数包括如下几个字段:class(类名),package(包名),function(函数名),parms(参数,由数组组成)。
4)一个非静态函数包括如下几个字段:object(对象名),function(函数名),parms(参数,由数组组成)。
5)解析时按照ops中数组的顺序依次执行函数,前面函数的返回值,可以在name前加‘#’作为参数输入到后面的函数。
以下举例对通过JSON解析调用函数进行说明:
如果想获取游戏应用中的角色的位置,可以先获取World,然后将返回值输入到静态函数GetPlayerCharacter中,调用该GetPlayerCharacter获取角色,最后调用静态函数GetActorLocation来获取位置,即可以通过调用三个静态函数来完成。其中,GetPlayerCharacter指的是获得当前控制的角色实例的静态函数,GetActorLocation指的是获取角色位置的静态函数。
本申请实施例中,对于无法在lua中无法调取的引擎函数通过JSON解析进行调用,扩展了了函数调用的适用范围,进而提高了自动化测试的适用范围。
S403.上述待测设备将函数调用结果发送至驱动设备。
可选地,待测设备可以通过上述Socket端口将该函数调用结果发送至该驱动设备。
S405.上述驱动设备基于函数调用结果,生成第二界面操作的第二测试结果。
可选地,驱动设备可以通过Python解析器对函数调用结果进行解析,得到实际测试结果,驱动设备对比实际测试结果和预期结果之间的差异,生成测试报告(即第二测试结果)。驱动设备还可以将该测试报告发送至相应的测试账号。
在一个可行的实施例中,上述函数调用结果的类型为关系表类型,在上述待测设备基于上述预设脚本语言插件,从预设虚拟机中调用上述函数,得到函数调用结果之后,上述方法还可以包括:
上述待测设备将上述函数调用结果的类型由关系表类型转换为字符串类型,得到转换后的函数调用结果。
可选地,以预设脚本语言为lua为例,由于lua调用函数返回的结果可能不止一个返回参数或者一个类变量形式。Lua中模块的结构是一个关系表(table)的结构,在lua返回值的时候可以将关系表类型(table类型)值转换为字符串类型(string类型),得到转换后的函数调用结果。
在一种实施方式中,上述函数调用结果包括多个键值对,则上述待测设备将上述函数调用结果的类型由关系表类型转换为字符串类型,得到转换后的函数调用结果,可以包括:
上述待测设备将多个键值对各自进行字符串转换,得到多个键值对各自对应的字符串。
上述待测设备拼接多个键值对各自对应的字符串,得到转换后的函数调用结果。
具体地,table中包括多个键值对(key:value),待测设备中的自动化测试框架可以将每一个键值对读出后转换为字符,拼接每一个键值对应的字符,得到每一个键值对应的字符段,再将所有键值对应的字符段拼成一个长字符串,从而得到转换后的函数调用结果。通过将关系表类型转换为字符串类型,解决了调用lua不能返回复杂对象的问题,使得通过lua的调用能够返回所需要的引擎函数,从而便捷且精准地实现了复杂的UI操作的自动化测试。
相应地,在上述步骤S403中,上述待测设备将函数调用结果发送至驱动设备,可以包括:
上述待测设备将上述转换后的函数调用结果发送至驱动设备。
可选地,待测设备可以通过上述Socket端口,将转换后的函数调用结果发送至驱动设备。
相应地,在上述S405中,上述驱动设备基于上述函数调用结果,生成上述第二界面操作的第二测试结果,可以包括:
上述驱动设备对转换后的函数调用结果进行解析,得到目标函数调用结果。
上述测试驱动设备基于上述目标函数调用结果,生成上述第二测试结果。
可选地,该驱动设备可以通过JSON的通用解析库,对该转换后的函数调用结果进行解析,得到目标函数调用结果。驱动设备可以通过Python解析器对目标函数调用结果进行解析,得到实际测试结果,驱动设备对比实际测试结果和预期结果之间的差异,生成测试报告(即第二测试结果)。驱动设备还可以将该测试报告发送至相应的测试账号。
本申请实施例中,将上述函数调用结果的类型由关系表类型转换为字符串类型,得到转换后的函数调用结果,并将该转换后的函数调用结果发送至驱动设备,由驱动设备进行解析,生成第二测试结果,解决了调用lua不能返回复杂对象的问题,使得通过lua的调用能够返回所需要的引擎函数,从而便捷且精准地实现了复杂的UI操作的自动化测试。
在一个可行的实施例中,本申请实施例还公开了一种测试结果确定系统,该测试结果确定系统包括:驱动设备和待测设备;
该驱动设备,用于驱动设备执行测试脚本,向待测设备发送测试信息;以及用于接收待测设备发送的当前位置信息;以及用于基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
该待测设备,用于在所述测试信息用于指示对第一界面操作进行测试的情况下,获取所述待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;以及用于根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件;以及用于将所述当前位置信息发送至所述驱动设备。
以下,以待测设备为执行主体介绍该测试结果确定方法:
图8是根据一示例性实施例示出的测试结果确定方法的流程示意图四。如图8所示,该测试结果确定方法可以包括:
S501.接收驱动设备基于测试脚本发送的测试信息;
S503.在上述测试信息用于指示对第一界面操作进行测试的情况下,获取本地待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;上述第一界面操作的操作复杂度小于预设复杂度阈值;
S505.根据上述界面尺寸调整信息和上述界面位置偏移信息,确定目标控件的当前位置信息;上述目标控件为对上述第一界面操作进行测试所需要操作的控件;
S507.将上述当前位置信息发送至上述驱动设备,以使上述驱动设备基于上述当前位置信息,生成上述第一界面操作的第一测试结果。
在一个可选的实施例中,上述本地待测设备中设置有待测应用,上述根据上述界面尺寸调整信息和上述界面位置偏移信息,确定目标控件的当前位置信息,包括:
根据上述界面尺寸调整信息,确定上述待测应用对应的引擎中的控件,在上述当前界面中的缩放后的位置信息;上述引擎中的控件包括上述目标控件;根据上述缩放后的位置信息和上述界面位置偏移信息,确定上述当前位置信息。
在一个可选的实施例中,上述本地待测设备中设置有待测应用,上述获取上述本地待测设备中的当前界面对应的界面尺寸调整信息,包括:
获取上述待测应用对应的引擎的视口尺寸信息以及上述引擎对应的渲染窗口在上述当前界面中的实际尺寸信息;
基于上述实际尺寸信息和上述视口尺寸信息,确定上述界面尺寸调整信息。
在一个可选的实施例中,上述待测设备中设置有待测应用,上述获取上述本地待测设备中的当前界面对应的界面位置偏移信息,包括:
获取上述当前界面的界面布局信息;
从上述待测应用对应的引擎中,获取上述引擎对应的渲染窗口的第一位置信息;
对上述界面布局信息进行解析,得到上述渲染窗口在上述当前界面中的第二位置信息;
根据上述第一位置信息和上述第二位置信息,确定上述界面位置偏移信息。
在一个可选的实施例中,上述待测设备中设置有预设应用程序编程接口,上述获取上述本地待测设备中的当前界面对应的界面位置偏移信息,包括:
基于上述预设应用程序编程接口,获取上述界面位置偏移信息。
在一个可选的实施例中,上述待测设备中设置有待测应用,上述方法还包括:
在上述测试信息用于指示对第二界面操作进行测试的情况下,调用上述待测应用对应的引擎中的函数,得到函数调用结果;上述第二界面操作的操作复杂大于或等于上述预设复杂阈值;
将上述函数调用结果发送至上述驱动设备,以使上述驱动设备基于上述函数调用结果,生成上述第二界面操作的第二测试结果。
在一个可选的实施例中,上述待测设备中设置有预设脚本语言对应的预设脚本语言插件,在上述调用上述待测应用对应的引擎中的函数,得到函数调用结果之前,上述方法还包括:
基于上述预设脚本语言对上述待测应用的业务逻辑进行编写,得到目标业务逻辑;
将上述目标业务逻辑发送至上述待测应用对应的引擎,以使上述引擎将上述目标业务逻辑发送至上述预设脚本语言对应的预设虚拟机;
上述调用上述待测应用对应的引擎中的函数,得到函数调用结果,包括:
在上述预设虚拟机运行上述目标业务逻辑的过程中,基于上述预设脚本语言插件,从上述预设虚拟机中调用上述函数,得到上述函数调用结果。
在一个可选的实施例中,上述函数调用结果的类型为关系表类型,在上述基于上述预设脚本语言插件,从上述预设虚拟机中调用上述函数,得到上述函数调用结果之后,上述方法还包括:
将上述函数调用结果的类型由上述关系表类型转换为字符串类型,得到转换后的函数调用结果;
上述将上述函数调用结果发送至上述驱动设备,以使上述驱动设备基于上述函数调用结果,生成上述第二界面操作的第二测试结果,包括:
将上述转换后的函数调用结果发送至上述驱动设备,以使上述驱动设备对上述转换后的函数调用结果进行解析,得到目标函数调用结果;以及以使上述测试驱动设备基于上述目标函数调用结果,生成上述第二测试结果。
在一个可选的实施例中,上述调用上述待测应用对应的引擎中的函数,得到函数调用结果,包括:
从上述引擎中的属性系统中调用上述函数,得到上述函数调用结果。
在一个可选的实施例中,上述测试信息为基于数据包格式协议编写得到,上述调用上述待测应用对应的引擎中的函数,得到函数调用结果,包括:
基于上述数据包格式协议解析上述测试信息,得到上述数据包格式协议对应的数据包信息;上述数据包信息包括多个函数;
执行上述多个函数,得到上述函数调用结果。
以下,以驱动设备为执行主体介绍该测试结果确定方法:
图9是根据一示例性实施例示出的测试结果确定方法的流程示意图五。如图9所示,该测试结果确定方法可以包括:
S601.执行测试脚本,向待测设备发送测试信息;在上述测试信息用于指示对第一界面操作进行测试的情况下,以使上述待测设备获取上述待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;上述第一界面操作的操作复杂度小于预设复杂度阈值;以及以使上述待测设备根据上述界面尺寸调整信息和上述界面位置偏移信息,确定目标控件的当前位置信息;上述目标控件为对上述第一界面操作进行测试所需要操作的控件;
S603.接收上述待测设备发送的上述当前位置信息;
S605.基于上述当前位置信息,生成上述第一界面操作的第一测试结果。
在一个可选的实施例中,上述待测设备中设置有待测应用,上述基于上述当前位置信息,生成上述第一界面操作的第一测试结果,包括:
从上述待测应用对应的引擎中获取上述当前界面的控件文件树;上述控件文件树用于表征控件的属性信息与控件的位置信息之间的关联关系;
基于上述当前位置信息、上述控件文件树和上述目标控件的属性信息,确定上述目标控件的目标位置信息;
基于上述目标位置信息,控制上述待测设备对上述目标控件进行测试,得到上述第一测试结果。
在一个可选的实施例中,上述待测设备中设置有待测应用,上述方法还包括:
在上述测试信息用于指示对第二界面操作进行测试的情况下,接收上述待测设备发送的函数调用结果;上述函数调用结果为基于上述待测设备调用上述待测应用对应的引擎中的函数得到,上述第二界面操作的操作复杂大于或等于上述预设复杂阈值;
基于上述函数调用结果,生成上述第二界面操作的第二测试结果。
图10是根据一示例性实施例示出的一种测试结果确定装置框图。如图10所示,该装置可以至少包括:
测试信息接收模块701,用于接收驱动设备基于测试脚本发送的测试信息;
调整偏移信息获取模块703,用于在上述测试信息用于指示对第一界面操作进行测试的情况下,获取本地待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;上述第一界面操作的操作复杂度小于预设复杂度阈值;
当前位置信息确定模块705,用于根据上述界面尺寸调整信息和上述界面位置偏移信息,确定目标控件的当前位置信息;上述目标控件为对上述第一界面操作进行测试所需要操作的控件,
当前位置信息发送模块707,用于将上述当前位置信息发送至上述驱动设备,以使上述驱动设备基于上述当前位置信息,生成上述第一界面操作的第一测试结果。
在一个可选的实施例中,上述本地待测设备中设置有待测应用,上述当前位置信息确定模块705,可以包括:
缩放位置信息获取单元,用于根据上述界面尺寸调整信息,确定上述待测应用对应的引擎中的控件,在上述当前界面中的缩放后的位置信息;上述引擎中的控件包括上述目标控件;
当前位置信息确定单元,用于根据上述缩放后的位置信息和上述界面位置偏移信息,确定上述当前位置信息。
在一个可选的实施例中,上述本地待测设备中设置有待测应用,上述调整偏移信息获取模块703,可以包括:
尺寸信息获取单元,用于获取上述待测应用对应的引擎的视口尺寸信息以及上述引擎对应的渲染窗口在上述当前界面中的实际尺寸信息;
界面尺寸调整信息确定单元,用于基于上述实际尺寸信息和上述视口尺寸信息,确定上述界面尺寸调整信息。
在一个可选的实施例中,上述待测设备中设置有待测应用,上述调整偏移信息获取模块703,可以包括:
界面布局信息获取单元,用于获取上述当前界面的界面布局信息;
第一位置信息获取单元,用于从上述待测应用对应的引擎中,获取上述引擎对应的渲染窗口的第一位置信息;
第二位置信息获取单元,用于对上述界面布局信息进行解析,得到上述渲染窗口在上述当前界面中的第二位置信息;
界面位置偏移信息确定单元,用于根据上述第一位置信息和上述第二位置信息,确定上述界面位置偏移信息。
在一个可选的实施例中,上述待测设备中设置有预设应用程序编程接口,上述调整偏移信息获取模块703,可以包括:
界面位置偏移信息获取单元,用于基于上述预设应用程序编程接口,获取上述界面位置偏移信息。
在一个可选的实施例中,上述待测设备中设置有待测应用,上述装置还可以包括:
调用模块,用于在上述测试信息用于指示对第二界面操作进行测试的情况下,调用上述待测应用对应的引擎中的函数,得到函数调用结果;上述第二界面操作的操作复杂大于或等于上述预设复杂阈值;
调用结果发送模块,用于将上述函数调用结果发送至上述驱动设备,以使上述驱动设备基于上述函数调用结果,生成上述第二界面操作的第二测试结果。
在一个可选的实施例中,上述待测设备中设置有预设脚本语言对应的预设脚本语言插件,上述装置还包括:
编写模块,用于基于上述预设脚本语言对上述待测应用的业务逻辑进行编写,得到目标业务逻辑;
目标业务逻辑发送模块,用于将上述目标业务逻辑发送至上述待测应用对应的引擎,以使上述引擎将上述目标业务逻辑发送至上述预设脚本语言对应的预设虚拟机;
相应地,所调用模块,包括:
第一调用结果确定模块,用于在上述预设虚拟机运行上述目标业务逻辑的过程中,基于上述预设脚本语言插件,从上述预设虚拟机中调用上述函数,得到上述函数调用结果。
在一个可选的实施例中,上述函数调用结果的类型为关系表类型,在上述基于上述预设脚本语言插件,上述装置还包括:
转换模块,用于将上述函数调用结果的类型由上述关系表类型转换为字符串类型,得到转换后的函数调用结果;
相应地,该调用结果发送模块,包括:
转换后的函数调用结果发送单元,用于将上述转换后的函数调用结果发送至上述驱动设备,以使上述驱动设备对上述转换后的函数调用结果进行解析,得到目标函数调用结果;以及以使上述测试驱动设备基于上述目标函数调用结果,生成上述第二测试结果。
在一个可选的实施例中,上述调用模块,包括:
第二调用结果确定模块,用于从上述引擎中的属性系统中调用上述函数,得到上述函数调用结果。
在一个可选的实施例中,上述测试信息为基于数据包格式协议编写得到,上述调用模块,包括:
数据包信息确定单元,用于基于上述数据包格式协议解析上述测试信息,得到上述数据包格式协议对应的数据包信息;上述数据包信息包括多个函数;
函数执行单元,用于执行上述多个函数,得到上述函数调用结果。
图11是根据一示例性实施例示出的另一种测试结果确定装置框图。如图11所示,该装置可以至少包括:
测试信息发送模块801,用于执行测试脚本,向待测设备发送测试信息;在上述测试信息用于指示对第一界面操作进行测试的情况下,以使上述待测设备获取上述待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;上述第一界面操作的操作复杂度小于预设复杂度阈值;以及以使上述待测设备根据上述界面尺寸调整信息和上述界面位置偏移信息,确定目标控件的当前位置信息;上述目标控件为对上述第一界面操作进行测试所需要操作的控件。
当前位置信息接收模块803,用于接收上述待测设备发送的上述当前位置信息;
第一测试结果生成模块805,用于基于上述当前位置信息,生成上述第一界面操作的第一测试结果。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
需要说明的是,本申请实施例提供的装置实施例与上述方法实施例基于相同的发明构思。
本申请实施例还提供了一种测试结果确定的电子设备,该电子设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述任一实施例提供的测试结果确定方法。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可设置于终端之中以保存用于实现方法实施例中一种测试结果确定方法相关的至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述方法实施例提供的测试结果确定方法。
可选地,在本说明书实施例中,存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书实施例存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用程序以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例提供的测试结果确定方法。
本申请实施例所提供的测试结果确定方法实施例可以在终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图12是根据一示例性实施例示出的一种测试结果确定的服务器的硬件结构框图。如图12所示,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central ProcessingUnits,CPU)910(中央处理器910可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器930,一个或一个以上存储应用程序923或数据922的存储介质920(例如一个或一个以上海量存储设备)。其中,存储器930和存储介质920可以是短暂存储或持久存储。存储在存储介质920的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器910可以设置为与存储介质920通信,在服务器900上执行存储介质920中的一系列指令操作。服务器900还可以包括一个或一个以上电源960,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口940,和/或,一个或一个以上操作系统921,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口940可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器900的通信供应商提供的无线网络。在一个实例中,输入输出接口940包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口940可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图12所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器900还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种测试结果确定方法,其特征在于,所述方法包括:
接收驱动设备基于测试脚本发送的测试信息;
在所述测试信息用于指示对第一界面操作进行测试的情况下,获取本地待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;
根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件,
将所述当前位置信息发送至所述驱动设备,以使所述驱动设备基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
2.根据权利要求1所述的测试结果确定方法,其特征在于,所述本地待测设备中设置有待测应用,所述根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息,包括:
根据所述界面尺寸调整信息,确定所述待测应用对应的引擎中的控件,在所述当前界面中的缩放后的位置信息;所述引擎中的控件包括所述目标控件;
根据所述缩放后的位置信息和所述界面位置偏移信息,确定所述当前位置信息。
3.根据权利要求1所述的测试结果确定方法,其特征在于,所述本地待测设备中设置有待测应用,所述获取本地待测设备中的当前界面对应的界面尺寸调整信息,包括:
获取所述待测应用对应的引擎的视口尺寸信息以及所述引擎对应的渲染窗口在所述当前界面中的实际尺寸信息;
基于所述实际尺寸信息和所述视口尺寸信息,确定所述界面尺寸调整信息。
4.根据权利要求1所述的测试结果确定方法,其特征在于,所述待测设备中设置有待测应用,所述获取本地待测设备中的当前界面对应的界面位置偏移信息,包括:
获取所述当前界面的界面布局信息;
从所述待测应用对应的引擎中,获取所述引擎对应的渲染窗口的第一位置信息;
对所述界面布局信息进行解析,得到所述渲染窗口在所述当前界面中的第二位置信息;
根据所述第一位置信息和所述第二位置信息,确定所述界面位置偏移信息。
5.根据权利要求1所述的测试结果确定方法,其特征在于,所述待测设备中设置有预设应用程序编程接口,所述获取本地待测设备中的当前界面对应的界面位置偏移信息,包括:
基于所述预设应用程序编程接口,获取所述界面位置偏移信息。
6.根据权利要求1至5中任一项所述的测试结果确定方法,其特征在于,所述待测设备中设置有待测应用,所述方法还包括:
在所述测试信息用于指示对第二界面操作进行测试的情况下,调用所述待测应用对应的引擎中的函数,得到函数调用结果;所述第二界面操作的操作复杂大于或等于所述预设复杂阈值;
将所述函数调用结果发送至所述驱动设备,以使所述驱动设备基于所述函数调用结果,生成所述第二界面操作的第二测试结果。
7.根据权利要求6所述的测试结果确定方法,其特征在于,所述待测设备中设置有预设脚本语言对应的预设脚本语言插件,在所述调用所述待测应用对应的引擎中的函数,得到函数调用结果之前,所述方法还包括:
基于所述预设脚本语言对所述待测应用的业务逻辑进行编写,得到目标业务逻辑;
将所述目标业务逻辑发送至所述待测应用对应的引擎,以使所述引擎将所述目标业务逻辑发送至所述预设脚本语言对应的预设虚拟机;
所述调用所述待测应用对应的引擎中的函数,得到函数调用结果,包括:
在所述预设虚拟机运行所述目标业务逻辑的过程中,基于所述预设脚本语言插件,从所述预设虚拟机中调用所述函数,得到所述函数调用结果。
8.根据权利要求7所述的测试结果确定方法,其特征在于,所述函数调用结果的类型为关系表类型,在所述基于所述预设脚本语言插件,从所述预设虚拟机中调用所述函数,得到所述函数调用结果之后,所述方法还包括:
将所述函数调用结果的类型由所述关系表类型转换为字符串类型,得到转换后的函数调用结果;
所述将所述函数调用结果发送至所述驱动设备,以使所述驱动设备基于所述函数调用结果,生成所述第二界面操作的第二测试结果,包括:
将所述转换后的函数调用结果发送至所述驱动设备,以使所述驱动设备对所述转换后的函数调用结果进行解析,得到目标函数调用结果;以及以使所述测试驱动设备基于所述目标函数调用结果,生成所述第二测试结果。
9.根据权利要求6所述的测试结果确定方法,其特征在于,所述调用所述待测应用对应的引擎中的函数,得到函数调用结果,包括:
从所述引擎中的属性系统中调用所述函数,得到所述函数调用结果。
10.根据权利要求6所述的测试结果确定方法,其特征在于,所述测试信息为基于数据包格式协议编写得到,所述调用所述待测应用对应的引擎中的函数,得到函数调用结果,包括:
基于所述数据包格式协议解析所述测试信息,得到所述数据包格式协议对应的数据包信息;所述数据包信息包括多个函数;
执行所述多个函数,得到所述函数调用结果。
11.一种测试结果确定方法,其特征在于,所述方法包括:
执行测试脚本,向待测设备发送测试信息;在所述测试信息用于指示对第一界面操作进行测试的情况下,以使所述待测设备获取所述待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;以及以使所述待测设备根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件;
接收所述待测设备发送的所述当前位置信息;
基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
12.根据权利要求11所述的测试结果确定方法,其特征在于,所述待测设备中设置有待测应用,所述基于所述当前位置信息,生成所述第一界面操作的第一测试结果,包括:
从所述待测应用对应的引擎中获取所述当前界面的控件文件树;所述控件文件树用于表征控件的属性信息与控件的位置信息之间的关联关系;
基于所述当前位置信息、所述控件文件树和所述目标控件的属性信息,确定所述目标控件的目标位置信息;
基于所述目标位置信息,控制所述待测设备对所述目标控件进行测试,得到所述第一测试结果。
13.根据权利要求11所述的测试结果确定方法,其特征在于,所述待测设备中设置有待测应用,所述方法还包括:
在所述测试信息用于指示对第二界面操作进行测试的情况下,接收所述待测设备发送的函数调用结果;所述函数调用结果为基于所述待测设备调用所述待测应用对应的引擎中的函数得到,所述第二界面操作的操作复杂大于或等于所述预设复杂阈值;
基于所述函数调用结果,生成所述第二界面操作的第二测试结果。
14.一种测试结果确定装置,其特征在于,所述装置包括:
测试信息接收模块,用于接收驱动设备基于测试脚本发送的测试信息;
调整偏移信息获取模块,用于在所述测试信息用于指示对第一界面操作进行测试的情况下,获取本地待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;
当前位置信息确定模块,用于根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件;
当前位置信息发送模块,用于将所述当前位置信息发送至所述驱动设备,以使所述驱动设备基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
15.一种测试结果确定装置,其特征在于,所述装置包括:
测试信息发送模块,用于执行测试脚本,向待测设备发送测试信息;在所述测试信息用于指示对第一界面操作进行测试的情况下,以使所述待测设备获取所述待测设备中的当前界面对应的界面尺寸调整信息和界面位置偏移信息;所述第一界面操作的操作复杂度小于预设复杂度阈值;以及以使所述待测设备根据所述界面尺寸调整信息和所述界面位置偏移信息,确定目标控件的当前位置信息;所述目标控件为对所述第一界面操作进行测试所需要操作的控件;
当前位置信息接收模块,用于接收所述待测设备发送的所述当前位置信息;
第一测试结果生成模块,用于基于所述当前位置信息,生成所述第一界面操作的第一测试结果。
CN202210572203.2A 2022-05-24 2022-05-24 测试结果确定方法和装置 Pending CN117149611A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210572203.2A CN117149611A (zh) 2022-05-24 2022-05-24 测试结果确定方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210572203.2A CN117149611A (zh) 2022-05-24 2022-05-24 测试结果确定方法和装置

Publications (1)

Publication Number Publication Date
CN117149611A true CN117149611A (zh) 2023-12-01

Family

ID=88885493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210572203.2A Pending CN117149611A (zh) 2022-05-24 2022-05-24 测试结果确定方法和装置

Country Status (1)

Country Link
CN (1) CN117149611A (zh)

Similar Documents

Publication Publication Date Title
CN110198247B (zh) 接口测试方法及系统
CN110531962B (zh) 小程序的开发处理方法、设备及计算机可读存储介质
CA2323608A1 (en) Object oriented method of structuring a software step program
US10592397B2 (en) Representing a test execution of a software application using extended reality
CN110855482A (zh) 三维动态通信网络模拟仿真方法、系统及存储介质
CN107423049A (zh) 实现在线编程的方法、浏览器和终端设备
CN103294598A (zh) 一种源代码检查方法及装置
CN110427586A (zh) 一种页面显示方法、装置、设备及存储介质
CN113535165A (zh) 界面生成方法、装置、电子设备及计算机可读存储介质
KR20200099428A (ko) 모바일에서 연동 가능한 코딩 교육 서비스 제공 방법 및 장치
CN110727429A (zh) 一种前端页面的生成方法、装置及设备
CN113741898A (zh) 表单生成方法、装置及设备
CN113449856A (zh) 一种控制流图的处理方法及相关设备
CN114307153A (zh) 游戏资产的处理方法及装置、计算机存储介质、电子设备
CN112148241A (zh) 灯光处理方法、装置、计算设备和存储介质
You et al. A comparative study of cross-platform mobile application development
CN115543324B (zh) 交互界面的生成方法、装置、设备及介质
CN107526966B (zh) 一种Android平台的复合污点传播追踪方法
CN111460235A (zh) 图谱数据的处理方法、装置、设备及存储介质
US10846061B2 (en) Development environment for real-time application development
CN117149611A (zh) 测试结果确定方法和装置
CN114741294A (zh) 一种页面的调试方法、装置、设备及存储介质
EP3528126B1 (en) Representing a test execution of a software application using extended reality
CN114371982A (zh) 一种模拟测试方法、装置、设备及可读存储介质
US20210263715A1 (en) Support device and non-transient computer-readable recording medium recording support program

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