一种物联网测试云平台和方法

著录项
  • CN202010476017.X
  • 20200529
  • CN111654416A
  • 20200911
  • 北京智网信测科技有限公司
  • 吕松栋;王磊;梁玉红;杨洪斌;李瑞雪
  • H04L12/26
  • H04L12/26 H04L29/08

  • 北京市海淀区马甸东路19号18层2115-C
  • 北京(11)
  • 北京酷爱智慧知识产权代理有限公司
  • 卢蓉
摘要
本发明属于物联网技术领域,具体涉及一种物联网测试云平台和方法,所述测试云平台包括:申请管理模块,用于对用户提交的测试申请进行管理和审核,将审核通过的测试申请转变为测试任务,并将测试任务发送给任务管理模块;任务管理模块,用于对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;结果与统计分析模块,用于在测试完成后,对测试结果进行汇总并形成对应的测试报告。本发明对测试任务划分调度后,下发分派至对应的自动测试系统,优化不同测试任务的执行顺序,提升了测试效率,提高了测试收益,从而提高了对物联网设备进行测试的测试管理效率。
权利要求

1.一种物联网测试云平台,其特征在于,包括:

申请管理模块,用于对用户提交的测试申请进行管理和审核,将审核通过的测试申请转变为测试任务,并将测试任务发送给任务管理模块;

任务管理模块,用于对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;

结果与统计分析模块,用于在测试完成后,对测试结果进行汇总并形成对应的测试报告。

2.根据权利要求1所述的一种物联网测试云平台,其特征在于,所述任务管理模块包括任务展示子模块、任务排期子模块和控制交互子模块;

所述任务展示子模块,用于对测试任务进行多样性的展示和获取用户的操作指令,并将操作指令发送给任务排期子模块或控制交互子模块;

所述任务排期子模块,用于根据操作指令对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统;

所述控制交互子模块,用于根据操作指令对自动测试系统执行测试任务时的测试过程进行实时控制。

3.根据权利要求2所述的一种物联网测试云平台,其特征在于,还包括接口模块,所述接口模块包括内部接口子模块、外部接口子模块和ActiveMQ接口子模块;

所述内部接口子模块,用于负责任务管理模块与其他内部模块之间的工作协调和通知;

所外部接口子模块,用于负责任务管理模块与外部系统的工作协调和通知;

所述ActiveMQ接口子模块,用于负责任务管理模块对测试任务的实时控制。

4.根据权利要求2所述的一种物联网测试云平台,其特征在于,所述任务展示子模块包括DisplayController类、用户角控制类、任务信息类和操作类;

所述DisplayController类是任务展示子模块的中枢类;通过用户角控制类获取用户角信息,得到用户的操作权限;通过任务信息类上报的任务基础信息、任务相关测试例信息和测试日志信息,完成任务展示;通过操作类对用户进行绑定,将任务节点通知消息通过推送至指定用户。

5.根据权利要求2所述的一种物联网测试云平台,其特征在于,所述任务排期子模块包括AlgorithmController类、AlgorithmService类、AbilityService类和SystemService类;

所述AlgorithmController类是任务排期子模块的核心调度类;通过AbilityService类获取算法执行前物联网测试云平台测试能力信息和各自动测试系统测试能力信息,通过SystemService类获取自动测试系统测试队列和测试状态信息,通过AlgorithmService类获取划分调度算法并对测试任务进行划分调度,将划分调度后的子测试任务分派给对应的自动测试系统进行测试。

6.根据权利要求2所述的一种物联网测试云平台,其特征在于,所述控制交互子模块包括CMDMessage类、CMDService类、ProducerService类、ConsumerService类和JmsController类;

所述CMDMessage类是控制交互子模块的基础消息数据类;所述CMDService类负责编辑和操作不同类型的CMDMessage类,为JmsController类提供实例对象并执行JmsController类的具体调用指令;所述ProducerService类是ActiveMQ消息生产者操作类,负责执行JmsController类发出的发送消息指令;所述ConsumerService类是ActiveMQ消息消费者操作类,负责监听来自ActiveMQ消息队列的消息,并反馈至JmsController类处理;所述JmsController类是控制交互模块的核心处理类,根据用户提出的各种请求向自动测试系统发出对应的控制指令。

7.根据权利要求2所述的一种物联网测试云平台,其特征在于,所述任务排期子模块通过测试任务排期模型对测试任务进行划分调度。

8.根据权利要求7所述的一种物联网测试云平台,其特征在于,所述测试任务排期模型对测试任务进行划分调度,具体为:

