CN111654416B - 一种物联网测试云平台和方法 - Google Patents
一种物联网测试云平台和方法 Download PDFInfo
- Publication number
- CN111654416B CN111654416B CN202010476017.XA CN202010476017A CN111654416B CN 111654416 B CN111654416 B CN 111654416B CN 202010476017 A CN202010476017 A CN 202010476017A CN 111654416 B CN111654416 B CN 111654416B
- Authority
- CN
- China
- Prior art keywords
- test
- task
- class
- scheduling
- tasks
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于物联网技术领域,具体涉及一种物联网测试云平台和方法,所述测试云平台包括:申请管理模块,用于对用户提交的测试申请进行管理和审核,将审核通过的测试申请转变为测试任务,并将测试任务发送给任务管理模块;任务管理模块,用于对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;结果与统计分析模块,用于在测试完成后,对测试结果进行汇总并形成对应的测试报告。本发明对测试任务划分调度后,下发分派至对应的自动测试系统,优化不同测试任务的执行顺序,提升了测试效率,提高了测试收益,从而提高了对物联网设备进行测试的测试管理效率。
Description
技术领域
本发明属于物联网技术领域,具体涉及一种物联网测试云平台和方法。
背景技术
随着多样化的智能物联网设备广泛应用于生产生活的各个方面,人们对物联网设备性能要求日渐提高,这也导致物联网设备的测试需求急速增长。传统的设备测试囿于单机测试、人为参与流程过多等局限性,无法应对大规模的物联网设备测试需求。
鉴于现有技术的上述问题,本申请的技术方案基于云测试的思想,为解决上述问题而建设。
发明内容
针对现有技术中的缺陷,本发明提供了一种物联网测试云平台和方法,对测试任务划分调度后,下发分派至对应的自动测试系统,优化不同测试任务的执行顺序,提升了测试效率,提高了测试收益,从而提高了对物联网设备进行测试的测试管理效率。
第一方面,本发明提供了一种物联网测试云平台,包括:
申请管理模块,用于对用户提交的测试申请进行管理和审核,将审核通过的测试申请转变为测试任务,并将测试任务发送给任务管理模块;
任务管理模块,用于对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;
结果与统计分析模块,用于在测试完成后,对测试结果进行汇总并形成对应的测试报告。
优选地,所述任务管理模块包括任务展示子模块、任务排期子模块和控制交互子模块;
所述任务展示子模块,用于对测试任务进行多样性的展示和获取用户的操作指令,并将操作指令发送给任务排期子模块或控制交互子模块;
所述任务排期子模块,用于根据操作指令对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统;
所述控制交互子模块,用于根据操作指令对自动测试系统执行测试任务时的测试过程进行实时控制。
优选地,所述的物联网测试云平台,还包括接口模块,所述接口模块包括内部接口子模块、外部接口子模块和ActiveMQ接口子模块;
所述内部接口子模块,用于负责任务管理模块与其他内部模块之间的工作协调和通知;
所外部接口子模块,用于负责任务管理模块与外部系统的工作协调和通知;
所述ActiveMQ接口子模块,用于负责任务管理模块对测试任务的实时控制。
优选地,所述任务展示子模块包括DisplayController类、用户角色控制类、任务信息类和微信公众号操作类;
所述DisplayController类是任务展示子模块的中枢类;通过用户角色控制类获取用户角色信息,得到用户的操作权限;通过任务信息类上报的任务基础信息、任务相关测试例信息和测试日志信息,完成任务展示;通过微信公众号操作类对微信用户进行绑定,将任务节点通知消息通过微信公众号推送至指定用户。
优选地,所述任务排期子模块包括AlgorithmController类、AlgorithmService类、AbilityService类和SystemService类;
所述AlgorithmController类是任务排期子模块的核心调度类;通过AbilityService类获取算法执行前物联网测试云平台测试能力信息和各自动测试系统测试能力信息,通过SystemService类获取自动测试系统测试队列和测试状态信息,通过AlgorithmService类获取划分调度算法并对测试任务进行划分调度,将划分调度后的子测试任务分派给对应的自动测试系统进行测试。
优选地,所述控制交互子模块包括CMDMessage类、CMDService类、ProducerService类、ConsumerService类和JmsController类;
所述CMDMessage类是控制交互子模块的基础消息数据类;所述CMDService类负责编辑和操作不同类型的CMDMessage类,为JmsController类提供实例对象并执行JmsController类的具体调用指令;所述ProducerService类是ActiveMQ消息生产者操作类,负责执行JmsController类发出的发送消息指令;所述ConsumerService类是ActiveMQ消息消费者操作类,负责监听来自ActiveMQ消息队列的消息,并反馈至JmsController类处理;所述JmsController类是控制交互模块的核心处理类,根据用户提出的各种请求向自动测试系统发出对应的控制指令。
优选地,所述任务排期子模块通过测试任务排期模型对测试任务进行划分调度。
优选地,所述测试任务排期模型对测试任务进行划分调度,具体为:
读取测试任务排期请求并确定测试任务基本信息;
读取物联网测试云平台所有自动测试系统信息;
调用测试任务划分算法对测试任务基本信息和自动测试系统信息进行分析,寻找满足目标函数的测试任务划分方案;
如果不存在满足目标函数的测试任务划分方案,则拒绝测试任务排期请求,如果存在满足目标函数的测试任务划分方案,则输出测试任务划分方案;
在确定输出测试任务划分方案后,调用子测试任务调度算法对划分后的子测试任务进行调度排期,并输出最终的排期结果,以便自动测试系统根据排期结果执行任务。
优选地,所述测试任务划分算法为基于遗传算法的测试任务划分算法,所述子测试任务调度算法为基于优先级的子测试任务调度算法。
第二方面,本发明提供了一种物联网测试方法,适用于第一方面所述的物联网测试平台,包括以下步骤:
对用户提交的测试申请进行管理和审核;
对审核通过的测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;
在测试完成后,对测试结果进行汇总并形成对应的测试报告
本发明的技术方案,对测试任务划分调度后,下发分派至对应的自动测试系统,优化不同测试任务的执行顺序,提升了测试效率,提高了测试收益,从而提高了对物联网设备进行测试的测试管理效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本实施例中物联网测试云平台的部分结构示意图;
图2为本实施例中任务展示子模块的工作流程示意图;
图3为本实施例中任务排期子模块的工作流程示意图;
图4为本实施例中控制交互子模块对实时控制指令进行处理的工作流程示意图;
图5为本实施例中对测试任务进行划分的示意图;
图6为本实施例中对子测试任务进行调度的示意图;
图7为本实施例中遗传算法进行交叉操作的示意图;
图8为本实施例中遗传算法进行变异操作的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
实施例一:
本实施例提供了一种物联网测试云平台,包括:
申请管理模块,用于对用户提交的测试申请进行管理和审核,将审核通过的测试申请转变为测试任务,并将测试任务发送给任务管理模块;
任务管理模块,用于对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;
结果与统计分析模块,用于在测试完成后,对测试结果进行汇总并形成对应的测试报告。
如图1所示,所述任务管理模块包括任务展示子模块、任务排期子模块和控制交互子模块;
所述任务展示子模块,用于对测试任务进行多样性的展示和获取用户的操作指令,并将操作指令发送给任务排期子模块或控制交互子模块;
所述任务排期子模块,用于根据操作指令对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统;
所述控制交互子模块,用于根据操作指令对自动测试系统执行测试任务时的测试过程进行实时控制。
本实施例的物联网测试云平台为一个六层体系结构,由上而下分别为访问层、展示层、业务层、接口层、数据库及消息中间件、以及自动测试系统。整个平台采用B/S结构,访问层提供了两种方式供用户进入物联网测试云平台,分别为电脑PC端和移动端。展示层是访问层的具体实现方式,主要通过HTML5、Query、Bootstrap和CSS等技术实现,同时使用ajax实现访问层和业务层之间通信。业务层是整个物联网测试云平台的核心,负责平台测试任务管理、测试资源管理、测试结果管理、统计分析、用户管理和权限控制等。业务层主要分为申请管理模块、任务管理模块、结果与统计分析模块、流程管理模块、用户管理模块和日志模块。
物联网测试云平台通过申请管理模块对用户提交的测试申请进行管理审核,审核通过后将自动转变为测试任务,将测试任务发送给任务管理模块,任务管理模块维护该测试任务从测试准备到测试完成的整个生命周期,测试完成后,测试结果会汇总至结果与统计分析模块,形成对应的测试报告,至此,一个完整的测试流程结束。其他的模块中,日志模块是业务层基础模块负责记录和整合业务层操作日志,用户管理模块负责平台用户角色及其操作权限变更,流程管理模块主要负责平台业务流程控制。接口与数据层整合了平台数据存储的MySQL数据库与ActiveMQ接口。中间件层主要部署了ActiveMQ中间件,负责自动测试系统挂载层和物联网测试云平台业务层间的通信。自动测试系统挂载层通过虚拟化等技术将具有不同测试能力的自动测试系统挂载在云平台,是物联网测试云平台测试能力来源。
本实施例中,任务展示子模块是一个集物联网测试云平台访问层、展示层功能以及业务层任务管理模块任务操作相关功能为一体的子模块,负责测试任务的显示、操作,同时负责串联任务管理模块中的其他两个子模块,即任务排期子模块和控制交互子模块都需要通过任务展示子模块的界面操作来唤醒执行内部逻辑。任务排期子模块是物联网测试云平台任务管理模块的核心,负责接收任务展示子模块的指令,完成测试任务划分调度。在测试过程中,物联网测试云平台任务管理模块通过控制交互子模块完成对自动测试系统测试过程的实时控制。
本实施例的物联网测试云平台,还包括数据库,所述数据库中设有若干数据库表,所述数据库表包括:
test_task表,用于存储测试任务基本信息;既包括测试任务基本信息,如测试任务ID、名称、测试类型等,还包括自动测试系统信息、测试时间、测试进度等。
sys_user表,用于存储物联网测试云平台用户信息;包括用户ID、名称、联系方式等,用户ID会作为物联网测试云平台任务管理模块中用户权限识别的重要凭据。
sys_role表,用于存储物联网测试云平台角色信息;包含角色的id、名称等基本信息,是物联网测试云平台角色权限控制的基础。
sys_user_role表,用于存储物联网测试云平台用户和所属角色的关系;由于一个用户可以在物联网测试云平台拥有多重角色,所以sys_user_role数据表中同一user_id可以对应多行数据。
test_ability表,用于存储物联网测试云平台的森林形测试结构体系中各测试能力的基本信息;如测试类型、测试标准等;物联网测试云平台测试能力的组织形式是一个由多种树形测试能力组成的类似森林结构的体系,本实施例的三张表test_ability、test_ability_relationship和test_all_cases用来存储这样一种森林形测试结构体系的测试能力全集。
test_ability_relationship表,用于存储森林形测试结构体系中除叶子节点外的其他节点的相互关系;
test_all_cases表,用于存储森林形测试结构体系中所有叶子节点和根节点的节点信息;此处的叶子节点即为测试例。
test_sys_cases表,用于存储的是各自动测试系统可以测试的测试例的基本信息,一测试任务包括若干测试例;此表信息是物联网测试云平台任务管理模块任务排期子模块进行任务划分的基础与关键。
test_system表,用于存储物联网测试云平台挂载的自动测试系统的基础信息;如系统名称、地理位置、状态等。
test_task_cases表,用于存储测试任务与包含的测试例的关系;测试任务与测试例之间的关系是一对多关系。
test_task_case_result表,用于存储测试任务中每个测试例的测试结果信息和每个测试例的测试结论信息;
test_task_log表,用于存储每个测试任务在测试过程中产生的测试日志信息;
test_task_queue表,用于存储每个自动测试系统待测试子任务队列信息;物联网测试云平台任务管理模块中任务排期子模块运行结果会存入此表中,自动测试系统会根据此表结果进行测试任务读取。
本实施例的物联网测试云平台还包括接口模块,所述接口模块包括内部接口子模块、外部接口子模块和ActiveMQ接口子模块;
所述内部接口子模块,用于负责任务管理模块与其他内部模块之间的工作协调和通知;其他内部模块如用户管理模块、流程管理模块、日志模块等。包括getTestApplyInfo接口、isTestDone接口等。getTestApplyInfo接口,物联网测试云平台中测试申请和测试任务是一一对应的关系,测试申请通过审核后会生成对应测试任务,getTestApplyInfo接口是任务管理模块与申请管理模块之间的接口,用于获取测试任务对应的测试申请的接口。isTestDone接口,测试任务完成后,物联网测试云平台管理模块会通过isTestDone接口通知结果与统计分析模块生成测试报告,进入测试报告阶段。
所外部接口子模块,用于负责任务管理模块与外部系统的工作协调和通知;外部系统如微信服务器等。物联网测试云平台任务管理模块与微信服务器之间的接口,如getAccessToken接口、getOpenID接口、sendTemplateMessage接口等。getAccessToken接口,access_token是微信公众号接口调用的唯一凭证,也是微信公众号功能开发的基础,getAccessToken接口用于获取access_token信息。getOpenID接口,OpenID是一种加密的用户微信号,每个用户在不同的微信公众号拥有不同的OpenID,getOpenID接口用于获取用户OpenID信息。sendTemplateMessage接口,endTemplateMessage接口用于向关注微信公众号的用户推送任务关键节点消息。
所述ActiveMQ接口子模块,用于实现任务管理模块对测试任务的实时控制;ActiveMQ接口是物联网测试云平台任务管理模块与ActiveMQ中间件之间的接口,该接口负责测试任务的实时控制,如测试任务启动、暂停等,该接口通过建立ActiveMQ点对点队列的形式实现。
本实施例的任务展示子模块负责测试任务多样化展示,同时负责任务管理模块节点消息的实时推送;任务展示子模块也是任务排期子模块和控制交互子模块的发起者和结果展示者,在整个任务管理模块中起到串联桥梁的作用。
本实施例的任务展示子模块包括DisplayController类、用户角色控制类、任务信息类和微信公众号操作类;
所述DisplayController类是任务展示子模块的中枢类;通过用户角色控制类获取用户角色信息,得到用户的操作权限;通过任务信息类上报的任务基础信息、任务相关测试例信息和测试日志信息,完成任务展示;通过微信公众号操作类对微信用户进行绑定,将任务节点通知消息通过微信公众号推送至指定用户。
所述用户角色控制类,用于负责管理用户信息、角色信息以及用户-角色关系,任务展示子模块面向不同用户展示内容不同、不同用户操作权限不同,都依赖于用户角色控制类提供的用户角色信息。
所述任务信息类,用于负责管理测试任务生命周期内的任务基础信息、测试例信息和测试日志信息;
所述微信公众号操作类,用于向DisplayController类提供微信用户绑定和微信信息推送。
本实施例的任务展示子模块主要用于用户角色识别,任务展示与消息关键节点微信公众号推送,该任务展示子模块的工作流程如图2所示。
本实施例的任务排期子模块主要负责用户测试任务的划分和调度,实现测试任务从物联网测试云平台测试任务到自动测试系统的下发。本实施例的任务排期子模块包括AlgorithmController类、AlgorithmService类、AbilityService类和SystemService类;
所述AlgorithmController类是任务排期子模块的核心调度类;通过AbilityService类获取算法执行前物联网测试云平台测试能力信息和各自动测试系统测试能力信息,通过SystemService类获取自动测试系统测试队列和测试状态信息,通过AlgorithmService类获取划分调度算法并对测试任务进行划分调度,将划分调度后的子测试任务分派给对应的自动测试系统进行测试。
所述AlgorithmService类负责管理和维护测试任务划分算法和子任务调度算法的输入信息,然后在接收到执行任务调度指令后,执行相应的算法,得到结果并返回给AlgorithmController类。
所述AbilityService类负责存储和管理物联网测试云平台测试能力信息和挂载在物联网测试云平台的各自动测试系统的测试能力信息,并将这些信息按照AlgorithmController类需求的形式反馈至AlgorithmController类。
所述SystemService类负责管理和维护物联网测试云平台下的自动测试系统基础信息和状态信息并提供至AlgorithmController类。AlgorithmController类会依据SystemService类提供的参数为自动测试系统分派测试任务。
本实施例中,任务排期子模块的工作流程如图3所示。
本实施例的控制交互子模块主要负责实现物联网测试云平台对测试任务的实时控制功能,所述的控制交互子模块包括CMDMessage类、CMDService类、ProducerService类、ConsumerService类和JmsController类;
所述CMDMessage类是控制交互子模块的基础消息数据类;其拥有的主要属性有id、missionId、msgType、operation和desc,分别表示消息ID、任务ID、消息类型、控制操作信息和消息描述。
所述CMDService类负责编辑和操作不同类型的CMDMessage,为JmsController类提供实例对象并执行JmsController类的具体调用指令;
所述ProducerService类是ActiveMQ消息生产者操作类,负责执行JmsController类发出的发送消息指令;
所述ConsumerService类是ActiveMQ消息消费者操作类,负责监控来自ActiveMQ消息队列的消息,并反馈至JmsController处理;
所述JmsController类是控制交互模块的核心处理类,根据用户提出的各种请求(如就绪、启动、暂停、重测、资源释放等)向自动测试系统发出对应的控制指令。JmsController类在接收到自动测试系统反馈的信息后,修改测试任务的状态,并修改对应数据库记录。
本实施例中控制交互子模块对实时控制指令进行处理的工作流程如图4所示。
本实施例的任务排期子模块通过测试任务排期模型对测试任务进行划分调度。其中测试任务排期模型采用测试任务划分算法对测试任务进行划分,采用调度算法对子测试任务进行调度。
对于测试任务划分:测试任务是由不同测试例组成的集合,不同的自动测试系统可以测试不同的测试例组合,测试任务划分算法就是依据特定的优化目标,如最大化测试收益、最小化测试等待时间等,将测试任务划分为不同的子测试任务,然后分配给相应的自动测试系统。如图5所示,将测试任务划分为A、B、C、D四个子测试任务。
对于子测试任务调度:本实施例中子测试任务调度是在测试任务划分结果的基础上基于测试任务优先级进一步优化各自动测试系统测试队列的执行顺序,实现最优化测试资源分配的目的。在测试任务划分算法完成后,测试任务中包含的测试例以子集合的形式分派至相应自动测试系统,并加入其测试队列尾部,但是这些待测测试例的执行顺序是随机的。调度算法基于测试任务的优先级,将测试队列中测试例执行顺序进行调度重排,完成自动测试系统测试资源分配的深入优化,提高测试资源利用率。对子测试任务进行调度的示意图如图6所示。
其中,所述测试任务排期模型对测试任务进行划分调度,具体为:
读取测试任务排期请求并确定测试任务基本信息;
读取物联网测试云平台所有自动测试系统信息;
调用测试任务划分算法对测试任务基本信息和自动测试系统信息进行分析,寻找满足目标函数的测试任务划分方案;
如果不存在满足目标函数的测试任务划分方案,则拒绝测试任务排期请求,如果存在满足目标函数的测试任务划分方案,则输出测试任务划分方案;
在确定输出测试任务划分方案后,调用子测试任务调度算法对划分后的子测试任务进行调度排期,并输出最终的排期结果,以便自动测试系统根据排期结果执行任务。
本实施例的测试任务划分算法是基于遗传算法的测试任务划分算法,子测试任务调度算法是基于优先级的子测试任务调度算法。
一、测试任务划分算法
基因、染色体和种群是遗传算法中重要的三个概念,将算法模型和这三个概念有机融合在一起,从而实现编码是运用遗传算法关键的一步。在本实施例的测试划分算法中,测试任务包含的测试例从0开始编码,同时将物联网测试云平台下挂载的自动测试系统也从0开始编码。所以,测试任务划分的一种可行解就可以表示为一个一维的整数数组TDN,数组下标代表测试任务的测试例,数组元素值代表该测试例划分到的自动测试系统,N代表测试任务包含的测试例的数目。即TD[i]=j表示测试任务第i个测试例划分至第j个自动测试系统上。
在上述编码的基础上,遗传算法三个重要概念在本实施例中的具体含义介绍如下:
基因:测试任务中测试例与划分的自动测试系统间的对应关系;染色体:一个一维基因序列,对应测试任务的一个划分方案;种群:一组染色体的集合,代表测试任务一系列划分方案集。
遗传算法有三种遗传算子,分别为选择、交叉和变异,下面具体介绍这三种算子在本算法中的设计。
a)选择
选择算子是遗传算法中的“自然选择”理论,通过保留适应度高的染色体、淘汰适应度低的染色体,使种群向期望的方向更快地收敛和演进。本实施例中的测试任务划分算法主要目标是在满足测试能力需求和测试最晚时间的情况下,保证测试净收益最大化。在测试收益固定的前提下,保证测试成本消耗低;同时考虑到测试样品管理维护成本与测试子任务数目呈正相关关系,若测试子任务的平均净收益越大,越能满足算法的目标。基于以上条件,本实施例的测试任务划分算法适应度函数如下式所示。
其中,G为测试任务收益,是一个固定值;m代表划分方案的子任务数;n为测试例数目;F(s)表示测试例i划分在自动测试系统j的测试成本。
b)交叉
交叉操作是基因重组的过程。本实施例算法采用了次序交叉法来实现交叉操作,具体思想如图7所示.随机选中父代中两个染色体的两个交叉点下标(从0开始),以图7为例,即为2和4。首先交换交叉点之间的元素,即父代1中的345交换至子代2中,父代2中的213交换至子代1中。然后每一个新子代从第二个交叉点后一位开始填充父代元素,遇到已存在元素跳过。下面以子代1为例介绍填充过程:从第5位开始填充父代第一个元素1,由于1已经存在在子代,跳过,填充父代元素2,同样存在,再次跳过,直至选择父代元素4;第6位填充父代元素5,第7位填充父代元素6;此时已经填充至子代末尾,返回子代首位填充父代元素7,然后填充父代元素8,完成子代1的构建。子代2构建同理。
c)变异
遗传算法通过变异操作为种群补充新基因序列,产生新的染色体,有利于寻找最佳的划分方案。本实施例算法中采用替换变异(Displacement Mutation)方法来完成变异操作,具体思想如图8所示。
根据变异概率p,随机选择父代中一个染色体,然后选择该染色体中的一个元素串,重新插入至剩下元素串中的一个新位置,从而产生一个新的染色体替换原有染色体,进入下一代进化过程。本实施例的测试任务划分算法流程分为五个步骤:
1:随机生成一定数量的染色体(一维整数数组),构成初始化种群G;
2:种群中染色体进行交叉操作,产生新个体;
3:随机抽取种群G中染色体进行变异操作,产生新个体;
4:选择种群中G的染色体;
5:将步骤2到步骤4迭代进行一定次数,产生最优划分方案。
本实施例的测试任务划分算法的伪代码如下所示。
input:测试任务信息、自动测试系统信息
output:测试任务划分结果
begin:
1:种群P初始化,规模N,变异概率p,迭代数M,当前代数k←0;
2:while k<M;
3:for(i=0;i<N-1;i←i+2);
4:选择个体P与P+1进行交叉操作生成子代,将新生成的加入到新的种群Q中;
5:end for;
6:种群P←种群Q+种群P;
7:for Pi∈P;
8:计算染色体Pi的适应度;
9:end for;
10:依据适应度降序排列种群P中染色体,淘汰末尾染色体直至种群P数量恢复至N;
11:for Pi∈P(i≠0);
12:以概率p对染色体体Pi进行变异操作;
13:end for;
14:k←k+1;
15:end while;
end
二、子测试任务调度算法
物联网测试云平台不同测试任务的差异性既体现在测试需求和测试内容中,也体现在测试任务的优先级上。高优先级测试任务代表着高测试收益、稳定的测试需求和尽可能短的测试等待时间。因此,在进行测试任务调度时,将测试任务优先级纳入调度算法的考虑范围十分必要。
基于遗传算法的测试任务划分算法重点在于将测试任务中包含的测试例以最大化测试收益的目标分派至不同的自动测试系统,然后加入到自动测试系统维护的测试队列末尾。由于测试任务划分算法是在测试任务维度进行的,此时每个自动测试系统测试队列中的测试例顺序仅由测试任务的排期操作执行时间决定,无法反映不同测试任务之间优先级的差异,不利于实现测试资源单位时间效益和测试效率最大化的目的。
基于优先级的子测试任务调度算法就是为了解决上述问题而设计的。子测试任务调度算法是自动测试系统层面的调度算法,根据不同测试例所对应任务的优先级完成自动测试系统测试队列资源分配的二次优化,进一步提高测试资源利用率。
自测试任务调度算法执行时机是测试任务划分算法执行成功后,算法影响范围为测试任务划分算法结果中队列信息发生变化的自动测试系统,在测试任务划分过程中未被分配新测试子任务的自动测试系统,其测试队列不需要再次优化。算法开始后,遍历目标自动测试系统集合,执行以下操作:首先,对每个自动测试系统中未调度测试例依据优先级降序排列;然后,测试例若为最高优先级,直接放在测试队列首位,否则,依据优先级和测试时间约束寻找合适位置插入;最后修改调度标识,得到优化后测试队列。
本实施例中基于优先级的子测试任务调度算法具体流程如下:
input:测试任务划分结果、自动测试系统信息
output:自动测试系统测试队列调度结果
begin:
1:读取测试任务划分算法结果,初始化测试队列发生变化的自动测试系统集合S,i←0,j←0;
2:while si∈S;
3:遍历的测试队列,将flag==0的测试例cu加入至待调度队列Cu,flag==1的测试例cs加入至调度完成队列Cs;
4:依据测试例优先级降序排列待调度集合Cu中的测试例;
5:while cuj∈Cu;
6:if cuj.p==最高优先级;
7:将cuj置于Cs队列头部,cuj.flag←1;
8:continue;
9:end if;
10:m←0;
11:while csm∈Cs;
12:if cuj的优先级大于csm的优先级且csm延期完成时间早于最晚完成时间;
13:将cuj置于Cs队列中前,cuj.flag←1;
14:break;
15:end if;
16:m←m+1;
17:end while;
18:if cuj.flag==0;
19:将cuj置于Cs队列队尾,cuj.flag←1;
20:end if
21:i←i+1
22:end while;
end
综上所述,本实施例中,通过上述的测试任务划分算法和子测试任务调度算法来对测试任务进行划分调度。本实施例的技术方案,其重点为物联网测试云平台的任务管理,致力于设计与实现一个集高效测试任务调度、测试任务实时控制为一体的测试任务管理模块,解决物联网设备测试任务管理效率低的问题。本实施例设计了一种基于遗传算法和优先级的测试任务排期模型(包括测试任务划分算法和子测试任务调度算法),主要负责将测试任务的测试例集合合理分派至物联网测试云平台的自动测试系统,同时优化不同测试任务的执行顺序,达到提升测试效率、最大化测试收益等目的。
实施例二:
本实施例提供了一种物联网测试方法,包括以下步骤:
对用户提交的测试申请进行管理和审核;
对审核通过的测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;
在测试完成后,对测试结果进行汇总并形成对应的测试报告。
本实施例的物联网测试方法,适用于实施例一的物联网测试云平台,鉴于与实施例一相同的内容,本实施例不再赘述。
本实施例的技术方案,对测试任务划分调度后,下发分派至对应的自动测试系统,优化不同测试任务的执行顺序,提升了测试效率,提高了测试收益,从而提高了对物联网设备进行测试的测试管理效率。
本领域普通技术人员可以意识到,结合本实施例中所公开的实施例描述的各示例的单元或步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的实施例中,应该理解到,所述步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可结合为一个步骤,一个步骤可拆分为多个步骤,或一些特征可以忽略等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (6)
1.一种物联网测试云平台,其特征在于,包括:
申请管理模块,用于对用户提交的测试申请进行管理和审核,将审核通过的测试申请转变为测试任务,并将测试任务发送给任务管理模块;
任务管理模块,用于对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;
结果与统计分析模块,用于在测试完成后,对测试结果进行汇总并形成对应的测试报告;
所述任务管理模块包括任务展示子模块、任务排期子模块和控制交互子模块;
所述任务展示子模块,用于对测试任务进行多样性的展示和获取用户的操作指令,并将操作指令发送给任务排期子模块或控制交互子模块;
所述任务排期子模块,用于根据操作指令对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统;
所述控制交互子模块,用于根据操作指令对自动测试系统执行测试任务时的测试过程进行实时控制;
所述任务排期子模块通过测试任务排期模型对测试任务进行划分调度;
其中,所述测试任务排期模型对测试任务进行划分调度,具体为:
读取测试任务排期请求并确定测试任务基本信息;
读取物联网测试云平台所有自动测试系统信息;
调用测试任务划分算法对测试任务基本信息和自动测试系统信息进行分析,寻找满足目标函数的测试任务划分方案;
如果不存在满足目标函数的测试任务划分方案,则拒绝测试任务排期请求,如果存在满足目标函数的测试任务划分方案,则输出测试任务划分方案;
在确定输出测试任务划分方案后,调用子测试任务调度算法对划分后的子测试任务进行调度排期,并输出最终的排期结果,以便自动测试系统根据排期结果执行任务;
所述测试任务划分算法为基于遗传算法的测试任务划分算法,所述子测试任务调度算法为基于优先级的子测试任务调度算法。
2.根据权利要求1所述的一种物联网测试云平台,其特征在于,还包括接口模块,所述接口模块包括内部接口子模块、外部接口子模块和ActiveMQ接口子模块;
所述内部接口子模块,用于负责任务管理模块与其他内部模块之间的工作协调和通知;
所外部接口子模块,用于负责任务管理模块与外部系统的工作协调和通知;
所述ActiveMQ接口子模块,用于负责任务管理模块对测试任务的实时控制。
3.根据权利要求1所述的一种物联网测试云平台,其特征在于,所述任务展示子模块包括DisplayController类、用户角色控制类、任务信息类和微信公众号操作类;
所述DisplayController类是任务展示子模块的中枢类;通过用户角色控制类获取用户角色信息,得到用户的操作权限;通过任务信息类上报的任务基础信息、任务相关测试例信息和测试日志信息,完成任务展示;通过微信公众号操作类对微信用户进行绑定,将任务节点通知消息通过微信公众号推送至指定用户。
4.根据权利要求1所述的一种物联网测试云平台,其特征在于,所述任务排期子模块包括AlgorithmController类、AlgorithmService类、AbilityService类和SystemService类;
所述AlgorithmController类是任务排期子模块的核心调度类;通过AbilityService类获取算法执行前物联网测试云平台测试能力信息和各自动测试系统测试能力信息,通过SystemService类获取自动测试系统测试队列和测试状态信息,通过AlgorithmService类获取划分调度算法并对测试任务进行划分调度,将划分调度后的子测试任务分派给对应的自动测试系统进行测试。
5.根据权利要求1所述的一种物联网测试云平台,其特征在于,所述控制交互子模块包括CMDMessage类、CMDService类、ProducerService类、ConsumerService类和JmsController类;
所述CMDMessage类是控制交互子模块的基础消息数据类;所述CMDService类负责编辑和操作不同类型的CMDMessage类,为JmsController类提供实例对象并执行JmsController类的具体调用指令;所述ProducerService类是ActiveMQ消息生产者操作类,负责执行JmsController类发出的发送消息指令;所述ConsumerService类是ActiveMQ消息消费者操作类,负责监听来自ActiveMQ消息队列的消息,并反馈至JmsController类处理;所述JmsController类是控制交互模块的核心处理类,根据用户提出的各种请求向自动测试系统发出对应的控制指令。
6.一种物联网测试方法,适用于权利要求1-5任一项所述的物联网测试云平台,其特征在于,包括以下步骤:
对用户提交的测试申请进行管理和审核;
对审核通过的测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;
在测试完成后,对测试结果进行汇总并形成对应的测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010476017.XA CN111654416B (zh) | 2020-05-29 | 2020-05-29 | 一种物联网测试云平台和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010476017.XA CN111654416B (zh) | 2020-05-29 | 2020-05-29 | 一种物联网测试云平台和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111654416A CN111654416A (zh) | 2020-09-11 |
CN111654416B true CN111654416B (zh) | 2021-12-24 |
Family
ID=72348095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010476017.XA Active CN111654416B (zh) | 2020-05-29 | 2020-05-29 | 一种物联网测试云平台和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111654416B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112653738B (zh) * | 2020-12-11 | 2022-11-11 | 浙江大学 | 一种物联网网络调试系统和调试方法 |
CN112737876B (zh) * | 2020-12-24 | 2022-07-08 | 四川爱联科技股份有限公司 | 一种基于云端的插件式测试系统及测试方法 |
CN113297080B (zh) * | 2021-05-25 | 2022-12-27 | 深圳指芯物联技术有限公司 | 一种物联网平台的简易测试方法 |
CN115480199B (zh) * | 2022-10-12 | 2023-07-28 | 广东瓦力科技有限公司 | 一种万用表自动检测工作站机器人流程自动控制系统 |
CN117591415A (zh) * | 2023-11-28 | 2024-02-23 | 中国大唐集团科学技术研究总院有限公司 | 一种用于一体机云门户平台的安全功能测试系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108296A (zh) * | 2016-11-24 | 2018-06-01 | 腾讯科技(北京)有限公司 | 一种云测试方法、服务器及客户端 |
CN111008124A (zh) * | 2019-10-25 | 2020-04-14 | 武汉迎风聚智科技有限公司 | 数据库测试的任务调度方法以及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104378252A (zh) * | 2014-08-26 | 2015-02-25 | 国家电网公司 | 一种云测试服务平台 |
US10223242B1 (en) * | 2018-08-27 | 2019-03-05 | Capital One Services, Llc | Testing an application in a production infrastructure temporarily provided by a cloud computing environment |
CN109947532B (zh) * | 2019-03-01 | 2023-06-09 | 中山大学 | 一种教育云平台中的大数据任务调度方法 |
CN110059008A (zh) * | 2019-04-12 | 2019-07-26 | 广东电网有限责任公司信息中心 | 一种面向电力业务的测试云平台系统及测试方法 |
CN110928774B (zh) * | 2019-11-07 | 2023-05-05 | 杭州顺网科技股份有限公司 | 一种基于节点式的自动化测试系统 |
CN110958307B (zh) * | 2019-11-20 | 2022-04-08 | 瑞玛思特(北京)科技有限公司 | 一种基于云的5g和物联网信号产生与分析的测试系统 |
-
2020
- 2020-05-29 CN CN202010476017.XA patent/CN111654416B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108296A (zh) * | 2016-11-24 | 2018-06-01 | 腾讯科技(北京)有限公司 | 一种云测试方法、服务器及客户端 |
CN111008124A (zh) * | 2019-10-25 | 2020-04-14 | 武汉迎风聚智科技有限公司 | 数据库测试的任务调度方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111654416A (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111654416B (zh) | 一种物联网测试云平台和方法 | |
Lin et al. | Fast GA-based project scheduling for computing resources allocation in a cloud manufacturing system | |
CN1956457B (zh) | 用于安排网格计算系统中的网格作业的方法和设备 | |
CN111562972A (zh) | 一种面向群智感知的泛在操作系统 | |
Wada et al. | Multiobjective optimization of sla-aware service composition | |
Alba et al. | Efficient parallel LAN/WAN algorithms for optimization. The MALLBA project | |
Malik et al. | Comparison of task scheduling algorithms in cloud environment | |
Teng et al. | Simmapreduce: A simulator for modeling mapreduce framework | |
He et al. | Programming framework and infrastructure for self-adaptation and optimized evolution method for microservice systems in cloud–edge environments | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
Tang et al. | Budget‐constraint stochastic task scheduling on heterogeneous cloud systems | |
Yin et al. | An improved genetic algorithm for task scheduling in cloud computing | |
Yu et al. | Cloud task scheduling algorithm based on three queues and dynamic priority | |
CN111552558A (zh) | 异构云资源的调度方法及装置 | |
CN110362391A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
Zhou et al. | Deep reinforcement learning-based algorithms selectors for the resource scheduling in hierarchical cloud computing | |
CN113010296B (zh) | 基于形式化模型的任务解析与资源分配方法及系统 | |
Miao et al. | Efficient flow-based scheduling for geo-distributed simulation tasks in collaborative edge and cloud environments | |
CN112884248B (zh) | 一种大规模云服务流程的优化方法 | |
Entezari-Maleki et al. | A genetic algorithm to increase the throughput of the computational grids | |
Eleliemy et al. | Exploring the relation between two levels of scheduling using a novel simulation approach | |
CN117076077A (zh) | 基于大数据分析的计划调度优化方法 | |
CN116248520A (zh) | 一种网络平台制造服务协作优化的基准测试方法及系统 | |
CN110048886A (zh) | 一种大数据分析任务的高效云配置选择算法 | |
CN114035919A (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 |