CN114579472B - 工业app可移植性测试方法及装置 - Google Patents
工业app可移植性测试方法及装置 Download PDFInfo
- Publication number
- CN114579472B CN114579472B CN202210478522.7A CN202210478522A CN114579472B CN 114579472 B CN114579472 B CN 114579472B CN 202210478522 A CN202210478522 A CN 202210478522A CN 114579472 B CN114579472 B CN 114579472B
- Authority
- CN
- China
- Prior art keywords
- industrial app
- hardware configuration
- hardware
- app
- tested
- 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
- 238000010998 test method Methods 0.000 title claims description 11
- 238000012360 testing method Methods 0.000 claims abstract description 107
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 20
- 230000001419 dependent effect Effects 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 238000009434 installation Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011158 quantitative evaluation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种工业APP可移植性测试方法及装置,其中方法包括:对待测工业APP进行程序分析,得到可执行程序依赖库;根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数;根据硬件环境参数,确定待测工业APP的多个硬件配置组合;利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。本发明可以进行工业APP可移植性测试,节省时间及硬件资源成本,提高测试效率和有效性。
Description
技术领域
本发明涉及工业软件应用领域,尤其涉及工业APP可移植性测试方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
基于工业互联网、承载工业知识和经验、满足特定需求的工业APP是工业技术软件化的重要成果。工业APP作为一种新型的工业应用程序,对应工业互联网的应用层,其主要功能是为面向特定工业应用场景,激发全社会资源推动工业技术、经验、知识和最佳实践的模型化、软件化、再封装,让用户可以通过工业APP调用实现对特定制造资源的优化配置。工业APP一般具有以下 6个典型特征:(1)完整地表达一个或多个特定功能,解决特定问题;(2)特定工业技术的载体;(3)小轻灵,可组合,可重用;(4)结构化和形式化;(5)轻代码化;(6)平台化可移植:工业APP集合与固化了解决特定问题的工业技术,应可以在工业互联网平台中不依赖于特定的环境运行。
因此,工业APP往往在行业内具有一定的通用性,衍生出移植部署的需求。而随着近年来软硬件技术的迅猛发展,操作系统和云计算经历的一些重大变化,都预示着软件开发者将面临运行环境多样化的挑战,随着竞争的加剧和客户需求的多样化,企业对软件能够在多平台上运行的能力提出了更高的要求。可移植性作为软件质量的重要一部分,对于工业APP而言是需要衡量并提高的一项重要指标。通过对工业APP的可移植性进行测试,可以保证它们的适应性、易安装性、共存性、易替换性和依从性。然而由于工业APP的使用场景比传统互联网应用更加行业化、专业化,相同的应用会由于不同客户已有设备的区别,在不同的网络环境、不同的硬件平台、不同的操作系统版本上使用,如何保证在差异化的环境中都能顺利安装和正常运行,并量化评估其可移植性水平是可移植性测试的难题。对于每一次可移植性测试,移植前后的环境都必须是明确的,通常涉及到硬件环境、操作系统、网络环境、数据库、被测系统所依赖的其他软件环境。每次测试都要搭建不同的硬件环境,需要耗费大量人力物力财力才能完成,这是大多数企业无法承担的,而由于时间及硬件限制有的硬件组合仍可能无法得到测试。
因此,亟需一种可以克服上述问题的工业APP可移植性测试方案。
发明内容
本发明实施例提供一种工业APP可移植性测试方法,用以进行工业APP可移植性测试,节省时间及硬件资源成本,提高测试效率和有效性,该方法包括:
对待测工业APP进行程序分析,得到可执行程序依赖库;
根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;
根据硬件环境参数,确定待测工业APP的多个硬件配置组合;
利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。
本发明实施例提供一种工业APP可移植性测试装置,用以进行工业APP可移植性测试,节省时间及硬件资源成本,提高测试效率和有效性,该装置包括:
软件程序分析模块,用于对待测工业APP进行程序分析,得到可执行程序依赖库;
环境参数获得模块,用于根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;
配置组合确定模块,用于根据硬件环境参数,确定待测工业APP的多个硬件配置组合;
运行环境配置模块,用于利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述工业APP可移植性测试方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述工业APP可移植性测试方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述工业APP可移植性测试方法。
本发明实施例通过对待测工业APP进行程序分析,得到可执行程序依赖库;根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;根据硬件环境参数,确定待测工业APP的多个硬件配置组合;利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。本发明实施例通过对待测工业APP进行程序分析,得到可执行程序依赖库,进而根据可执行程序依赖库自适应的获得待测工业APP的硬件环境参数,而不需要考虑程序文档明确不兼容的硬件版本,大大减少测试数量,然后根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定每个硬件配置组合的优先级,并利用Docker容器根据每个硬件配置组合的优先级进行可移植性测试的运行环境配置,可以快速发现容易发现不兼容问题的硬件组合,在短时间内发现待测工业APP更多的不可移植性问题,此外使用Docker容器模拟真实运行环境可以有效免去每次测试前的硬件安装配置工作,达到同样效果的同时节省了时间及硬件等资源,能够更快更有效地完成工业APP的可移植性测试。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中工业APP可移植性测试方法示意图;
图2~图3为本发明具体实施例中工业APP可移植性测试流程图;
图4为本发明实施例中工业APP可移植性测试装置结构图;
图5是本发明实施例的计算机设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
为了进行工业APP可移植性测试,节省时间及硬件资源成本,提高测试效率和有效性,本发明实施例提供一种工业APP可移植性测试方法,如图1所示,该方法可以包括:
步骤101、对待测工业APP进行程序分析,得到可执行程序依赖库;
步骤102、根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;
步骤103、根据硬件环境参数,确定待测工业APP的多个硬件配置组合;
步骤104、利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。
由图1所示可以得知,本发明实施例通过对待测工业APP进行程序分析,得到可执行程序依赖库;根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;根据硬件环境参数,确定待测工业APP的多个硬件配置组合;利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。本发明实施例通过对待测工业APP进行程序分析,得到可执行程序依赖库,进而根据可执行程序依赖库自适应的获得待测工业APP的硬件环境参数,而不需要考虑程序文档明确不兼容的硬件版本,大大减少测试数量,然后根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定每个硬件配置组合的优先级,并利用Docker容器根据每个硬件配置组合的优先级进行可移植性测试的运行环境配置,可以快速发现容易发现不兼容问题的硬件组合,在短时间内发现待测工业APP更多的不可移植性问题,此外使用Docker容器模拟真实运行环境可以有效免去每次测试前的硬件安装配置工作,达到同样效果的同时节省了时间及硬件等资源,能够更快更有效地完成工业APP的可移植性测试。
下面对每个步骤进行详细分析。
在步骤101中,对待测工业APP进行程序分析,得到可执行程序依赖库。
一个实施例中,对工业APP进行程序分析,得到可执行程序依赖库,包括:
利用shell脚本ldd或报告进程内存映射关系pmap对工业APP进行程序分析得到可执行程序依赖库。
具体实施时,通过对待测工业APP进行程序分析可以得到可执行程序依赖库,具体有以下两种方式进行程序分析:
1、利用shell脚本ldd获得可执行程序依赖库,ldd设置了程序动态依赖环境变量LD_TRACE_LOADED_OBJECTS,调用glibc库文件(32位操作系统)/lib/ld-linux.so.2(或glibc库文件(64位操作系统)/lib64/ld-linux-x86-64.so.2或其他,取决于系统的体系结构architecture)来处理动态库,分析输出从而得到整个依赖关系。需要说明的是ldd是一个shell脚本,通过设置一系列的环境变量,ld-linux.so(elf动态库的装载器)模块会先于executable(可执行)模块程序工作并获得控制权,显示可执行模块的依赖库。
2、利用报告进程内存映射关系pmap 获得可执行程序依赖库,pmap命令可以获取一个进程的内存映射,同时也可以显示出运行进程的库文件依赖。
在步骤102~步骤103中,根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;根据硬件环境参数,确定待测工业APP的多个硬件配置组合。
具体实施时,根据可执行程序依赖库,可以获得待测工业APP的硬件环境参数,比如操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数等,进而根据硬件环境参数可以确定待测工业APP的多个硬件配置组合。
在步骤104中,利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。
一个实施例中,按如下方式确定每个硬件配置组合的优先级:
对每个硬件配置组合,获得该硬件配置组合在待测工业APP的历史版本测试中出现兼容性问题的第一问题次数,以及该硬件配置组合在预设工业APP的历史版本测试中出现兼容性问题的第二问题次数;
根据所述第一问题次数和第一预设权重,以及第二问题次数以及第二预设权重,确定每个硬件配置组合的优先级。
具体实施时,对获得的硬件环境参数进行组合然后确定每个硬件配置组合的优先级,依据历史布置优先、类似布置克隆的原则,即将该工业APP历史版本测试中出现过兼容性问题的组合或具有类似功能的工业APP测试中出现过兼容性问题的组合优先级设为较大值。具体的,首先对每个硬件配置组合,获得该硬件配置组合在待测工业APP的历史版本测试中出现兼容性问题的第一问题次数,以及该硬件配置组合在预设工业APP的历史版本测试中出现兼容性问题的第二问题次数。然后,按如下公式根据第一问题次数和第一预设权重,以及第二问题次数以及第二预设权重,确定每个硬件配置组合的优先级:
priority(T n ,T m ,T l )= α×frequency(T n ,T m ,T l )+ β×frequency'(T n ,T m ,T l )
其中,priority(T n ,T m ,T l )表示硬件配置组合(T n ,T m ,T l )的优先级,frequency(T n ,T m ,T l )表示硬件配置组合(T n ,T m ,T l )在待测工业APP的历史版本测试中出现兼容性问题的第一问题次数,frequency'(T n ,T m ,T l )表示硬件配置组合(T n ,T m ,T l )在预设工业APP的历史版本测试中出现兼容性问题的第二问题次数,α表示第一预设权重,β表示第二预设权重。
一个实施例中,利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置包括:
对待测工业APP的多个硬件配置组合进行优先级排序;
根据优先级排序的结果,依次对每个硬件配置组合利用Docker容器客户端软件开发工具包连接Docker容器服务器并调用Docker容器应用程序接口,进行可移植性测试的运行环境配置。
具体实施时,对待测工业APP的多个硬件配置组合进行优先级排序,然后按优先级依次进行环境配置,使用Docker容器客户端软件开发工具包(Docker Client SDK)连接Docker容器服务器(Docker Server),主要有以下两种方法进行连接:
1、使用传输控制协议TCP 方式连接,Docker默认的并不支持传输控制协议TCP远程,因此需经过配置,配置后通过Docker远程直连方式进行连接,此方式可通过客户端连接云主机的Docker容器引擎(Docker Engine),而不必安装桌面版,节省了很大的存储空间,该方式一般在测试环境或内网环境中使用;
2、使用安全套接字协议SSL 方式连接,使用开放源代码的软件库包OpenSSL签发的证书及私钥加密连接,可实现安全访问,但无法在Docker主机上运行Docker命令,无法在portainer 上启动之前(正常启动下)的容器,只能重新建立。
然后,调用Docker容器应用程序接口Docker API,根据提供的硬件配置组合参数创建具备对应资源环境的容器来模拟真实的运行时环境。
在本实施例中,按如下方式对待测工业APP的多个硬件配置组合进行优先级排序:对待测工业APP的多个硬件配置组合形成的组合优先级队列进行堆排序,将优先级队列构造为二叉树,而后从最深左子树起,左子树大于父节点时进行左旋,右子树大于父节点时进行右旋,将优先级最大的元素调整为父节点,最终形成一个大顶堆,每次输出的根节点即为优先级最大的元素。优先级队列中的每一个元素都有一个“优先级”,在处理的时候,首先处理优先级最高的。如果两个元素具有相同的优先级,则按照他们插入到队列中的先后顺序处理。本发明中,使用堆排序对优先队列进行排序,其中硬件组合优先级为历史记录中出现兼容性问题的次数与相似工业APP测试出现兼容性问题的次数的加权和。
需要说明的是,安全套接字协议(Secure Sockets Layer,SSL)是为网络通信提供安全及数据完整性的一种安全协议,利用数据加密(Encryption)技术,可确保数据在网络上的传输过程中不会被截取及窃听。Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到机器上,可以实现虚拟化,完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
本发明实施例的特点在于:1、通过程序分析获取依赖库,以自适应地获取运行所需硬件环境;2、对硬件配置组合设置优先级,优先测试容易出错的组合,3、使用Docker容器模拟真实运行环境。将这3点结合,本发明可以通过程序分析获取工业APP运行所需依赖库,进而获得运行所需硬件环境;优先测试该工业APP历史版本测试中出现过兼容性问题的组合或具有类似功能的工业APP测试中出现过兼容性问题的组合;使用Docker容器模拟真实运行环境,在更节省时间和资源的情况下进行工业APP可移植性测试。
本发明的有益效果是:针对工业APP可移植性测试,通过程序分析获取工业APP运行所需依赖库,自适应地获得运行所需硬件环境,而不考虑程序文档明确不兼容的硬件版本,大大减少测试数量;对操作系统、CPU、内存、硬盘、网络条件等组合按照该工业APP历史版本测试中出现过兼容性问题的次数或具有类似功能的工业APP测试中出现过兼容性问题的次数进行优先级设置与排序,按优先级依次进行配置与测试,快速发现容易发现不兼容问题的硬件组合,在短时间内发现工业APP更多的不可移植性问题;使用Docker容器模拟真实运行环境,免去每次测试前的硬件安装配置工作,达到同样效果的同时节省了时间及硬件等资源,能够更快更有效地完成工业APP的可移植性测试。
下面给出一个具体实施例,说明本发明实施例中工业APP可移植性测试的具体应用。如图2~图3所示,我们对一个工业APP的2.0版本进行可移植性测试的硬件环境构建,初始已有1.0版本的测试记录。实验环境为:Ubuntu 18.04 LTS,CPU 8核,运行内存16GB,存储256GBSSD,Docker 19.03.1。具体实施步骤如下:
1、对工业APP进行程序分析,“$lddAPP”,利用ldd获得可执行程序依赖库,ldd设置了LD_TRACE_LOADED_OBJECTS, 在运行程序时调用/lib/ld-linux.so.2来处理动态库, 再进行输出分析得到XXAPP的整个依赖关系;
2、根据可执行程序依赖库,获得工业APP可运行的硬件环境参数,操作系统:CentOS 6/7/8及Ubuntu 14.04/16.04/18.04、系统资源:1C2G/2C4G,此外有软件依赖:tomcat7-jbk8/ tomcat8-jbk8;已知1.0版本测试中,在CentOS 7/2C4G/tomcat8-jdk8和Ubuntu 18.04/1C2G/tomcat7-jdk8环境下运行出现了不兼容问题。
3、对获得的运行环境要求进行组合,将各组合看作一个元素,给队列中的每个元素按该工业APP历史版本测试中出现过兼容性问题的组合或具有类似功能的工业APP测试中出现过兼容性问题的组合出现次数进行加权求和,赋予优先级,出现次数越多,优先级越高。
4、根据优先级进行排序,对元素进行堆排序,首先构造二叉树,而后从最深左子树起,将优先级最大的元素调整为父节点,左子树大于父节点时进行左旋,右子树大于父节点时进行右旋,最终得到一个大顶堆,每次输出的根节点即为优先级最大的元素。
5、从优先级最高的组合开始,依次进行环境部署,使用Docker Client SDK,使用SSL方式连接Docker Server,如下:
public String createContainer(String imageName, String sourceDir,String targetDir, int cpu, int mem, PortBinding portBinding) {
//端口绑定设置
Map<String, List<PortBinding>> portBindings = new HashMap<>();
List<PortBinding> hostPorts = new ArrayList<>();
hostPorts.add(portBinding);
portBindings.put("8080/tcp", hostPorts);
HostConfig hostConfig = HostConfig.builder()
.appendBinds(HostConfig.Bind.from(sourceDir)
.to(targetDir)
.readOnly(false).build())
.portBindings(portBindings)
.nanoCpus(CPU_COUNT*cpu)
.memory(MEM_GB*mem)
.build();
//加载hostConfig与镜像名称
ContainerConfig containerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image(imageName)
.build();
ContainerCreation container = null;
try {
container = dockerClient.createContainer(containerConfig);
dockerClient.startContainer(container.id());
return container.id();
} catch (Exception e) {
e.printStackTrace();
}
}
使用OpenSSL制作证书密钥、配置Docker支持TSL链接、验证TSL方式远程链接Docker。
6、调用Docker API,根据提供参数创建具备对应资源环境的容器来模拟真实的运行时环境,免去每次测试前的硬件安装配置工作,达到同样效果的同时节省了时间及硬件等资源,有利于更快更有效地完成工业APP的可移植性测试。
基于同一发明构思,本发明实施例还提供了一种工业APP可移植性测试装置,如下面的实施例所述。由于这些解决问题的原理与工业APP可移植性测试方法相似,因此工业APP可移植性测试装置的实施可以参见方法的实施,重复之处不再赘述。
图4为本发明实施例中工业APP可移植性测试装置的结构图,如图4所示,该工业APP可移植性测试装置包括:
软件程序分析模块401,用于对待测工业APP进行程序分析,得到可执行程序依赖库;
环境参数获得模块402,用于根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;
配置组合确定模块403,用于根据硬件环境参数,确定待测工业APP的多个硬件配置组合;
运行环境配置模块404,用于利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。
一个实施例中,按如下方式确定每个硬件配置组合的优先级:
对每个硬件配置组合,获得该硬件配置组合在待测工业APP的历史版本测试中出现兼容性问题的第一问题次数,以及该硬件配置组合在预设工业APP的历史版本测试中出现兼容性问题的第二问题次数;
根据所述第一问题次数和第一预设权重,以及第二问题次数以及第二预设权重,确定每个硬件配置组合的优先级。
一个实施例中,所述运行环境配置模块404进一步用于:
对待测工业APP的多个硬件配置组合进行优先级排序;
根据优先级排序的结果,依次对每个硬件配置组合利用Docker容器客户端软件开发工具包连接Docker容器服务器并调用Docker容器应用程序接口,进行可移植性测试的运行环境配置。
基于前述发明构思,如图5所示,本发明实施例还提供一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现上述工业APP可移植性测试方法。
基于前述发明构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述工业APP可移植性测试方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述工业APP可移植性测试方法。
本发明实施例通过对待测工业APP进行程序分析,得到可执行程序依赖库;根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;根据硬件环境参数,确定待测工业APP的多个硬件配置组合;利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能。本发明实施例通过对待测工业APP进行程序分析,得到可执行程序依赖库,进而根据可执行程序依赖库自适应的获得待测工业APP的硬件环境参数,而不需要考虑程序文档明确不兼容的硬件版本,大大减少测试数量,然后根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定每个硬件配置组合的优先级,并利用Docker容器根据每个硬件配置组合的优先级进行可移植性测试的运行环境配置,可以快速发现容易发现不兼容问题的硬件组合,在短时间内发现待测工业APP更多的不可移植性问题,此外使用Docker容器模拟真实运行环境可以有效免去每次测试前的硬件安装配置工作,达到同样效果的同时节省了时间及硬件等资源,能够更快更有效地完成工业APP的可移植性测试。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种工业APP可移植性测试方法,其特征在于,包括:
对待测工业APP进行程序分析,得到执行程序依赖库,其中,利用shell脚本ldd或报告进程内存映射关系pmap对工业APP进行程序分析得到可执行程序依赖库;
根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;
根据硬件环境参数,确定待测工业APP的多个硬件配置组合;
利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能;
按如下方式确定每个硬件配置组合的优先级:对每个硬件配置组合,获得该硬件配置组合在待测工业APP的历史版本测试中出现兼容性问题的第一问题次数,以及该硬件配置组合在预设工业APP的历史版本测试中出现兼容性问题的第二问题次数;根据所述第一问题次数和第一预设权重,以及第二问题次数以及第二预设权重,确定每个硬件配置组合的优先级。
2.如权利要求1所述的工业APP可移植性测试方法,其特征在于,利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置包括:
对待测工业APP的多个硬件配置组合进行优先级排序;
根据优先级排序的结果,依次对每个硬件配置组合利用Docker容器客户端软件开发工具包连接Docker容器服务器并调用Docker容器应用程序接口,进行可移植性测试的运行环境配置。
3.一种工业APP可移植性测试装置,其特征在于,包括:
软件程序分析模块,用于对待测工业APP进行程序分析,得到可执行程序依赖库,其中,利用shell脚本ldd或报告进程内存映射关系pmap对工业APP进行程序分析得到可执行程序依赖库;
环境参数获得模块,用于根据所述可执行程序依赖库,获得待测工业APP的硬件环境参数,所述硬件环境参数包括:操作系统参数,CPU参数,内存参数,硬盘参数,网络条件参数;
配置组合确定模块,用于根据硬件环境参数,确定待测工业APP的多个硬件配置组合;
运行环境配置模块,用于利用Docker容器根据每个硬件配置组合的优先级,进行可移植性测试的运行环境配置,其中每个硬件配置组合的优先级根据该硬件配置组合在待测工业APP和预设工业APP的历史版本测试中出现兼容性问题的次数确定,所述预设工业APP与待测工业APP具有相同功能;
按如下方式确定每个硬件配置组合的优先级:对每个硬件配置组合,获得该硬件配置组合在待测工业APP的历史版本测试中出现兼容性问题的第一问题次数,以及该硬件配置组合在预设工业APP的历史版本测试中出现兼容性问题的第二问题次数;根据所述第一问题次数和第一预设权重,以及第二问题次数以及第二预设权重,确定每个硬件配置组合的优先级。
4.如权利要求3所述的工业APP可移植性测试装置,其特征在于,所述运行环境配置模块进一步用于:
对待测工业APP的多个硬件配置组合进行优先级排序;
根据优先级排序的结果,依次对每个硬件配置组合利用Docker容器客户端软件开发工具包连接Docker容器服务器并调用Docker容器应用程序接口,进行可移植性测试的运行环境配置。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至2任一所述方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至2任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210478522.7A CN114579472B (zh) | 2022-05-05 | 2022-05-05 | 工业app可移植性测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210478522.7A CN114579472B (zh) | 2022-05-05 | 2022-05-05 | 工业app可移植性测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114579472A CN114579472A (zh) | 2022-06-03 |
CN114579472B true CN114579472B (zh) | 2022-07-22 |
Family
ID=81784844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210478522.7A Active CN114579472B (zh) | 2022-05-05 | 2022-05-05 | 工业app可移植性测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579472B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121654A (zh) * | 2016-11-30 | 2018-06-05 | 中国科学院声学研究所 | 一种基于Docker的软件大规模测试方法 |
CN109446069A (zh) * | 2018-09-26 | 2019-03-08 | 平安普惠企业管理有限公司 | 兼容性测试方法、装置、计算机设备和介质 |
CN111026415A (zh) * | 2019-12-17 | 2020-04-17 | 南京奥工信息科技有限公司 | 基于容器技术动态适应软硬件运行环境的软件部署方法 |
CN112148297A (zh) * | 2020-08-26 | 2020-12-29 | 广州市保伦电子有限公司 | 一种服务器智能加密打包方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578214B2 (en) * | 2010-09-09 | 2013-11-05 | International Business Machines Corporation | Error handling in a virtualized operating system |
US10754761B2 (en) * | 2016-11-11 | 2020-08-25 | Atlassian Pty Ltd | Systems and methods for testing source code |
US11409644B2 (en) * | 2019-03-11 | 2022-08-09 | Microstrategy Incorporated | Validation of mobile device workflows |
CN110096422A (zh) * | 2019-05-13 | 2019-08-06 | 苏州浪潮智能科技有限公司 | 一种基于容器的服务器计算性能测试方法与装置 |
US11669439B2 (en) * | 2020-06-09 | 2023-06-06 | Methodics, Inc. | Computing hardware and software design testing auditability, including for critical control systems, functional safety, and autonomous vehicle component certification |
CN113434426A (zh) * | 2021-07-06 | 2021-09-24 | 中国银行股份有限公司 | 多浏览器测试方法及装置 |
-
2022
- 2022-05-05 CN CN202210478522.7A patent/CN114579472B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121654A (zh) * | 2016-11-30 | 2018-06-05 | 中国科学院声学研究所 | 一种基于Docker的软件大规模测试方法 |
CN109446069A (zh) * | 2018-09-26 | 2019-03-08 | 平安普惠企业管理有限公司 | 兼容性测试方法、装置、计算机设备和介质 |
CN111026415A (zh) * | 2019-12-17 | 2020-04-17 | 南京奥工信息科技有限公司 | 基于容器技术动态适应软硬件运行环境的软件部署方法 |
CN112148297A (zh) * | 2020-08-26 | 2020-12-29 | 广州市保伦电子有限公司 | 一种服务器智能加密打包方法和装置 |
Non-Patent Citations (1)
Title |
---|
Java Web应用可移植性自动化测试系统的设计与实现;薛晓波;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20220415(第04期);正文第5、17、71、31页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114579472A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200364131A1 (en) | Cloud infrastructure optimization | |
EP2994835B1 (en) | Identifying impacted tests from statically collected data | |
JP6045134B2 (ja) | アプリケーション性能試験のための並列作業負荷シミュレーション | |
CN108121654B (zh) | 一种基于Docker的软件大规模测试方法 | |
US20110307905A1 (en) | Indicating parallel operations with user-visible events | |
Aronis et al. | A scalability benchmark suite for Erlang/OTP | |
CN107302476B (zh) | 一种测试异步交互系统的自动化测试方法与系统 | |
US20210382710A1 (en) | Intelligent prefetching for os components | |
CN111966597B (zh) | 测试数据生成方法及装置 | |
Koziolek et al. | Lightweight kubernetes distributions: A performance comparison of microk8s, k3s, k0s, and microshift | |
CN110297771A (zh) | 用于仓单页面的分布式测试方法及装置 | |
US12001327B2 (en) | Execution platform assignments in CI/CD systems | |
US8645920B2 (en) | Data parallelism aware debugging | |
CN115357898A (zh) | 一种java组件的依赖分析方法、装置及介质 | |
WO2022108672A1 (en) | Tuning large data infrastructures | |
CN114579472B (zh) | 工业app可移植性测试方法及装置 | |
CN113434426A (zh) | 多浏览器测试方法及装置 | |
CN113472557A (zh) | 一种虚拟网元处理方法、装置及电子设备 | |
US10592371B2 (en) | Cognitive testing configuration according to dynamic changes in an install-base | |
CN111158889A (zh) | 一种批量任务处理方法及系统 | |
CN112015436A (zh) | 短信平台部署方法及装置、计算设备、计算机存储介质 | |
CN115617668A (zh) | 一种兼容性测试方法、装置及设备 | |
CN114003457A (zh) | 数据获取方法和装置、存储介质及电子设备 | |
US20220107817A1 (en) | Dynamic System Parameter for Robotics Automation | |
US20220122038A1 (en) | Process Version Control for Business Process Management |
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 |