CN113806219A - 测试结果确定方法、装置、电子设备及存储介质 - Google Patents
测试结果确定方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113806219A CN113806219A CN202110969386.7A CN202110969386A CN113806219A CN 113806219 A CN113806219 A CN 113806219A CN 202110969386 A CN202110969386 A CN 202110969386A CN 113806219 A CN113806219 A CN 113806219A
- Authority
- CN
- China
- Prior art keywords
- test
- tested
- preset
- target objects
- compiled
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 568
- 238000000034 method Methods 0.000 title claims abstract description 110
- 238000012795 verification Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 9
- 238000004590 computer program Methods 0.000 description 5
- 238000013515 script Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/3664—Environments for testing or debugging software
-
- 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
-
- 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/3676—Test management for coverage analysis
-
- 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
技术领域
本公开涉及计算机技术领域,尤其涉及一种测试结果确定方法、装置、电子设备及存储介质。
背景技术
“端对端”(End to End,E2E)测试指的是对前端代码图形进行测试,在“端对端”测试过程中,可以按照编写的测试代码,自动打开组件进行图形结果校验,输出反馈报告的测试方案。其中,Vue是一套用于构建用户界面的渐进式框架。
相关技术中,通常采用Vue进行端对端测试,然而Vue集成的插件均为在Vue本身生态上开发的插件,开发成本较高,且无法被不同的业务所复用,使得端对端测试成本较高,即测试结果的确定成本较高;现有技术中还采用单元测试方法完成端对端测试,然而单元测试无法真实模拟运行测试代码,使得端对端测试的精度较低,即测试结果的确定精度较低。
发明内容
本公开提供一种测试结果确定方法、装置、电子设备及存储介质,以至少解决相关技术中测试成本较高以及测试精度较低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种测试结果确定方法,包括:
响应于对象测试指令,获取对象测试指令对应的多个目标待测对象各自对应的源文件;
对所述多个目标待测对象各自对应的源文件进行编译,得到所述多个目标待测对象各自对应的编译文件;
基于预设测试环境中,与所述多个目标待测对象各自对应的预设测试配置信息对所述多个目标待测对象各自对应的编译文件进行测试;所述预设测试环境为基于预设测试框架和预设数量个待测对象各自对应的编译文件构建得到,所述预设数量个待测对象包括所述多个目标待测对象;
在所述测试过程中,基于所述多个目标待测对象调用所述预设测试环境中的预设应用程序接口操作,得到所述多个目标待测对象各自对应的测试结果。
在一示例性的实施方式中,所述基于预设测试环境中,与所述多个目标待测对象各自对应的预设测试配置信息对所述多个目标待测对象各自对应的编译文件进行测试,包括:基于所述预设测试环境获取预设组件状态信息,所述预设组件状态信息表征预设组件的链接地址信息,所述预设组件用于访问所述预设数量个待测对象各自对应的编译文件的待访问页面;
基于所述预设组件状态信息连接所述预设组件;
根据所述预设组件,访问多个目标待测对象各自对应的编译文件的待访问页面;
基于所述多个目标待测对象各自对应的预设测试配置信息,对所述多个目标待测对象各自对应的编译文件的待访问页面进行测试。
在一示例性的实施方式中,所述方法还包括构建所述预设测试环境,所述构建所述预设测试环境包括初始化所述预设测试环境,所述初始化所述预设测试环境包括:
运行所述预设测试框架;
根据预设参数配置所述预设测试框架对应的初始化环境信息;
启动所述预设组件;
基于所述多个目标待测对象各自对应的编译文件,在所述预设组件中执行所述登录操作,得到所述预设组件对应的所述预设组件状态信息。
在一示例性的实施方式中,所述构建所述预设测试环境包括配置所述预设测试环境,所述配置所述预设测试环境包括:
在所述预设测试框架中确定所述多个目标待测对象各自对应的预设测试配置信息;
在所述预设测试框架中注入所述预设应用程序接口操作,得到配置后的所述预设测试环境。
在一示例性的实施方式中,所述方法还包括:
当所述多个目标待测对象各自对应的编译文件的待访问页面加载完成的情况下,在所述多个目标待测对象各自对应的待访问页面中添加显示信息,所述显示信息用于在所述待访问页面中显示所述待访问页面的当前测试信息。
在一示例性的实施方式中,所述方法还包括:
根据所述多个目标待测对象各自对应的测试结果,确定所述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点;所述第一测试节点表征所述编译文件开始进行测试过程时所对应的编译信息,所述第二测试节点表征所述编译文件结束所述测试过程时所对应的编译信息;
基于所述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点,确定所述多个目标待测对象各自对应的编译文件中已经被测试的测试字节数;
根据所述多个目标待测对象各自对应的编译文件中的测试字节数,以及所述多个目标待测对象各自对应的编译文件的字节总数,确定所述多个目标待测对象各自对应的编译文件的测试覆盖率。
在一示例性的实施方式中,所述方法还包括:
获取所述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值;
基于所述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值,对所述多个目标待测对象各自对应的编译文件的测试覆盖率进行测试验证处理,得到所述多个目标待测对象各自对应的编译文件的测试覆盖率的第一测试验证结果,所述第一测试验证结果表征所述多个目标待测对象各自对应的编译文件的测试覆盖率,是否满足所述第一测试覆盖率阈值。
在一示例性的实施方式中,所述方法还包括:
合并所述多个目标待测对象各自对应的编译文件的覆盖率,得到目标覆盖率;
获取所述目标覆盖率对应的第二测试覆盖率阈值;
基于所述第二测试覆盖率阈值对目标覆盖率进行测试验证处理,得到所述多个目标待测对象对应的编译文件的第二测试验证结果,所述第二测试验证结果表征所述多个目标待测对象对应的编译文件的测试覆盖率,是否满足所述第二测试覆盖率阈值。
根据本公开实施例的第二方面,提供一种测试结果确定装置,包括:
响应模块,被配置为执行响应于对象测试指令,获取对象测试指令对应的多个目标待测对象各自对应的源文件;
编译模块,被配置为执行对所述多个目标待测对象各自对应的源文件进行编译,得到所述多个目标待测对象各自对应的编译文件;
测试模块,被配置为执行基于预设测试环境中,与所述多个目标待测对象各自对应的预设测试配置信息对所述多个目标待测对象各自对应的编译文件进行测试;所述预设测试环境为基于预设测试框架和预设数量个待测对象各自对应的编译文件构建得到,所述预设数量个待测对象包括所述多个目标待测对象;
调用模块,被配置为执行在所述测试过程中,基于所述多个目标待测对象调用所述预设测试环境中的预设应用程序接口操作,得到所述多个目标待测对象各自对应的测试结果。
在一示例性的实施方式中,所述测试模块,包括:
组件状态信息获取单元,被配置为执行基于所述预设测试环境获取预设组件状态信息,所述预设组件状态信息表征预设组件的链接地址信息,所述预设组件用于访问所述预设数量个待测对象各自对应的编译文件的待访问页面;
连接单元,被配置为执行基于所述预设组件状态信息连接所述预设组件;
访问单元,被配置为执行根据所述预设组件,访问多个目标待测对象各自对应的编译文件的待访问页面;
页面测试单元,被配置为执行基于所述多个目标待测对象各自对应的预设测试配置信息,对所述多个目标待测对象各自对应的编译文件的待访问页面进行测试。
在一示例性的实施方式中,所述装置还包括构建所述预设测试环境的构建模块,所述构建模块包括初始化所述预设测试环境的初始化单元,所述初始化单元包括:
框架运行子单元,被配置为执行运行所述预设测试框架;
初始化环境信息配置子单元,被配置为执行根据预设参数配置所述预设测试框架对应的初始化环境信息;
预设组件启动子单元,被配置为执行启动所述预设组件;
登录子单元,被配置为执行基于所述多个目标待测对象各自对应的编译文件,在所述预设组件中执行所述登录操作,得到所述预设组件对应的所述预设组件状态信息。
在一示例性的实施方式中,所述构建模块还包括配置所述预设测试环境的配置单元,所述配置单元包括:
预设测试配置信息确定子单元,被配置为执行在所述预设测试框架中确定所述多个目标待测对象各自对应的预设测试配置信息;
注入子单元,被配置为执行在所述预设测试框架中注入所述预设应用程序接口操作,得到配置后的所述预设测试环境。
在一示例性的实施方式中,所述装置还包括:
添加模块,被配置为执行当所述多个目标待测对象各自对应的编译文件的待访问页面加载完成的情况下,在所述多个目标待测对象各自对应的待访问页面中添加显示信息,所述显示信息用于在所述待访问页面中显示所述待访问页面的当前测试信息。
在一示例性的实施方式中,所述装置还包括:
测试节点确定模块,被配置为执行根据所述多个目标待测对象各自对应的测试结果,确定所述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点;所述第一测试节点表征所述编译文件开始进行所述测试过程时所对应的编译信息,所述第二测试节点表征所述编译文件结束所述测试过程时所对应的编译信息;
测试字节数确定模块,被配置为执行基于所述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点,确定所述多个目标待测对象各自对应的编译文件中已经被测试的测试字节数;
测试覆盖率确定模块,被配置为执行根据所述多个目标待测对象各自对应的编译文件中的测试字节数,以及所述多个目标待测对象各自对应的编译文件的字节总数,确定所述多个目标待测对象各自对应的编译文件的测试覆盖率。
在一示例性的实施方式中,所述装置还包括:
第一测试覆盖率阈值获取模块,被配置为执行获取所述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值;
第一测试验证结果获取模块,被配置为执行基于所述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值,对所述多个目标待测对象各自对应的编译文件的测试覆盖率进行测试验证处理,得到所述多个目标待测对象各自对应的编译文件的测试覆盖率的第一测试验证结果,所述第一测试验证结果表征所述多个目标待测对象各自对应的编译文件的测试覆盖率,是否满足所述第一测试覆盖率阈值。
在一示例性的实施方式中,所述装置还包括:
合并模块,被配置为执行合并所述多个目标待测对象各自对应的编译文件的覆盖率,得到目标覆盖率;
第二测试覆盖率阈值获取模块,被配置为执行获取所述目标覆盖率对应的第二测试覆盖率阈值;
第二测试验证结果获取模块,被配置为执行基于所述第二测试覆盖率阈值对目标覆盖率进行测试验证处理,得到所述多个目标待测对象对应的编译文件的第二测试验证结果,所述第二测试验证结果表征所述多个目标待测对象对应的编译文件的测试覆盖率,是否满足所述第二测试覆盖率阈值。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施方式所述的测试结果确定方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备执行如上述任一实施方式所述的测试结果确定方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施方式所述的测试结果确定方法。
本公开的实施例提供的技术方案至少带来以下有益效果:本公开实施例通过预设测试框架(比如,Puppeteer+jest)和预设数量个待测对象各自对应的编译文件预先构建得到预设测试环境,该预设测试环境中预先配置有预设应用程序接口操作和多个目标待测对象各自对应的预设测试配置信息。由于测试环境是基于预设数量个待测对象各自对应的编译文件而构建的,因此预设测试环境为编译之后的产物,使得该预设测试环境的体积和性能都得到了优化,且预设测试环境构建过程中不需要依赖预设测试框架本身开发出的插件,开发成本较低,不仅降低了目标待测对象的测试成本(即降低了测试结果的确定成本),还能够使得该预设测试环境能够被不同的业务方所复用,通用性较强;此外,通过该预设测试环境对多个目标待测对象进行测试,不仅实现了对目标待测对象的自动化测试,提高了目标待测对象的测试效率,还能够提高目标待测对象的测试精度(即提高了测试结果的确定精度)。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种测试结果确定方法的应用环境图。
图2是根据一示例性实施例示出的一种测试结果确定方法的流程图。
图3是根据一示例性实施例示出的一种初始化预设测试环境的流程图。
图4是根据一示例性实施例示出的一种配置预设测试环境的流程图。
图5是根据一示例性实施例示出的一种基于预设测试环境中,与上述多个目标待测对象各自对应的预设测试配置信息对上述多个目标待测对象各自对应的编译文件进行测试的流程图。
图6是根据一示例性实施例示出的一种确定上述多个目标待测对象各自对应的编译文件的测试覆盖率的流程图。
图7是根据一示例性实施例示出的一种对测试覆盖率进行测试验证处理的流程图。
图8是根据一示例性实施例示出的另一种对测试覆盖率进行测试验证处理的流程图。
图9是根据一示例性实施例示出的一种测试结果确定装置框图。
图10是根据一示例性实施例示出的一种用于信息推荐的电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
请参阅图1,图1是根据一示例性实施例示出的一种测试结果确定方法的应用环境图,该应用环境可以包括客户端01和服务器02。其中,客户端01可以响应于对象测试指令,对目标待测对象进行测试。可选地,该客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等终端设备。
其中,服务器02可以用于为客户端01提供后台服务。可选地,该服务器02可以是包括独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
需要说明的是,上述应用环境仅仅是一种示例,本公开实施例还可以包括其他应用环境。例如,本公开实施例提供的测试结果确定方法还可以应用于仅包含客户端的应用环境中。
首先,对本公开实施例所涉及的技术术语进行说明:
覆盖率:是度量测试完整性的一个手段,是测试有效性的一个度量。通过已执行代码表示,用于可靠性、稳定性以及性能的评测。测试覆盖是对测试完全程度的评测。测试覆盖是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的。
Puppeteer:Google Chrome团队官方的无界面组件(Chrome)工具,其是一个Node库,提供了一个高级的应用程序程序接口(Application Programming Interface,API)来控制DevTools协议上的无头版Chrome。也可以配置为使用完整(非无头)的Chrome。其中,node环境是一个基于Chrome V8引擎的运行环境,Chrome V8是一个开源的javascript引擎,javascript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。
Jest:是一个JavaScript测试框架,旨在确保任意JavaScript代码的正确性。Jest允许用可访问的、熟悉的和功能丰富的应用程序接口(Application ProgrammingInterface,API)来写测试,快速获得结果。
Headless:指的是浏览器(chorme或chromium)无头。
进程:对于操作系统来说,一个任务就是一个进程(Process),比如打开一个组件就是启动一个组件进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程。
图2是根据一示例性实施例示出的一种测试结果确定方法的流程图,如图2所示,该测试结果确定方法用于图1中的包含客户端和服务器的系统中,包括以下步骤。
在步骤S11中,响应于对象测试指令,获取对象测试指令对应的多个目标待测对象各自对应的源文件。
可选地,对象测试指令可以由用户触发,也可以由测试系统自动触发。
具体地,“对象测试指令对应的多个目标待测对象”为需要进行测试的对象。
具体地,源文件可以为目标待测对象的测试代码。示例性地,该目标待测对象可以为测试用例,该源文件可以为测试用例对应的测试代码。其中,测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等。即测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
在步骤S13中,对上述多个目标待测对象各自对应的源文件进行编译,得到上述多个目标待测对象各自对应的编译文件。
具体地,编译(build)是指将源文件编译成可执行的文件的操作。
由于测试的内容为build之后的产物,build过程能够压缩文件体积,优化代码性,能够提高目标待测对象的测试效率和测试精度。
在步骤S15中,基于预设测试环境中,与上述多个目标待测对象各自对应的预设测试配置信息对上述多个目标待测对象各自对应的编译文件进行测试;上述预设测试环境为基于预设测试框架和预设数量个待测对象各自对应的编译文件构建得到,上述预设数量个待测对象包括上述多个目标待测对象。
具体地,预设测试配置信息可以为预设测试函数,该预设测试函数表征对目标待测对象进行测试的测试模式。例如,该预设测试函数可以为打开内容测试(比如,点击行为的测试)检查页面的函数(page.onNewTab)、打开性能检查页面的函数(page.onNewPage)等。该page.onNewTab表征对目标待测对象进行内容测试,该page.onNewTab表征对目标待测对象进行性能检查的测试。
具体地,该预设测试框架可为Jest和Puppeteer的框架。
具体地,“预设数量个待测对象”的个数,大于“多个目标待测对象”的个数。例如,“预设数量个待测对象”的个数可以为100个,“多个目标待测对象”可以为10个,可以基于该100个待测对象预先构建得到该预设测试环境,在测试的时候,仅选择10个目标待测对象进行测试。
在一个具体的实施例中,图3是根据一示例性实施例示出的一种初始化预设测试环境的流程图。如图3所示,上述方法还包括构建上述预设测试环境,上述构建上述预设测试环境包括:在步骤S21中,初始化上述预设测试环境。
在上述步骤S21中,上述初始化上述预设测试环境可以包括:
在步骤S2101中,运行上述预设测试框架。
具体地,该预设测试框架可以为Puppeteer+jest中的jest。
在步骤S2103中,根据预设参数配置上述预设测试框架对应的初始化环境信息。
具体地,该预设参数可以为根目录的测试的入口配置文件(jestConf.js)以及是否以无头模式执行(headless=${bool})等的启动参数。
具体地,可以通过改造jest的enviroment注入puppeteer所需的环境,并全局初始化状态,让构建得到的预设测试环境可控,可以由程序自定义改造插槽和接口。
在步骤S2105中,启动上述预设组件。
具体地,该预设组件可以为无头浏览器。例如,可以在上述预设测试框架中内置浏览器插件(Vue浏览器插件、react浏览器插件等)。通过内置不同的浏览器插件,可以解决大部分场景的调试问题,降低目标待测对象的测试成本。
示例性地,可以在全局配置中(globalsetup)调用运行无头浏览器(puppeteer.launch)。
在步骤S2107中,基于上述多个目标待测对象各自对应的编译文件,在上述预设组件中执行上述登录操作,得到上述预设组件对应的上述预设组件状态信息。
具体地,可以根据每个测试用例的编译文件,实例化代理和请求,并在预设组件中执行上述登录操作,等待登录环节完成之后,保存预设组件状态信息到临时文件(os.tmpdir())下。由于os.tmpdir()是一个临时文件,会被定期清理,因此,通过该临时文件存储browser.wsEndpoint(),不会对系统造成较多的负担。
具体地,上述预设组件状态信息表征预设组件的链接地址信息,上述预设组件用于访问上述预设数量个待测对象各自对应的编译文件的待访问页面。
可选地,可以在上述预设测试框架中内置不同模式的登陆,包括但不限于:电脑端(pc)登陆、移动端(mobile)登陆和测试环境的单点登录(SingleSignOn,SSO)。通过内置不同模式的登陆,可以进一步降低目标待测对象的测试成本。
以下,以预设组件为无头浏览器,预设组件状态信息为浏览器状态信息(browser.wsEndpoint())为例,对上述步骤S21进行说明:
在初始化上述预设测试环境时,首先响应于用户触发的对象测试启动指令,安装依赖,依赖安装完整之后,运行jest这个测试框架,在运行这个测试框架的过程中,根据预先存储在目录中的jestConf.js以及headless=${bool}等的启动参数完成jest的全局初始化环境信息。其中,该jest测试框架的环境采用的是jest-environment-node进行的扩展环境。接着执行这个globalsetup文件,并在globalsetup调用puppeteer.launch,以运行上述无头浏览器。在调用puppeteer.launch之后,根据jestConf输入的变量(即多个目标待测对象各自对应的编译文件),在上述无头浏览器中可以请求代理和拦截,从而实现登陆逻辑,从而获得上述无头浏览器的browser.wsEndpoint(),并将browser.wsEndpoint()保存到os.tmpdir()下。
本公开实施例在初始化上述预设测试环境的过程中,根据上述启动参数启动预设测试框架对应的初始化环境信息,启动速度较快且启动成本较低,从而降低目标待测对象的测试成本(即降低测试结果的确定成本),提高目标待测对象测试的效率(即提高测试结果的确定效率);同时,通过改造jest的enviroment注入puppeteer所需的环境,并全局初始化状态,让构建得到的预设测试环境可控,可以由程序自定义改造插槽和接口;再者,在globalsetup里面启动一个预设组件,在这个预设组件中可以请求代理和拦截,从而实现登陆逻辑,从而获得该预设组件的browser.wsEndpoint(),并将browser.wsEndpoint()保存到os.tmpdir()下,使得测试过程可以直接通过该预设组件访问待访问页面,避免了很多重复打开预设组件重复登录的操作,降低测试过程对系统资源的消耗和测试的时间,进一步提高了目标待测对象的测试效率(即提高了测试结果的确定效率);此外,预设测试环境的构建以上述多个目标待测对象各自对应的编译文件为基础,该构建得到的预设测试环境为build之后的产物,使得该预设测试环境的体积和性能都得到了优化,且预设测试环境构建过程中不需要依赖预设测试框架本身开发出的插件,开发成本较低,不仅进一步降低了目标待测对象的测试成本(即降低了测试结果的确定成本),还能够使得该预设测试环境能够被不同的业务方所复用,通用性较强;此外,通过该预设测试环境对多个目标待测对象进行测试,还能够提高目标待测对象的测试精度(即提高了测试结果的确定精度)。
在一个具体的实施例中,图4是根据一示例性实施例示出的一种配置预设测试环境的流程图。如图4所示,上述构建上述预设测试环境还可以包括,在步骤S23中,配置上述预设测试环境。
在上述步骤S23中,上述配置上述预设测试环境可以包括:
在步骤S2301中,在上述预设测试框架中确定上述多个目标待测对象各自对应的预设测试配置信息。
具体地,此处的预设测试框架可以为Puppeteer+jest中的Puppeteer框架,由于上述初始化环境信息配置过程中,已经在globalsetup调用puppeteer.launch,此时可以在Puppeteer框架的环境(PuppeteerEnvironment)中全局声明多个目标待测对象各自对应的预测配置信息(比如,page.onNewTab,page.onNewPage等新开页面的函数)。
在步骤S2303中,在上述预设测试框架中注入上述预设应用程序接口操作,得到配置后的上述预设测试环境。
具体地,上述预设应用程序接口(API)操作可以包括但不限于:请求代理的钩子函数(page.onIntercept)、模拟页面点击行为(page.onClick)、模拟页面触摸行为(page.onTab)等。这些API操作可以在测试过程中供目标测试对象使用。
以下,以预设组件为无头浏览器,预设组件状态信息为浏览器状态信息(browser.wsEndpoint())为例,对上述步骤S23进行具体说明:
在上述初始化环境信息配置完成之后,可以读取jestConf中的配置代码(即上述多个目标待测对象各自对应的编译文件),接着在PuppeteerEnvironment中全局声明page.onNewTab、page.onNewPage等新开页面的函数。待测对象在测试过程中可以通过打开新的页面(global.__BROWSER__.openNewTab)执行新开页面(tab)操作。为了提高待测对象的测试效率,待测对象新开tab的操作可以采用断点的os.tmpdir()下存的状态chrome文件(即browser.wsEndpoint)。
在全局声明上述新开页面函数之后,可以向预设测试框架注入内置封装好的page.onIntercept、page.onClick、page.onTab等一些便捷API操作,供测试实例在测试过程中使用,便于方便快捷地得到目标待测对象的测试结果。还可以通过进入页面前的钩子函数(preGotoHook),自定义对页面进行打开之前的环境管理操作,并且只对当前新增的页面窗口生效,通过钩子函数可以与断点的浏览器实例隔离。该钩子函数可以在预设测试框架中的不同的位置进行注入,从而实现不同层次的代理,进而保证层次分明的全局、可以选择局部、可以选择特定待测对象三种不同程度的操作。比如,在打开页面时,如果选择了拦截(即intercepted为true),那么可以按照jestConf中预先配置的规则,拦截请求到编译后的目录,让浏览器访问的内容是当前环境的最新产物,以此来做到合并代码前最贴近线上环境的发现问题。
可选地,为了优化上述API操作,进一步提高目标待测对象的测试精度,还可以为每个API操作预先设置一个等待选择(waitforsolector)的逻辑,该waitforsolector用于在目标待测对象调用该API操作的时候,并非立即执行该API操作,而是等待相应的待访问页面中的某些元素出现之后,再执行该API操作。
由于目标待测对象的测试内容为多个目标待测对象各自对应的编译文件,该多个目标待测对象各自对应的编译文件为build之后的产物,为了进一步提高目标待测对象的测试精度和测试灵活从,还可以预先在预设测试框架中内置静态资源的代理逻辑(比如,网页的js,即网页的普通的渲染页面的url的执行脚本),并在测试的时候勾选是否使用这些代理逻辑。
在一个可选的实施例中,图5是根据一示例性实施例示出的一种基于预设测试环境中,与上述多个目标待测对象各自对应的预设测试配置信息对上述多个目标待测对象各自对应的编译文件进行测试的流程图。如图5所示,在上述步骤S15中,上述基于预设测试环境中,与上述多个目标待测对象各自对应的预设测试配置信息对上述多个目标待测对象各自对应的编译文件进行测试,可以包括:
在步骤S1501中,基于上述预设测试环境获取预设组件状态信息,上述预设组件状态信息表征预设组件的链接地址信息,上述预设组件用于访问上述预设数量个待测对象各自对应的编译文件的待访问页面。
在步骤S1503中,基于上述预设组件状态信息连接上述预设组件。
在步骤S1505中,根据上述预设组件,访问多个目标待测对象各自对应的编译文件的待访问页面。
在步骤S1507中,基于上述多个目标待测对象各自对应的预设测试配置信息,对上述多个目标待测对象各自对应的编译文件的待访问页面进行测试。
以下,以预设组件为无头浏览器,预设组件状态信息为浏览器状态信息(browser.wsEndpoint())为例,对上述步骤S15进行说明:
在测试过程中,可以首先获取browser.wsEndpoint,通过该browser.wsEndpoint连接无头浏览器,接着通过该无头浏览器,打开多个目标待测对象各自对应的编译文件的待访问页面,最后根据多个目标待测对象各自对应的预设测试配置信息(即上述page.onNewTab、page.onNewPage等预设测试函数)对多个目标待测对象各自对应的待访问页面进行测试。
本公开实施例在测试过程中,可以直接通过预设组件状态信息连接上述预设组件,并通过上述预设组件,访问多个目标待测对象各自对应的编译文件的待访问页面,使得每个目标待测的对象均复用一个预设组件,避免了很多重复打开预设组件重复登录的操作,降低了目标待测对象的测试过程对系统资源的消耗(即降低了测试结果的确定过程对系统资源的消耗);此外,由于新开待访问页面的时间比新开预设组件的时间要快的多,因此,每个目标待测的对象均复用一个预设组件节约了新开预设组件的时间,从而节约了目标待测对象的测试时间,提高了目标待测对象测试效率(即提高了测试结果的确定效率)。
在步骤S17中,在上述测试过程中,基于上述多个目标待测对象调用上述预设测试环境中的预设应用程序接口操作,得到上述多个目标待测对象各自对应的测试结果。
具体地,由于预设测试环境中配置有供目标待测对象使用的预设应用程序接口操作,在测试过程中,各个目标待测对象可以调用该预设应用程序接口操作,从而得到相应的测试结果。
可选地,由于预先为每个API操作预先设置一个waitforsolector的逻辑,在目标待测对象调用该API操作的时候,可以等待标待测对象对应的编译文件的当访问页面中的某些元素出现之后再执行,从而进一步提高目标待测对象的测试精度。
在一个可选的实施例中,上述方法还可以包括:当上述多个目标待测对象各自对应的编译文件的待访问页面加载完成的情况下,在上述多个目标待测对象各自对应的待访问页面中添加显示信息,上述显示信息用于在上述待访问页面中显示上述待访问页面的当前测试信息。
具体地,可以在待访问页面加载(load)之后,可以通过代码添加工具(page.addscriptTag)在待访问页面中添加显示信息(比如,显示代码),让当前测试内容和测试环节展示在待访问页面上。
可选地,在待访问页面load之后,还可以输出完整的测试日志。
可选地,如果测试过程中执行出错的情况下,还可以自动进入排除故障(debug)断点,从而对执行出错的测试过程进行故障排除,确保测试过程的稳定性和可靠性。
在一个可选的实施例中,图6是根据一示例性实施例示出的一种确定上述多个目标待测对象各自对应的编译文件的测试覆盖率的流程图。如图6所示,上述方法还可以包括:根据上述多个目标待测对象各自对应的测试结果,确定上述多个目标待测对象各自对应的编译文件的测试覆盖率。具体地,上述根据上述多个目标待测对象各自对应的测试结果,确定上述多个目标待测对象各自对应的编译文件的测试覆盖率,可以包括:
在步骤S31中,根据上述多个目标待测对象各自对应的测试结果,确定上述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点;上述第一测试节点表征上述编译文件开始进行上述测试过程时所对应的编译信息,上述第二测试节点表征上述编译文件结束上述测试过程时所对应的编译信息。
在步骤S33中,基于上述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点,确定上述多个目标待测对象各自对应的编译文件中已经被测试的测试字节数。
在步骤S35中,根据上述多个目标待测对象各自对应的编译文件中的测试字节数,以及上述多个目标待测对象各自对应的编译文件的字节总数,确定上述多个目标待测对象各自对应的编译文件的测试覆盖率。
具体地,测试结果中可以包括测试是从哪个测试节点开始的(即第一测试节点),以及是从哪个测试节点结束的(即第二测试节点),根据该第一测试节点与第二测试节点之间的字节数(即已经被测试的测试字节数),以及编译文件中的字节总数,确定多个目标待测对象各自对应的编译文件的测试覆盖率。
示例性地,可以将已经被测试的测试字节数与字节总数的比值,作为该测试覆盖率;也可以根据字节总数与已经被测试的测试字节数的差值,确定未测试字节数,根据未测试字节数与字节总数的比值,确定测试覆盖率。
可选地,在目标待测对象的itemTeardown生命周期内,可以将每个目标待测对象的测试覆盖率写入预设文件(Coverage文件)中。其中,itemTeardown指的是目标待测对象的结束。
本公开实施例中通过测试过程开始时的第一测试节点以及测试过程结束时的第二测试节点,确定测试覆盖率,能够确保测试覆盖率的确定准确率,通过该准确的测试覆盖率,能够准确体现测试过程的精度以及源文件的代码质量(测试覆盖率越高,测试精确越高,源文件的代码质量越高)。例如,源文件为首页的首页代码,通过该测试过程确定该首页代码的测试覆盖率,测试覆盖率越高表明首页代码质量越高,首页的效果更好。
在一个可选的实施例中,图7是根据一示例性实施例示出的一种对测试覆盖率进行测试验证处理的流程图。如图7所示,上述方法还可以包括:
在步骤S41中,获取上述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值。
在步骤S43中,基于上述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值,对上述多个目标待测对象各自对应的编译文件的测试覆盖率进行测试验证处理,得到上述多个目标待测对象各自对应的编译文件的测试覆盖率的第一测试验证结果,上述第一测试验证结果表征上述多个目标待测对象各自对应的编译文件的测试覆盖率,是否满足上述第一测试覆盖率阈值。
具体地,在获得多个目标待测对象各自对应的编译文件的测试覆盖率之后,可以进行特定chunk的测试覆盖率达标验证。其中,chunk指的是脚本文件。即可以以每个目标待测对象对应的编译文件为一个验证单元,进行测试覆盖率达标验证。比如,某一个目标待测对象对应的编译文件的第一测试覆盖率阈值为90%,如果该目标待测对象对应的编译文件的测试覆盖率大于或等于90%,则认为该目标待测对象对应的编译文件的测试覆盖率验证达标,否则,验证不达标。
本公开实施例中,以chunk为验证单元对测试覆盖率进行验证,可以确保测试覆盖率验证的覆盖全面性,从而全面了解每个目标待测对象的测试情况,进而确保每个目标待测对象的测试的稳定性。
在一个可选的实施例中,图8是根据一示例性实施例示出的另一种对测试覆盖率进行测试验证处理的流程图。如图8所示,上述方法还可以包括:
在步骤S51中,合并上述多个目标待测对象各自对应的编译文件的覆盖率,得到目标覆盖率。
在步骤S53中,获取上述目标覆盖率对应的第二测试覆盖率阈值。
在步骤S55中,基于上述第二测试覆盖率阈值对目标覆盖率进行测试验证处理,得到上述多个目标待测对象对应的编译文件的第二测试验证结果,上述第二测试验证结果表征上述多个目标待测对象对应的编译文件的测试覆盖率,是否满足上述第二测试覆盖率阈值。
具体地,在获得多个目标待测对象各自对应的编译文件的测试覆盖率之后,可以合并多个目标待测对象各自对应的编译文件的覆盖率,得到目标覆盖率。在此基础上可以进行全局测试覆盖率的达标验证,即可以将所有目标待测对象对应的编译文件作为一个整体,进行测试覆盖率达标验证。比如,上述第二测试覆盖率阈值为60%,如果该目标覆盖率大于或等于60%,则认为该全局测试覆盖率率验证达标,否则,验证不达标。
本公开实施例中,对全局测试覆盖率进行达标验证,可以总体上全面了解所有目标待测对象的测试情况,从而从整体上确保测试的稳定性。
在一个可选的实施例中,在chunk测试覆盖率和全局测试覆盖率达标验证之后,还可以通过选择分析(analyze)和检查(check)这两种钩子,分析源文件的测试覆盖率不全信息,即分析到底是源文件中的哪个地方没有被覆盖,并通过定制化的页面,将源文件的覆盖不全信息展示出来。
具体地,可以通过source-map确定出源码的覆盖不足情况,其中,source-map是一个信息文件,里面储存着代码转换前后的对应位置信息。它记录了转换压缩后的代码所对应的转换前的源代码位置,是源代码和生产代码的映射,具体可以如下:
可以根据source-map查找源文件中与第一测试节点对应的第一源代码以及与第二测试节点对应的第二源代码,将第一源代码和第二源代码之间的代码按照字节去串接,然后再以词为单位进行串接,接着再以行为单位进行串接等。最后根据串接结果,可以查看源文件中哪个地方没有被覆盖。通过反查源文件中的覆盖不全信息,并将该覆盖不全信息通过显示页面展示,便于分析测试覆盖率不全的原因,从而便于制定出测试性能更优的测试方案。
在一个可选的实施例中,可以通过多个目标待测对象各自对应的进程(比如,jest进程),对多个目标待测试对象进行测试。由于测试过程存在着后台依赖的网络环境等影响,存在测试失败的可能,因此可以启动脚本添加守护进程,管理多个目标待测对象各自对应的jest进程,并通过守护进程收集每次失败的目标待测试对象(即jest测试用例)。若该目标待测试对象在运行N(N为大于或等于1的正整数)轮测试之后,依旧失败,则判定该目标待测对象的测试过程失败,从而确保自动化的稳定性。此外,如果判定某目标待测对象的测试失败,则汇总该测试失败的目标待测对象的编译文件,将该编译文件以及测试报告结果,反馈至后台,由后台人员进行分析。
图9是根据一示例性实施例示出的一种测试结果确定装置框图。参照图9,该装置可以包括响应模块61,编译模块63、测试模块65和调用模块67。
响应模块61,被配置为执行响应于对象测试指令,获取对象测试指令对应的多个目标待测对象各自对应的源文件。
编译模块63,被配置为执行对上述多个目标待测对象各自对应的源文件进行编译,得到上述多个目标待测对象各自对应的编译文件。
测试模块65,被配置为执行基于预设测试环境中,与上述多个目标待测对象各自对应的预设测试配置信息对上述多个目标待测对象各自对应的编译文件进行测试;上述预设测试环境为基于预设测试框架和预设数量个待测对象各自对应的编译文件构建得到,上述预设数量个待测对象包括上述多个目标待测对象。
调用模块67,被配置为执行在上述测试过程中,基于上述多个目标待测对象调用上述预设测试环境中的预设应用程序接口操作,得到上述多个目标待测对象各自对应的测试结果。
在一示例性的实施方式中,上述测试模块65,包括:
组件状态信息获取单元,被配置为执行基于上述预设测试环境获取预设组件状态信息,上述预设组件状态信息表征预设组件的链接地址信息,上述预设组件用于访问上述预设数量个待测对象各自对应的编译文件的待访问页面。
连接单元,被配置为执行基于上述预设组件状态信息连接上述预设组件。
访问单元,被配置为执行根据上述预设组件,访问多个目标待测对象各自对应的编译文件的待访问页面。
页面测试单元,被配置为执行基于上述多个目标待测对象各自对应的预设测试配置信息,对上述多个目标待测对象各自对应的编译文件的待访问页面进行测试。
在一示例性的实施方式中,上述装置还包括构建上述预设测试环境的构建模块,上述构建模块包括初始化上述预设测试环境的初始化单元,上述初始化单元包括:
框架运行子单元,被配置为执行运行上述预设测试框架。
初始化环境信息配置子单元,被配置为执行根据预设参数配置上述预设测试框架对应的初始化环境信息。
预设组件启动子单元,被配置为执行启动上述预设组件。
登录子单元,被配置为执行基于上述多个目标待测对象各自对应的编译文件,在上述预设组件中执行上述登录操作,得到上述预设组件对应的上述预设组件状态信息。
在一示例性的实施方式中,上述构建模块还包括配置上述预设测试环境的配置单元,上述配置单元包括:
预设测试配置信息确定子单元,被配置为执行在上述预设测试框架中确定上述多个目标待测对象各自对应的预设测试配置信息。
注入子单元,被配置为执行在上述预设测试框架中注入上述预设应用程序接口操作,得到配置后的上述预设测试环境。
在一示例性的实施方式中,上述装置还包括:
添加模块,被配置为执行当上述多个目标待测对象各自对应的编译文件的待访问页面加载完成的情况下,在上述多个目标待测对象各自对应的待访问页面中添加显示信息,上述显示信息用于在上述待访问页面中显示上述待访问页面的当前测试信息。
在一示例性的实施方式中,上述装置还包括:
测试节点确定模块,被配置为执行根据上述多个目标待测对象各自对应的测试结果,确定上述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点;上述第一测试节点表征上述编译文件开始进行上述测试过程时所对应的编译信息,上述第二测试节点表征上述编译文件结束上述测试过程时所对应的编译信息。
测试字节数确定模块,被配置为执行基于上述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点,确定上述多个目标待测对象各自对应的编译文件中已经被测试的测试字节数。
测试覆盖率确定模块,被配置为执行根据上述多个目标待测对象各自对应的编译文件中的测试字节数,以及上述多个目标待测对象各自对应的编译文件的字节总数,确定上述多个目标待测对象各自对应的编译文件的测试覆盖率。
在一示例性的实施方式中,上述装置还包括:
第一测试覆盖率阈值获取模块,被配置为执行获取上述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值。
第一测试验证结果获取模块,被配置为执行基于上述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值,对上述多个目标待测对象各自对应的编译文件的测试覆盖率进行测试验证处理,得到上述多个目标待测对象各自对应的编译文件的测试覆盖率的第一测试验证结果,上述第一测试验证结果表征上述多个目标待测对象各自对应的编译文件的测试覆盖率,是否满足上述第一测试覆盖率阈值。
在一示例性的实施方式中,上述装置还包括:
合并模块,被配置为执行合并上述多个目标待测对象各自对应的编译文件的覆盖率,得到目标覆盖率。
第二测试覆盖率阈值获取模块,被配置为执行获取上述目标覆盖率对应的第二测试覆盖率阈值。
第二测试验证结果获取模块,被配置为执行基于上述第二测试覆盖率阈值对目标覆盖率进行测试验证处理,得到上述多个目标待测对象对应的编译文件的第二测试验证结果,上述第二测试验证结果表征上述多个目标待测对象对应的编译文件的测试覆盖率,是否满足上述第二测试覆盖率阈值。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明
在示例性实施例中,还提供了一种电子设备,包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行存储器上所存放的指令时,实现上述实施例中任一测试结果确定方法。
该电子设备可以是终端、服务器或者类似的运算装置,以该电子设备是服务器为例,图10是根据一示例性实施例示出的一种用于测试结果确定的电子设备的框图,该电子设备70可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)71(中央处理器71可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器73,一个或一个以上存储应用程序723或数据722的存储介质72(例如一个或一个以上海量存储设备)。其中,存储器73和存储介质72可以是短暂存储或持久存储。存储在存储介质72的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器71可以设置为与存储介质72通信,在电子设备70上执行存储介质72中的一系列指令操作。电子设备70还可以包括一个或一个以上电源76,一个或一个以上有线或无线网络接口75,一个或一个以上输入输出接口74,和/或,一个或一个以上操作系统721,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口74可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备70的通信供应商提供的无线网络。在一个实例中,输入输出接口74包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例性实施例中,输入输出接口74可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备70还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
在示例性实施例中,还提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例中任一测试结果确定方法。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一种实施方式中提供的测试结果确定方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种测试结果确定方法,其特征在于,包括:
响应于对象测试指令,获取对象测试指令对应的多个目标待测对象各自对应的源文件;
对所述多个目标待测对象各自对应的源文件进行编译,得到所述多个目标待测对象各自对应的编译文件;
基于预设测试环境中,与所述多个目标待测对象各自对应的预设测试配置信息对所述多个目标待测对象各自对应的编译文件进行测试;所述预设测试环境为基于预设测试框架和预设数量个待测对象各自对应的编译文件构建得到,所述预设数量个待测对象包括所述多个目标待测对象;
在所述测试过程中,基于所述多个目标待测对象调用所述预设测试环境中的预设应用程序接口操作,得到所述多个目标待测对象各自对应的测试结果。
2.根据权利要求1所述的测试结果确定方法,其特征在于,所述基于预设测试环境中,与所述多个目标待测对象各自对应的预设测试配置信息对所述多个目标待测对象各自对应的编译文件进行测试,包括:
基于所述预设测试环境获取预设组件状态信息,所述预设组件状态信息表征预设组件的链接地址信息,所述预设组件用于访问所述预设数量个待测对象各自对应的编译文件的待访问页面;
基于所述预设组件状态信息连接所述预设组件;
根据所述预设组件,访问多个目标待测对象各自对应的编译文件的待访问页面;
基于所述多个目标待测对象各自对应的预设测试配置信息,对所述多个目标待测对象各自对应的编译文件的待访问页面进行测试。
3.根据权利要求2所述的测试结果确定方法,其特征在于,所述方法还包括构建所述预设测试环境,所述构建所述预设测试环境包括初始化所述预设测试环境,所述初始化所述预设测试环境包括:
运行所述预设测试框架;
根据预设参数配置所述预设测试框架对应的初始化环境信息;
启动所述预设组件;
基于所述多个目标待测对象各自对应的编译文件,在所述预设组件中执行所述登录操作,得到所述预设组件对应的所述预设组件状态信息。
4.根据权利要求3所述的测试结果确定方法,其特征在于,所述构建所述预设测试环境包括配置所述预设测试环境,所述配置所述预设测试环境包括:
在所述预设测试框架中确定所述多个目标待测对象各自对应的预设测试配置信息;
在所述预设测试框架中注入所述预设应用程序接口操作,得到配置后的所述预设测试环境。
5.根据权利要求2所述的测试结果确定方法,其特征在于,所述方法还包括:
当所述多个目标待测对象各自对应的编译文件的待访问页面加载完成的情况下,在所述多个目标待测对象各自对应的待访问页面中添加显示信息,所述显示信息用于在所述待访问页面中显示所述待访问页面的当前测试信息。
6.根据权利要求1至5中任一项所述的测试结果确定方法,其特征在于,所述方法还包括:
根据所述多个目标待测对象各自对应的测试结果,确定所述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点;所述第一测试节点表征所述编译文件开始进行所述测试过程时所对应的编译信息,所述第二测试节点表征所述编译文件结束所述测试过程时所对应的编译信息;
基于所述多个目标待测对象各自对应的编译文件的第一测试节点和第二测试节点,确定所述多个目标待测对象各自对应的编译文件中已经被测试的测试字节数;
根据所述多个目标待测对象各自对应的编译文件中的测试字节数,以及所述多个目标待测对象各自对应的编译文件的字节总数,确定所述多个目标待测对象各自对应的编译文件的测试覆盖率。
7.根据权利要求6所述的测试结果确定方法,其特征在于,所述方法还包括:
获取所述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值;
基于所述多个目标待测对象各自对应的编译文件的第一测试覆盖率阈值,对所述多个目标待测对象各自对应的编译文件的测试覆盖率进行测试验证处理,得到所述多个目标待测对象各自对应的编译文件的测试覆盖率的第一测试验证结果,所述第一测试验证结果表征所述多个目标待测对象各自对应的编译文件的测试覆盖率,是否满足所述第一测试覆盖率阈值。
8.一种测试结果确定装置,其特征在于,包括:
响应模块,被配置为执行响应于对象测试指令,获取对象测试指令对应的多个目标待测对象各自对应的源文件;
编译模块,被配置为执行对所述多个目标待测对象各自对应的源文件进行编译,得到所述多个目标待测对象各自对应的编译文件;
测试模块,被配置为执行基于预设测试环境中,与所述多个目标待测对象各自对应的预设测试配置信息对所述多个目标待测对象各自对应的编译文件进行测试;所述预设测试环境为基于预设测试框架和预设数量个待测对象各自对应的编译文件构建得到,所述预设数量个待测对象包括所述多个目标待测对象;
调用模块,被配置为执行在所述测试过程中,基于所述多个目标待测对象调用所述预设测试环境中的预设应用程序接口操作,得到所述多个目标待测对象各自对应的测试结果。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的测试结果确定方法。
10.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备执行如权利要求1至7中任一项所述的测试结果确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110969386.7A CN113806219B (zh) | 2021-08-23 | 2021-08-23 | 测试结果确定方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110969386.7A CN113806219B (zh) | 2021-08-23 | 2021-08-23 | 测试结果确定方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113806219A true CN113806219A (zh) | 2021-12-17 |
CN113806219B CN113806219B (zh) | 2024-06-11 |
Family
ID=78941688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110969386.7A Active CN113806219B (zh) | 2021-08-23 | 2021-08-23 | 测试结果确定方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806219B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809071A (zh) * | 2015-05-14 | 2015-07-29 | 北京润科通用技术有限公司 | 一种代码测试方法及装置 |
CN111813659A (zh) * | 2020-06-09 | 2020-10-23 | 四川虹美智能科技有限公司 | 基于ui和接口自动化测试方法、装置、设备及可读介质 |
CN112486822A (zh) * | 2020-11-27 | 2021-03-12 | 德萱(天津)科技发展有限公司 | 软件测试装置、方法、计算机设备及存储介质 |
CN112667499A (zh) * | 2020-12-22 | 2021-04-16 | 平安普惠企业管理有限公司 | 页面组件的测试方法、装置、计算机设备及存储介质 |
-
2021
- 2021-08-23 CN CN202110969386.7A patent/CN113806219B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809071A (zh) * | 2015-05-14 | 2015-07-29 | 北京润科通用技术有限公司 | 一种代码测试方法及装置 |
CN111813659A (zh) * | 2020-06-09 | 2020-10-23 | 四川虹美智能科技有限公司 | 基于ui和接口自动化测试方法、装置、设备及可读介质 |
CN112486822A (zh) * | 2020-11-27 | 2021-03-12 | 德萱(天津)科技发展有限公司 | 软件测试装置、方法、计算机设备及存储介质 |
CN112667499A (zh) * | 2020-12-22 | 2021-04-16 | 平安普惠企业管理有限公司 | 页面组件的测试方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113806219B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11663110B2 (en) | Analysis to check web API code usage and specification | |
US9355017B2 (en) | Automated error checking system for a software application and method therefor | |
US20120159443A1 (en) | System and method for reducing test effort by object risk analysis | |
US10606586B2 (en) | Application architecture generation | |
CN112130871B (zh) | 远程部署中间件的方法、装置、计算机设备及存储介质 | |
US9262311B1 (en) | Network page test system and methods | |
US10942837B2 (en) | Analyzing time-series data in an automated application testing system | |
CN113778848A (zh) | 测试代码生成方法、装置、计算机系统及介质 | |
CN109597618B (zh) | 程序开发方法、装置、计算机设备及存储介质 | |
CN111090452A (zh) | 服务环境的切换方法及计算机可读存储介质 | |
CN112799940B (zh) | 回归测试方法、装置、计算机系统和计算机可读存储介质 | |
CN110928770B (zh) | 软件测试的方法、装置、系统、存储介质和电子设备 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
EP3447635A1 (en) | Application architecture generation | |
US11288170B1 (en) | Log analysis debugging without running on real production environment | |
CN103186463B (zh) | 确定软件的测试范围的方法和系统 | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN117931219A (zh) | 前端项目实现方法、装置、电子设备和存储介质 | |
CN112597001B (zh) | 接口测试方法、装置、电子设备及存储介质 | |
CN115705190A (zh) | 依赖程度的确定方法及装置 | |
CN112988578A (zh) | 一种自动化测试方法和装置 | |
CN113806219B (zh) | 测试结果确定方法、装置、电子设备及存储介质 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
WO2012174033A1 (en) | System and method to in-line script dependencies | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |