软件测试方法、装置、设备及存储介质与流程

文档序号:24659436发布日期:2021-04-13 22:44阅读:122来源:国知局
软件测试方法、装置、设备及存储介质与流程

1.本发明涉及研发管理领域,尤其涉及一种软件测试方法、装置、设备及存储介质。


背景技术:

2.近年来随着软件自动化测试技术的发展特别是高效的自动化测试框架技术与优秀的自动测试工具出现,已经很大程度提高了自动化测试脚本的开发效率,掌握自动化测试脚本的开发能力已成为一个测试人员的一个基本技能。
3.而现有的自动化测试方法支持单机单线程自动化测试,在面对不同测试系统之间、测试系统与数据库的交互非常多,如果采用当前单线程的测试方法,其测试难度非常大且需要协调多个系统测试资源;系统测试流程多且流程之间有业务依赖,如:要先逾期80天才能正常理赔,理赔后才能走追偿等,使得数据模拟难度较大;每个数据入口的触发点不一样,流程衔接效率较低。故综上所述,现有的单线程自动化测试方法的流程衔接效率较低。


技术实现要素:

4.本发明的主要目的在于解决现有的单线程自动化测试方法的流程衔接效率较低的技术问题。
5.本发明第一方面提供了一种软件测试方法,包括:
6.获取多条测试用例对应的测试参数列表,并分别对所述各测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;
7.生成所述各测试参数对应的测试消息,并基于所述标识代码,将所述测试消息写入所述各测试参数列表对应的预置分布式消息队列中;
8.获取待测试软件的测试需求信息,确定与所述测试需求信息具有映射关系的标识代码,依次消费所述分布式消息队列中的测试消息;
9.采用消费的各测试消息,通过异步线程调用预置的多个测试方法对所述待测试软件进行测试,输出测试结果。
10.可选的,在本发明第一方面的第一种实现方式中,所述分别对所述各测试参数列表进行初始化处理,得到各条测试用例对应的标识代码包括:
11.分别提取所述各测试参数列表中各测试参数的一个或多个类型的标识信息,并在所述各测试参数列表中创建与所述标识信息相同数量的表列;
12.按照预置编码规则,依次对所述各测试参数进行顺序编码,得到测试参数编码,并将所述测试参数编码写入对应表列中,得到各条测试用例对应的标识代码。
13.可选的,在本发明第一方面的第二种实现方式中,所述多个测试方法包括软件服务请求方法、软件测试运行方法和软件测试检测方法,所述采用消费的各测试消息,通过异步线程调用预置的多个测试方法对所述待测试软件进行测试,输出测试结果包括:
14.确定所述各测试消息中的服务请求内容和测试内容,并基于所述各服务请求内容,采用预置第一线程调用所述软件服务请求方法发起服务请求;
15.当监听到所述待测试软件的服务端对所述服务请求的响应时,根据所述测试内容,采用预置第二线程调用所述软件测试运行方法运行所述服务请求对应的测试服务并生成运行记录;
16.采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的运行特征,生成对应的测试结果并输出。
17.可选的,在本发明第一方面的第三种实现方式中,所述当监听到所述待测试软件的服务端对所述服务请求的响应时,根据所述测试内容,采用预置第二线程调用所述软件测试运行方法运行所述服务请求对应的测试服务并生成运行记录包括:
18.当监听到所述待测试软件的服务端对所述服务请求的响应时,对每个所述服务请求分配独立的第二线程;
19.根据所述测试内容,采用所述独立的第二线程调用所述软件测试运行方法执行预置sql数据库中的sql测试语句;
20.根据所述sql测试语句的执行结果,生成所述测试服务的运行记录。
21.可选的,在本发明第一方面的第四种实现方式中,所述采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的运行特征,生成对应的测试结果并输出包括:
22.采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的初始运行时间、终止运行时间和运行节点信息;
23.根据所述初始运行时间和所述终止运行时间,计算所述测试服务的运行时间,以及根据所述运行节点信息,确定所述测试服务的运行节点通过率;
24.若所述运行时间小于预置运行时间阈值,且所述运行节点通过率大于预置通过率阈值,则确定所述测试服务对应的测试结果为测试成功,否则所述测试服务对应的测试结果为失败,输出所述测试结果。
25.可选的,在本发明第一方面的第五种实现方式中,在所述采用消费的各测试消息,通过异步线程调用预置的多个测试方法对所述待测试软件进行测试,输出测试结果之后,还包括:
26.若所述测试结果为失败,则执行所述sql数据库中的sql修复语句,修改所述sql测试语句;
27.基于修改后的sql测试语句,重新对所述待测试软件进行测试,得到新的测试结果;
28.若新的测试结果仍为失败,则停止采用当前的测试消息进行软件测试。
29.本发明第二方面提供了一种软件测试装置,包括:
30.初始化模块,用于获取多条测试用例对应的测试参数列表,并分别对所述各测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;
31.写入模块,用于生成所述各测试参数对应的测试消息,并基于所述标识代码,将所述测试消息写入所述各测试参数列表对应的预置分布式消息队列中;
32.消费模块,用于获取待测试软件的测试需求信息,确定与所述测试需求信息具有映射关系的标识代码,并基于具有映射关系的标识代码,依次消费所述分布式消息队列中的测试消息;
33.测试模块,用于采用消费的各测试消息,通过异步线程调用预置的多个测试方法
对所述待测试软件进行测试,输出测试结果。
34.可选的,在本发明第二方面的第一种实现方式中,所述初始化模块包括:
35.提取单元,用于分别提取所述各测试参数列表中各测试参数的一个或多个类型的标识信息,并在所述各测试参数列表中创建与所述标识信息相同数量的表列;
36.编码单元,用于按照预置编码规则,依次对所述各测试参数进行顺序编码,得到测试参数编码,并将所述测试参数编码写入对应表列中,得到各条测试用例对应的标识代码。
37.可选的,在本发明第二方面的第二种实现方式中,所述预置的多个测试方法包括软件服务请求方法、软件测试运行方法和软件测试检测方法,所述测试模块包括:
38.服务请求单元,用于确定所述各测试消息中的服务请求内容和测试内容,并基于所述各服务请求内容,采用预置第一线程调用所述软件服务请求方法发起服务请求;
39.测试单元,用于当监听到所述待测试软件的服务端对所述服务请求的响应时,根据所述测试内容,采用预置第二线程调用所述软件测试运行方法运行所述服务请求对应的测试服务并生成运行记录;
40.生成单元,用于采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的运行特征,生成对应的测试结果并输出。
41.可选的,在本发明第二方面的第三种实现方式中,所述测试单元还用于:
42.当监听到所述待测试软件的服务端对所述服务请求的响应时,对每个所述服务请求分配独立的第二线程;
43.根据所述测试内容,采用所述独立的第二线程调用所述软件测试运行方法执行预置sql数据库中的sql测试语句;
44.根据所述sql测试语句的执行结果,生成所述测试服务的运行记录。
45.可选的,在本发明第二方面的第四种实现方式中,所述生成单元还用于:
46.采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的初始运行时间、终止运行时间和运行节点信息;
47.根据所述初始运行时间和所述终止运行时间,计算所述测试服务的运行时间,以及根据所述运行节点信息,确定所述测试服务的运行节点通过率;
48.若所述运行时间小于预置运行时间阈值,且所述运行节点通过率大于预置通过率阈值,则确定所述测试服务对应的测试结果为测试成功,否则所述测试服务对应的测试结果为失败,输出所述测试结果。
49.可选的,在本发明第二方面的第五种实现方式中,所述软件测试装置还包括:
50.修复模块,用于若所述测试结果为失败,则执行所述sql数据库中的sql修复语句,修改所述sql测试语句;
51.重测模块,用于基于修改后的sql测试语句,重新对所述待测试软件进行测试,得到新的测试结果;
52.停测模块,用于若新的测试结果仍为失败,则停止采用当前的测试消息进行软件测试。
53.本发明第三方面提供了一种软件测试设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述软件测试设备执行上述的软件测试方法。
54.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的软件测试方法。
55.本发明提供的技术方案中,通过获取多条测试用例对应的测试参数列表,并进行初始化处理,得到各条测试用例的标识代码;基于标识代码,将测试参数写入分布式消息队列中,以生成测试消息;在待测试软件进行测试时,获取对应的测试需求信息以匹配对应的标识代码,并基于匹配到的标识代码,依次消费分布式消息队列中的测试消息,再采用异步线程,调用预置的多个测试方法对待测试软件进行测试,输出测试结果,即可实现软件的异步测试。本发明支持多机器多线程自动化测试,支持多人同时跑数测试,改进后的测试流程降低了各系统之间的耦合程度,从而提升了单线程自动化测试流程的衔接效率。
附图说明
56.图1为本发明实施例中软件测试方法的一个实施例示意图;
57.图2为本发明实施例中软件测试方法的另一个实施例示意图;
58.图3为本发明实施例中软件测试装置的一个实施例示意图;
59.图4为本发明实施例中软件测试装置的另一个实施例示意图;
60.图5为本发明实施例中软件测试设备的一个实施例示意图。
具体实施方式
61.本发明实施例提供了一种软件测试方法、装置、设备及存储介质,获取多条测试用例对应的测试参数列表,并对测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;基于标识代码,将测试参数写入分布式消息队列中,并生成对应的测试消息;获取待测试软件的测试需求信息,确定与测试需求信息具有映射关系的标识代码,并基于具有映射关系的标识代码,依次消费分布式消息队列中的测试消息;采用消费的各测试消息,通过异步线程,调用预置的多个测试方法对待测试软件进行测试,输出测试结果。本发明实现了对软件的异步测试。
62.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
63.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中软件测试方法的第一个实施例包括:
64.101、获取多条测试用例对应的测试参数列表,并分别对所述各测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;
65.可以理解的是,本发明的执行主体可以为软件测试装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。需要强调的是,为进一步保证上述测试参数列表的私密和安全性,上述测试参数列表还可以存储于一区块
链的节点中。
66.本实施例中,一个测试用例可以用一个测试参数列表进行表示,此处可以获取一个或同时获取多个测试用例对应的测试参数列表,其中,测试参数列表中列表表头和测试参数内容,测试参数内容包括测试方法关键词、备注内容、测试参数及对应的pid(port id,id调节)、topic、tag和标识信息、服务请求方法、跳转url(uniform resource locator,统一资源定位系统)地址等。对测试参数列表的初始化处理即为列表中的每一条测试参数生成对应的唯一标识代码,其中,标识代码可以通过预先设置标识代码编码规则进行生成。
67.102、生成所述各测试参数对应的测试消息,并基于所述标识代码,将所述测试消息写入所述各测试参数列表对应的预置分布式消息队列中;
68.本实施例中,标识代码还标识了各测试参数对应的参数类型,开发人员预先在分布式消息队列中创建了各参数类型的缓存队列,即根据标识代码指代的参数类型,即可存储到分布式消息队列中对应的存储队列中,实际应用中分布式消息队列可以使用kafka(卡夫卡)、rabbitmq、zeromq、rocketmq、activemq等消息队列。
69.而测试消息则将是根据测试参数按照一定的格式进行转化及存储得到。比如对测试参数做日志解析,统一成json格式并输出给elasticsearch;然后通过elasticsearch实时日志分析服务的核心技术,通过schemaless实时的数据存储服务,通过index组织数据,兼具强大的搜索和统计功能;最后基于elasticsearch的数据可视化组件,对数据进行可视化处理并在前端进行展示以及存储在分布式消息队列中。
70.103、获取待测试软件的测试需求信息,确定与所述测试需求信息具有映射关系的标识代码,并基于具有映射关系的标识代码,依次消费所述分布式消息队列中的测试消息;
71.本实施例中,在将测试参数全部存储入库之后,可通过消息队列进行消费;当接收到待测试软件测试的测试需求信息之后,测试需求信息中带有标识代码的映射,而测试需求信息对各映射作测试流程的排序顺序,以确定软件的测试流程中各节点所需的测试参数。比如在待测试软件测试过程中:
72.首先通过方法http_request模拟请求ims http接口,则需从分布式消息队列中获取http方法、url、请求参数;
73.然后采用run_job方法运行分布式调度平台上的job,并连接mysql库写入运行记录,此时则需要从分布式消息队列中获取对应的登录账号、登录密码、运行job;
74.接着采用check_job检查软件程序进入该方法的时间之后mysql数据库是否有对应job运行成的记录,以及检查对应标识代码对应数据是否有消费失败的消息队列记录。
75.104、采用消费的各测试消息,通过异步线程调用预置的多个测试方法对所述待测试软件进行测试,输出测试结果。
76.本实施例中,通过多线程执行软件测试,其中,job和check_job方法均各需要单独1个线程循环执行,运行的job为独立核算数据流程涉及的两个job(消息队列消息的消费任务,后继处理的检查任务)。其他线程跑不同类型的测试参数时,每个线程依次跑每行对应的消费模块的方法。因run_job和check_job都是操作mysql数据库,实现线程隔离,跑业务数据的线程都是check_job,未跑则等待。可以多台本地机器多线程同时跑自己录制的业务场景数据,但是替换后的测试参数的标识信息需互不相同,否则会互相产生错误消费。各测试方法根据标识代码采用对应的测试消息进行待测试软件的测试,最后输出各个线程执行
的完成度,即测试成功或者测试失败。
77.多线程同时运行job和check_job容易产生软件运行异常,故此处的job运行和check_job通过单独线程运行即可;而其他线程又可以同时执行send_message/http_request/excute_sql等测试进程间互不影响的操作,需要运行job处各自线程等待job运行及检查各自线程需处理数据的job处理检查,job处理完成则继续往下,处理异常则跳出程序,此线程结束,其他线程不受影响。
78.本发明实施例中,获取多条测试用例对应的测试参数列表,并对测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;基于标识代码,将测试参数写入分布式消息队列中,并生成对应的测试消息;获取待测试软件的测试需求信息,确定与测试需求信息具有映射关系的标识代码,并基于具有映射关系的标识代码,依次消费分布式消息队列中的测试消息;采用消费的各测试消息,通过异步线程,调用预置的多个测试方法对待测试软件进行测试,输出测试结果。本发明实现了对软件的异步测试。本发明实施例支持多机器多线程自动化测试,支持多人同时跑数测试,改进后的测试流程降低了各系统之间的耦合程度,从而提升了单线程自动化测试流程的衔接效率。
79.请参阅图2,本发明实施例中软件测试方法的第二个实施例包括:
80.201、获取多条测试用例对应的测试参数列表,并分别对所述各测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;
81.本实施例中,标识代码的具体生成过程如下所示:
82.(1)分别提取所述各测试参数列表中各测试参数的一个或多个类型的标识信息,并在所述各测试参数列表中创建与所述标识信息相同数量的表列;
83.(2)按照预置编码规则,依次对所述各测试参数进行顺序编码,得到测试参数编码,并将所述测试参数编码写入对应表列中,得到各条测试用例对应的标识代码。
84.本实施例中,通过为各测试参数生成唯一的标识代码,其作用在于多个待测试软件同时执行自动化测试时,支持各待测试软件重复跑数,对待测试软件进行异步测试,在实际运行过程中,通过标识代码替换各测试参数的标识信息,比如贷款数表中的申请号、借据号、保单号等,各跑数脚本通过标识代码获取对应的测试参数。
85.另外,对于预置编码规则,可以根据测测试用例编号、测试参数类型和测试参数的标识信息三部分的编码组成标识代码,其中,测试用例编号可以直接进行顺序二进制编码,测试参数类型按照开发人员预先设定的编码进行替换。
86.202、生成所述各测试参数对应的测试消息,并基于所述标识代码,将所述测试消息写入所述各测试参数列表对应的预置分布式消息队列中;
87.203、获取待测试软件的测试需求信息,确定与所述测试需求信息具有映射关系的标识代码,并基于具有映射关系的标识代码,依次消费所述分布式消息队列中的测试消息;
88.204、确定所述各测试消息中的服务请求内容和测试内容,并基于所述各服务请求内容,采用预置第一线程调用所述软件服务请求方法发起服务请求;
89.本实施例中,在测试过程中,主要可分为三个线程对待测试软件进行测试,第一线程是请求线程,根据服务请求内容如页面刷新请求、登录请求、跳转请求等,和测试内容比如身份验证、功能验证、需求确认等,写入规范的请求指令中,向目标服务器发起请求,依次从分布式消息队列的服务请求内容队列、测试内容队列中获取测试参数,依次代入请求指
令中相应的位置。
90.205、当监听到所述待测试软件的服务端对所述服务请求的响应时,根据所述测试内容,采用预置第二线程调用所述软件测试运行方法运行所述服务请求对应的测试服务并生成运行记录;
91.本实施例中,在测试过程中,第二线程是运行线程,即运行待测试软件的测试job,测试job为预先写好的测试脚步此处直接按照测试脚步运行即可。具体的,待测试软件运行的测试过程如下所示:
92.(1)当监听到所述待测试软件的服务端对所述服务请求的响应时,对每个所述服务请求分配独立的第二线程;
93.(2)根据所述测试内容,采用所述独立的第二线程调用所述软件测试运行方法执行预置sql数据库中的sql测试语句;
94.(3)根据所述sql测试语句的执行结果,生成所述测试服务的运行记录。
95.本实施例中,待测试软件运行测试在sql数据库中进行,不同的测试内容有对应的测试运行脚本,以sql测试语句编写,当服务端正确响应服务请求时,则可为该服务请求分配一个新的运行job进行测试,即当前有都少个运行job执行测试任务,则有相同数量的第二线程。而早sql数据库中执行的各个节点任务,均会进行记录,比如通过该节点任务的测试,则记录运行通过,否则记录运行不通过,后续开发人员可以根据运行记录调整软件内容或者测试流程框架。
96.206、采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的运行特征,生成对应的测试结果并输出;
97.本实施例中,在测试郭晨中,第三线程是检测线程,即在run_job方法中,跑完job后写入一条job运行成功的记录,其他线程在执行check_job方法时去查该记录,以判断是否存在进入check_job方法时间点及之后是否有对应job的运行成功记录,如有,代表check_job线程确定job对应的测试内容得到了处理,则需再去检查处理状态是否成功,成功则代表该运行job得到了正确处理,失败则代表测试数据异常或者程序bug,此时跳出程序,线程结束。此处各条结果记录即为其运行记录的运行特征。具体的,运行特征的提取过程如下所示:
98.(1)采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的初始运行时间、终止运行时间和运行节点信息;
99.(2)根据所述初始运行时间和所述终止运行时间,计算所述测试服务的运行时间,以及根据所述运行节点信息,确定所述测试服务的运行节点通过率;
100.(3)若所述运行时间小于预置运行时间阈值,且所述运行节点通过率大于预置通过率阈值,则确定所述测试服务对应的测试结果为测试成功,否则所述测试服务对应的测试结果为失败,输出所述测试结果。
101.本实施例中,在软件测试记录到的初始运行时间和终止运行时间内,软件的运行节点通过率要求包括:测试服务各运行节点的执行率需达到100%;运行节点的通过率需大于99%;各运行节点中测试缺陷不存在3级以及以上缺陷;2级及2级以下缺陷数量小于预设数量阈值。
102.207、若所述测试结果为失败,则执行所述sql数据库中的sql修复语句,修改所述
sql测试语句;
103.208、基于修改后的sql测试语句,重新对所述待测试软件进行测试,得到新的测试结果;
104.209、若新的测试结果仍为失败,则停止采用当前的测试消息进行软件测试。
105.本实施例中,在测试过程中当存在测试失败的运行节点,可判别sql数据库中是否存储有对应的sql修复语句,以对软件测试过程进行修复,比如对于当测试流程中存在测试参数连串不起来而中断时,可提供一个修复方法excute_sql,执行数据sql修复语句修改sql测试语句,用于快速模拟难以实现自动化测试部分的其他测试节点处理。
106.本发明实施例中,详细介绍了标识代码的生成过程,以用于后续写入不同消息队列中,当在对软件进行异步测试时,即可通过标识代码从目标消息队列中获取测试消息进行测试,并通过不同的新线程对各测试内容进行测试,而对于测试结果失败的测试消息,则可以停止该线程的测试,继续执行其他线程的测试,对软件进行异步测试,在某一测试流程发生错误时,不影响软件测试进程。
107.上面对本发明实施例中软件测试方法进行了描述,下面对本发明实施例中软件测试装置进行描述,请参阅图3,本发明实施例中软件测试装置一个实施例包括:
108.初始化模块301,用于获取多条测试用例对应的测试参数列表,并分别对所述各测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;
109.写入模块302,用于生成所述各测试参数对应的测试消息,并基于所述标识代码,将所述测试消息写入所述各测试参数列表对应的预置分布式消息队列中;
110.消费模块303,用于获取待测试软件的测试需求信息,确定与所述测试需求信息具有映射关系的标识代码,并基于具有映射关系的标识代码,依次消费所述分布式消息队列中的测试消息;
111.测试模块304,用于采用消费的各测试消息,通过异步线程调用预置的多个测试方法对所述待测试软件进行测试,输出测试结果。
112.本发明实施例中,获取多条测试用例对应的测试参数列表,并对测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;基于标识代码,将测试参数写入分布式消息队列中,并生成对应的测试消息;确定与所述测试需求信息具有映射关系的标识代码,匹配测试需求信息对应的标识代码,并基于具有映射关系的标识代码,依次消费分布式消息队列中的测试消息;采用消费的各测试消息,通过异步线程,调用预置的多个测试方法对待测试软件进行测试,输出测试结果。本发明实现了对软件的异步测试。
113.请参阅图4,本发明实施例中软件测试装置的另一个实施例包括:
114.初始化模块301,用于获取多条测试用例对应的测试参数列表,并分别对所述各测试参数列表进行初始化处理,得到各条测试用例对应的标识代码;
115.写入模块302,用于生成所述各测试参数对应的测试消息,并基于所述标识代码,将所述测试消息写入所述各测试参数列表对应的预置分布式消息队列中;
116.消费模块303,用于获取待测试软件的测试需求信息,确定与所述测试需求信息具有映射关系的标识代码,并基于具有映射关系的标识代码,依次消费所述分布式消息队列中的测试消息;
117.测试模块304,用于采用消费的各测试消息,通过异步线程调用预置的多个测试方
法对所述待测试软件进行测试,输出测试结果。
118.具体的,所述初始化模块301包括:
119.提取单元3011,用于分别提取所述各测试参数列表中各测试参数的一个或多个类型的标识信息,并在所述各测试参数列表中创建与所述标识信息相同数量的表列;
120.编码单元3012,用于按照预置编码规则,依次对所述各测试参数进行顺序编码,得到测试参数编码,并将所述测试参数编码写入对应表列中,得到各条测试用例对应的标识代码。
121.具体的,所述测试模块304包括:
122.服务请求单元3041,用于确定所述各测试消息中的服务请求内容和测试内容,并基于所述各服务请求内容,采用预置第一线程调用所述软件服务请求方法发起服务请求;
123.测试单元3042,用于当监听到所述待测试软件的服务端对所述服务请求的响应时,根据所述测试内容,采用预置第二线程调用所述软件测试运行方法运行所述服务请求对应的测试服务并生成运行记录;
124.生成单元3043,用于采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的运行特征,生成对应的测试结果并输出。
125.具体的,所述测试单元还用于:
126.当监听到所述待测试软件的服务端对所述服务请求的响应时,对每个所述服务请求分配独立的第二线程;
127.根据所述测试内容,采用所述独立的第二线程调用所述软件测试运行方法执行预置sql数据库中的sql测试语句;
128.根据所述sql测试语句的执行结果,生成所述测试服务的运行记录。
129.具体的,所述生成单元还用于:
130.采用预置第三线程调用所述软件测试检测方法,提取所述运行记录中的初始运行时间、终止运行时间和运行节点信息;
131.根据所述初始运行时间和所述终止运行时间,计算所述测试服务的运行时间,以及根据所述运行节点信息,确定所述测试服务的运行节点通过率;
132.若所述运行时间小于预置运行时间阈值,且所述运行节点通过率大于预置通过率阈值,则确定所述测试服务对应的测试结果为测试成功,否则所述测试服务对应的测试结果为失败,输出所述测试结果。
133.具体的,所述软件测试装置还包括:
134.修复模块305,用于若所述测试结果为失败,则执行所述sql数据库中的sql修复语句,修改所述sql测试语句;
135.重测模块306,用于基于修改后的sql测试语句,重新对所述待测试软件进行测试,得到新的测试结果;
136.停测模块307,用于若新的测试结果仍为失败,则停止采用当前的测试消息进行软件测试。
137.本发明实施例中,本发明实施例中,详细介绍了标识代码的生成过程,以用于后续写入不同消息队列中,当在对待测试软件进行异步测试时,即可通过标识代码从目标消息队列中获取测试消息进行测试,并通过不同的新线程对各测试内容进行测试,而对于测试
结果失败的测试消息,则可以停止该线程的测试,继续执行其他线程的测试,对待测试软件进行异步测试,在某一测试流程发生错误时,不影响软件测试进程。
138.上面图3和图4从模块化功能实体的角度对本发明实施例中的软件测试装置进行详细描述,下面从硬件处理的角度对本发明实施例中软件测试设备进行详细描述。
139.图5是本发明实施例提供的一种软件测试设备的结构示意图,该软件测试设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对软件测试设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在软件测试设备500上执行存储介质530中的一系列指令操作。
140.软件测试设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的软件测试设备结构并不构成对软件测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
141.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述软件测试方法的步骤。
142.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
143.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
144.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
145.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些
修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1