CN112433942A - 基于人工智能模型的软件自动化测试方法、装置和*** - Google Patents
基于人工智能模型的软件自动化测试方法、装置和*** Download PDFInfo
- Publication number
- CN112433942A CN112433942A CN202011329555.2A CN202011329555A CN112433942A CN 112433942 A CN112433942 A CN 112433942A CN 202011329555 A CN202011329555 A CN 202011329555A CN 112433942 A CN112433942 A CN 112433942A
- Authority
- CN
- China
- Prior art keywords
- test
- software
- task
- tested
- target
- 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 360
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 59
- 238000013515 script Methods 0.000 claims description 60
- 238000000034 method Methods 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 6
- 238000013522 software testing Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000012015 optical character recognition Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 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/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
技术领域
本发明涉及软件测试领域,尤其涉及一种基于人工智能模型的软件自动化测试方法、装置和***。
背景技术
Linux,全称GNU/Linux,是一套***和自由传播的类UNIX操作***,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作***。它能运行主要的Unix工具软件、应用程序和网络协议,且支持32位和64位硬件,是一个性能稳定的多用户网络操作***。
由于不同的操作***具有不同的特性,从其他操作***迁移至Linux操作***的第三方软件在运行中往往会出现各种各样的异常。而第三方软件的种类和数量过多,仅通过人工手动执行测试的效率低且人力成本高。而且,在对多个设备执行批量测试时,多个设备之间往往存在一定差异,执行测试操作也往往存在一定区别,这就使得预设的测试脚本难以在不同的设备上实现测试,兼容性较差。
是本申请所要解决的技术问题是如何避免由于对待测设备执行测试操作的位置不准确导致测试失败的问题。
发明内容
本申请实施例的目的是提供一种基于人工智能模型的软件自动化测试方法、装置和***,用以解决由于对待测设备执行测试操作的位置不准确导致测试失败的问题。
第一方面,提供了一种基于人工智能模型的软件自动化测试方法,包括:
获取待执行的测试任务,所述测试任务包括对目标软件的测试区域执行的测试操作;
将所述目标软件的界面图像特征信息输入第一人工智能模型,以得到所述界面图像中的至少一个候选目标对象,所述候选目标对象包括图标和/或文字信息;
确定所述至少一个候选目标对象中与所述测试区域的指定对象相匹配的目标对象,所述指定对象包括图标和/或文字信息;
对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
第二方面,提供了一种基于人工智能模型的软件自动化测试装置,包括:
获取模块,获取待执行的测试任务,所述测试任务包括对目标软件的测试区域执行的测试操作;
输入模块,将所述目标软件的界面图像特征信息输入第一人工智能模型,以得到所述界面图像中的至少一个候选目标对象,所述候选目标对象包括图标和/或文字信息;
确定模块,确定所述至少一个候选目标对象中与所述测试区域的指定对象相匹配的目标对象,所述指定对象包括图标和/或文字信息;
执行模块,对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
第三方面,提供了一种基于人工智能模型的软件自动化测试***,包括:
至少一个如第二方面所述的基于人工智能模型的软件自动化测试装置;
与所述至少一个基于人工智能模型的软件自动化测试装置通信连接的测试任务控制装置,用于向所述基于人工智能模型的软件自动化测试装置提供测试任务。
第四方面,提供了一种电子设备,该电子设备包括处理器、存储器及存储在该存储器上并可在该处理器上运行的计算机程序,该计算机程序被该处理器执行时实现如第一方面该的方法的步骤。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现如第一方面该的方法的步骤。
在本申请实施例中,通过获取待执行的测试任务;将目标软件的界面图像特征信息输入第一人工智能模型,以得到界面图像中的至少一个候选目标对象;确定至少一个候选目标对象中与测试区域的指定对象相匹配的目标对象;对目标软件的界面中目标对象所在的区域执行测试操作。本方案通过人工智能模型能准确识别到与测试区域的指定对象相匹配的目标对象,使测试操作能准确作用于目标对象所在区域,避免待测设备的界面与测试区域存在差异而导致测试操作无法准确执行的问题,提高测试效率并降低人力消耗。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明的一个实施例一种基于人工智能模型的软件自动化测试方法的流程示意图之一;
图2是本发明的一个实施例一种基于人工智能模型的软件自动化测试方法的流程示意图之二;
图3是本发明的一个实施例一种基于人工智能模型的软件自动化测试方法的流程示意图之三;
图4是本发明的一个实施例一种基于人工智能模型的软件自动化测试方法的流程示意图之四;
图5是本发明的一个实施例一种基于人工智能模型的软件自动化测试方法的流程示意图之五;
图6是本发明的一个实施例一种基于人工智能模型的软件自动化测试方法的流程示意图之六;
图7是本发明的一个实施例一种基于人工智能模型的软件自动化测试方法的流程示意图之七;
图8a是本申请的一种基于人工智能模型的软件自动化测试装置的结构示意图之一;
图8b是本申请的一种基于人工智能模型的软件自动化测试装置的结构示意图之二;
图8c是本申请的一种基于人工智能模型的软件自动化测试装置的结构示意图之三;
图9a是本申请的一种基于人工智能模型的软件自动化测试***的结构示意图之一;
图9b是本申请的一种基于人工智能模型的软件自动化测试***执行测试的流程示意图之一;
图9c是本申请的一种基于人工智能模型的软件自动化测试***执行测试的流程示意图之二;
图9d是本申请的一种基于人工智能模型的软件自动化测试***的结构示意图之二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请中附图编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序,具体执行顺序以说明书中描述为准。
在自动化测试领域,越来越多的企业在逐步尝试从Windows***迁移到开放源代码的Linux***,出现了越来越多的以Linux为内核的操作***,如红旗、麒麟、Deepin等。同时,越来越多的第三方软件厂商也参与到Linux软件***的开发上来。
随着软件数量的提高以及迭代速度的提升,测试的压力也会越来越大。仅通过人工手动测试难以满足测试需求,需要消耗过高的人力且效率较低。
为了解决现有技术中存在的问题,本申请实施例提供一种基于人工智能模型的软件自动化测试方法,该方法的执行主体可以为待执行测试任务的待测设备,如图1所示,该方法包括以下步骤:
S11:获取待执行的测试任务,所述测试任务包括对目标软件的测试区域执行的测试操作。
由待执行测试任务的待测设备获取上述待执行的测试任务,该测试任务可以是由测试任务控制装置提供的。测试任务控制装置可以通过有线或无线的方式与待测设备通信连接。
其中,待执行的测试任务具体可以是测试脚本,该测试脚本能够在待测设备上运行,以对待测设备的目标软件的测试区域执行测试操作。测试任务控制装置可以将测试脚本发送至待测设备,并指示待测设备运行该测试脚本实现测试。在测试任务较多时,可以将测试脚本***任务队列,由待测设备获取任务队列中的测试脚本,依次执行多个测试。
另外,当测试任务较多时,测试任务控制装置可以将测试任务与待测设备标识关联***任务队列。待测设备可以根据自身的待测设备标识从任务队列中获取与自身的待测设备标识相匹配的测试任务。测试任务控制装置可以通过向任务队列***测试任务及关联的待测设备标识的方式,来实现对多个待测设备的测试,或者,也可以对一个待测设备执行多次不同的测试。
S12:将所述目标软件的界面图像特征信息输入第一人工智能模型,以得到所述界面图像中的至少一个候选目标对象,所述候选目标对象包括图标和/或文字信息。
上述目标软件的界面图像特征信息可以包括目标软件界面图像,该目标软件的界面图像可以通过截取待测设备的显示画面实现获取。
待测设备获取的测试任务可以调用待测设备的预设指令库中的指令,从而调用第一人工智能模型来实现候选目标对象的识别功能。上述第一人工智能模型可以是基于由软件的界面图像特征信息构成的样本数据和由软件的界面图像特征信息中的候选目标对象训练得到的。
将目标软件的界面图像特征信息输入第一人工智能模型后,第一人工智能模型能识别界面图像特征信息中的候选目标对象。其中,候选目标对象可以包括图标、文字信息或者图标与文字信息的组合。上述图标例如可以是界面图像中的选项按键图标、确认按键图标、取消按键图标等。文字信息例如可以是“选项”、“确认”、“取消”等文字。第一人工智能模型识别到候选目标对象后,能输出识别到的候选目标对象,从而剔除背景图像,输出可能被执行测试操作的图标或文字信息。
S13:确定所述至少一个候选目标对象中与所述测试区域的指定对象相匹配的目标对象,所述指定对象包括图标和/或文字信息。
其中,测试区域的指定对象可以由测试任务确定,该指定对象可以是测试区域中的图标、文字信息或者包含文字信息的图标等。测试区域的指定对象可以是测试操作的执行对象,例如,测试任务中包括对“确认”按键执行点击操作,那么,测试区域的指定对象可以是包含“确认”文字信息的对象。
基于上述实例,当候选目标对象的数量是多个时,分别比对指定对象与候选目标对象的相似度,将相似度最高的候选目标对象确定为目标对象,或者,将相似度大于预设相似度的候选目标对象确定为目标对象。
S14:对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
当目标对象包括图标且不包括文字信息时,可以先确定目标对象的图标所在的区域,并在该区域内执行测试操作。当目标对象包括文字信息时,可以先确定文字信息所在区域对应的对象,然后对文字信息所在区域对应的对象执行测试操作。举例而言,假设目标对象包括的文字信息为“取消”,则可以先确定“取消”所在区域对应的按键,然后对该“取消”按键执行测试操作。
本方案通过人工智能模型能准确识别到与测试区域的指定对象相匹配的目标对象,使测试操作能准确作用于目标对象所在区域,避免待测设备的界面与测试区域存在差异而导致测试操作无法准确执行的问题,提高测试效率并降低人力消耗。
基于上述实施例提供的方案,可选的,在上述步骤S14之后,如图2所示,还包括以下步骤:
S21:上报执行所述测试操作的测试结果信息,所述测试结果信息包括所述目标软件的界面测试结果信息和/或执行所述测试操作的待测设备的性能参数信息。
待测设备获取待执行的测试任务之后,可以监听获取目标软件的运行状态参数或待测设备自身的性能参数。上述目标软件的界面测试结果信息例如可以包括目标软件的运行状态、运行画面截图等。该目标软件的界面测试结果能表征目标软件在执行测试任务的过程中是否出现了异常,如果目标软件出现了异常,则可以根据目标软件的界面测试结果进行异常分析。
上述待测设备的性能参数信息例如可以包括待测设备的资源使用率、内存占用率等。该待测设备的性能参数信息能表征目标软件在执行测试任务的过程中对待测设备的整体影响。一旦出现***资源占用率过高等异常,则可以根据待测设备的性能参数信息进行异常分析。
另外,在执行测试任务的过程中,可以通过执行画面截图来获取目标软件的界面图像,或者,通过执行录屏来获取目标软件在执行测试过程中展现的画面。测试结果信息可以包括上述截取到的界面图像和屏幕录制文件,以对目标软件在执行测试的过程中显示的画面进行分析。
基于上述实施例提供的方案,可选的,上述步骤S11,如图3所示,包括以下步骤:
S31:在待执行所述测试任务的待测设备的运行负荷低于预设运行负荷时,获取待执行的测试任务。
上述预设运行负荷可以是预先设定的,也可以是根据待测设备的硬件信息等参数确定的。当待测设备的运行负荷较高时,往往会出现程序运行卡顿甚至死机。为了保证待测设备能有充足的***资源来执行测试任务,本实施例首先判断待测设备的运行负荷是否低于预设运行负荷,在待测设备的运行负荷低于预设运行负荷时则表明待测设备有充足的***资源来执行测试任务,能提高测试任务执行成功率,避免由于待测设备卡顿或死机而造成测试任务执行失败。
基于上述实施例提供的方案,可选的,上述步骤S31,如图4所示,包括:
S41:通过设备负荷数据库获取所述待测设备的运行负荷参数;
S42:在所述运行负荷参数表征所述待执行所述测试任务的待测设备的运行负荷低于预设运行负荷时,获取待执行的测试任务。
上述待测设备的运行负荷参数可以由待测设备周期性上报至设备负荷数据库,设备负荷数据库能够存储待测设备最近上报的设备负荷参数。或者,由设备负荷数据库周期性采集待测设备的运行负荷参数并记录。
上述运行负荷参数例如可以包括待测设备的CPU使用率、内存使用率等性能参数,也可以包括待测设备的运行负荷状态。为了缩短获取测试任务之前的判断时间,提高待测设备获取测试任务的效率,负荷数据库可以周期性采集待测设备的运行负荷参数并根据采集到的参数生成待测设备的运行负荷状态。该运行负荷状态例如可以包括“空闲状态”或“繁忙状态”,该运行负荷状态可以根据待测设备的运行负荷参数和待测设备的硬件参数确定,例如,当CPU使用率大于或等于70%时,生成的运行负荷状态为“繁忙状态”。
进一步的,设备负荷数据库可以将待测设备的标识与该待测设备的运行负荷参数关联存储。当待测设备数量较多时,可以通过待测设备标识快速查找到所需的运行负荷参数,提高待测设备获取测试任务的效率。
在获取待执行的测试任务之前,根据设备负荷数据库中记录的运行负荷参数判断待测设备的运行负荷是否低于预设运行负荷,进而在待测设备有充足的***资源的情况下获取测试任务并执行,提高测试任务执行成功率。
进一步的,还可以获取待测设备与测试任务控制装置的连接状态,在待测设备与测试任务控制装置稳定连接的情况下,由待测设备获取执行的测试任务,避免由于连接不稳定导致测试任务获取不完整的情况。
基于上述实施例提供的方案,可选的,所述测试操作包括录入文字操作,其中,上述步骤S14,如图5所示,包括以下步骤:
S51:获取待执行所述测试任务的待测设备的设备标识信息;
S52:获取与所述设备标识信息相匹配的录入信息;
S53:对目标软件的界面中所述目标对象所在的区域录入与所述录入信息相对应的文字。
上述测试操作可以有多种,例如可以包括点击、拖拽、文字录入、快捷键输入等。测试任务中可以包括一个或多个测试操作,多个测试操作之间还可以包括等待操作,以在执行了一个测试操作之后等待上述待测设备对该测试操作进行响应,随后再执行下一个测试操作,能提高测试任务执行成功率。避免由于待测设备未响应完测试操作、页面未加载完成等情况下执行下一个测试操作。
其中,文字录入操作具体可以指模拟人工通过键盘录入文字的操作。测试过程中录入的文字可以是预先设置的与待测设备相匹配的文字。举例而言,当对多个待测设备执行批量测试时,需要对多个待测设备分别录入不同的用户信息来测试能否进行用户登录。那么,预先设置的与多个待测设备匹配的多个用户信息可以存储在任务数据源或其他能够被查询的数据库中。
具体的,待测设备可以根据自身的设备标识信息在存储有用户信息的数据库中查询与自身相匹配的目标用户信息。将查询到的目标用户信息作为录入信息,对目标软件的界面中目标对象所在的区域录入上述目标用户信息。举例而言,目标用户信息可以是包含有数字和字母的用户名以及相对应的用户密码。目标软件的界面例如可以是登录界面,在登录界面中标记有“用户名”的输入框中录入用户名,并在标记有“密码”的输入框中录入与用户名对应的密码,随后还可以执行确认等操作,实现对目标软件的测试。随后,还可以根据目标软件跳转后的界面来确定待测设备的目标软件能否实现用户登录。
本申请实施例提供的方案能在测试目标软件的过程中录入与待测设备相匹配的文字,从而能够针对待测设备的特征有针对性地进行测试。而且,在对多个待测设备进行批量测试时,本实施例提供的方案能够实现多个待测设备同时测试,避免多个待测设备争抢同一资源而导致测试失败。
以用户登录为例,同一时刻通过用户信息只能登录一台设备,如果多台待测设备都使用同一用户信息执行登录测试,则会出现部分待测设备登录失败的情况。而本申请实施例提供的方案,能通过任务数据源为多个待测设备提供多个用户信息,避免由于争抢用户信息而导致的登录失败,提高测试成功率。
基于上述实施例提供的方案,可选的,在上述步骤S12之前,如图6所示,还包括以下步骤:
S61:获取所述目标软件的界面图像;
S62:在所述目标软件的界面图像的对比度值低于预设对比度值时,调整所述目标软件的界面图像的色阶值,得到对比度值大于或等于所述预设对比度值的处理后的所述目标软件的界面图像;
S63:根据所述处理后的所述目标软件的界面图像生成目标软件的界面图像特征信息。
在实际应用中,可以通过屏幕截图来获取目标软件的界面图像。如果目标软件的界面图像的对比度较低,则第一人工智能模型可能无法准确识别界面图像中的文字或图标。本实施例提供的方案中,在界面图像的对比度较低时,通过调整色阶值来实现对界面图像对比度的调整,从而区分界面图像中背景与可执行测试操作的对象。
具体的,可以通过降低界面图像的色阶值来进行图像处理,使处理后的界面图像具有较高的对比度,随后基于对比度较高的界面图像生成目标软件的界面图像特征信息,能有效提高第一人工智能模型对上述界面图像特征信息的处理能力。
举例而言,假设候选目标对象包括文字信息,在调整色阶值之前的界面图像的对比度较低,界面图像中的背景色与文字的颜色相近,如果直接根据对比度低的界面图像生成界面图像特征信息,并输入至第一人工智能模型,则会导致第一人工智能模型无法准确识别界面图像中的文字。通过本申请实施例提供的方案,先降低对比度低的界面图像的色阶值,使调整后的界面图像的对比度高于预设对比度,随后根据调整后的对比度较高的界面图像生成界面图像特征信息并输入第一人工智能模型。由于调整后的界面图像的对比度较高,界面图像中的文字的颜色与背景颜色的区别较大,因此能提高第一人工智能模型识别界面图像中文字的准确性,进而提高执行测试的位置的准确性,提高测试成功率。
基于上述实施例提供的方案,可选的,待执行所述测试任务的待测设备包括Linux***,其中,上述步骤S11,如图7所示,包括以下步骤:
S71:获取JSON格式的测试脚本,所述测试脚本用于表述对所述待测设备中的目标软件的测试区域执行的测试操作;
S72:将所述JSON格式的测试脚本转换为Python格式的测试脚本;
其中,上述步骤S14,包括以下步骤:
S73:执行所述Python格式的测试脚本,以对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。为了方便修改、存储和读取,可以将预先编写的测试脚本以JSON格式存储。随后,为了便于测试脚本的执行,将JSON格式的测试脚本转换为Python格式的测试脚本,通过执行Python格式的测试脚本实现对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
通过本申请实施例提供的方案,能够提高测试脚本的存储、读取和修改性能,同时保证测试脚本正常执行,提高测试任务的执行效率。
为了解决现有技术中存在的问题,本申请实施例还提供一种基于人工智能模型的软件自动化测试装置80,如图8a所示,包括:
获取模块81,获取待执行的测试任务,所述测试任务包括对目标软件的测试区域执行的测试操作;
输入模块82,将所述目标软件的界面图像特征信息输入第一人工智能模型,以得到所述界面图像中的至少一个候选目标对象,所述候选目标对象包括图标和/或文字信息;
确定模块83,确定所述至少一个候选目标对象中与所述测试区域的指定对象相匹配的目标对象,所述指定对象包括图标和/或文字信息;
执行模块84,对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
基于上述实施例提供的装置,可选的,如图8b所示,还包括:
上报模块85,上报执行所述测试操作的测试结果信息,所述测试结果信息包括所述目标软件的界面测试结果信息和/或执行所述测试操作的待测设备的性能参数信息。
基于上述实施例提供的装置,可选的,所述获取模块81用于:
在待执行所述测试任务的待测设备的运行负荷低于预设运行负荷时,获取待执行的测试任务。
基于上述实施例提供的装置,可选的,所述获取模块81用于:
通过设备负荷数据库获取所述待测设备的运行负荷参数;
在所述运行负荷参数表征所述待执行所述测试任务的待测设备的运行负荷低于预设运行负荷时,获取待执行的测试任务。
基于上述实施例提供的装置,可选的,所述测试操作包括录入文字操作,其中,执行模块84用于:
获取待执行所述测试任务的待测设备的设备标识信息;
获取与所述设备标识信息相匹配的录入信息;
对目标软件的界面中所述目标对象所在的区域录入与所述录入信息相对应的文字。
基于上述实施例提供的装置,可选的,如图8c所示,还包括:
界面图像获取模块86,获取所述目标软件的界面图像;
调整模块87,在所述目标软件的界面图像的对比度值低于预设对比度值时,调整所述目标软件的界面图像的色阶值,得到对比度值大于或等于所述预设对比度值的处理后的所述目标软件的界面图像;
生成模块88,根据所述处理后的所述目标软件的界面图像生成目标软件的界面图像特征信息。
基于上述实施例提供的装置,可选的,待执行所述测试任务的待测设备包括Linux***,其中,所述获取模块81用于:
获取JSON格式的测试脚本,所述测试脚本用于表述对所述待测设备中的目标软件的测试区域执行的测试操作;
将所述JSON格式的测试脚本转换为Python格式的测试脚本;
其中,所述执行模块84用于:
执行所述Python格式的测试脚本,以对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
通过本申请实施例提供的装置,获取待执行的测试任务;将目标软件的界面图像特征信息输入第一人工智能模型,以得到界面图像中的至少一个候选目标对象;确定至少一个候选目标对象中与测试区域的指定对象相匹配的目标对象;对目标软件的界面中目标对象所在的区域执行测试操作。本方案通过人工智能模型能准确识别到与测试区域的指定对象相匹配的目标对象,使测试操作能准确作用于目标对象所在区域,避免待测设备的界面与测试区域存在差异而导致测试操作无法准确执行的问题,提高测试效率并降低人力消耗。
为了解决现有技术中存在的问题,本申请实施例还提供一种基于人工智能模型的软件自动化测试***,如图9a所示,包括:
至少一个上述实施例所述的基于人工智能模型的软件自动化测试装置91;
与所述至少一个基于人工智能模型的软件自动化测试装置91通信连接的测试任务控制装置92,用于向所述基于人工智能模型的软件自动化测试装置91提供测试任务。
上述基于人工智能模型的软件自动化测试装置即上述方法实施例中所述的待测设备。上述测试任务控制装置92还可以用于生成测试任务并下发,可选的,测试任务控制装置可以向通信连接的多个人工智能模型的软件测试装置分别下发不同的测试任务,能够在同一时刻执行多种不同的测试任务。
其中,测试任务控制装置可以通过编写代码的方式生成测试任务,也可以通过录制人工操作的方式生成测试任务。举例而言,如图9b所示,首先由测试任务控制装置执行自然语言脚本录制。可以根据实际需求录制一个或多个测试脚本,多个测试脚本之间可以相互独立也可以相互关联。然后,对录制的脚本格式转换为便于存储、读取或修改的格式,例如JSON格式。随后,可以根据实际需求执行结构化脚本存储,便于脚本的查询、读取和调用。接着,将测试脚本下发至待测设备,由待测设备通过人工智能AI执行单元将测试脚本作为测试用例执行,在执行测试的过程中收集测试结果数据,实现对待测设备的测试。
进一步的,如图9c所示,测试任务控制装置可以通过任务队列向一个或多个待测设备下发测试脚本。例如,由测试任务控制装置预先生成包含有提测请求的多个测试任务,并将生成的多个测试任务放入任务队列。然后基于任务队列顺次执行预先生成的多个测试任务。
具体的,获取任务队列中的测试任务并获取该测试任务对应的设备列表,设备列表可以包括一个或多个待执行上述测试任务的待测设备信息。随后,检查设备列表中的待测设备是否处于空闲状态。如果待测设备处于空闲状态,则下发测试脚本以指示处于空闲状态的待测设备执行该测试脚本。如果待测设备处于繁忙状态,则可以将待测设备的标识信息放入设备任务队列,并以预设时间间隔获取设备任务队列中的待测设备标识信息,一旦待测设备标识信息对应的待测设备从繁忙状态变更为空闲状态,则向该空闲状态的待测设备下发测试脚本,以指示待测设备执行测试脚本实现测试。
进一步的,基于上述实施例提供的方案,按照放入设备任务队列的时间顺序依次轮询确定各待测设备是否处于空闲状态。对最先放入设备任务队列的待测设备优先处理,缩短批量测试的整体时长,便于对一批待测设备的测试结果进行归纳整理。上述实施例中的任务队列可以通过redis实现。
可选的,基于NLP自然语言预先编写测试脚本,NLP是神经语言程序学(Neuro-Linguistic Programming)的英文缩写,具有较高的可读性且便于修改。
具体的,可以通过录制人工操作的方式生成测试脚本,进一步的,也可以根据实际需求对通过录制人工操作的方式生成的测试脚本进行手动修改。人工执行的操作、脚本语法及说明的对应关系如下表:
在录制脚本的过程中,还可以应用OCR文字识别技术辅助提高录制脚本的准确性。OCR(Optical Character Recognition,光学字符识别)是指电子设备通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。对于通过OCR识别到的界面文字,可以编写与点击、存在判断、识别文字赋值给变量、IF判断、OCR识别循环的操作相对应的测试脚本。
可选的,在通过录制或编写生成测试脚本之后,还可以将测试脚本转化为可执行的脚本,例如可以按照下表所示的对应关系进行转换:
基于上述实施例提供的***,可选的,如图9d所示,所述***还包括:
连接在至少一个基于人工智能模型的软件自动化测试装置91与所述测试任务控制装置92之间的至少一个上位机93,所述至少一个上位机93用于向至少一个基于人工智能模型的软件自动化测试装置91下发由所述测试任务控制装置92发送的测试任务和/或将所述至少一个基于人工智能模型的软件自动化测试装置91的测试结果上报至所述测试任务控制装置92。
进一步的,在脚本转换的过程中,除了PyAutoGUI组件的命令外,还可以加入了控制和辅助的语句,如step语句(标记脚本id和步骤说明)、截图语句、日志打印语句等。在脚本的执行过程中,通过上述的控制语句可以将脚本输出的信息返回给上位机(信息中转,用于存储信息,汇总上报,任务脚本下发等),上位机会临时存储脚本返回的信息,待被测计算机全部的脚本全部完成后,将数据整合汇总,统一发送给自动化测试提测***。***会根据上位机上报的数据,再梳理归纳整理,生成最终的测试报告。
通过本申请实施例提供的方案,能通过上位机实现测试任务的下发和/或测试结果的整理汇总,有效提高测试任务执行成功率和执行效率。
优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种基于人工智能模型的软件自动化测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述一种基于人工智能模型的软件自动化测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (10)
1.一种基于人工智能模型的软件自动化测试方法,其特征在于,包括:
获取待执行的测试任务,所述测试任务包括对目标软件的测试区域执行的测试操作;
将所述目标软件的界面图像特征信息输入第一人工智能模型,以得到所述界面图像中的至少一个候选目标对象,所述候选目标对象包括图标和/或文字信息;
确定所述至少一个候选目标对象中与所述测试区域的指定对象相匹配的目标对象,所述指定对象包括图标和/或文字信息;
对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
2.如权利要求1所述的方法,其特征在于,在对目标软件的界面中所述目标对象所在的区域执行所述测试操作之后,还包括:
上报执行所述测试操作的测试结果信息,所述测试结果信息包括所述目标软件的界面测试结果信息和/或执行所述测试操作的待测设备的性能参数信息。
3.如权利要求1所述的方法,其特征在于,获取待执行的测试任务,包括:
在待执行所述测试任务的待测设备的运行负荷低于预设运行负荷时,获取待执行的测试任务。
4.如权利要求3所述的方法,其特征在于,在待执行所述测试任务的待测设备的运行负荷低于预设运行负荷时,获取待执行的测试任务,包括:
通过设备负荷数据库获取所述待测设备的运行负荷参数;
在所述运行负荷参数表征所述待执行所述测试任务的待测设备的运行负荷低于预设运行负荷时,获取待执行的测试任务。
5.如权利要求1所述的方法,其特征在于,所述测试操作包括录入文字操作,其中,对目标软件的界面中所述目标对象所在的区域执行所述测试操作,包括:
获取待执行所述测试任务的待测设备的设备标识信息;
获取与所述设备标识信息相匹配的录入信息;
对目标软件的界面中所述目标对象所在的区域录入与所述录入信息相对应的文字。
6.如权利要求1所述的方法,其特征在于,在将所述目标软件的界面图像特征信息输入第一人工智能模型之前,还包括:
获取所述目标软件的界面图像;
在所述目标软件的界面图像的对比度值低于预设对比度值时,调整所述目标软件的界面图像的色阶值,得到对比度值大于或等于所述预设对比度值的处理后的所述目标软件的界面图像;
根据所述处理后的所述目标软件的界面图像生成目标软件的界面图像特征信息。
7.如权利要求1~6任一项所述的方法,其特征在于,待执行所述测试任务的待测设备包括Linux***,其中,获取待执行的测试任务,包括:
获取JSON格式的测试脚本,所述测试脚本用于表述对所述待测设备中的目标软件的测试区域执行的测试操作;
将所述JSON格式的测试脚本转换为Python格式的测试脚本;
其中,对目标软件的界面中所述目标特征标识所在的区域执行所述测试操作,包括:
执行所述Python格式的测试脚本,以对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
8.一种基于人工智能模型的软件自动化测试装置,其特征在于,包括:
获取模块,获取待执行的测试任务,所述测试任务包括对目标软件的测试区域执行的测试操作;
输入模块,将所述目标软件的界面图像特征信息输入第一人工智能模型,以得到所述界面图像中的至少一个候选目标对象,所述候选目标对象包括图标和/或文字信息;
确定模块,确定所述至少一个候选目标对象中与所述测试区域的指定对象相匹配的目标对象,所述指定对象包括图标和/或文字信息;
执行模块,对目标软件的界面中所述目标对象所在的区域执行所述测试操作。
9.一种基于人工智能模型的软件自动化测试***,其特征在于,包括:
至少一个如权利要求8所述的基于人工智能模型的软件自动化测试装置;
与所述至少一个基于人工智能模型的软件自动化测试装置通信连接的测试任务控制装置,用于向所述基于人工智能模型的软件自动化测试装置提供测试任务。
10.如权利要求9所述的***,其特征在于,还包括:
连接在至少一个基于人工智能模型的软件自动化测试装置与所述测试任务控制装置之间的至少一个上位机,所述至少一个上位机用于向至少一个基于人工智能模型的软件自动化测试装置下发由所述测试任务控制装置发送的测试任务和/或将所述至少一个基于人工智能模型的软件自动化测试装置的测试结果上报至所述测试任务控制装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011329555.2A CN112433942A (zh) | 2020-11-24 | 2020-11-24 | 基于人工智能模型的软件自动化测试方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011329555.2A CN112433942A (zh) | 2020-11-24 | 2020-11-24 | 基于人工智能模型的软件自动化测试方法、装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112433942A true CN112433942A (zh) | 2021-03-02 |
Family
ID=74693986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011329555.2A Pending CN112433942A (zh) | 2020-11-24 | 2020-11-24 | 基于人工智能模型的软件自动化测试方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433942A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443467A (zh) * | 2021-12-20 | 2022-05-06 | 奇安信科技集团股份有限公司 | 基于沙箱的界面交互方法、装置、电子设备、介质及产品 |
CN116383620A (zh) * | 2023-03-29 | 2023-07-04 | 北京鹅厂科技有限公司 | 一种应用多模态人工智能的方法与装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341098A (zh) * | 2017-07-13 | 2017-11-10 | 携程旅游信息技术(上海)有限公司 | 软件性能测试方法、平台、设备及存储介质 |
CN109189682A (zh) * | 2018-08-27 | 2019-01-11 | 广州云测信息技术有限公司 | 一种脚本录制方法和装置 |
CN109857645A (zh) * | 2019-01-02 | 2019-06-07 | 广州云测信息技术有限公司 | 一种针对应用程序的自动化测试方法及装置 |
CN111881019A (zh) * | 2020-07-07 | 2020-11-03 | 北京三快在线科技有限公司 | 一种用户界面测试方法及装置 |
-
2020
- 2020-11-24 CN CN202011329555.2A patent/CN112433942A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341098A (zh) * | 2017-07-13 | 2017-11-10 | 携程旅游信息技术(上海)有限公司 | 软件性能测试方法、平台、设备及存储介质 |
CN109189682A (zh) * | 2018-08-27 | 2019-01-11 | 广州云测信息技术有限公司 | 一种脚本录制方法和装置 |
CN109857645A (zh) * | 2019-01-02 | 2019-06-07 | 广州云测信息技术有限公司 | 一种针对应用程序的自动化测试方法及装置 |
CN111881019A (zh) * | 2020-07-07 | 2020-11-03 | 北京三快在线科技有限公司 | 一种用户界面测试方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443467A (zh) * | 2021-12-20 | 2022-05-06 | 奇安信科技集团股份有限公司 | 基于沙箱的界面交互方法、装置、电子设备、介质及产品 |
CN116383620A (zh) * | 2023-03-29 | 2023-07-04 | 北京鹅厂科技有限公司 | 一种应用多模态人工智能的方法与装置 |
CN116383620B (zh) * | 2023-03-29 | 2023-10-20 | 北京鹅厂科技有限公司 | 一种应用多模态人工智能的方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446190B (zh) | 接口测试方法及装置 | |
CN110765013A (zh) | 一种流程自动化执行方法及*** | |
CN112433942A (zh) | 基于人工智能模型的软件自动化测试方法、装置和*** | |
CN111209185A (zh) | 基于关键词的自动化测试方法及计算机可读存储介质 | |
CN112269697B (zh) | 一种设备存储性能测试方法、***及相关装置 | |
CN115982005A (zh) | 基于人工智能的自动化测试方法和装置 | |
CN111462811A (zh) | 自动化测试方法、装置、存储介质和电子设备 | |
CN112506778A (zh) | Web用户界面自动化测试方法、装置、设备和存储介质 | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN111475412B (zh) | 软件测试方法、装置、电子设备和计算机可读存储介质 | |
CN113568833A (zh) | 测试用例确定方法、装置、计算机设备及可读存储介质 | |
CN110990264A (zh) | Ui自动化测试的元素识别方法、装置、设备及存储介质 | |
CN112084108A (zh) | 一种测试脚本生成方法、装置及相关组件 | |
CN110928760A (zh) | 一种嵌入式***中的单元测试方法与装置 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN116719736A (zh) | 一种用于测试软件界面的测试用例生成方法及装置 | |
CN116909904A (zh) | 一种基于大流量高并发条件下的软件功能自动化测试方法 | |
CN110795341A (zh) | 一种服务器的自动测试方法、***及装置 | |
CN112003647B (zh) | 一种回收光猫的检测方法、装置、设备及存储介质 | |
CN112231234B (zh) | 跨平台用户界面自动化测试方法、装置、设备和存储介质 | |
CN115758005A (zh) | 一种大屏图像的处理方法、装置及介质 | |
CN111400245B (zh) | 美术资源迁移方法及装置 | |
CN112612469A (zh) | 一种界面元素的处理方法、装置和电子设备 | |
CN113238969A (zh) | 界面自动化测试方法、装置、设备及存储介质 | |
CN106897387B (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 |