CN114428747A - 一种用户界面测试方法、装置、服务器及存储介质 - Google Patents
一种用户界面测试方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN114428747A CN114428747A CN202210282215.1A CN202210282215A CN114428747A CN 114428747 A CN114428747 A CN 114428747A CN 202210282215 A CN202210282215 A CN 202210282215A CN 114428747 A CN114428747 A CN 114428747A
- Authority
- CN
- China
- Prior art keywords
- test
- execution
- server
- generating
- electronic device
- 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
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/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/3684—Test management for test design, e.g. generating new test cases
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
技术领域
本发明涉及测试技术领域,尤其涉及一种用户界面测试方法、装置、服务器及存储介质。
背景技术
用户界面(User Interface,以下简称UI)测试主要目的在于确保用户界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI测试的目的还在于确保UI功能内部的对象符合预期要求,并遵循相关标准。
目前,移动设备端的UI自动化测试用例由测试人员手动编写,并需要测试人员手动点击开始测试,才会在电脑中运行测试用例,控制移动设备端的应用程序实现UI测试。这种方式编写的测试用例均在本地端,代码维护性和代码持续迭代性均不好,不容易复用。
发明人在实现本发明的过程中发现,相关技术中的UI测试方案在测试脚本编写、测试脚本维护和测试脚本执行控制等方面,存在自动化程度不高、代码持续迭代性不好、代码复用程度不高等问题。
发明内容
本发明提供了一种用户界面测试方法、装置、服务器及存储介质,可以解决目前用户界面测试方案自动化程度不高、代码持续迭代性不好、代码复用程度不高的问题。
根据本发明的一方面,提供了一种用户界面测试方法,应用于服务器,所述服务器分别与第一电子设备和第二电子设备通信连接,所述第二电子设备为配置有待测试应用程序的智能终端,包括:
获取所述第一电子设备发送的测试设置消息,根据所述测试设置消息生成源对象,将所述源对象封装为目标对象,其中,所述目标对象包含与操作方法对应的属性,所述操作方法为通过自定义注解封装的程序代码;
根据所述目标对象和预设的模板文件生成测试脚本文件,其中,所述模板文件为缺省对象属性的代码模板;
执行所述测试脚本文件控制所述第二电子设备执行对应的测试操作,根据所述第二电子设备返回的执行结果生成测试结果。
根据本发明的另一方面,提供了一种用户界面测试装置,应用于服务器,所述服务器分别与第一电子设备和第二电子设备通信连接,所述第二电子设备为配置有待测试应用程序的智能终端,包括:
对象封装模块,用于执行获取所述第一电子设备发送的测试设置消息,根据所述测试设置消息生成源对象,将所述源对象封装为目标对象,其中,所述目标对象包含与操作方法对应的属性,所述操作方法为通过自定义注解封装的程序代码;
脚本文件生成模块,用于执行根据所述目标对象和预设的模板文件生成测试脚本文件,其中,所述模板文件为缺省对象属性的代码模板;
脚本文件执行模块,用于执行所述测试脚本文件控制所述第二电子设备执行对应的测试操作,根据所述第二电子设备返回的执行结果生成测试结果。
根据本发明的另一方面,提供了一种服务器,所述服务器包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的用户界面测试方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现本发明任一实施例所述的用户界面测试方法。
本发明实施例的技术方案,通过第一电子设备发送的测试设置消息生成源对象,并将源对象封装为目标对象,根据目标对象生成测试脚本文件,执行测试脚本文件以控制第二电子设备执行对应测试操作,根据第二电子设备返回的执行结果生成测试结果,实现自动生成测试脚本文件,并可以在线编辑和更新测试脚本,解决了目前用户界面测试方案自动化程度不高、代码持续迭代性不好、代码复用程度不高的问题。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供了一种用户界面测试方法的流程图;
图2为本发明实施例提供的另一种用户界面测试方法的流程图;
图3为本发明实施例提供的又一种用户界面测试方法的流程图;
图4为本发明实施例提供的一种用户界面测试装置的结构示意图;
图5为本发明实施例提供的一种服务器的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“源”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例提供了一种用户界面测试方法的流程图,本实施例可适用于应用程序的UI测试场景,该方法可以由用户界面测试装置来执行,该用户界面测试装置可以采用硬件和/或软件的形式实现,该用户界面测试装置可配置于服务器中。该服务器分别与第一电子设备和第二电子设备通信连接。具体地,第一电子设备上的客户端基于通信协议与服务器保持通信连接。服务器可以通过数据线与多台第二电子设备通信连接。如图1所示,该方法包括:
S110、获取所述第一电子设备发送的测试设置消息,根据所述测试设置消息生成源对象,将所述源对象封装为目标对象。
在本发明实施例中,服务器部署有SpringBoot架构、单元测试框架testNG和模板引擎FreeMarker等。
第二电子设备为安装有待测试用户界面的应用程序的智能设备。例如,智能手机或平板电脑等移动终端。或者,智能屏、笔记本或个人电脑等固定终端。
第一电子设备通过客户端与服务器通信连接。其中,客户端,也称为前端页面,是测试人员登录并配置测试设置信息的Web浏览器。具体地,客户端运行于第一电子设备,客户端用于将用户向服务器请求的Web资源呈现出来,显示在浏览器窗口中。测试设置消息为用户通过客户端输入的信息构成的消息。其中,用户通过客户端输入的信息包括对用户界面的测试操作的名称、执行顺序和操作方法的参数等。需要说明的是,通过测试操作的选择或设置顺序确定执行顺序。其中,操作方法为实现用户界面中的点击、查找元素、页面滑动以及文本输入等测试操作的计算机程序。
具体地,测试设置消息可以为采用JSON字符串形式表示的源对象。其中,JSON字符串包含所述测试操作的名称、执行顺序和操作方法的参数。以测试操作的名称为键名,以操作方法的参数为键值,构成一个键值对,JSON字符串包含多个这样的键值对,以键值对的顺序表示测试操作的执行顺序。一种情况下,测试人员通过客户端发送用于生成测试脚本文件的测试设置消息。在另一中情况下,本测试人员或其他测试人员通过客户端发送用于修改测试脚本文件的测试设置消息,以实现对测试脚本文件的迭代更新。
源对象基于用户通过客户端设置的测试操作的名称和参数确定。客户端获取用户根据测试控制逻辑输入的测试操作的名称,以及为每个测试操作对应的操作方法设置的参数,得到测试操作的有序集合。例如,以测试操作的名称为键名,参数为键值,通过键值对的形式组织测试操作的名称和参数构成测试操作的有序集合。客户端基于该有序集合以JSON字符串的形式生成测试设置消息,并将测试设置消息发送给服务器。
其中,上述参数为测试操作对应的已封装的操作方法的参数。例如,测试操作包括点击、查找元素、页面滑动和文本输入等对应用程序的操作。操作方法为通过自定义注解封装的程序代码。具体地,服务器通过自定义注解对应用程序的操作方法对应的程序代码进行方法级的封装,根据注解名称和注解类型确定已封装的程序代码中的自定义注解。获取自定义注解中操作方法的字段名和字段值,将字段名和字段值发送给客户端进行显示。
其中,自定义注解可以包括@Action、@Param等。@为注解名称,Action和Param为注解类型。例如,对于查找元素方法的代码的封装,查询已封装的代码中的自定义注解。自定义注解包括查找元素方法的字段名和字段值。查找元素方法的字段名可以包括id、xpath和name等,需要测试人员选择。字段值为用户手动输入的与id、xpath和name等字段对应的值。
目标对象为对源对象封装后得到的服务器可执行的对象。目标对象与源对象是相同数据的不同形式。其中,目标对象包含与操作方法对应的属性。该属性可以为操作方法实例化所需的参数。
示例性地,服务器基于SpringBoot架构下的JSON字符串解析规则自动解析客户端传入的JSON字符串得到源对象。具体地,SpringBoot架构自动解析JSON字符串包含的有序的键值对,得到JSON对象的键名和键值。
在本发明实施例中,源对象为JSON对象,目标对象为Java对象,对于源对象中的每个JSON对象,将该JSON对象的键值拷贝给服务端的Java对象并封装。在源对象包含的所有JSON对象均被封装为Java对象之时,实现将源对象封装为目标对象。目标对象包含多个Java对象,且Java对象的顺序由测试操作的设置顺序决定。
需要说明的是,为了实现上述封装,需要遵循源对象的键名与目标对象的字段名称相匹配的规则。即JSON对象的键名与Java对象的字段名称相匹配。
具体地,封装方法可以为BeanUtils类的copyProperties方法,用于实现将客户端的JSON对象的属性拷贝到服务端的Java对象,并封装。
S120、根据所述目标对象和预设的模板文件生成测试脚本文件。
其中,模板文件为缺省对象属性的代码模板。模板文件为自定义的脚本模板,在脚本模板中以缺省对象属性的方式定义了应用程序的UI测试所需使用的操作方法。在模板文件中通过特殊符合和填充字段标识出需要补入对象属性的位置。具体地,特殊符号可以为预先设定的符号。例如,特殊符合可以为${}等。
测试脚本文件为一系列具有执行顺序的测试脚本的集合。其中,上述执行顺序基于用户在客户端设置的测试操作的顺序确定。
示例性地,按照顺序逐个获取目标对象包含的Java对象。获取模板文件,根据特殊符号确定模板文件中的待补入对象属性的位置。匹配Java对象的字段和待补入对象属性的位置的字段,基于匹配结果将Java对象的字段值拷贝到待补入对象属性的位置,直至目标对象包含的所有Java对象的字段值均被拷贝至模板文件为止。根据填充了对象属性的模板文件和测试操作的顺序生成Java文件。
可选地,通过DynamicCompiler类将Java文件编译成字节码形式的测试脚本文件。
其中,字节码文件又称为class文件,是一种经过编译器预处理的Java可执行文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是为Java程序提供独立于底层主机平台的二进制形式的服务。
S130、执行所述测试脚本文件控制所述第二电子设备执行对应的测试操作,根据所述第二电子设备返回的执行结果生成测试结果。
其中,测试结果为服务器执行测试脚本通过自动化测试工具控制第二电子设备执行对应测试操作的结果。例如,向上滑动代码对应的动作为向上滑动APP中的某个页面,执行结果为是否成功响应。点击按钮代码对应的动作为点击APP中的某个按钮,执行结果为是否成功响应等。
具体地,自动化测试工具可以为Appium。Appium是一个开源的,适用于原生或混合移动应用(hybrid mobile apps)的自动化测试工具。Appium会首先开启一个监听4723端口的server,接收测试脚本文件的请求,再将对应的请求发送给中间件Bootstrap.jar(比如点击一个APP中的一个Button就是一条请求)。Bootstrap.jar监听4724端口由Appium发送过来的相关请求,并且将请求转换成UiAutomator可以识别的命令发给UiAutomator进行处理。
示例性地,在达到测试时间时,服务器执行测试脚本文件中的测试脚本,以实现按照用户设置的顺序自动执行用户设置的操作方法。通过自动化测试工具接收测试脚本文件发送的操作指令,将对应的操作指令发送给移动端上的中间件,以通过中间件将操作指令转换为UiAutomator框架可以识别的命令发给UiAutomator框架进行处理,以实现控制移动端执行操作指令对应的动作。其中,测试时间可以为预设的未来的某个时间,或者某段时间。例如,通过SpringBoot的定时任务服务,定时执行测试脚本文件。需要说明的是,可使用UiAutomator框架提供的API来对安卓应用进行一系列自动化测试操作,如点击、滑动、键盘输入、长按以及常用的断言方法等。可以替代以前繁琐的手工测试。
移动终端通过数据线向服务器返回测试操作的执行结果。服务器获取第二电子设备返回的执行结果。在本发明实施例中,执行结果包括操作执行成功或操作执行失败。根据执行结果生成的测试结果包括操作执行成功或操作执行失败。若执行结果为操作执行失败,则获取执行失败的操作在执行过程中的至少一帧执行图像;根据测试结果和执行图像生成测试报告。其中,执行图像包括操作执行失败时的界面截图,或者,操作执行失败的操作过程的视频信息。
可选地,服务器可以通过邮件服务器发送测试结果和/或测试报告发送给测试人员通过第一电子设备上的客户端设置的相关用户。
可选地,服务器可以通过通知服务器发送测试结果和/或测试报告发送给测试人员通过第一电子设备上的客户端设置的相关用户。
其中,邮件服务器和通知服务器均未第三方服务器。
本发明实施例的技术方案,通过第一电子设备发送的测试设置消息生成源对象,并将源对象封装为目标对象,根据目标对象生成测试脚本文件,执行测试脚本文件以控制第二电子设备执行对应测试操作,根据第二电子设备返回的执行结果生成测试结果,实现自动生成测试脚本文件,并可以在线编辑和更新测试脚本,解决了目前用户界面测试方案自动化程度不高、代码持续迭代性不好、代码复用程度不高的问题。
图2为本发明实施例提供的另一种用户界面测试方法的流程图,本实施例是对上述实施例的进一步限定。如图2所示,该方法包括:
S210、获取所述第一电子设备发送的JSON字符串。
其中,JSON字符串包含测试操作的名称、执行顺序和操作方法的参数,上述名称为键名,上述参数为键值。
一种情况下,测试人员通过第一电子设备上的客户端发送用于生成测试脚本文件的JSON字符串。在另一中情况下,本测试人员或其他测试人员通过第一电子设备上的客户端发送用于修改测试脚本文件的JSON字符串,以实现对测试脚本文件的迭代更新。
S220、解析所述JSON字符串得到顺序排列的键值对,根据所述键值对的顺序确定所述执行顺序,根据所述执行顺序、键名和键值生成源对象。
其中,所述源对象包括多个顺序排列的JSON对象,每个JSON对象的键名为测试操作的名称,字段值为参数。JSON对象的顺序基于执行顺序确定。
示例性地,解析JSON字符串得到顺序排列的键值对,根据上述键值对和执行顺序生成源对象。
S230、按照所述执行顺序,匹配所述键名和所述操作方法的字段名,根据所述键值为匹配成功的所述字段名赋值,得到目标对象。
示例性地,按照执行顺序,依次获取源对象包含的JSON对象,匹配JSON对象的键名与已封装的操作方法中Java对象的字段名,确定相匹配的字段名,根据与键名对应的键值为字段名赋值,作为与字段名对应的字段值。
S240、获取所述目标对象包含的与操作方法对应的字段名和字段值。
目标对象包含与各个操作方法对应的字段名和字段值。一种情况下,按照执行顺序,依次获取与各个操作方法对应的字段名和字段值。另一种情况下,一次性获取目标对象包含的与操作方法对应的字段名和字段值。
S250、根据所述字段名匹配所述模板文件中的操作方法,根据所述字段值修改匹配成功的操作方法得到测试脚本文件。
在依次获取各个操作方法对应的字段名和字段值的情况下,通过模板引擎FreeMarker以当前操作方法对应的字段名为当前字段名,根据当前字段名遍历模板文件中的操作方法,确定与当前字段名匹配的操作方法的待填充位置,将与当前字段名对应的字段值填充至该待填充位置。当目标对象包含的字段值均填充至模板文件时,编译填充后的模板文件生成测试脚本文件。
在一次性获取目标对象包含的操作方法对应的字段名和字段值的情况下,通过模板引擎FreeMarker以所述目标对象包含的任意一个字段名为当前字段名,根据所述当前字段名遍历所述模板文件中的操作方法,确定与所述当前字段名匹配的所述操作方法的待填充位置,将与所述当前字段名对应的字段值填充至所述待填充位置。当所述目标对象包含的所有字段值均填充至所述模板文件时,编译填充后的模板文件生成测试脚本文件。
S260、定时执行所述测试脚本文件控制所述第二电子设备执行对应的测试操作,根据所述第二电子设备返回的执行结果生成测试结果。
本发明实施例的技术方案,通过客户端发送的键值对解析出源对象,并将源对象封装为预设的脚本文件可用的目标对象,根据目标对象和模板文件动态生成测试脚本文件,避免在每次测试时编写测试用例,仅通过配置关键参数即可实现自动生成测试脚本。还通过定时执行测试脚本文件,避免由人工启动测试带来的人力资源占用。
图3为本发明实施例提供的又一种用户界面测试方法的流程图,本实施例是对上述实施例的进一步限定。如图3所示,该方法包括:
S310、获取所述第一电子设备发送的JSON字符串。
S320、解析所述JSON字符串得到顺序排列的键值对,根据所述键值对的顺序确定所述执行顺序,根据所述执行顺序、键名和键值生成源对象。
S330、按照所述执行顺序,匹配所述键名和所述操作方法的字段名,根据所述键值为匹配成功的所述字段名赋值,得到目标对象。
S340、获取所述目标对象包含的与操作方法对应的字段名和字段值。
S350、以所述目标对象包含的任意一个字段名为当前字段名,根据所述当前字段名遍历所述模板文件中的操作方法,确定与所述当前字段名匹配的所述操作方法的待填充位置,将与所述当前字段名对应的字段值填充至所述待填充位置。
S360、判断所述目标对象包含的所有字段值是否均填充至所述模板文件,若是,则执行S370,否则,执行S350。
S370、在各个操作方法的开始位置添加前置处理器,并在各个操作方法的结束位置添加后置处理器。
其中,所述前置处理器用于在用户界面测试过程中确定测试执行进度,所述后置处理器用于在用户界面测试过程中监听测试异常信息。具体地,通过前置处理器和后置处理器分别记录测试操作的开始执行时间和结束执行时间。可选地,通过在测试脚本中嵌入单元测试框架testNG的异常监听机制,实现在测试操作执行失败时进行截图,便于分析操作执行失败的原因。或者,通过testNG的异常监听机制控制终端在执行测试操作的过程中录制视频,以对监控测试脚本的执行过程。可以基于视频中异常场景发生时的图像数据进行问题诊断。
S380、编译模板文件生成测试脚本文件。
S390、执行所述测试脚本文件控制所述第二电子设备执行对应的测试操作,根据所述第二电子设备返回的执行结果生成测试结果。
具体地,执行结果包括测试操作的执行结果和操作执行失败时的截图。在设置重试规则的情况下,执行结果还可以包括重试次数。在监听方式为录制视频的情况下,执行结果还可以包括测试操作的执行过程视频。
具体地,定时执行测试脚本文件,通过自动化测试工具控制第二电子设备执行测试操作,分别通过前置处理器和后置处理器记录每个测试操作的开始执行时间和结束执行时间。若在测试脚本文件生成之前,通过客户端设置了重试规则,则在操作执行失败时,则根据重试规则,重新运行执行失败的操作方法。还可以控制终端设备在操作执行失败时进行截图。或者,控制终端设备在操作方法运行时开始录制视频,以监听测试操作的执行过程。终端设备发送各个测试操作的执行结果以及操作执行失败时的截图给服务器。可选地,终端设备还可能发送测试操作的重试次数给服务器。可选地,终端设备还可能发送测试操作的执行过程视频给服务器。
S3100、获取客户端发送的目标用户,发送所述测试结果给所述目标用户。
其中,所述目标用户为测试人员通过客户端设置的测试结果接收方。
示例性地,获取客户端发送的目标用户的账号,通过第三方服务器向对应账号发送测试结果。其中,账号可以包括邮箱或即时通信账号等。
本发明实施例的技术方案,通过在测试脚本文件中嵌入监听机制,以监听测试操作的执行过程,可以收集操作执行失败场景下的数据,便于后续进行问题诊断和分析。通过服务器执行测试脚本,实现测试结果的平台化展示。
图4为本发明实施例提供的一种用户界面测试装置的结构示意图。该装置可以由软件和/或硬件实现,并通常配置于服务器中。所述服务器分别与第一电子设备和第二电子设备通信连接,所述第二电子设备为配置有待测试应用程序的智能终端。如图4所示,该装置包括:对象封装模块410、脚本文件生成模块420和脚本文件执行模块430。
对象封装模块410,用于执行获取所述第一电子设备发送的测试设置消息,根据所述测试设置消息生成源对象,将所述源对象封装为目标对象,其中,所述目标对象包含与操作方法对应的属性,所述操作方法为通过自定义注解封装的程序代码;
脚本文件生成模块420,用于执行根据所述目标对象和预设的模板文件生成测试脚本文件,其中,所述模板文件为缺省对象属性的代码模板;
脚本文件执行模块430,用于执行所述测试脚本文件控制所述第二电子设备执行对应的测试操作,根据所述第二电子设备返回的执行结果生成测试结果。
可选地,所述对象封装模块410具体用于执行:
获取所述第一电子设备发送的JSON字符串,其中,所述JSON字符串包含所述测试操作的名称、执行顺序和操作方法的参数,所述名称为键名,所述参数为键值;
解析所述JSON字符串得到顺序排列的键值对,根据所述键值对的顺序确定所述执行顺序,根据所述执行顺序、键名和键值生成源对象;
按照所述执行顺序,匹配所述键名和所述操作方法的字段名,根据所述键值为匹配成功的所述字段名赋值,得到目标对象。
可选地,所述脚本文件生成模块420具体用于执行:
获取所述目标对象包含的与操作方法对应的字段名和字段值;
根据所述字段名匹配所述模板文件中的操作方法,根据所述字段值修改匹配成功的操作方法得到测试脚本文件。
可选地,所述脚本文件生成模块420还具体用于执行:
以所述目标对象包含的任意一个字段名为当前字段名,根据所述当前字段名遍历所述模板文件中的操作方法,确定与所述当前字段名匹配的所述操作方法的待填充位置,将与所述当前字段名对应的字段值填充至所述待填充位置;
当所述目标对象包含的所有字段值均填充至所述模板文件时,编译填充后的模板文件生成测试脚本文件。
可选地,所述装置还包括:
处理器添加模块,用于执行在所述编译填充后的模板文件生成测试脚本文件之前,在各个操作方法的开始位置添加前置处理器,并在各个操作方法的结束位置添加后置处理器,其中,所述前置处理器用于在用户界面测试过程中确定测试执行进度,所述后置处理器用于在用户界面测试过程中监听测试异常信息。
可选地,所述装置还包括:
结果发送模块,用于执行在所述根据所述第二电子设备返回的执行结果生成测试结果之后,获取第一电子设备发送的目标用户,发送所述测试结果给所述目标用户,其中,所述目标用户为测试人员通过第一电子设备设置的测试结果接收方。
可选地,所述装置还包括:
报告生成模块,用于执行在所述根据所述第二电子设备返回的执行结果生成测试结果之后,若执行结果为操作执行失败,则获取执行失败的操作在执行过程中的至少一帧执行图像;根据所述测试结果和所述执行图像生成测试报告。
本发明实施例所提供的用户界面测试装置可执行本发明任意实施例所提供的用户界面测试方法,具备执行方法相应的功能模块和有益效果。
图5为本发明实施例提供的一种服务器的结构框图,图5示出了可以用来实施本发明的实施例的服务器10的结构示意图。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,服务器10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元16加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储服务器10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
服务器10中的多个部件连接至I/O接口15,包括:存储单元16,例如磁盘、光盘等;以及通信单元17,例如网卡、调制解调器、无线通信收发机等。通信单元17允许服务器10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理。
在一些实施例中,用户界面测试方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元16。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元17而被载入和/或安装到服务器10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的用户界面测试方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行用户界面测试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在服务器上实施此处描述的系统和技术,该服务器通过web客户端与用户交互。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种用户界面测试方法,其特征在于,应用于服务器,所述服务器分别与第一电子设备和第二电子设备通信连接,所述第二电子设备为配置有待测试应用程序的智能终端,包括:
获取所述第一电子设备发送的测试设置消息,根据所述测试设置消息生成源对象,将所述源对象封装为目标对象,其中,所述目标对象包含与操作方法对应的属性,所述操作方法为通过自定义注解封装的程序代码;
根据所述目标对象和预设的模板文件生成测试脚本文件,其中,所述模板文件为缺省对象属性的代码模板;
执行所述测试脚本文件控制所述第二电子设备执行对应的测试操作,根据所述第二电子设备返回的执行结果生成测试结果。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第一电子设备发送的测试设置消息,根据所述测试设置消息生成源对象,将所述源对象封装为目标对象,包括:
获取所述第一电子设备发送的JSON字符串,其中,所述JSON字符串包含所述测试操作的名称、执行顺序和操作方法的参数,所述名称为键名,所述参数为键值;
解析所述JSON字符串得到顺序排列的键值对,根据所述键值对的顺序确定所述执行顺序,根据所述执行顺序、键名和键值生成源对象;
按照所述执行顺序,匹配所述键名和所述操作方法的字段名,根据所述键值为匹配成功的所述字段名赋值,得到目标对象。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标对象和预设的模板文件生成测试脚本文件,包括:
获取所述目标对象包含的与操作方法对应的字段名和字段值;
根据所述字段名匹配所述模板文件中的操作方法,根据所述字段值修改匹配成功的操作方法得到测试脚本文件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述字段名匹配所述模板文件中的操作方法,根据所述字段值修改匹配成功的操作方法得到测试脚本文件,包括:
以所述目标对象包含的任意一个字段名为当前字段名,根据所述当前字段名遍历所述模板文件中的操作方法,确定与所述当前字段名匹配的所述操作方法的待填充位置,将与所述当前字段名对应的字段值填充至所述待填充位置;
当所述目标对象包含的所有字段值均填充至所述模板文件时,编译填充后的模板文件生成测试脚本文件。
5.根据权利要求4所述的方法,其特征在于,在所述编译填充后的模板文件生成测试脚本文件之前,还包括:
在各个操作方法的开始位置添加前置处理器,并在各个操作方法的结束位置添加后置处理器,其中,所述前置处理器用于在用户界面测试过程中确定测试执行进度,所述后置处理器用于在用户界面测试过程中监听测试异常信息。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述第二电子设备返回的执行结果生成测试结果之后,还包括:
获取第一电子设备发送的目标用户,发送所述测试结果给所述目标用户,其中,所述目标用户为测试人员通过第一电子设备设置的测试结果接收方。
7.根据权利要求1所述的方法,其特征在于,在所述根据所述第二电子设备返回的执行结果生成测试结果之后,还包括:
若执行结果为操作执行失败,则获取执行失败的操作在执行过程中的至少一帧执行图像;
根据所述测试结果和所述执行图像生成测试报告。
8.一种用户界面测试装置,其特征在于,应用于服务器,所述服务器分别与第一电子设备和第二电子设备通信连接,所述第二电子设备为配置有待测试应用程序的智能终端,包括:
对象封装模块,用于执行获取所述第一电子设备发送的测试设置消息,根据所述测试设置消息生成源对象,将所述源对象封装为目标对象,其中,所述目标对象包含与操作方法对应的属性,所述操作方法为通过自定义注解封装的程序代码;
脚本文件生成模块,用于执行根据所述目标对象和预设的模板文件生成测试脚本文件,其中,所述模板文件为缺省对象属性的代码模板;
脚本文件执行模块,用于执行所述测试脚本文件控制所述第二电子设备执行对应的测试操作,根据所述第二电子设备返回的执行结果生成测试结果。
9.一种服务器,其特征在于,所述服务器包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的用户界面测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现权利要求1-7中任一项所述的用户界面测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210282215.1A CN114428747A (zh) | 2022-03-21 | 2022-03-21 | 一种用户界面测试方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210282215.1A CN114428747A (zh) | 2022-03-21 | 2022-03-21 | 一种用户界面测试方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114428747A true CN114428747A (zh) | 2022-05-03 |
Family
ID=81314335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210282215.1A Pending CN114428747A (zh) | 2022-03-21 | 2022-03-21 | 一种用户界面测试方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114428747A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952103A (zh) * | 2023-03-10 | 2023-04-11 | 北京全路通信信号研究设计院集团有限公司 | 一种测试脚本编辑方法、装置、介质以及电子设备 |
-
2022
- 2022-03-21 CN CN202210282215.1A patent/CN114428747A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952103A (zh) * | 2023-03-10 | 2023-04-11 | 北京全路通信信号研究设计院集团有限公司 | 一种测试脚本编辑方法、装置、介质以及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341098B (zh) | 软件性能测试方法、平台、设备及存储介质 | |
CN107957940B (zh) | 一种测试日志处理方法、系统及终端 | |
CN109871326A (zh) | 一种脚本录制的方法和装置 | |
CN111552633A (zh) | 接口的异常调用测试方法、装置、计算机设备及存储介质 | |
CN110013672A (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
CN109814957B (zh) | 一种用于ios系统的标签添加方法和装置 | |
CN110502414A (zh) | 终端设备性能测试方法、装置、终端设备及存储介质 | |
CN114428747A (zh) | 一种用户界面测试方法、装置、服务器及存储介质 | |
CN113505895B (zh) | 一种机器学习引擎服务系统及模型训练方法和配置方法 | |
CN114172978A (zh) | 多协议设备接入方法及相关装置 | |
CN115017047A (zh) | 基于b/s架构的测试方法、系统、设备及介质 | |
CN115599679A (zh) | 一种测试规则库更新方法、装置、电子设备及存储介质 | |
CN115115062A (zh) | 机器学习模型建立方法、相关装置及计算机程序产品 | |
CN107506299B (zh) | 一种代码分析方法及终端设备 | |
CN117724980A (zh) | 软件框架性能的测试方法、装置、电子设备和存储介质 | |
CN115860055B (zh) | 性能确定方法、性能优化方法、装置、电子设备以及介质 | |
CN114257523B (zh) | 用户感知预测方法、系统、设备和计算机存储介质 | |
CN114721964A (zh) | 一种测试用例的自动生成方法、装置、设备及介质 | |
CN115269055A (zh) | Nginx请求数据采集方法、装置、设备及存储介质 | |
CN116991737A (zh) | 一种软件测试方法、系统、电子设备及存储介质 | |
CN115543712A (zh) | 设备配置信息自动化检测方法、装置、电子设备及介质 | |
CN115495380A (zh) | 测试用例生成方法、装置、电子设备及存储介质 | |
CN117591422A (zh) | 软件处理方法、电子设备及存储介质 | |
CN115185735A (zh) | 软件故障识别自愈方法及相关设备 | |
CN115543748A (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 |