CN110188028A - 一种计算机系统的测试方法 - Google Patents
一种计算机系统的测试方法 Download PDFInfo
- Publication number
- CN110188028A CN110188028A CN201811021164.7A CN201811021164A CN110188028A CN 110188028 A CN110188028 A CN 110188028A CN 201811021164 A CN201811021164 A CN 201811021164A CN 110188028 A CN110188028 A CN 110188028A
- Authority
- CN
- China
- Prior art keywords
- test
- program
- tested
- finger daemon
- host
- 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
- 238000010998 test method Methods 0.000 title claims description 12
- 238000012360 testing method Methods 0.000 claims abstract description 120
- 238000000034 method Methods 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims abstract description 8
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 238000002347 injection Methods 0.000 claims description 3
- 239000007924 injection Substances 0.000 claims description 3
- 230000004888 barrier function Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 5
- 239000000725 suspension Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
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
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于计算机领域,具体公开了一种计算机的测试方法,应用于测试主机和被测试系统,所述被测试系统中安装有多个测试程序以及管理所述测试程序的守护进程,所述多个测试程序都在统一的测试程序框架下编写,测试过程中,测试主机与守护进程通信连接,测试主机发送请求至守护进程,守护进程接收测试主机发送的请求,启停或微调被测试系统上的测试程序。与现有技术相比,本发明公开的技术方案用统一的测试程序框架编写不同类型的负载发生和故障注入程序,故障和负载可以灵活组装,可以按需产生各种计算负载、灵活注入软硬件故障。
Description
【技术领域】
本发明属于计算机领域,具体涉及一种计算机系统的测试方法。
【背景技术】
为了测试各种大型计算机系统例如云计算系统,分布式存储系统在各种负载下的表现,要求测试人员能够非常灵活地组合各种计算负载,例如CPU负载,内存负载,输入输出负载等等。同时,为了检验软件系统应对各种异常环境之下的可靠性,测试人员往往会往系统中注入各种软件、硬件故障,例如硬件死机,网络断开等故障事件。
由于计算机负载和故障的多样性,如何灵活地混合、组装多种不同类型的负载和故障,以及如何控制故障和负载在何时、何种条件下按何种顺序发生,是一个很大的难题。
现有的测试系统中,可以利用工具单独地产生某种负载,以及可以手工注入各种故障。这样的方式低效,灵活度低,重用性差。
【发明内容】
本发明的目的在于针对现有技术的不足,提供一种计算机系统的测试方法,可以按需产生各种计算负载,灵活注入各种软硬件故障,可以达到实时、可控、定量、自动的负载管理和故障注入。
本发明中“API”的具体含义为:应用程序接口。
具体的,本发明的技术方案是:
一种计算机系统的测试方法,应用于测试主机和被测试系统,所述测试主机和被测试系统通信连接,所述被测试系统中安装有多个测试程序以及管理所述测试程序的守护进程,所述多个测试程序都在统一的测试程序框架下编写。
测试过程中,测试主机与守护进程通信连接,测试主机发送请求至守护进程,守护进程接收测试主机发送的请求,并根据所述请求控制被测试系统上的测试程序运行。
进一步的,所述测试程序包括负载发生工具和/或故障注入工具。
进一步的,所述被测试系统上设有共享内存区域,用于所述守护进程和测试程序之间进行信息交换。
进一步的,所述测试程序为可执行文件,用户可直接登录到被测试系统上,手动启停每个测试程序,临时产生工作负载或注入故障。
进一步的,所述测试主机为运行有测试脚本和/或CLI命令行工具的计算机,所述测试脚本和CLI命令行工具通过调用API与守护进程通信,用于向所述守护进程发送请求。
进一步的,所述方法由可产生各种负载和故障的计算机系统实现,所述计算机系统包括测试主机和被测试系统,所述测试主机和被测试系统通信连接;所述被测试系统中安装有多个测试程序以及管理所述测试程序的守护进程,所述多个测试程序都在统一的测试程序框架下编写。
与现有技术相比,本发明公开的技术方案用统一的程序框架编写和管理不同类型的负载发生和故障注入程序,故障和负载可以灵活组装,可以按需产生各种负载、灵活注入软硬件故障。同时无需对测试程序框架进行修改,新增加的测试程序可自动被发现并立即被使用,扩展性强。被测试系统和测试主机不在同一个系统,被测试系统的状态不会影响测试主机所在系统,实现了被测试系统和测试系统的有效隔离。测试主机可同时连接多个被测试系统,故障和负载可以在多个被测试系统间协调运行。
【附图说明】
图1为本发明实施例提供的一种可产生各种负载和故障的计算机系统。
图2为本发明实施例提供的一种计算机系统的测试方法中测试程序的运行流程图。
【具体实施方式】
下面将结合附图对本发明的技术方案进行清楚完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域的普通技术人员在没有做出创造性劳动的前提下所获得的其他实施例,都属于本发明的保护范围。
参照图1-2:
本实施例提供一种可产生各种负载和故障的计算机系统,包括测试主机一和测试主机二,以及被测试系统。测试主机一和测试主机二与被测试系统通信连接,具体的可以通过网线直接连接或者通过无线网络连接。该被测试系统上安装有测试程序和用于管理测试程序的守护进程,测试程序包括负载发生工具和故障注入工具。负载发生工具包括用于产生读写负载的读写负载程序、用于产生CPU负载的CPU负载程序和用于产生内存负载的内存负载程序,故障注入程序包括产生掉线故障的掉线故障程序、用于产生断网故障的断网故障程序和用于产生死机故障的死机故障程序。所有测试程序都遵循统一的测试程序框架编程规范,测试程序框架提供通用函数,在守护进程和测试程序的运行过程中,通用函数支持守护进程和测试程序之间的信息交互,守护进程通过通用函数控制测试程序的运行。
测试程序在入口处调用测试程序框架提供的API函数进行初始化,初始化过程包括:
a.处理默认参数
b.向守护进程注册自身
c.创建后台线程以及对应的通信套接字,与守护进程保持通信
测试程序均支持一定的默认参数,该默认参数可用来控制测试程序的行为,例如CPU负载程序中的负载百分比,负载百分比可控制CPU负载程序占用被测试系统中CPU资源的百分比。
优选的,被测试系统上设置有共享内存区域,用于测试程序和守护进程之间进行信息交换。共享内存区域存储测试程序的运行状态信息,供守护进程和测试脚本读取调用。
测试主机一上安装有测试脚本,测试主机二上安装有CLI命令行工具。测试主机一优选为一台计算机,测试主机二优选为移动平板电脑。测试脚本和CLI命令行工具调用API来与守护进程进行通信,以控制被测试系统上的测试程序。
优选的,API支持多种编程语言,包括C语言、Python和Perl语言。
在系统测试过程中,被测试系统启动时守护进程同时启动,守护进程启动时打开网络套接字,监听来自远程客户端的请求。当测试人员需要在被测试系统中产生某种负载或故障时,测试人员启动测试主机一,运行测试主机一中的测试脚本。测试脚本调用API函数发送请求至被测试系统,守护进程监听到测试脚本的请求后与测试主机建立网络连接。测试脚本和守护进程建立连接后,测试脚本可根据测试需要向被测试系统发送不同的请求,如发送信息读取指令,读取被测试系统中的测试程序信息,达到枚举被测试系统上测试程序的目的,也可发送启动命令,启动不同的测试程序,产生不同的负载和故障。测试人员可根据需求灵活组合不同的负载和故障,如同时启动CPU负载程序和内存负载程序,产生CPU负载和内存负载,也可同时启动CPU负载程序、断网故障程序和死机故障程序,同时产生负载和故障。以上操作也可由测试主机二中的CLI命令行工具执行,在此不做赘述。
守护进程同时具有消息路由功能,当测试脚本或CLI命令行工具需要传递消息给某个测试程序时,守护进程首先接收到该消息,并将该消息传递给指定的测试程序。该消息可以用来控制测试程序的行为,如修改测试程序的默认参数,例如修改内存负载程序的负载百分比参数,调节内存负载占被测试系统中CPU负载的百分比,50%表示内存负载占用50%CPU资源,30%表示内存负载占用30%CPU资源。
共享内存区域是被测试主机上的一块共享内存区域,在测试程序运行过程中,测试程序将不同数据信息发送至共享内存区域存储,数据信息可以是测试程序的运行记录、运行结果和运行状态等消息。守护进程可通过共享内存区域读取测试程序的数据信息,测试脚本和CLI命令行工具可通过API读取共享内存区域中存储的数据信息。
在测试过程中,测试主机可以同时连接多个不同的被测试系统,测试脚本和CLI命令行工具可以同时与多个被测试系统连接,同时向多个被测试系统发送请求,使负载和故障可以在多个被测试系统中协调运行。
当达到测试目的后,测试脚本可发送控制命令至守护进程,停止被测试系统上运行的测试程序。测试程序结束时,测试程序终止后台线程,释放共享内存,关闭网络套接字。
在被测试系统中,测试程序框架完全开放,测试人员可以任意的添加或删除测试程序,被添加的测试程序可通过测试脚本和CLI命令行工具的枚举功能自动的被测试脚本和CLI命令行工具发现并使用,可以随时提供新的负载类型和故障类型。
参照图2,由于每个测试程序实际上都是一个可执行文件,所以被测试系统支持手动控制,测试人员可直接登录到被测试系统上手动启停每个测试程序,临时产生工作负载或故障注入。
上述实施例仅用于说明本发明的技术方案,而非对其限制。本发明并不局限于上面已经描述并在附图中示意的准确结构,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,做出的各种改变和变形,都应当视为属于本发明的保护范围。
Claims (7)
1.一种计算机系统的测试方法,应用于测试主机和被测试系统,所述测试主机和被测试系统通信连接,其特征在于:所述被测试系统中安装有多个测试程序以及管理所述测试程序的守护进程,所述多个测试程序都在统一的测试程序框架下编写;
测试过程中,测试主机与守护进程通信连接,测试主机发送请求至守护进程,守护进程接收测试主机发送的请求,并根据所述请求控制被测试系统上的测试程序运行。
2.根据权利要求1所述的测试方法,其特征在于:所述测试程序包括负载发生工具和/或故障注入工具。
3.根据权利要求1所述的测试方法,其特征在于:所述被测试系统上设有共享内存区域,用于所述守护进程和测试程序之间进行信息交换。
4.根据权利要求1-3任一项所述的测试方法,其特征在于:所述测试程序为可执行文件,用户可直接登录到被测试系统上,手动启停每个测试程序,临时产生工作负载或注入故障。
5.根据权利要求1-3任一项所述的测试方法,其特征在于:所述测试主机为运行有测试脚本和/或CLI命令行工具的计算机,所述测试脚本和CLI命令行工具通过调用API与守护进程通信,用于向所述守护进程发送请求。
6.根据权利要求4所述的测试方法,其特征在于:所述测试主机为运行有测试脚本和/或CLI命令行工具的计算机,所述测试脚本和CLI命令行工具通过调用API与守护进程通信,用于向所述守护进程发送请求。
7.根据权利要求1所述的方法,其特征在于:所述方法由可产生各种负载和故障的计算机系统实现,所述计算机系统包括测试主机和被测试系统,所述测试主机和被测试系统通信连接;所述被测试系统中安装有多个测试程序以及管理所述测试程序的守护进程,所述多个测试程序都在统一的测试程序框架下编写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811021164.7A CN110188028B (zh) | 2018-09-03 | 2018-09-03 | 一种计算机系统的测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811021164.7A CN110188028B (zh) | 2018-09-03 | 2018-09-03 | 一种计算机系统的测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110188028A true CN110188028A (zh) | 2019-08-30 |
CN110188028B CN110188028B (zh) | 2023-09-12 |
Family
ID=67713837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811021164.7A Active CN110188028B (zh) | 2018-09-03 | 2018-09-03 | 一种计算机系统的测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110188028B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256453A (zh) * | 2020-10-28 | 2021-01-22 | 北京基软科技有限公司 | 一种任意软件进程之间的通信方法 |
CN112328467A (zh) * | 2020-09-17 | 2021-02-05 | 北京中数科技术有限公司 | 一种嵌入式系统程序测试方法及装置 |
CN117408061A (zh) * | 2023-10-13 | 2024-01-16 | 上海同星智能科技有限公司 | 整车模型仿真性能优化系统及计算机装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150463A (zh) * | 2007-11-14 | 2008-03-26 | 华为技术有限公司 | 测试方法和系统 |
CN101252471A (zh) * | 2008-03-20 | 2008-08-27 | 中兴通讯股份有限公司 | 一种分布式自动化测试系统及其方法 |
CN103455416A (zh) * | 2013-07-18 | 2013-12-18 | 北京航空航天大学 | 一种基于占用Android系统智能设备内存和CPU的压力测试方法 |
CN107122306A (zh) * | 2017-05-15 | 2017-09-01 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
-
2018
- 2018-09-03 CN CN201811021164.7A patent/CN110188028B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150463A (zh) * | 2007-11-14 | 2008-03-26 | 华为技术有限公司 | 测试方法和系统 |
WO2009062419A1 (fr) * | 2007-11-14 | 2009-05-22 | Huawei Technologies Co., Ltd. | Système et procédé de test |
CN101252471A (zh) * | 2008-03-20 | 2008-08-27 | 中兴通讯股份有限公司 | 一种分布式自动化测试系统及其方法 |
CN103455416A (zh) * | 2013-07-18 | 2013-12-18 | 北京航空航天大学 | 一种基于占用Android系统智能设备内存和CPU的压力测试方法 |
CN107122306A (zh) * | 2017-05-15 | 2017-09-01 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
Non-Patent Citations (4)
Title |
---|
王卓威 等: "一个基于网络的程序自动评测系统", 《北京航空航天大学学报》 * |
王卓威 等: "一个基于网络的程序自动评测系统", 《北京航空航天大学学报》, vol. 30, no. 6, 30 June 2004 (2004-06-30), pages 2 * |
阳国贵;姜波;: "线程切换开销分析工具的设计与实现", 计算机应用, no. 08 * |
陆倩;李莉;沈苏彬;: "一种提高嵌入式系统可靠性的自监测技术", 系统仿真学报, no. 11 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328467A (zh) * | 2020-09-17 | 2021-02-05 | 北京中数科技术有限公司 | 一种嵌入式系统程序测试方法及装置 |
CN112328467B (zh) * | 2020-09-17 | 2022-06-28 | 北京中数科技术有限公司 | 一种嵌入式系统程序测试方法及装置 |
CN112256453A (zh) * | 2020-10-28 | 2021-01-22 | 北京基软科技有限公司 | 一种任意软件进程之间的通信方法 |
CN112256453B (zh) * | 2020-10-28 | 2024-05-28 | 北京基软科技有限公司 | 一种任意软件进程之间的通信方法 |
CN117408061A (zh) * | 2023-10-13 | 2024-01-16 | 上海同星智能科技有限公司 | 整车模型仿真性能优化系统及计算机装置 |
CN117408061B (zh) * | 2023-10-13 | 2024-05-03 | 上海同星智能科技有限公司 | 整车模型仿真性能优化系统及计算机装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110188028B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5781778A (en) | Method and system for debugging parallel and distributed applications | |
CN110188028A (zh) | 一种计算机系统的测试方法 | |
US6745350B1 (en) | Automated failure recovery service | |
US20060174225A1 (en) | Debugging a High Level Language Program Operating Through a Runtime Engine | |
US7818421B2 (en) | Autonomous handling management system, autonomous handling management method, and program | |
US7904886B2 (en) | Method for executing an application in a virtual container forming a virtualized environment session | |
US7770154B2 (en) | Lightweight highly available infrastructure to trace program execution | |
US8261248B2 (en) | System and method of executing a dynamic program in a structured environment | |
CN103369054B (zh) | 一种采集任务管理方法及系统 | |
CN111130922A (zh) | 一种机载信息安全自动化测试方法及测试平台 | |
BR112020004404A2 (pt) | dispositivo terminal de gerenciamento de alta disponibilidade, e, método de gerenciamento de um dispositivo terminal de gerenciamento. | |
CN105843693B (zh) | 一种面向高速磁浮交通仿真的共享内存方法 | |
CN112346980B (zh) | 软件性能测试方法、系统和可读存储介质 | |
BR112020004407A2 (pt) | sistema de alta disponibilidade de uma máquina virtual openstack para impedir split-brain. | |
CN106559267A (zh) | Redis的主从切换方法、装置及redis系统 | |
Maâlej et al. | Study on the limitations of ws-bpel compositions under load conditions | |
CN106649028A (zh) | 一种自动化Linux系统维护任务的方法 | |
CN108121221B (zh) | 一种机器人命令接口控制系统及方法 | |
US8850427B2 (en) | Bulk data management in a virtual environment | |
CN107948001B (zh) | 一种船舶制造车间工业网络智能监控系统及方法 | |
US20110307904A1 (en) | Method and apparatus for automation language extension | |
CN105260193A (zh) | 一种大型软件自愈合框架及愈合方法 | |
CN105677540A (zh) | 对远程不可达软件系统的运行状态进行远程监控的方法 | |
CN108280012A (zh) | 一种监控服务器系统进程的方法及装置 | |
CN109697132A (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Testing Method for Computer Systems Granted publication date: 20230912 Pledgee: Xi'an investment and financing Company limited by guarantee Pledgor: Xi'an Okayun Data Technology Co.,Ltd. Registration number: Y2024610000010 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |