CN117421153A - 一种铁路货车故障图像识别模型自动化测试系统及方法 - Google Patents

一种铁路货车故障图像识别模型自动化测试系统及方法 Download PDF

Info

Publication number
CN117421153A
CN117421153A CN202311488073.5A CN202311488073A CN117421153A CN 117421153 A CN117421153 A CN 117421153A CN 202311488073 A CN202311488073 A CN 202311488073A CN 117421153 A CN117421153 A CN 117421153A
Authority
CN
China
Prior art keywords
test
task
version number
image recognition
fault image
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
Application number
CN202311488073.5A
Other languages
English (en)
Inventor
张昕尧
连惠亮
张勇
王春龙
姜海祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Kejia General Mechanical and Electrical Co Ltd
Original Assignee
Harbin Kejia General Mechanical and Electrical Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Kejia General Mechanical and Electrical Co Ltd filed Critical Harbin Kejia General Mechanical and Electrical Co Ltd
Priority to CN202311488073.5A priority Critical patent/CN117421153A/zh
Publication of CN117421153A publication Critical patent/CN117421153A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种铁路货车故障图像识别模型自动化测试系统及方法,它属于自动化测试技术领域。本发明解决了传统手工测试方法存在的测试效率低、测试成本高的问题。本发明的自动化测试方法通过模拟人工测试行为实现测试任务的自动执行,能够自动化回归测试,自动创建测试任务、更新测试环境、分发测试任务、生成自动化测试用例、执行测试任务、统计测试结果、汇报任务状态及界面化展示,具有低维护成本、高效率、高上手性的特点,可以提高测试效率、降低测试成本。本发明方法可以应用于铁路货车故障图像识别模型自动化测试。

Description

一种铁路货车故障图像识别模型自动化测试系统及方法
技术领域
本发明属于自动化测试技术领域,具体涉及一种铁路货车故障图像识别模型自动化测试系统及方法。
背景技术
交通运输是一个国家的经济命脉,对经济的发展有着巨大的推动作用。铁路货车作为我国输送货物的主要途径之一,其构成部件众多,任何部件的微小损伤都有可能对其安全运行造成极大的影响,铁路货车的故障检测工作尤为重要。传统的人工检测方法不仅检测效率低、精度差,更有可能因为人工疏漏而造成经济损失甚至人员伤亡。近几年深度学习得到了快速发展,基于图像识别的故障检测方法得到了快速应用,大量的图像检测方法被用于铁路货车的故障检测中。
基于图像识别的检测方法是通过训练多个图像识别模型完成对不同种类的故障的检测,其中识别模型又称作识别模块,是图像检测的核心。一列货车的检测需要大量的识别模块,这些识别模块存在大量回归测试,传统手工测试消耗了极大的人力成本。因此急需低成本,高效率,高可靠性和及时性的回归测试工具,以帮助测试人员减少重复、枯燥的手工测试任务,将精力放在更复杂的测试任务中。而且传统手工测试是依靠人工完成测试环境更新、测试用例执行、测试结果统计工作,因此,传统手工测试方法存在测试效率低、测试成本高的问题,提出一种新的测试方法以解决上述问题是十分必要的。
发明内容
本发明的目的是为解决传统手工测试方法存在的测试效率低、测试成本高的问题,而提出的一种铁路货车故障图像识别模型自动化测试系统及方法。
本发明为解决上述技术问题所采取的技术方案是:
一种铁路货车故障图像识别模型自动化测试系统,所述系统包括客户端、测试数据库、测试任务创建模块、测试任务分发模块、测试任务执行模块和测试报告生成模块;
所述客户端用于实现人机交互,并对用户、故障图像识别模型、测试服务器和测试任务进行管理;
所述测试数据库用于存储用户信息、故障图像识别模型信息、测试服务器信息、测试任务信息、测试数据及测试结果;
所述测试任务创建模块用于更新测试环境和创建测试任务;
所述测试任务分发模块用于根据测试任务创建模块创建的测试任务的优先级和测试服务器信息进行任务下发;
所述测试任务执行模块用于根据测试任务生成自动化测试用例,并利用测试数据对故障图像识别模型自动执行测试任务;
所述测试报告生成模块用于汇总测试任务执行结果生成测试报告,并通知测试结果。
优选地,对用户、故障图像识别模型、测试服务器和测试任务进行管理,具体为:
用户管理,包括创建、查询及管理用户信息;
故障图像识别模型管理,包括创建、查询及管理故障图像识别模型信息;
测试服务器管理,包括创建、查询及管理测试服务器信息;
测试任务管理,包括创建、查询及管理测试任务信息。
优选地,测试数据库采用PostgreSQL、SQLite 3、MySQL或Oracle数据库。
优选地,创建测试任务的方式为自动创建测试任务,当自动创建的测试任务不能满足测试需要时,需要选择手动创建测试任务。
优选地,自动创建测试任务的具体步骤为:
步骤1、通过celery-异步任务队列创建一个任务,并将创建的任务命名为create_test_task;
步骤2、create_task_queue以故障图像识别模型为粒度遍历测试数据库中的全部故障图像识别模型,获取每个故障图像识别模型对应的项目名称、模型版本号及模型代码源路径;
模型版本号内依次包括主版本号、次版本号、送测版本号和构建次数;
步骤3、对于任意一个故障图像识别模型,根据测试数据库中的该模型版本号与该模型代码源路径中的最新版本号,判断版本号是否存在更新;
判断方法为:
对最新版本号进行转换得到转换值,转换值=224*主版本号+216*次版本号+28*送测版本号+构建次数,同理,对测试数据库中的该模型版本号进行转换,比较两次转换得到的转换值的大小;其中,*代表相乘;
若最新版本号对应的转换值较大,则根据最新版本号对应的模型信息创建测试任务,否则,不需要处理;
步骤4、对每个故障图像识别模型分别执行步骤3的过程。
优选地,测试任务分发模块的工作过程为:
步骤1、通过celery-异步任务队列创建一个任务,并将创建的任务命名为distribute_test_task;
步骤2、distribute_test_task获取任务状态标识为待分配测试资源的任务,并将获取的任务按照优先级由高至低的顺序进行排序,得到待分配测试资源的任务列表;
步骤3、distribute_test_task遍历测试服务器列表,获取服务器状态标识为空闲的测试服务器列表,对列表中的测试服务器进行可用性分析;
按照可用性由大到小的顺序对测试服务器进行排序得到测试服务器列表,将待分配测试资源任务列表中的测试任务逐个分配到测试服务器,更新分配到测试任务的测试服务器的测试环境后,将分配到测试任务的测试服务器的状态标识置为待测试,完成任务分发。
优选地,测试服务器的可用性定义为:
若至少满足条件1)至条件4)中的一个,则判定为测试服务器不可用;
条件1)、GPU占用率小于10%;
条件2)、CPU占用率小于10%;
条件3)、内存占用率小于10%;
条件4)、硬盘占用率小于10%;
若条件1)至条件4)均不满足,则计算可用性:
可用性=0.4*GPU占用率+0.3*CPU占用率+0.2*内存占用率+0.1*硬盘占用率。
优选地,测试任务执行模块的工作过程为:
步骤1、通过celery-异步任务队列创建任务run_test_task;
步骤2、run_test_task遍历测试任务列表,获取任务状态标识为待测试的任务,并获取待测试任务对应的测试服务器IP和测试模型信息,其中,测试模型信息包括程序名称、故障码、模块版本号、源测试用例路径;
步骤3、run_test_task通过SSH与测试服务器建立连接后,进入源测试用例路径;读取源测试用例后生成自动化测试用例;
步骤4、根据程序名称修改识别进程配置文件,启动识别进程载入故障图像识别模型程序,执行漏报测试命令;
步骤5、漏报测试命令执行完成后执行漏报统计命令,对故障图像识别模型的检测结果进行统计;
步骤6,测试命令和统计命令全部执行完成且无异常状态发生时,将测试任务的状态标识置为测试完成、测试服务器状态标识置为测试完成;当测试命令或统计命令在执行过程中存在异常时,将测试任务的状态标识置为执行失败,测试服务器的状态标识置为空闲。
优选地,测试报告生成模块的工作过程为:
步骤1、通过celery-异步任务队列创建reports_test_task任务,reports_test_task任务包括通知和预警两种工作状态:
①当测试任务正常执行完成时,采用通知的形式在工作群中进行汇报;
②当测试过程中出现异常时,则在工作群中触发报警;
步骤2、任务reports_test_task遍历执行完测试任务列表后,对测试任务状态标识为执行失败的任务,汇总异常信息并向工作群中发送报警;对测试任务状态标识为测试完成的任务,汇总统计命令的统计结果并生成测试报告。
一种铁路货车故障图像识别模型自动化测试方法,测试方法具体包括以下步骤:
将测试数据库中的故障图像识别模型的版本号与代码源路径中的最新版本号进行比对,判断是否存在新版本;
判断方法为:
对最新版本号进行转换得到转换值,转换值=224*主版本号+216*次版本号+28*送测版本号+构建次数,同理,对测试数据库中的该模型版本号进行转换,比较两次转换得到的转换值的大小;
若最新版本号对应的转换值较大,则存在新版本,根据最新版本号对应的模型信息创建测试任务;否则不存在新版本,不需要测试;
将测试任务按照优先级由高至低的顺序进行排序,得到待分配测试资源的任务列表,并更新测试环境;
对测试服务器中状态标识为空闲的测试服务器进行可用性分析,得到测试服务器列表;
测试服务器的可用性定义为:
若至少满足条件1)至条件4)中的一个,则判定为测试服务器不可用;
条件1)、GPU占用率小于10%;
条件2)、CPU占用率小于10%;
条件3)、内存占用率小于10%;
条件4)、硬盘占用率小于10%;
若条件1)至条件4)均不满足,则计算可用性:
可用性=0.4*GPU占用率+0.3*CPU占用率+0.2*内存占用率+0.1*硬盘占用率;
将待分配测试资源任务列表中的测试任务逐个分配到测试服务器,再生成自动化测试用例,最后执行测试任务并生成测试报告。
本发明的有益效果是:
本发明的自动化测试方法通过模拟人工测试行为实现测试任务的自动执行,能够自动化回归测试,自动创建测试任务、更新测试环境、分发测试任务、生成自动化测试用例、执行测试任务、统计测试结果、汇报任务状态及界面化展示,具有低维护成本、高效率、高上手性的特点,可以提高测试效率、降低测试成本。
附图说明
图1是本发明的一种铁路货车故障图像识别模型自动化测试系统的结构图;
图2是本发明的一种铁路货车故障图像识别模型自动化测试方法的流程图。
具体实施方式
需要特别说明的是,在不冲突的情况下,本申请公开的各个实施方式之间可以相互组合。
具体实施方式一、结合图1说明本实施方式。本实施方式的一种铁路货车故障图像识别模型自动化测试系统,所述系统包括客户端、测试数据库、测试任务创建模块、测试任务分发模块、测试任务执行模块和测试报告生成模块;
所述客户端用于实现人机交互,并对用户、故障图像识别模型、测试服务器和测试任务进行管理;
所述测试数据库用于存储用户信息、故障图像识别模型信息、测试服务器信息、测试任务信息、测试数据及测试结果;
所述测试任务创建模块用于更新测试环境和创建测试任务;
所述测试任务分发模块用于根据测试任务创建模块创建的测试任务的优先级和测试服务器信息进行任务下发;
所述测试任务执行模块用于根据测试任务生成自动化测试用例,并利用测试数据对故障图像识别模型执行测试任务;
所述测试报告生成模块用于汇总测试任务执行结果生成测试报告,并通知测试结果。
本发明提高了测试任务的执行效率,降低测试成本,高效的支撑了每日构建自动化测试。
具体实施方式二:本实施方式与具体实施方式一不同的是:对用户、故障图像识别模型、测试服务器和测试任务进行管理,具体为:
用户管理,包括创建、查询及管理用户信息;
故障图像识别模型管理,包括创建、查询及管理故障图像识别模型信息;
测试服务器管理,包括创建、查询及管理测试服务器信息;
测试任务管理,包括创建、查询及管理测试任务信息。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:测试数据库采用PostgreSQL、SQLite 3、MySQL或Oracle数据库。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:创建测试任务的方式为自动创建测试任务,当自动创建的测试任务不能满足测试需要时,需要选择手动创建测试任务。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:自动创建测试任务的具体步骤为:
步骤1、通过celery-异步任务队列创建一个任务,并将创建的任务命名为create_test_task;
步骤2、create_task_queue以故障图像识别模型为粒度遍历测试数据库中的全部故障图像识别模型,获取每个故障图像识别模型对应的项目名称(即模型用于检测的故障名称)、模型版本号及模型代码源路径;
模型版本号内依次包括主版本号、次版本号、送测版本号和构建次数;
步骤3、对于任意一个故障图像识别模型,根据测试数据库中的该模型版本号与该模型代码源路径中的最新版本号,判断版本号是否存在更新;
判断方法为:
对最新版本号进行转换得到转换值,转换值=224*主版本号+216*次版本号+28*送测版本号+构建次数,同理,对测试数据库中的该模型版本号进行转换,比较两次转换得到的转换值的大小;其中,*代表相乘;
若最新版本号对应的转换值较大,则根据最新版本号对应的模型信息创建测试任务,否则,不需要处理;
步骤4、对每个故障图像识别模型分别执行步骤3的过程。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:测试任务分发模块的工作过程为:
步骤1、通过celery-异步任务队列创建一个任务,并将创建的任务命名为distribute_test_task;
步骤2、distribute_test_task获取任务状态标识为待分配测试资源的任务,并将获取的任务按照优先级由高至低的顺序进行排序,得到待分配测试资源的任务列表;
需要说明的是,同一优先级则按照任务创建时间排序;
步骤3、distribute_test_task遍历测试服务器列表,获取与待测试任务相同项目下服务器状态标识为空闲的测试服务器列表,对列表中的测试服务器进行可用性分析;
按照可用性由大到小的顺序对测试服务器进行排序得到测试服务器列表,将待分配测试资源任务列表中的测试任务逐个分配到测试服务器(优先给优先级高的测试任务分配服务器,并且分配服务器时优先选择可用性大的服务器),更新分配到测试任务的测试服务器的测试环境后,将分配到测试任务的测试服务器的状态标识置为待测试,完成任务分发。
当空闲服务器数量不足时,等待服务器执行完高优先级测试任务后继续完成剩余任务的分发。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:测试服务器的可用性定义为:
若至少满足条件1)至条件4)中的一个,则判定为测试服务器不可用;
条件1)、GPU占用率小于10%;
条件2)、CPU占用率小于10%;
条件3)、内存占用率小于10%;
条件4)、硬盘占用率小于10%;
若条件1)至条件4)均不满足,则计算可用性:
可用性=0.4*GPU占用率+0.3*CPU占用率+0.2*内存占用率+0.1*硬盘占用率。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是:测试任务执行模块的工作过程为:
步骤1、通过celery-异步任务队列创建任务run_test_task;
步骤2、run_test_task遍历测试任务列表,获取任务状态标识为待测试的任务,并获取待测试任务对应的测试服务器IP和测试模型信息,其中,测试模型信息包括程序名称、故障码、模块版本号、源测试用例路径;
步骤3、run_test_task通过SSH(Secure Shell,安全外壳协议)与测试服务器建立连接后,进入源测试用例路径;读取源测试用例后生成自动化测试用例;
步骤4、根据程序名称修改识别进程配置文件,启动识别进程载入故障图像识别模型程序,执行漏报测试命令;
步骤5、漏报测试命令执行完成后执行漏报统计命令(统计模型检测错误的数量),对故障图像识别模型的检测结果进行统计;
步骤6,测试命令和统计命令全部执行完成且无异常状态发生时,将测试任务的状态标识置为测试完成、测试服务器状态标识置为测试完成;当测试命令或统计命令在执行过程中存在异常时,将测试任务的状态标识置为执行失败,测试服务器的状态标识置为空闲。
具体实施方式九:本实施方式与具体实施方式一至八之一不同的是:测试报告生成模块的工作过程为:
步骤1、通过celery-异步任务队列创建reports_test_task任务,reports_test_task任务包括通知和预警两种工作状态:
①当测试任务正常执行完成时,采用通知的形式在工作群中进行汇报;
②当测试过程中出现异常时,则在工作群中触发报警;
步骤2、任务reports_test_task遍历执行完测试任务列表后,对测试任务状态标识为执行失败的任务,汇总异常信息并向工作群中发送报警;对测试任务状态标识为测试完成的任务,汇总统计命令的统计结果并生成测试报告。
具体实施方式十、结合图2说明本实施方式。本实施方式的一种铁路货车故障图像识别模型自动化测试方法,所述方法具体包括以下步骤:
将测试数据库中的故障图像识别模型的版本号与代码源路径中的最新版本号进行比对,判断是否存在新版本;
判断方法为:
对最新版本号进行转换得到转换值,转换值=224*主版本号+216*次版本号+28*送测版本号+构建次数,同理,对测试数据库中的该模型版本号进行转换,比较两次转换得到的转换值的大小;
若最新版本号对应的转换值较大,则存在新版本,根据最新版本号对应的模型信息创建测试任务;否则不存在新版本,不需要测试;
将测试任务按照优先级由高至低的顺序进行排序,得到待分配测试资源的任务列表,并更新测试环境;
对测试服务器中状态标识为空闲的测试服务器进行可用性分析,得到测试服务器列表;
测试服务器的可用性定义为:
若至少满足条件1)至条件4)中的一个,则判定为测试服务器不可用;
条件1)、GPU占用率小于10%;
条件2)、CPU占用率小于10%;
条件3)、内存占用率小于10%;
条件4)、硬盘占用率小于10%;
若条件1)至条件4)均不满足,则计算可用性:
可用性=0.4*GPU占用率+0.3*CPU占用率+0.2*内存占用率+0.1*硬盘占用率;
将待分配测试资源任务列表中的测试任务逐个分配到测试服务器,再生成自动化测试用例,最后执行测试任务并生成测试报告。
实施例
本发明提出了一种铁路货车故障图像识别模型自动化测试系统,系统结构如图1所示,测试方法的执行流程如图2所示,能够模拟真实测试人员的测试行为以提高测试效率:
Web客户端:实现人机交互、展示平台信息,用于管理用户、识别模块、测试机器及测试任务;
Web客户端基于B/S架构,采用Django框架快速开发,提供登录、查询、创建、修改、删除接口,实现网页端即可完成全部测试工作,具体包括:
a.用户管理:创建、查询及管理用户信息,用户信息包括名称、密码、操作权限及账号创建时间。其中操作权限默认为普通用户(可配置为管理员权限),账号创建时间默认为创建账号日期;
b.识别模块管理:创建、查询及管理识别模块信息,故障图像识别模型信息包括所属项目名称、模块名称、程序名称、故障码、模块版本号、模块状态、版本校验开关、模块代码源路径、源测试用例路径及更新时间;
c.测试机器管理:创建、查询及管理测试服务器信息,服务器信息包括远程IP、管理IP、机器状态及归属项目名称;
测试任务管理:创建、查询及管理测试任务信息,测试任务信息包括任务状态、项目名称、模块故障码、模块版本号、执行预置程序标识、执行统计程序标识、任务优先级、更新基准环境标识及测试日期。
测试数据库:用于存储用户信息、识别模块信息、测试机器信息、测试任务信息、测试数据及测试结果;
测试数据库支持可修改数据库(PostgreSQL、SQLite 3、MySQL和Oracle),可根据平台运行环境选择合适的数据库,默认为MySQL数据库,用于存储测试平台的全部表结构和数据,主要包括用户信息、识别模块信息、测试机器信息、测试任务信息、测试数据及测试结果。
创建测试任务:自动获取更新模块信息用于更新测试环境,并根据获取的模块信息创建对应测试任务,也可手动创建测试任务用于回归测试;
提出自动创建测试任务与手动创建测试任务相结合的方式以满足不同的测试需求,具体如下:
a.自动创建测试任务
自动创建测试任务执行步骤如下:
步骤1,通过celery-异步任务队列创建一个任务用于创建测试任务,并将此任务命名为create_test_task,此任务只用于创建自动测试任务,设置其轮询周期为60秒,即每分钟执行一次,可根据实际模块数量、单次轮询执行时间做出相应调整;
步骤2,create_task_queue以识别模块为粒度遍历测试数据库中对应项目的全部测试模块,获取数据库中每个模块对应的项目名称、模块版本号及模块代码源路径并记录;
步骤3,create_task_queue以识别模块为粒度遍历模块代码源路径,获取查询模块代码源路径中的最新版本号;
步骤4,通过对比数据库中版本号与源路径最新版本号的大小判断是否存在更新,版本号格式为主版本号.次版本号.送测版本号.构建次数(如1.0.0.0),针对版本号的比较提出转换比较法,转换后的版本号=2^24*主版本号+2^16*次版本号+2^8*送测版本号+构建次数,通过对比转换后的版本号大小即可判断是否存在更新。若源路径中不存在高于数据库中的版本时跳过当前模块继续执行下一个模块;若源路径中存在更高版本的代码则判定该模块为更新模块,并根据模块信息创建测试任务,测试任务所需信息包括:任务状态标识、项目名称、测试模块故障码、模块版本号、执行预置程序标识、执行统计程序标识、任务优先级、更新基准环境标识及测试日期,自动创建测试任务的执行预置程序标识、执行统计程序标识及更新基准环境标识默认为执行,任务优先级为低优先级。
b.手动创建测试任务
当自动创建测试任务不能满足测试需要时(如版本回退)可选择手动创建测试任务,此模式需要人工选择或填写测试任务所需字段,填写后点击创建即可,手动任务和自动任务具有相同的属性,除创建方式外无其他差异。
更新测试环境:分别搭建基准测试环境和增量测试环境,增量测试环境用于单次测试环境下发,基准测试环境用于测试环境复原;
(1)更新测试环境执行步骤如下:
步骤1,提出基准测试环境与增量测试环境同时更新的方法以提高测试效率和降低环境维护成本。每个项目同时维护两份测试环境,一份为基准测试环境,一份为增量测试环境。其中基准测试环境最初版本由人工搭建,是全部模块初始版本的集合,用于搭建测试机器初始测试环境和环境还原;增量测试环境是以单个识别模块单个版本为粒度的测试环境,用于模块更新时的环境分发,以搭建测试机器执行单次测试任务的测试环境;
步骤2,通过celery-异步任务队列创建一个任务用于自动更新测试环境,并将此任务命名为build_env_task,设置其轮询周期为120秒,即每两分钟执行一次,轮询周期可根据需求做出相应调整。build_env_task在每次更新环境时一定更新增量环境,是否更新基准环境需要查看测试任务的更新基准环境标识;
步骤3,build_env_task遍历已创建的测试任务,将任务对应模块源路径中的模块代码下载至增量测试环境和基准测试环境,其中增量测试环境下同一模块可以同时存在多个版本,并且每次更新前自动清空目标路径下已存在的环境,基准测试环境下模块只保留最新版本,下载完成后更新任务状态标识为待分配测试资源。
分发测试任务:获取自动创建的测试任务或人工创建的测试任务,查询可执行测试的空闲测试服务器,对空闲测试服务器的可用性进行排序,根据测试任务优先级进行任务下发;
(2)分发测试任务执行步骤如下:
步骤1,通过celery-异步任务队列创建一个任务用于自动分发测试任务,并将此任务命名为distribute_test_task,分发测试任务是指将测试任务下发至测试机器并更新机器环境等待执行的过程,设置其轮询周期为60秒,即每分钟执行一次,轮询周期可根据需求做出相应调整;自动分发测试任务能够减少测试资源的空闲时间、测试任务和测试资源之间的匹配时间,提高资源利用率。
步骤2,distribute_test_task遍历测试任务列表,获取任务状态标识为待分配测试资源的任务,并按照任务优先级由高至低进行排序作为待分配资源任务列表,同一优先级则按照任务创建时间排序;
步骤3,distribute_test_task遍历测试机器列表,获取相同项目下机器状态标识为空闲的测试机器列表,对计算服务器的可用性进行分析,可用性定义为:当GPU占用率、CPU占用率、内存占用率、硬盘占用率存在一个或多个小于10%时判定机器不可用,并将机器状态标识置为停用;当GPU占用率、CPU占用率、内存占用率、硬盘占用率全部大于10%时,可用性=0.4*GPU占用率+0.3*CPU占用率+0.2*内存占用率+0.1*硬盘占用率。按照可用性对测试机器进行排序,按照待分配资源任务列表逐个分配排序后的测试机器,并将机器状态标识置为更新环境中,测试机器测试环境搭建完成后将机器状态标识置为待测试;
步骤4,将已分配测试机器的测试任务的标识为置为分配资源完成,待测试,完成任务分发,当空闲机器数量不足时等待机器执行完高优先级测试任务后继续完成剩余任务的分发。
执行测试任务:生成自动化测试用例,并以识别模块为粒度执行测试任务并初步完成测试统计;
(3)执行测试任务执行步骤如下:
步骤1,通过celery-异步任务队列创建一个任务用于执行测试任务,并将此任务命名为run_test_task,此任务可以完成对模块的自动化测试用例生成、漏报测试(漏报测试是指识别用存在真实故障的图像来测试识别模块检测准确性的过程)和测试结果的初步统计,设置其轮询周期为60秒,即每分钟执行一次,轮询周期可根据需求做出相应调整;
步骤2,run_test_task遍历测试任务列表,获取任务状态标识为待测试的任务,获取任务对应的测试机IP,测试模块信息,其中模块信息包括程序名称、故障码、模块版本号、源测试用例路径;
步骤3,run_test_task通过SSH与对应IP的测试机建立连接,进入源测试用例路径,读取原测试用例后生成对应的自动化测试用例,在生成自动化测试用例时会根据规则生成对应的“测试基线报文”、“动态测试文件结构”、“动态测试数据库”、“更新测试框架适配测试模块”、“自动测试命令”、“自动统计命令”、“测试模块对应的配置文件”等。其中“测试基线报文”是指用于计算模块识别准确率的标准记录,测试文件结构根据测试站点、项目等动态变化,测试数据库动态优选连接数较少的数据库,更新测试框架用于加速模块的测试,配置文件和命令包含多种项目信息、铁路局信息、站点信息、列车型号信息;
步骤4,根据程序名称修改识别进程配置文件,启动识别进程载入识别模块程序,执行漏报测试命令,其中漏报执行命令可以根据模块测试需要进行修改,如只执行部分测试用例或执行全部用例;
步骤5,漏报测试命令执行完成后执行漏报统计命令,对识别模块的检测结果进行统计,其中漏报统计命令可以根据模块统计需要进行修改,如只统计部分测试用例或统计全部用例;
步骤6,测试命令和统计命令全部执行完成且无异常状态发生时,将测试任务的状态标识置为测试完成、测试机器状态标识置为测试完成;当测试命令和统计命令在执行过程中存在异常时测试任务的状态标识置为执行失败,测试机器的状态标识置为空闲。
生成报告及通知:汇总测试结果后生成测试报告,将报告及测试任务完成情况统一汇报。
步骤1,通过celery-异步任务队列创建一个任务用于生成测试报告及通知,并将此任务命名为reports_test_task,设置其轮询周期为60秒,即每分钟执行一次,轮询周期可根据需求做出相应调整。reports_test_task存在两种工作状态:
①通知:当测试任务正常执行完成时采用通知的形式在工作群中进行汇报,此时可以对通知强度进行调整,弱通知只显示通知信息,强通知则在显示信息的同时联系测试任务负责人,默认为弱通知;
②报警:当测试过程中出现异常时会在工作群中触发报警,此时会发送引发报警的异常信息并联系测试任务负责人和项目负责人,报警每10分钟发送一次直至异常得到处理,报警间隔可根据测试需求进行调整;
通知或报警使测试任务完成后测试人员第一时间得到测试结果,保障了测试工作的及时性,工作群可以根据测试需要做出选择,如钉钉群、微信群、公司内部软件群等。
步骤2,reports_test_task遍历执行完测试的任务列表,查看任务状态标识,若标识为执行失败则汇总异常信息并向工作群中发送报警;若标识为测试完成则汇总统计命令的统计结果并生成测试报告,将报告路径和统计结果统一以通知的方式发送至工作群,报告保存格式和保存样式通过统计命令进行定义,其中保存格式可以根据需要进行选择,如xls、xlsx、txt等格式,保存样式包括展示信息、界面美化等。
本发明的上述算例仅为详细地说明本发明的计算模型和计算流程,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

Claims (10)

1.一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述系统包括客户端、测试数据库、测试任务创建模块、测试任务分发模块、测试任务执行模块和测试报告生成模块;
所述客户端用于实现人机交互,并对用户、故障图像识别模型、测试服务器和测试任务进行管理;
所述测试数据库用于存储用户信息、故障图像识别模型信息、测试服务器信息、测试任务信息、测试数据及测试结果;
所述测试任务创建模块用于更新测试环境和创建测试任务;
所述测试任务分发模块用于根据测试任务创建模块创建的测试任务的优先级和测试服务器信息进行任务下发;
所述测试任务执行模块用于根据测试任务生成自动化测试用例,并利用测试数据对故障图像识别模型自动执行测试任务;
所述测试报告生成模块用于汇总测试任务执行结果生成测试报告,并通知测试结果。
2.根据权利要求1所述的一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述对用户、故障图像识别模型、测试服务器和测试任务进行管理,具体为:
用户管理,包括创建、查询及管理用户信息;
故障图像识别模型管理,包括创建、查询及管理故障图像识别模型信息;
测试服务器管理,包括创建、查询及管理测试服务器信息;
测试任务管理,包括创建、查询及管理测试任务信息。
3.根据权利要求1所述的一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述测试数据库采用PostgreSQL、SQLite 3、MySQL或Oracle数据库。
4.根据权利要求1所述的一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述创建测试任务的方式为自动创建测试任务,当自动创建的测试任务不能满足测试需要时,需要选择手动创建测试任务。
5.根据权利要求1所述的一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述自动创建测试任务的具体步骤为:
步骤1、通过celery-异步任务队列创建一个任务,并将创建的任务命名为create_test_task;
步骤2、create_task_queue以故障图像识别模型为粒度遍历测试数据库中的全部故障图像识别模型,获取每个故障图像识别模型对应的项目名称、模型版本号及模型代码源路径;
模型版本号内依次包括主版本号、次版本号、送测版本号和构建次数;
步骤3、对于任意一个故障图像识别模型,根据测试数据库中的该模型版本号与该模型代码源路径中的最新版本号,判断版本号是否存在更新;
判断方法为:
对最新版本号进行转换得到转换值,转换值=224*主版本号+216*次版本号+28*送测版本号+构建次数,同理,对测试数据库中的该模型版本号进行转换,比较两次转换得到的转换值的大小;其中,*代表相乘;
若最新版本号对应的转换值较大,则根据最新版本号对应的模型信息创建测试任务,否则,不需要处理;
步骤4、对每个故障图像识别模型分别执行步骤3的过程。
6.根据权利要求1所述的一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述测试任务分发模块的工作过程为:
步骤1、通过celery-异步任务队列创建一个任务,并将创建的任务命名为distribute_test_task;
步骤2、distribute_test_task获取任务状态标识为待分配测试资源的任务,并将获取的任务按照优先级由高至低的顺序进行排序,得到待分配测试资源的任务列表;
步骤3、distribute_test_task遍历测试服务器列表,获取服务器状态标识为空闲的测试服务器列表,对列表中的测试服务器进行可用性分析;
按照可用性由大到小的顺序对测试服务器进行排序得到测试服务器列表,将待分配测试资源任务列表中的测试任务逐个分配到测试服务器,更新分配到测试任务的测试服务器的测试环境后,将分配到测试任务的测试服务器的状态标识置为待测试,完成任务分发。
7.根据权利要求1所述的一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述测试服务器的可用性定义为:
若至少满足条件1)至条件4)中的一个,则判定为测试服务器不可用;
条件1)、GPU占用率小于10%;
条件2)、CPU占用率小于10%;
条件3)、内存占用率小于10%;
条件4)、硬盘占用率小于10%;
若条件1)至条件4)均不满足,则计算可用性:
可用性=0.4*GPU占用率+0.3*CPU占用率+0.2*内存占用率+0.1*硬盘占用率。
8.根据权利要求1所述的一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述测试任务执行模块的工作过程为:
步骤1、通过celery-异步任务队列创建任务run_test_task;
步骤2、run_test_task遍历测试任务列表,获取任务状态标识为待测试的任务,并获取待测试任务对应的测试服务器IP和测试模型信息,其中,测试模型信息包括程序名称、故障码、模块版本号、源测试用例路径;
步骤3、run_test_task通过SSH与测试服务器建立连接后,进入源测试用例路径;读取源测试用例后生成自动化测试用例;
步骤4、根据程序名称修改识别进程配置文件,启动识别进程载入故障图像识别模型程序,执行漏报测试命令;
步骤5、漏报测试命令执行完成后执行漏报统计命令,对故障图像识别模型的检测结果进行统计;
步骤6,测试命令和统计命令全部执行完成且无异常状态发生时,将测试任务的状态标识置为测试完成、测试服务器状态标识置为测试完成;当测试命令或统计命令在执行过程中存在异常时,将测试任务的状态标识置为执行失败,测试服务器的状态标识置为空闲。
9.根据权利要求1所述的一种铁路货车故障图像识别模型自动化测试系统,其特征在于,所述测试报告生成模块的工作过程为:
步骤1、通过celery-异步任务队列创建reports_test_task任务,reports_test_task任务包括通知和预警两种工作状态:
①当测试任务正常执行完成时,采用通知的形式在工作群中进行汇报;
②当测试过程中出现异常时,则在工作群中触发报警;
步骤2、任务reports_test_task遍历执行完测试任务列表后,对测试任务状态标识为执行失败的任务,汇总异常信息并向工作群中发送报警;对测试任务状态标识为测试完成的任务,汇总统计命令的统计结果并生成测试报告。
10.一种铁路货车故障图像识别模型自动化测试方法,其特征在于,所述方法具体包括以下步骤:
将测试数据库中的故障图像识别模型的版本号与代码源路径中的最新版本号进行比对,判断是否存在新版本;
判断方法为:
对最新版本号进行转换得到转换值,转换值=224*主版本号+216*次版本号+28*送测版本号+构建次数,同理,对测试数据库中的该模型版本号进行转换,比较两次转换得到的转换值的大小;
若最新版本号对应的转换值较大,则存在新版本,根据最新版本号对应的模型信息创建测试任务;否则不存在新版本,不需要测试;
将测试任务按照优先级由高至低的顺序进行排序,得到待分配测试资源的任务列表,并更新测试环境;
对测试服务器中状态标识为空闲的测试服务器进行可用性分析,得到测试服务器列表;
测试服务器的可用性定义为:
若至少满足条件1)至条件4)中的一个,则判定为测试服务器不可用;
条件1)、GPU占用率小于10%;
条件2)、CPU占用率小于10%;
条件3)、内存占用率小于10%;
条件4)、硬盘占用率小于10%;
若条件1)至条件4)均不满足,则计算可用性:
可用性=0.4*GPU占用率+0.3*CPU占用率+0.2*内存占用率+0.1*硬盘占用率;
将待分配测试资源任务列表中的测试任务逐个分配到测试服务器,再生成自动化测试用例,最后执行测试任务并生成测试报告。
CN202311488073.5A 2023-11-09 2023-11-09 一种铁路货车故障图像识别模型自动化测试系统及方法 Pending CN117421153A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311488073.5A CN117421153A (zh) 2023-11-09 2023-11-09 一种铁路货车故障图像识别模型自动化测试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311488073.5A CN117421153A (zh) 2023-11-09 2023-11-09 一种铁路货车故障图像识别模型自动化测试系统及方法

Publications (1)

Publication Number Publication Date
CN117421153A true CN117421153A (zh) 2024-01-19

Family

ID=89524676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311488073.5A Pending CN117421153A (zh) 2023-11-09 2023-11-09 一种铁路货车故障图像识别模型自动化测试系统及方法

Country Status (1)

Country Link
CN (1) CN117421153A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102354298A (zh) * 2011-07-27 2012-02-15 哈尔滨工业大学 基于staf的高端容错机故障注入自动化测试平台及方法
CN110928774A (zh) * 2019-11-07 2020-03-27 杭州顺网科技股份有限公司 一种基于节点式的自动化测试系统
CN112286806A (zh) * 2020-10-28 2021-01-29 成都佰维存储科技有限公司 自动化测试方法、装置、存储介质及电子设备
CN116594887A (zh) * 2023-05-18 2023-08-15 西南科技大学 一种基于cfd软件的自动化测试方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102354298A (zh) * 2011-07-27 2012-02-15 哈尔滨工业大学 基于staf的高端容错机故障注入自动化测试平台及方法
CN110928774A (zh) * 2019-11-07 2020-03-27 杭州顺网科技股份有限公司 一种基于节点式的自动化测试系统
CN112286806A (zh) * 2020-10-28 2021-01-29 成都佰维存储科技有限公司 自动化测试方法、装置、存储介质及电子设备
CN116594887A (zh) * 2023-05-18 2023-08-15 西南科技大学 一种基于cfd软件的自动化测试方法及系统