读取测试任务排期请求并确定测试任务基本信息;

读取物联网测试云平台所有自动测试系统信息;

调用测试任务划分算法对测试任务基本信息和自动测试系统信息进行分析,寻满足目标函数的测试任务划分方案;

如果不存在满足目标函数的测试任务划分方案,则拒绝测试任务排期请求,如果存在满足目标函数的测试任务划分方案,则输出测试任务划分方案;

在确定输出测试任务划分方案后,调用子测试任务调度算法对划分后的子测试任务进行调度排期,并输出最终的排期结果,以便自动测试系统根据排期结果执行任务。

9.根据权利要求8所述的一种物联网测试云平台,其特征在于,所述测试任务划分算法为基于遗传算法的测试任务划分算法,所述子测试任务调度算法为基于优先级的子测试任务调度算法。

10.一种物联网测试方法,适用于权利要求1-9任一项所述的物联网测试平台,其特征在于,包括以下步骤:

对用户提交的测试申请进行管理和审核;

对审核通过的测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;

在测试完成后,对测试结果进行汇总并形成对应的测试报告。

说明书
技术领域

本发明属于物联网技术领域,具体涉及一种物联网测试云平台和方法。

随着多样化的智能物联网设备广泛应用于生产生活的各个方面,人们对物联网设备性能要求日渐提高,这也导致物联网设备的测试需求急速增长。传统的设备测试囿于单机测试、人为参与流程过多等局限性,无法应对大规模的物联网设备测试需求。

鉴于现有技术的上述问题,本申请的技术方案基于云测试的思想,为解决上述问题而建设。

针对现有技术中的缺陷,本发明提供了一种物联网测试云平台和方法,对测试任务划分调度后,下发分派至对应的自动测试系统,优化不同测试任务的执行顺序,提升了测试效率,提高了测试收益,从而提高了对物联网设备进行测试的测试管理效率。

第一方面,本发明提供了一种物联网测试云平台,包括:

申请管理模块,用于对用户提交的测试申请进行管理和审核,将审核通过的测试申请转变为测试任务,并将测试任务发送给任务管理模块;

任务管理模块,用于对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;

结果与统计分析模块,用于在测试完成后,对测试结果进行汇总并形成对应的测试报告。

优选地,所述任务管理模块包括任务展示子模块、任务排期子模块和控制交互子模块;

所述任务展示子模块,用于对测试任务进行多样性的展示和获取用户的操作指令,并将操作指令发送给任务排期子模块或控制交互子模块;

所述任务排期子模块,用于根据操作指令对测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统;

所述控制交互子模块,用于根据操作指令对自动测试系统执行测试任务时的测试过程进行实时控制。

优选地,所述的物联网测试云平台,还包括接口模块,所述接口模块包括内部接口子模块、外部接口子模块和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

3:for(i=0;i

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

综上所述,本实施例中,通过上述的测试任务划分算法和子测试任务调度算法来对测试任务进行划分调度。本实施例的技术方案,其重点为物联网测试云平台的任务管理,致力于设计与实现一个集高效测试任务调度、测试任务实时控制为一体的测试任务管理模块,解决物联网设备测试任务管理效率低的问题。本实施例设计了一种基于遗传算法和优先级的测试任务排期模型(包括测试任务划分算法和子测试任务调度算法),主要负责将测试任务的测试例集合合理分派至物联网测试云平台的自动测试系统,同时优化不同测试任务的执行顺序,达到提升测试效率、最大化测试收益等目的。

实施例二:

本实施例提供了一种物联网测试方法,包括以下步骤:

对用户提交的测试申请进行管理和审核;

对审核通过的测试任务进行划分调度,将划分调度后的测试任务分派至自动测试系统,并对测试任务从测试准备到测试完成的整个生命周期进行维护管理;

在测试完成后,对测试结果进行汇总并形成对应的测试报告。

本实施例的物联网测试方法,适用于实施例一的物联网测试云平台,鉴于与实施例一相同的内容,本实施例不再赘述。

本实施例的技术方案,对测试任务划分调度后,下发分派至对应的自动测试系统,优化不同测试任务的执行顺序,提升了测试效率,提高了测试收益,从而提高了对物联网设备进行测试的测试管理效率。

本领域普通技术人员可以意识到,结合本实施例中所公开的实施例描述的各示例的单元或步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的实施例中,应该理解到,所述步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可结合为一个步骤,一个步骤可拆分为多个步骤,或一些特征可以忽略等。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

本文发布于:2024-09-24 04:23:59,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/86314.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议