CN115827480A - 用于船舶性能预报app的自动化测试方法、装置及系统 - Google Patents
用于船舶性能预报app的自动化测试方法、装置及系统 Download PDFInfo
- Publication number
- CN115827480A CN115827480A CN202211642076.5A CN202211642076A CN115827480A CN 115827480 A CN115827480 A CN 115827480A CN 202211642076 A CN202211642076 A CN 202211642076A CN 115827480 A CN115827480 A CN 115827480A
- Authority
- CN
- China
- Prior art keywords
- test
- app
- execution
- ship performance
- data
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件测试技术领域,具体公开了一种用于船舶性能预报APP的自动化测试方法、装置及系统,包括:向控制平台发送查询计算服务器工作状态的请求;当计算服务器工作状态为正常时,向控制平台发起测试执行任务,以获得被测件相关信息;对被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,并根据船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例;将船舶性能预报APP的测试用例中的测试用例参数发送至控制平台,以使得控制平台能够根据测试用例参数执行测试并获得测试执行数据;获取控制平台的测试执行数据,并根据测试执行数据生成测试报告。本发明提供的用于船舶性能预报APP的自动化测试方法提高了测试效率。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种用于船舶性能预报APP的自动化测试方法、用于船舶性能预报APP的自动化测试装置及自动化测试系统。
背景技术
随着软件业蓬勃发展,各种软件需求纷繁而来,在潮起潮落的IT洪流中,软件项目越来越凸现大型化、复杂化的发展趋势。随之而来,软件中错误发生的几率也大大增加,其中潜在的缺陷与故障所造成的损失不断发生。同时软件系统中的质量问题可能造成严重损失,甚至灾难,因此软件质量问题已为软件开发中的焦点问题。而软件测试作为软件质量保证的重要手段,越来越受到重视,成为了软件开发过程中不可或缺的流程,并伴随其始末。然而软件测试是一个工作繁杂,且具有一定重复性的工作,其工作量和时间耗费巨大。对可靠性要求更高的大型软件系统,其测试工作已占到整个软件项目工作量的50%~60%。
传统的手工测试虽然仍为基本方式,但自动化测试得到了越来越广泛的运用,自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。自动化工具将测试用例中描述的规程一步步自动执行,并得到实际结果与期望结果的比较,自动判定测试用例执行的通过情况。在此过程中,大大地节省人力、时间或硬件资源,提高测试效率。由于自动化测试这些优点,越来越多的软件测试引入自动化测试技术。近年来,受益于计算机水平的不断提高、成本的不断下降,以及国家在科研领域的持续投入,涌现大量计算流体力学 CFD(Computational Fluid Dynamics)软件,这些软件经过知识封装已经形成了一系列的船舶性能预报应用程序(APP)。这些船舶性能预报APP需要在开发过程中进行单元测试和集成测试,以保证软件质量。同时需要还需要对船舶性能预报APP进行验证与确认。
而当前针对船舶性能预报APP的测试仍然以手工测试为主,手工测试效率低下,无法适用于大量复杂的船舶性能预报APP的测试。因此,如何能够适应大量复杂的船舶性能预报APP测试活动并提高测试效率成为本领域技术人员亟待解决的技术问题。
发明内容
本发明提供了一种用于船舶性能预报APP的自动化测试方法、用于船舶性能预报APP的自动化测试装置及自动化测试系统,解决相关技术中存在的手工测试效率低的问题。
作为本发明的第一个方面,提供一种用于船舶性能预报APP的自动化测试方法,其中,包括:
向控制平台发送查询计算服务器工作状态的请求;
当所述控制平台反馈的计算服务器工作状态为正常时,向所述控制平台发起测试执行任务,以获得所述控制平台反馈的被测件相关信息,所述被测件相关信息包括被测件基本信息和被测件配置信息;
对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,并根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例;
将所述船舶性能预报APP的测试用例中的测试用例参数发送至所述控制平台,以使得所述控制平台能够根据所述测试用例参数执行测试并获得测试执行数据;
获取所述控制平台的测试执行数据,并根据所述测试执行数据生成测试报告。
进一步地,对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,包括:
解析所述被测件配置信息,获得测试方案基础信息,所述测试方案基础信息包括船舶性能预报APP的输入参数对象序列、输出参数对象序列和组件对象序列;
根据所述测试方案基础信息生成对应的UI界面设计结构数据,其中所述UI界面设计结构数据包括显示控件类型、数据格式化验证方式、显示名称和输入提示。
进一步地,根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例,包括:
获取所述UI界面设计结构数据和被测件基本信息;
根据所述UI界面设计结构数据生成输入参数的表单页面;
根据参数生成算法建立测试用例参数;
将所有测试用例参数进行组合,生成测试用例列表,所述测试用例列表包括多个船舶性能预报APP的测试用例。
进一步地,所述参数生成算法包括:等比数列、等差数列、随机数、字典法和公式法中的至少一种。
进一步地,获取所述控制平台的测试执行数据,包括:
开启测试执行数据收集事务线程,以实时收集所述控制平台返回的测试执行数据,其中所述测试执行数据包括执行状态数据、执行返回数据和执行服务器状态信息。
进一步地,所述用于船舶性能预报APP的自动化测试方法还包括在所述获取所述控制平台的测试执行数据的步骤后进行的:
根据所述测试执行数据分别更新测试用例的执行时间与执行状态以及测试用例组件的执行时间与执行状态;
根据所述测试执行数据判断测试用例的执行是否出现异常;
当确定测试用例的执行未出现异常时,保存所述测试执行数据及其对应的测试用例;
将所述测试用例的执行最后状态更新至所述控制平台。
进一步地,根据所述测试执行数据生成测试报告,包括:
接收用户的测试报告生成请求;
根据所述测试报告生成请求查询对应的报告数据;
若所述报告数据完备,则将所述测试报告生成请求插入至生成报告队列,并向用户返回受理提交信息;
循环读取所述生成报告队列中的测试报告生成请求,并在所述生成报告队列为非空时执行与所述测试报告生成请求对应的报告生成任务。
进一步地,在所述生成报告队列为非空时执行与所述测试报告生成请求对应的报告生成任务,包括:
查询所述测试报告所涉及的被测件的所有相关信息,所述被测件的所有相关信息包括:测试方案信息、测试用例信息、测试用例执行信息、测试用例输入参数信息、测试用例实际输出信息、测试用例预期输出信息和测试用例组件执行信息;
将所述测试执行数据整理后生成测试用例归一数据;
获取测试报告模板;
根据测试用例执行情况、测试组件执行情况以及测试报告生成模版需求生成测试报告中需要显示的图形;
将所述测试用例归一数据以及所述测试报告中需要显示的图形均渲染到所述测试报告模板中;
保存上述渲染后的文件,并向用户发送测试报告生成完毕的通知。
作为本发明的另一个方面,提供一种用于船舶性能预报APP的自动化测试装置,用于实现前文所述的用于船舶性能预报APP的自动化测试方法,其中,所述用于船舶性能预报APP的自动化测试装置包括:
第一发送模块,用于向控制平台发送查询计算服务器工作状态的请求;
测试执行任务发起模块,用于当所述控制平台反馈的计算服务器工作状态为正常时,向所述控制平台发起测试执行任务,以获得所述控制平台反馈的被测件相关信息,所述被测件相关信息包括被测件基本信息和被测件配置信息;
解析处理模块,用于对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,并根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例;
第二发送模块,用于将所述船舶性能预报APP的测试用例中的测试用例参数发送至所述控制平台,以使得所述控制平台能够根据所述测试用例参数执行测试并获得测试执行数据;
获取与生成模块,用于获取所述控制平台的测试执行数据,并根据所述测试执行数据生成测试报告。
作为本发明的另一个方面,提供一种自动化测试系统,其中,包括:自动化测试平台和控制平台,所述自动化测试平台与所述控制平台通信连接,所述自动化测试平台包括前文所述的用于船舶性能预报APP的自动化测试装置,所述控制平台包括APP应用中心、数据中心和计算集群服务中心,
所述APP应用中心用于管理船舶性能预报APP的所有应用程序、应用程序基本信息、测试任务及测试执行任务;
所述数据中心用于管理船舶性能预报APP的相关文件,所述相关文件包括配置文件、编译后的发布程序、相关算例文件、相关输入文件和相关输出文件;
所述计算集群服务中心用于管理船舶性能预报APP的运行,接收其他平台发起的执行请求,以及将执行后的过程数据和结果数据返回给发起方;
所述自动化测试平台用于通过所述用于船舶性能预报APP的自动化测试装置对船舶性能预报APP进行自动化测试,以及用于管理船舶性能预报APP的测试方案、测试用例、测试执行和测试报告。
本发明提供的用于船舶性能预报APP的自动化测试方法,在确定计算服务器的工作状态为正常时,向控制平台发起测试执行任务,并在获取到被测件相关信息时,对其解析处理以获得测试用例,将测试用例中的测试用例参数发送至控制平台以实现对被测件执行测试,最终获得控制平台返回的测试执行数据,生成测试报告,这种用于船舶性能预报APP的自动化测试方法,使得自动化测试系统针对船舶性能预报APP实现完全自动化测试,相对于目前大多数船舶性能预报APP测试仍然为手工测试而言,大大提高了测试工作的效率。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
图1为本发明提供的自动化测试系统的结构框图。
图2为本发明提供的用于船舶性能预报APP的自动化测试装置的结构框图。
图3为本发明提供的用于船舶性能预报APP的自动化测试方法的流程图。
图4为本发明提供的对所述被测件相关信息进行解析处理的流程图。
图5为本发明提供的测试用例生成流程图。
图6为本发明提供的异步收集测试用例执行数据任务流程图。
图7为本发明提供的测试报告生成流程图。
图8为本发明提供的测试报告生成的具体流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互结合。下面将参考附图并结合实施例来详细说明本发明。
为了使本领域技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包括,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了适应大量、复杂的船舶性能预报APP测试活动,提供测试效率,作为本发明的一种实施例,提供了一种自动化测试系统10,如图1所示,包括:自动化测试平台100和控制平台200,所述自动化测试平台100与所述控制平台200通信连接,所述自动化测试平台100包括下文所述的用于船舶性能预报APP的自动化测试装置110,所述控制平台200包括APP应用中心210、数据中心220和计算集群服务中心230,
所述APP应用中心210用于管理船舶性能预报APP的所有应用程序、应用程序基本信息、测试任务及测试执行任务;
所述数据中心220用于管理船舶性能预报APP的相关文件,所述相关文件包括配置文件、编译后的发布程序、相关算例文件、相关输入文件和相关输出文件;
所述计算集群服务中心230用于管理船舶性能预报APP的运行,接收其他平台发起的执行请求,以及将执行后的过程数据和结果数据返回给发起方;
所述自动化测试平台100用于通过所述用于船舶性能预报APP的自动化测试装置110对船舶性能预报APP进行自动化测试,以及用于管理船舶性能预报APP的测试方案、测试用例、测试执行和测试报告。
在本发明实施例中,所述APP应用中心、数据中心和计算服务集群中心之间通信连接,三者之间的数据能够进行数据传输。具体地,APP应用中心负责管理船舶性能预报APP所有应用程序,管理应用程序基本信息,及该应用下所曾经执行过的任务,包括测试任务和其它应用发起的执行任务。数据中心主要负责管理APP相关的文件信息及文件存储。其文件类型包括APP的配置文件,APP编译后的发布程序,APP相关算例文件,APP相关输入文件、APP相关输出文件。计算集群服务中心则负责APP运行。该计算集群服务中心接收其它服务发起执行请求,并将执行后的过程数据,结果数据发布给发起方。同时对于输出的文件保存到数据中心,方便发起方进行后处理。
另外,在本发明实施例中,所述自动化测试平台还包括船舶性能预报APP测试方案管理模块、测试方案基础信息管理模块、测试用例管理模块、测试执行管理模块和测试报告管理模块,具体地:
船舶性能预报APP测试方案管理模块,用于管理具体的软件测试方案;
测试方案基础信息管理模块,用于存储和调用包括:测试输入参数、输出参数和测试组件信息的基础信息;
测试用例管理模块,用于存储和调用包括:测试输入数据、测试预期输出、断言方式、测试算法插件管理和测试数据生成的测试用例信息;
测试执行管理模块,用于运行包括:测试执行设置、测试执行启动、测试数据收集、测试状态更新的测试执行方法;
测试报告管理模块,用于测试模板管理和测试报告渲染的功能。
本发明实施例提供的自动化测试系统,以B/S架构为基础,前后端分离的方式开发,采用MySQL做数据库,保存测试方案、测试用例、测试执行、测试报告相关数据。在系统中采用异步任务方式,分别测试执行任务的发布,测试任务的执行,测试执行结果数据的收集,计算集群状态数据收集。
系统后端采用J2EE框架,采用3层模型: Controller控制层、Service业务逻辑服务层和Dao数据访问层。Controller控制层负责请求转发,接受客户端传过来的参数,并传给Service业务逻辑服务层处理,再将返回值传给客户端。Service业务逻辑服务层专注业务逻辑处理,对于其中需要的数据库操作,都通过Dao数据访问层去实现。Dao数据访问层主要做数据持久层的工作,负责与数据库、文件系统底层交互,属于比较基础的操作,具体到对于某个表、某个实体的增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求。同时在后端系统中引入异步任务,定时任务,周期任务,分别完成测试执行任务的发布,测试政务的执行,测试执行结果数据的收集,计算集群状态数据收集,报告渲染。在系统中还开通了WebSocket通信。WebSocket是一种在单个TCP连接上进行全双工通信的协议。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 服务端主要通过WebSocket将测试执行任务情况,测试执行结果,计算集群的状态异常,测试报告渲染状态等信息发送到客户端。
综上,本发明提供的自动化测试系统,由于采用了控制平台与自动化测试平台相结合,且自动化测试平台能够通过用于船舶性能预报APP的自动化测试装置对船舶性能预报APP进行自动化测试,以及用于管理船舶性能预报APP的测试方案、测试用例、测试执行和测试报告,实现了对船舶性能预报APP的完全自动化测试,相对于目前大多数船舶性能预报APP测试仍然为手工测试而言,大大提高了测试工作的效率。
上述用于船舶性能预报APP的自动化测试装置,用于实现下文所述的用于船舶性能预报APP的自动化测试方法,如图2所示,所述用于船舶性能预报APP的自动化测试装置110包括:
第一发送模块111,用于向控制平台发送查询计算服务器工作状态的请求;
测试执行任务发起模块112,用于当所述控制平台反馈的计算服务器工作状态为正常时,向所述控制平台发起测试执行任务,以获得所述控制平台反馈的被测件相关信息,所述被测件相关信息包括被测件基本信息和被测件配置信息;
解析处理模块113,用于对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,并根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例;
第二发送模块114,用于将所述船舶性能预报APP的测试用例中的测试用例参数发送至所述控制平台,以使得所述控制平台能够根据所述测试用例参数执行测试并获得测试执行数据;
获取与生成模块115,用于获取所述控制平台的测试执行数据,并根据所述测试执行数据生成测试报告。
在本发明实施例中,所述用于船舶性能预报APP的自动化测试装置,在确定计算服务器的工作状态为正常时,向控制平台发起测试执行任务,并在获取到被测件相关信息时,对其解析处理以获得测试用例,将测试用例中的测试用例参数发送至控制平台以实现对被测件执行测试,最终获得控制平台返回的测试执行数据,生成测试报告,这种用于船舶性能预报APP的自动化测试装置应用在自动化测试系统中,使得自动化测试系统针对船舶性能预报APP实现完全自动化测试,相对于目前大多数船舶性能预报APP测试仍然为手工测试而言,大大提高了测试工作的效率,同时在测试数据的收集、整理、分析上更为全面,且多维度,能够更好的进行缺陷定位,规范船舶性能预报APP开发。另外,本发明提供的用于船舶性能预报APP的自动化测试装置,还提供了可扩展的测试用例生成方法、可定制测试执行策略、以及自动化测试数据收集、整理、分析、报告生成,为测试人员提供了更为灵活的自动化测试。
为了能够有效实现自动化测试,作为本发明的另一实施例,提供了一种用于船舶性能预报APP的自动化测试方法,该用于船舶性能预报APP的自动化测试方法应用在前文所述的用于船舶性能预报APP的自动化测试装置中,如图3所示,包括:
S100、向控制平台发送查询计算服务器工作状态的请求;
如前文所述可知,所述控制平台具体可以包括APP应用中心、数据中心和计算集群服务中心,本发明实施例中查询计算服务器工作状态的请求则是发送至计算集群服务中心,当计算集群服务中心返回的计算服务器工作状态为正常时才能够进行下面的测试任务,如果不正常则直接放弃。
S200、当所述控制平台反馈的计算服务器工作状态为正常时,向所述控制平台发起测试执行任务,以获得所述控制平台反馈的被测件相关信息,所述被测件相关信息包括被测件基本信息和被测件配置信息;
在本发明实施例中,接收到所述控制平台反馈的计算服务器工作状态为正常时,向控制平台发起测试执行任务,此处是针对APP应用中心发起测试执行任务,并获得返回的被测件相关信息,具体可以包括被测件基本信息和被测件配置信息。
具体地,所述被测件基本信息具体可以通过APP应用中心获取,包括被测船舶性能预报APP的名称、版本、发布日期、相关文件信息;所述被测件配置信息具体可以通过数据中心获取,包括船舶性能APP输入参数,输出参数,运行组件及运行组件运行的流程信息。
S300、对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,并根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例;
在本发明实施例中,由于获取到的被测件的相关信息无法直接使用,因此,需要对被测件相关信息进行解析处理,此处主要是针对被测件配置信息进行解析处理。
具体地,如图4所示,对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,包括:
S310、解析所述被测件配置信息,获得测试方案基础信息,所述测试方案基础信息包括船舶性能预报APP的输入参数对象序列、输出参数对象序列和组件对象序列;
在本发明实施例中,解析被测船舶性能APP的配置文件,抽象出用于测试用例生成的测试方案基础信息,该测试方案基础信息主要包括APP输入参数对象序列、APP输出参数对象序列、组件执行对象序列。其中APP输入参数对象序列包括:参数ID、参数名称、参数类型和参数样例;APP输出参数对象序列包括:参数ID、参数名称、参数类型和参数表现形式;组件执行对象序列包括组件名称,组件ID和组件执行顺序。
S320、根据所述测试方案基础信息生成对应的UI界面设计结构数据,其中所述UI界面设计结构数据包括显示控件类型、数据格式化验证方式、显示名称和输入提示。
在本发明实施例中,根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例,如图5所示,包括:
S330、获取所述UI界面设计结构数据和被测件基本信息;
在本发明实施例中,获取前文生成的UI界面设计结构数据,所述被测件基本信息具体为被测船舶性能预报APP的基本信息,如名称、版本、发布日期、相关文件信息等等。
S340、根据所述UI界面设计结构数据生成输入参数的表单页面;
在本发明实施例中,具体根据UI界面设计结构数据动态渲染生成输入参数的表单页面。
S350、根据参数生成算法建立测试用例参数;
在本发明实施例中,所述参数生成算法包括:等比数列、等差数列、随机数、字典法和公式法中的至少一种。
该步骤中,需要选择参数生成算法,在采用插件方式,集成多种参数生成算法,动态加载,根据参数生成算法设置,生成测试用例输入数据。
在本发明实施例中,数据生成插件需要满足下面接口设计:
/**
* 生成数据接口
*/
public interface GenDataInterface {
/**
* 获取算法UI显示界面结构数据,用于界面渲染
* @return UI显示界面结构数据
*/
JSONObject getUIData() ;
/**
* 生成数据
* @param genParam 算法生成配置参数, UI显示界面结构数据对应的参数
* @return 生成的数据
*/
List<Object> genData(JSONObject genParam);
/**
* 生成数据文件
* @param genParam 算法生成配置参数, UI显示界面结构数据对应的参数
* @return 生成的数据文件
*/
List<File> genDataFile(JSONObject genParam);
}
加载算法的过程为:先调用getUIData方法,获取显示界面,然后渲染界面,用用户配置算法参数,再调用genData 或genDataFile方法生成参数或者输入文件。
S360、将所有测试用例参数进行组合,生成测试用例列表,所述测试用例列表包括多个船舶性能预报APP的测试用例。
在本发明实施例中,所述测试用例列表中的测试用例顺序可以进行调整,并不作限定。
在所述测试用例获得后,生成测试方案下的测试用例实体,抽象的测试用例包括测试用例ID、测试用例名称、对应测试方案、适用软件版本、测试输入参数列表、预期输出参数列表、测试执行顺序号。其中APP输入参数对象包含:参数ID、参数名称、参数类型、测试输入数据值;APP输出参数对象包含:参数ID、参数名称、参数类型、参数表现形式、预期输出值、预期比对形式(包括恒等、对比精度、横等、精度比较、范围比较、公式比较)。 最后将测试用例文件上传到数据中心统一管理。
S400、将所述船舶性能预报APP的测试用例中的测试用例参数发送至所述控制平台,以使得所述控制平台能够根据所述测试用例参数执行测试并获得测试执行数据;
在本发明实施例中,在获取到所述船舶性能预报APP的测试用例后,为了提高效率减小损耗,将所述测试动力中的测试用例参数发送至控制平台,而无需将所有测试用例发送过去,这样能够使得控制平台更加快速的执行测试。
需要说明的是,所述测试用例中还包括测试用例执行方式,所述测试用例执行方式包括立即执行、周期执行和指定时间执行。
具体地,周期执行适用于周期性执行、日常维护、在某时刻需要完成的任务等场景,它是一个具有时间含义的字符串,字符串以5~6个空格隔开,分为6~7个域,格式为X X XX X X X。其中X是一个域的占位符。最后一个代表年份的域非必须,可省略。单个域有多个取值时,使用半角逗号隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符,每个域最多支持一个前导零。
S500、获取所述控制平台的测试执行数据,并根据所述测试执行数据生成测试报告。
在本发明实施例中,当控制平台根据测试用例参数对被测件执行完测试后,会获得测试执行数据。
具体地,获取所述控制平台的测试执行数据,包括:
开启测试执行数据收集事务线程,以实时收集所述控制平台返回的测试执行数据,其中所述测试执行数据包括执行状态数据、执行返回数据和执行服务器状态信息。
进一步地,所述用于船舶性能预报APP的自动化测试方法还包括在所述获取所述控制平台的测试执行数据的步骤后进行的:
根据所述测试执行数据分别更新测试用例的执行时间与执行状态以及测试用例组件的执行时间与执行状态;
根据所述测试执行数据判断测试用例的执行是否出现异常;
当确定测试用例的执行未出现异常时,保存所述测试执行数据及其对应的测试用例;
将所述测试用例的执行最后状态更新至所述控制平台。
应当理解的是,如图6所示,为异步收集测试用例执行数据任务流程。该任务由测试用例执行请求成功后被启动。任务启动后接收集群计算中心发送的测试用例执行消息,消息类型有7种,类型包括:1)测试用例执行任务创建信息;2)测试用例执行任务开始执行信息;3)测试用例组件执行信息;4)测试用例执行任务执行状态变更信息;5)测试用例执行状态变更信息;6)测试用例输出返回值信息;7)集群计算中心重启及异常信息。
在实时接收这上述7类消息后,用于更新测试用例的执行时间及执行状态;更新测试用例组件执行的时间及执行状态;保存测试用例的执行输出结果;对比预期结果和实际输出,更新测试用例的通过情况;其中测试用例执行任务的执行最后状态还需要更新到APP应用中心的任务管理;最后测试用例执行输出中的如果存在文件,需要在数据中心下载,保存到本地,进行数据备份。在整个过程中,对所有的接收信息进行日志记录,便于后处理分析。
需要说明的是,为了减小耗时以及降低资源消耗,针对上述测试报告通过异步生成,这样用户可以选择生成单一或者多测试用例执行情况的报告。当用户提交生成请求后,立即返回,控制平台采用排队处理生成渲染报告,生成结束后,通过通知的方式通知用户下载测试报告。
在本发明实施例中,根据所述测试执行数据生成测试报告,如图7所示,包括:
S510、接收用户的测试报告生成请求;
S520、根据所述测试报告生成请求查询对应的报告数据;
S530、若所述报告数据完备,则将所述测试报告生成请求插入至生成报告队列,并向用户返回受理提交信息;
S540、循环读取所述生成报告队列中的测试报告生成请求,并在所述生成报告队列为非空时执行与所述测试报告生成请求对应的报告生成任务。
在本发明实施例中,所述测试报告生成请求可以包括测试用例集和测试报告生成模版。控制平台将查询报告数据,如果数据完备,则将请求插入到生成报告队列后返回受理提交信息,否则返回受理失败,并给出失败原因。
具体地,在所述生成报告队列为非空时执行与所述测试报告生成请求对应的报告生成任务,如图8所示,包括:
S541、查询所述测试报告所涉及的被测件的所有相关信息,所述被测件的所有相关信息包括:测试方案信息、测试用例信息、测试用例执行信息、测试用例输入参数信息、测试用例实际输出信息、测试用例预期输出信息和测试用例组件执行信息;
S542、将所述测试执行数据整理后生成测试用例归一数据;
在本发明实施例中,所述测试用例归一数据的数据格式为JSON格式。
S543、获取测试报告模板;
在本发明实施例中,所述测试报告模板包括模版基本数据,及模版对应的DOCX格式文件。
S544、根据测试用例执行情况、测试组件执行情况以及测试报告生成模版需求生成测试报告中需要显示的图形;
在本发明实施例中,根据测试用例执行情况、测试组件执行情况以及测试报告生成模版需求生成报告中需要显示的图形,包括统计图及对比图。图形显示类型包括饼图、曲线图、柱状图。
S545、将所述测试用例归一数据以及所述测试报告中需要显示的图形均渲染到所述测试报告模板中;
在本发明实施例中,将测试JSON数据以及图形渲染到模版文件中。该步骤主要采用到技术Apache POI对WORD文件进行渲染。
需要说明的是,所述测试报告具体可以采用WORD格式生成,也可以采用PDF格式生成。
测试报告WORD格式生成:将测试数据,转换为JSON格式,将数据渲染到所述WORD报告中,数据渲染包括:渲染简单文本、表格和图像。
测试报告PDF格式生成:将测试数据,转换为JSON格式,将数据渲染到WORD报告中,并添加水印。最后将文档转换成PDF格式,包括图片格式及普通格式,并为文档添加编辑密码,防止文档被篡改。
S546、保存上述渲染后的文件,并向用户发送测试报告生成完毕的通知。
具体地,通过Web Socket方式向用户发送上述通知。
综上,本发明提供的用于船舶性能预报APP的自动化测试方法,在确定计算服务器的工作状态为正常时,向控制平台发起测试执行任务,并在获取到被测件相关信息时,对其解析处理以获得测试用例,将测试用例中的测试用例参数发送至控制平台以实现对被测件执行测试,最终获得控制平台返回的测试执行数据,生成测试报告,这种用于船舶性能预报APP的自动化测试方法,使得自动化测试系统针对船舶性能预报APP实现完全自动化测试,相对于目前大多数船舶性能预报APP测试仍然为手工测试而言,大大提高了测试工作的效率,同时在测试数据的收集、整理、分析上更为全面,且多维度,能够更好的进行缺陷定位,规范船舶性能预报APP开发。另外,本发明提供的用于船舶性能预报APP的自动化测试方法,还提供了可扩展的测试用例生成方法、可定制测试执行策略、以及自动化测试数据收集、整理、分析、报告生成,为测试人员提供了更为灵活的自动化测试。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (10)
1.一种用于船舶性能预报APP的自动化测试方法,其特征在于,包括:
向控制平台发送查询计算服务器工作状态的请求;
当所述控制平台反馈的计算服务器工作状态为正常时,向所述控制平台发起测试执行任务,以获得所述控制平台反馈的被测件相关信息,所述被测件相关信息包括被测件基本信息和被测件配置信息;
对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,并根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例;
将所述船舶性能预报APP的测试用例中的测试用例参数发送至所述控制平台,以使得所述控制平台能够根据所述测试用例参数执行测试并获得测试执行数据;
获取所述控制平台的测试执行数据,并根据所述测试执行数据生成测试报告。
2.根据权利要求1所述的用于船舶性能预报APP的自动化测试方法,其特征在于,对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,包括:
解析所述被测件配置信息,获得测试方案基础信息,所述测试方案基础信息包括船舶性能预报APP的输入参数对象序列、输出参数对象序列和组件对象序列;
根据所述测试方案基础信息生成对应的UI界面设计结构数据,其中所述UI界面设计结构数据包括显示控件类型、数据格式化验证方式、显示名称和输入提示。
3.根据权利要求2所述的用于船舶性能预报APP的自动化测试方法,其特征在于,根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例,包括:
获取所述UI界面设计结构数据和被测件基本信息;
根据所述UI界面设计结构数据生成输入参数的表单页面;
根据参数生成算法建立测试用例参数;
将所有测试用例参数进行组合,生成测试用例列表,所述测试用例列表包括多个船舶性能预报APP的测试用例。
4.根据权利要求3所述的用于船舶性能预报APP的自动化测试方法,其特征在于,所述参数生成算法包括:等比数列、等差数列、随机数、字典法和公式法中的至少一种。
5.根据权利要求1至4中任意一项所述的用于船舶性能预报APP的自动化测试方法,其特征在于,获取所述控制平台的测试执行数据,包括:
开启测试执行数据收集事务线程,以实时收集所述控制平台返回的测试执行数据,其中所述测试执行数据包括执行状态数据、执行返回数据和执行服务器状态信息。
6.根据权利要求5所述的用于船舶性能预报APP的自动化测试方法,其特征在于,所述用于船舶性能预报APP的自动化测试方法还包括在所述获取所述控制平台的测试执行数据的步骤后进行的:
根据所述测试执行数据分别更新测试用例的执行时间与执行状态以及测试用例组件的执行时间与执行状态;
根据所述测试执行数据判断测试用例的执行是否出现异常;
当确定测试用例的执行未出现异常时,保存所述测试执行数据及其对应的测试用例;
将所述测试用例的执行最后状态更新至所述控制平台。
7.根据权利要求1至4中任意一项所述的用于船舶性能预报APP的自动化测试方法,其特征在于,根据所述测试执行数据生成测试报告,包括:
接收用户的测试报告生成请求;
根据所述测试报告生成请求查询对应的报告数据;
若所述报告数据完备,则将所述测试报告生成请求插入至生成报告队列,并向用户返回受理提交信息;
循环读取所述生成报告队列中的测试报告生成请求,并在所述生成报告队列为非空时执行与所述测试报告生成请求对应的报告生成任务。
8.根据权利要求7所述的用于船舶性能预报APP的自动化测试方法,其特征在于,在所述生成报告队列为非空时执行与所述测试报告生成请求对应的报告生成任务,包括:
查询所述测试报告所涉及的被测件的所有相关信息,所述被测件的所有相关信息包括:测试方案信息、测试用例信息、测试用例执行信息、测试用例输入参数信息、测试用例实际输出信息、测试用例预期输出信息和测试用例组件执行信息;
将所述测试执行数据整理后生成测试用例归一数据;
获取测试报告模板;
根据测试用例执行情况、测试组件执行情况以及测试报告生成模版需求生成测试报告中需要显示的图形;
将所述测试用例归一数据以及所述测试报告中需要显示的图形均渲染到所述测试报告模板中;
保存上述渲染后的文件,并向用户发送测试报告生成完毕的通知。
9.一种用于船舶性能预报APP的自动化测试装置,用于实现权利要求1至8中任意一项所述的用于船舶性能预报APP的自动化测试方法,其特征在于,所述用于船舶性能预报APP的自动化测试装置包括:
第一发送模块,用于向控制平台发送查询计算服务器工作状态的请求;
测试执行任务发起模块,用于当所述控制平台反馈的计算服务器工作状态为正常时,向所述控制平台发起测试执行任务,以获得所述控制平台反馈的被测件相关信息,所述被测件相关信息包括被测件基本信息和被测件配置信息;
解析处理模块,用于对所述被测件相关信息进行解析处理,以获得船舶性能预报APP的测试方案信息,并根据所述船舶性能预报APP的测试方案信息生成船舶性能预报APP的测试用例;
第二发送模块,用于将所述船舶性能预报APP的测试用例中的测试用例参数发送至所述控制平台,以使得所述控制平台能够根据所述测试用例参数执行测试并获得测试执行数据;
获取与生成模块,用于获取所述控制平台的测试执行数据,并根据所述测试执行数据生成测试报告。
10.一种自动化测试系统,其特征在于,包括:自动化测试平台和控制平台,所述自动化测试平台与所述控制平台通信连接,所述自动化测试平台包括权利要求9所述的用于船舶性能预报APP的自动化测试装置,所述控制平台包括APP应用中心、数据中心和计算集群服务中心,
所述APP应用中心用于管理船舶性能预报APP的所有应用程序、应用程序基本信息、测试任务及测试执行任务;
所述数据中心用于管理船舶性能预报APP的相关文件,所述相关文件包括配置文件、编译后的发布程序、相关算例文件、相关输入文件和相关输出文件;
所述计算集群服务中心用于管理船舶性能预报APP的运行,接收其他平台发起的执行请求,以及将执行后的过程数据和结果数据返回给发起方;
所述自动化测试平台用于通过所述用于船舶性能预报APP的自动化测试装置对船舶性能预报APP进行自动化测试,以及用于管理船舶性能预报APP的测试方案、测试用例、测试执行和测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211642076.5A CN115827480B (zh) | 2022-12-20 | 2022-12-20 | 用于船舶性能预报app的自动化测试方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211642076.5A CN115827480B (zh) | 2022-12-20 | 2022-12-20 | 用于船舶性能预报app的自动化测试方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115827480A true CN115827480A (zh) | 2023-03-21 |
CN115827480B CN115827480B (zh) | 2023-05-12 |
Family
ID=85517073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211642076.5A Active CN115827480B (zh) | 2022-12-20 | 2022-12-20 | 用于船舶性能预报app的自动化测试方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827480B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110302454A1 (en) * | 2010-06-07 | 2011-12-08 | Salesforce.Com, Inc. | Performing asynchronous testing of an application occasionally connected to an online services system |
WO2013123545A2 (de) * | 2012-02-24 | 2013-08-29 | Ait Austrian Institute Of Technology Gmbh | Verfahren zur modellbasierten erstellung von testdatensätzen zur prüfung von bildverarbeitungsalgorithmen |
US20180060207A1 (en) * | 2016-08-24 | 2018-03-01 | International Business Machines Corporation | On-demand automated locale seed generation and verification |
CN111026634A (zh) * | 2019-09-27 | 2020-04-17 | 珠海随变科技有限公司 | 一种接口自动化测试系统、方法、装置及存储介质 |
CN111984533A (zh) * | 2020-08-04 | 2020-11-24 | 深圳市拔超科技有限公司 | 一种软件自动化测试系统及方法 |
CN112506807A (zh) * | 2021-02-07 | 2021-03-16 | 上海洋漪信息技术有限公司 | 服务于多系统的接口自动化测试系统 |
CN114138247A (zh) * | 2021-12-08 | 2022-03-04 | 兴业银行股份有限公司 | 适用于多系统的接口管理方法和系统 |
CN114218097A (zh) * | 2021-12-13 | 2022-03-22 | 平安证券股份有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN114238048A (zh) * | 2021-11-25 | 2022-03-25 | 广州市玄武无线科技股份有限公司 | 一种Web前端性能自动化测试方法及系统 |
CN114328217A (zh) * | 2021-12-03 | 2022-04-12 | 腾讯数码(天津)有限公司 | 应用的测试方法、装置、设备、介质及计算机程序产品 |
CN115048302A (zh) * | 2022-06-15 | 2022-09-13 | 中国工商银行股份有限公司 | 前端的兼容性测试方法及装置、存储介质、电子设备 |
CN115328784A (zh) * | 2022-08-16 | 2022-11-11 | 安徽工业大学科技园有限公司 | 一种面向敏捷接口的自动化测试方法及系统 |
-
2022
- 2022-12-20 CN CN202211642076.5A patent/CN115827480B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110302454A1 (en) * | 2010-06-07 | 2011-12-08 | Salesforce.Com, Inc. | Performing asynchronous testing of an application occasionally connected to an online services system |
WO2013123545A2 (de) * | 2012-02-24 | 2013-08-29 | Ait Austrian Institute Of Technology Gmbh | Verfahren zur modellbasierten erstellung von testdatensätzen zur prüfung von bildverarbeitungsalgorithmen |
US20180060207A1 (en) * | 2016-08-24 | 2018-03-01 | International Business Machines Corporation | On-demand automated locale seed generation and verification |
CN111026634A (zh) * | 2019-09-27 | 2020-04-17 | 珠海随变科技有限公司 | 一种接口自动化测试系统、方法、装置及存储介质 |
CN111984533A (zh) * | 2020-08-04 | 2020-11-24 | 深圳市拔超科技有限公司 | 一种软件自动化测试系统及方法 |
CN112506807A (zh) * | 2021-02-07 | 2021-03-16 | 上海洋漪信息技术有限公司 | 服务于多系统的接口自动化测试系统 |
CN114238048A (zh) * | 2021-11-25 | 2022-03-25 | 广州市玄武无线科技股份有限公司 | 一种Web前端性能自动化测试方法及系统 |
CN114328217A (zh) * | 2021-12-03 | 2022-04-12 | 腾讯数码(天津)有限公司 | 应用的测试方法、装置、设备、介质及计算机程序产品 |
CN114138247A (zh) * | 2021-12-08 | 2022-03-04 | 兴业银行股份有限公司 | 适用于多系统的接口管理方法和系统 |
CN114218097A (zh) * | 2021-12-13 | 2022-03-22 | 平安证券股份有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN115048302A (zh) * | 2022-06-15 | 2022-09-13 | 中国工商银行股份有限公司 | 前端的兼容性测试方法及装置、存储介质、电子设备 |
CN115328784A (zh) * | 2022-08-16 | 2022-11-11 | 安徽工业大学科技园有限公司 | 一种面向敏捷接口的自动化测试方法及系统 |
Non-Patent Citations (2)
Title |
---|
F. BEHRANG 等: "Poster: Automated Test Migration for Mobile Apps", 《2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION (ICSE-COMPANION)》 * |
黄愉: "基于QC软件的测试报告配置研究与应用", 《信息与电脑(理论版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115827480B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4195108A1 (en) | Method and apparatus for generating and applying deep learning model based on deep learning framework | |
CN110955640A (zh) | 跨系统数据文件的处理方法、装置、服务器和存储介质 | |
CN116594887A (zh) | 一种基于cfd软件的自动化测试方法及系统 | |
CN111666201A (zh) | 回归测试方法、装置、介质及电子设备 | |
CN111367813B (zh) | 决策引擎自动化测试方法、装置、服务器及存储介质 | |
CN112416333A (zh) | 软件模型训练方法、装置、系统、设备和存储介质 | |
CN115827480A (zh) | 用于船舶性能预报app的自动化测试方法、装置及系统 | |
CN113434221B (zh) | 软件自动化运行方法、装置、系统和服务器设备 | |
CN116257226A (zh) | 数据校验方法、装置、电子设备及存储介质 | |
CN116011955A (zh) | 一种机器人流程自动化需求实现方法、装置、设备和存储介质 | |
JP5967091B2 (ja) | システムパラメータ設定支援システム、システムパラメータ設定支援装置のデータ処理方法、およびプログラム | |
CN115269431A (zh) | 一种接口测试方法、装置、电子设备及存储介质 | |
CN114003497A (zh) | 业务系统的测试方法、装置、设备及存储介质 | |
CN114693116A (zh) | 代码评审有效性的检测方法及装置、电子设备 | |
CN113779117A (zh) | 一种数据监控方法、装置、存储介质和电子设备 | |
CN117311675B (zh) | 一种涉及分布式系统的业务配置方法、装置及电子设备 | |
CN117931155A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN115794131A (zh) | 一种自动化生成热部署程序的方法、装置以及电子设备 | |
CN114943212A (zh) | 一种参数报表生成方法及其相关设备 | |
CN114564375A (zh) | 工作压力确定方法、装置、电子设备及存储介质 | |
CN117193726A (zh) | 一种软件的并行设计方法、装置、电子设备以及介质 | |
CN114462271A (zh) | 有限元模型单元铺层信息修改方法、系统、设备及介质 | |
CN117609064A (zh) | 单元测试方法、装置、电子设备及存储介质 | |
CN117827661A (zh) | 代码语法检查方法、系统、计算机设备及存储介质 | |
CN115729989A (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Building T1, Xuelang Town, No. 99, Qingshu Road, Wuxi Economic Development Zone, Jiangsu Province, 214000 Patentee after: China Shipbuilding Orlando Wuxi Software Technology Co.,Ltd. Address before: Building T1, Xuelang Town, No. 99, Qingshu Road, Wuxi Economic Development Zone, Jiangsu Province, 214000 Patentee before: CSIC Orlando Wuxi Software Technology Co.,Ltd. |