Similar Documents

Publication Publication Date Title
CN110287052B (zh) 一种异常任务的根因任务确定方法及装置
CN109656820B (zh) 基于cbtc的智能自动化测试系统
CN112286806B (zh) 自动化测试方法、装置、存储介质及电子设备
CN109634843A (zh) 一种面向ai芯片平台的分布式自动化软件测试方法及平台
CN104252481A (zh) 主从数据库一致性的动态校验方法和装置
CN108628748B (zh) 自动化测试管理方法和自动化测试管理系统
CN102998996A (zh) 一种飞机机载实时故障诊断方法
CN107015842B (zh) 一种服务器端程序编译和发布的管理方法及系统
CN109977022B (zh) 游戏资源的检查方法、装置、系统及存储介质
CN112101803A (zh) 业务流程监控方法、装置、系统、设备和介质
CN113946499A (zh) 一种微服务链路跟踪及性能分析方法、系统、设备及应用
WO2021097824A1 (zh) 一种代码质量和缺陷的分析方法、服务器及存储介质
CN110088744A (zh) 一种数据库维护方法及其系统
CN107193730A (zh) 一种自动化的接口测试方法
CN113312200A (zh) 一种事件处理方法、装置、计算机设备及存储介质
CN103077109B (zh) 一种测试计划调度方法及系统
CN114036034A (zh) 一种应用于实时流式计算的性能测试方法
CN113658351A (zh) 一种产品生产的方法、装置、电子设备及存储介质
CN111240721B (zh) 一种高速铁路设备软件版本监控方法及系统
CN112527568A (zh) 数据流量测试方法、装置、电子设备及存储介质
CN117421153A (zh) 一种铁路货车故障图像识别模型自动化测试系统及方法
CN116467188A (zh) 一种多环境场景下的通用本地复现系统和方法
CN116523244A (zh) 一种基于外包资源的测试人力风险预警方法
CN113742400B (zh) 一种基于自适应约束条件的网络数据获取系统及方法
CN113973068A (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