CN1519703A - 可组合挂接的计算机多线程测试***及其方法 - Google Patents
可组合挂接的计算机多线程测试***及其方法 Download PDFInfo
- Publication number
- CN1519703A CN1519703A CNA031019056A CN03101905A CN1519703A CN 1519703 A CN1519703 A CN 1519703A CN A031019056 A CNA031019056 A CN A031019056A CN 03101905 A CN03101905 A CN 03101905A CN 1519703 A CN1519703 A CN 1519703A
- Authority
- CN
- China
- Prior art keywords
- test
- module
- test item
- multithreading
- combined
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种可组合挂接的计算机多线程测试***及其方法,包括测试项模块,多线程接口模块以及测试平台,测试时首先加载用户选择的测试项模块,获取用户设定的配置参数,如欲开启的线程数,再将该配置参数收集到多线程接口中,并传递至相应的测试项模块,根据用户设定的线程数,在模板中调用操作***多线程机制为每个选定的测试项开启相应数量的线程,然后调用每个测试项的测试过程作为线程函数并行测试。
Description
技术领域
本发明涉及一种计算机测试***及方法,特别涉及一种可以对测试模块任意组合分别挂接的测试***及方法。
背景技术
对于计算机在生产线上的测试,目前有许多种方法可以采用,通常都是针对不同的测试项目,设计不同的测试算法来完成测试,但总体上可分为两类,一类是部件测试,一类是整体测试。
部件测试方法,是针对计算机某一特定部件进行测试,但由于计算器的各部件模块之间不是割裂的,是一个复杂的***,因此这种测试方法的不足之处在于只能显示出该计算机某一项性能指针的好坏,而往往忽视了计算器的并行性与协调性。整体测试方法克服了这个缺点,根据整台计算机的所有待测模块的情况,分别设计出不同的测试算法,再将所有模块算法作为整体同时并行测试,测试结果就是该台计算机的整体性能表现。
虽然整体测试方法可以检验计算机的整体性能,但却无法了解每个具体的测试部件的性能好坏,因为它是将所有部件作为整体考虑而进行的测试方法。也就是说,如果整机性能不佳,整体测试方法根本不能告诉我们是哪一个部件造成的影响。这是因为整机性能依赖于***的协调性,如果***的某一方面(如I/O)成为瓶颈,就会影响其它测试部件的表现,也就是说,造成同样的整机表现的原因可能是千差万别的,这就使得测试结果不能完整、准确、充分的反应计算器整机以及各部件之间的关系和性能。
另外,整体测试方法需要多线程并行,但在程序开发过程中,由于编写不同测试项模块的程序员对多线程的理解不同,可能会出现不同的问题,不但开发时间长,而且也给以后的维护带来不便。
发明内容
本发明的目的在于为解决上述问题而提供一种可组合挂接的计算机多线程测试***及其方法,将经过划分的测试项模块进行自由组合测试,并可任意开启线程数量,增加或排除相关因素对某个测试项的影响,以获得更精确的测试结果。
本发明提供一种可组合挂接的计算机多线程测试***,将划分的测试项模块自由组合进行计算机性能测试,包括测试项模块,用以执行具体的测试项测试过程;多线程接口模块,用以开启多个线程,并调用每个测试项模块的测试过程为线程函数;以及测试平台,用以加载和管理测试项模块,并通过多线程接口控制每个线程的测试过程。
本发明还提供一种可组合挂接的计算机多线程测试方法,首先加载用户选择的测试项模块;接着,获取用户设定的配置参数,其中包括欲开启的线程数;将该配置参数收集到多线程接口中,并传递至相应的测试项模块;根据用户设定的线程数,在模板中调用操作***多线程机制为每个选定的测试项开启相应数量的线程;然后调用每个测试项的测试过程作为线程函数并行测试。
本发明与现有技术相比,具有如下的有益功效:
1、通过对测试项的灵活选择挂接,可以对测试过程中的测试环境和影响因素进行修正,使得测试结果更精确。
2、通过任意开启多线程测试,可灵活掌握测试压力。如果只选择一个测试项开启一个线程,就是普通的部件测试模式,如果选择多个测试项并开启多个线程,则就是压力测试,压力的大小可任意设定。
3、根据同一测试项之间的测试报告,可以进行比较,提供测试项模块的性能数据。
附图说明
图1为本发明的可组合挂接的计算机多线程测试***架构图;
图2为本发明的可组合挂接的计算机多线程测试方法流程图。
其中,附图标记说明如下:
101测试项模块1
102测试项模块2
103测试项模块N
200多线程接口模块
300测试平台
步骤201加载用户选择的测试项模块
步骤202获取用户设定的配置参数,其中包括欲开启的线程数
步骤203将该配置参数收集到多线程接口中,并传递至相应的测试项模块
步骤204根据用户设定的线程数,在模板中调用操作***多线程机制为每个选定的测试项开启相应数量的线程
步骤205调用每个测试项的测试过程作为线程函数并行测试
具体实施方式
如图1所示,为本发明的可组合挂接的计算机多线程测试***架构图,其包括:测试项模块101、102、103,多线程接口模块200以及测试平台300。
其中,测试项模块101、102、103用以执行具体的测试项测试过程;多线程接口模块200用以开启多个线程,并调用每个测试项模块的测试过程为线程函数;测试平台300用以加载和管理测试项模块,并通过多线程接口200控制每个线程的测试过程,其可以包括测试项管理模块、测试项配置模块以及错误及日志管理模块,其中,测试项管理模块用于加载、管理测试项模块,并维护其生命期,测试项管理模块通过统一的接口规格动态识别、加载测试项,对外代理其它模块对测试项的访问;测试项配置模块通过测试项管理模块代理测试项模块的配置以及配置文件的管理维护;错误及日志管理模块通过测试项管理模块代理测试项日志和错误信息的输出及其文件的管理,当测试项成组测试时,测试平台还可以包括测试调度模块,其通过测试项管理模块对测试项模块进行多线程测试的调度管理。
每个测试项都有一个唯一的标识,由测试项依本身的特性而自行提供,下面以硬盘(HardDisk)的Sequential Seek为例说明之:
HardDisk的Sequential Seek测试项标识(ID):“Computer.Hard Disk.O.Sequential Seek”;同理,软盘(Floppy Disk)测试项ID:“computer.FloppyDisk.FD Test”。
为了便于描述,我们可将测试项ID理解为由三部分组成:“设备名称”、“设备编号”和“测试内容名称”。如“System Hard Disk.HD1.Sequential Seek”的“设备名称”是“SystemHard Disk”,“设备编号”是“0”,“测试名称”是“Sequential Seek”。
其中,“设备编号”这部份属于可选项,它针对的是在一台机器上可能存在多个相同类型设备的情况,例如一台机器上可以有几块硬盘(其个数可能来自于动态检测的结果,或是用户的设定)。
以含有Computer.Hard Disk.O.Sequential Seek的测试项模块为例,其应具有的内容包括:身份识别接口(bool is Inventec Test Item())、所能支持的OS(DWORD get Support Os())、取得测试ID的接口(LPCTSTR get TestId())、取得配置接口的接口(get Diag UI())、执行测试动作的接口(voidTest(Configuration cfg))等。
本发明通过为测试项(以动态模块形式存在)提供通用的、统一的接口,实现了对测试项模块的动态组合挂接,因此测试项的接口也是比较重要的一部份,一种具体的实例如下所述:
配置接口:用于配置测试项自身的测试参数,特性、风格等等细节由测试项自身决定,平台仅仅为其提供显示区域,包括:
获取配置接口:getConfigurationUI(),
设置配置文文件:setConfiguration(),
保存配置文文件:save();
测试执行接口:包括:
测试动作的执行体:launchTest(),
公共接口:包括:
获取测试项支持的操作***(OS):getSupportOS(),
未列在图中的接口还有,但不限于:
后取全局设定:getGlobalSetting(),
输出日志:writeLog(),
输出错误信息:writeError(),
测试进度更新:updateProgress()。
在测试过程中,当测试错误时,测试项可以调用getPlatform()接口来获取测试平台300中的测试项管理模块提供的一套服务接口,例如writeError(LPCTSTR err)、writeLog(LPCTSTR log)等来输出信息,对于错误、日志会由测试平台300中的错误及日志管理模块来完成。
请参阅图2,为本发明的可组合挂接的计算机多线程测试方法,首先加载用户选择的测试项模块(步骤201);接着,获取用户设定的配置参数,其中包括欲开启的线程数(步骤202);将该配置参数收集到多线程接口中,并传递至相应的测试项模块(步骤203);根据用户设定的线程数,在模板中调用操作***多线程机制为每个选定的测试项开启相应数量的线程(步骤204);然后再调用每个测试项的测试过程作为线程函数并行测试(步骤205)。
上述加载过程中,首先通过检索测试项存放目录,根据用户的选择而加载其中一个测试项,并验证该测试项的身份标识,如果该标识不符合要求,则放弃并尝试加载下一测试项;同时,验证该测试项是否支持当前的操作***,如果不支持,则放弃并尝试加载下一测试项,然后,获取并整理该测试项的相关信息;然后,检查存放目录中是否还有未加载的用户选择的测试项,如果有则再次加载。
上述将该配置参数收集到多线程接口中,并传递至相应的测试项模块之步骤,是根据用户选择的测试项模块,通过多线程接口模块生成对应数量的多线程接口而与各测试项分别进行通信。
多线程接口模块的实现利用了操作***的多线程机制,为每个测试项开启了多个线程;利用了模板技术,只需调用一段模板代码就可实现多个功能。另外,还可利用宏技术,为不同情况设定不同的运行路径。
例如,当测试硬盘性能的时候,我们可以按照测试指针划分出测试模块,则其包括:
1、磁盘处理时间%Disk Time;
2、磁盘处理队列长度Physical Disk\AVG.Disk Queue,Physical
Disk\AVG.Disk Queue Length;
3、磁盘处理数据量Avg.Disk Bytes/Transfer;以及
4、磁盘寻道次数Avg.Disk sec/Transfer。
我们也可以按照影响因素划分出测试模块,例如有关的影响因素可以是:CPU处理速度。
当把硬盘性能指针的测试模块与影响因素CPU测试模块组合并挂接起来进行测试时,在多CPU的服务器上需要根据服务器的CPU个数分配开启线程,并制定每个线程运行的CPU。而多线程接口程序连接到测试项模块的相应部分,以便通过多线程接口使测试项与测试平台相互通信。还可定义AFFINITYMASK宏来实现分配线程到相应CPU的功能宏。
挂接影响因素测试后,还可实验不挂接影响因素再次进行测试,如果两次测试的性能都良好,则说明测试项目性能良好,如果一次较好而另一次较差,则分析其中的原因,改换其它影响因素而再次测试。
以上所述仅为本发明的较佳实施例而已,并非用来限定本创作的实施范围;即凡依本发明权利要求所作的等效变化与修饰,皆为本发明专利范围所涵盖。
Claims (9)
1.一种可组合挂接的计算机多线程测试***,将划分的测试项模块自由组合进行计算机性能测试,其特征在于,包括:
测试项模块,用以执行具体的测试项测试过程;
多线程接口模块,用以开启多个线程,并调用每个测试项模块的测试过程为线程函数;以及
测试平台,用以加载和管理测试项模块,并通过多线程接口控制每个线程的测试过程。
2.如权利要求1所述的可组合挂接的计算机多线程测试***,其特征在于,该测试平台与各测试项模块具有统一的数据接口规格。
3.如权利要求1所述的可组合挂接的计算机多线程测试***,其特征在于,该测试平台包括测试项管理模块、测试项配置模块以及错误及日志管理模块。
4.如权利要求1所述的可组合挂接的计算机多线程测试***,其特征在于,该测试平台还包括测试项调度模块。
5.一种可组合挂接的计算机多线程测试方法,是将划分的测试项模块自由组合进行计算机性能测试,其特征在于,包括:
加载用户选择的测试项模块;
获取用户设定的配置参数,其中包括欲开启的线程数;
将该配置参数收集到多线程接口中,并传递至相应的测试项模块;
根据用户设定的线程数,在模板中调用操作***多线程机制为每个选定的测试项开启相应数量的线程;以及
调用每个测试项的测试过程作为线程函数并行测试。
6.如权利要求5所述的可组合挂接的计算机多线程测试方法,其特征在于,该划分的测试项模块是按照测试指针进行划分的确。
7.如权利要求5所述的可组合挂接的计算机多线程测试方法,其特征在于,该划分的测试项模块是按照相互的影响关系进行划分的。
8.如权利要求5所述的可组合挂接的计算机多线程测试方法,其特征在于,将该配置参数收集到多线程接口中,并传递至相应的测试项模块的步骤,是根据用户选择的测试项模块,通过多线程接口模块生成对应数量的多线程接口而与各测试项分别进行通信。
9.如权利要求5所述的可组合挂接的计算机多线程测试方法,其特征在于,在模板中调用操作***多线程机制为每个选定的测试项开启相应数量的线程的步骤,还包括利用宏定义为不同情况设定不同的运行路径的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03101905 CN1519703B (zh) | 2003-01-23 | 2003-01-23 | 可组合挂接的计算机多线程测试***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03101905 CN1519703B (zh) | 2003-01-23 | 2003-01-23 | 可组合挂接的计算机多线程测试***及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1519703A true CN1519703A (zh) | 2004-08-11 |
CN1519703B CN1519703B (zh) | 2010-05-05 |
Family
ID=34281503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03101905 Expired - Fee Related CN1519703B (zh) | 2003-01-23 | 2003-01-23 | 可组合挂接的计算机多线程测试***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1519703B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100367040C (zh) * | 2004-08-18 | 2008-02-06 | 华为技术有限公司 | 一种射频产品测试方法 |
CN100483429C (zh) * | 2005-12-16 | 2009-04-29 | 国际商业机器公司 | 验证操作支持***及其方法 |
CN102169455A (zh) * | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 用于软件性能测试的调试方法和*** |
CN102681903A (zh) * | 2011-03-15 | 2012-09-19 | 深圳光启高等理工研究院 | 一种数据处理方法 |
CN102929778A (zh) * | 2012-10-30 | 2013-02-13 | 无锡江南计算技术研究所 | 众核阵列上并行测试的控制方法及硅后验证*** |
CN101685420B (zh) * | 2008-09-24 | 2013-06-12 | 中兴通讯股份有限公司 | 多线程调试方法和装置 |
CN104850480A (zh) * | 2015-05-18 | 2015-08-19 | 曙光信息产业(北京)有限公司 | 高密度存储服务器硬盘性能测试的方法及装置 |
CN104216829B (zh) * | 2014-08-29 | 2017-09-19 | 福建联迪商用设备有限公司 | 一种嵌入式模块并发测试的方法及*** |
CN107197475A (zh) * | 2016-03-14 | 2017-09-22 | 重庆邮电大学 | 一种基于多线程的传感节点标识符解析测试方法及*** |
CN107908485A (zh) * | 2017-10-26 | 2018-04-13 | 中国平安人寿保险股份有限公司 | 接口参数传递方法、装置、设备及计算机可读存储介质 |
CN109062750A (zh) * | 2018-09-13 | 2018-12-21 | 国家海洋环境预报中心 | 一种高性能计算机测试*** |
CN112578259A (zh) * | 2019-09-29 | 2021-03-30 | 北京君正集成电路股份有限公司 | 一种具有数据空间设置的线程调度方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182210B1 (en) * | 1997-12-16 | 2001-01-30 | Intel Corporation | Processor having multiple program counters and trace buffers outside an execution pipeline |
US6681345B1 (en) * | 2000-08-15 | 2004-01-20 | International Business Machines Corporation | Field protection against thread loss in a multithreaded computer processor |
CN1152303C (zh) * | 2000-12-06 | 2004-06-02 | 无敌科技(西安)有限公司 | 在仿真器上实现对操作路径自动记录和回放的方法 |
-
2003
- 2003-01-23 CN CN 03101905 patent/CN1519703B/zh not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100367040C (zh) * | 2004-08-18 | 2008-02-06 | 华为技术有限公司 | 一种射频产品测试方法 |
CN100483429C (zh) * | 2005-12-16 | 2009-04-29 | 国际商业机器公司 | 验证操作支持***及其方法 |
CN101685420B (zh) * | 2008-09-24 | 2013-06-12 | 中兴通讯股份有限公司 | 多线程调试方法和装置 |
CN102169455A (zh) * | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 用于软件性能测试的调试方法和*** |
CN102681903B (zh) * | 2011-03-15 | 2014-11-26 | 深圳光启高等理工研究院 | 一种数据处理方法和*** |
CN102681903A (zh) * | 2011-03-15 | 2012-09-19 | 深圳光启高等理工研究院 | 一种数据处理方法 |
CN102929778B (zh) * | 2012-10-30 | 2015-11-18 | 无锡江南计算技术研究所 | 众核阵列上并行测试的控制方法及硅后验证*** |
CN102929778A (zh) * | 2012-10-30 | 2013-02-13 | 无锡江南计算技术研究所 | 众核阵列上并行测试的控制方法及硅后验证*** |
CN104216829B (zh) * | 2014-08-29 | 2017-09-19 | 福建联迪商用设备有限公司 | 一种嵌入式模块并发测试的方法及*** |
CN104850480A (zh) * | 2015-05-18 | 2015-08-19 | 曙光信息产业(北京)有限公司 | 高密度存储服务器硬盘性能测试的方法及装置 |
CN104850480B (zh) * | 2015-05-18 | 2017-08-18 | 曙光信息产业(北京)有限公司 | 高密度存储服务器硬盘性能测试的方法及装置 |
CN107197475A (zh) * | 2016-03-14 | 2017-09-22 | 重庆邮电大学 | 一种基于多线程的传感节点标识符解析测试方法及*** |
CN107908485A (zh) * | 2017-10-26 | 2018-04-13 | 中国平安人寿保险股份有限公司 | 接口参数传递方法、装置、设备及计算机可读存储介质 |
CN107908485B (zh) * | 2017-10-26 | 2020-08-04 | 中国平安人寿保险股份有限公司 | 接口参数传递方法、装置、设备及计算机可读存储介质 |
CN109062750A (zh) * | 2018-09-13 | 2018-12-21 | 国家海洋环境预报中心 | 一种高性能计算机测试*** |
CN112578259A (zh) * | 2019-09-29 | 2021-03-30 | 北京君正集成电路股份有限公司 | 一种具有数据空间设置的线程调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1519703B (zh) | 2010-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7526740B2 (en) | System and method for automated electronic device design | |
US6182245B1 (en) | Software test case client/server system and method | |
US8185880B2 (en) | Optimizing heap memory usage | |
US7926060B2 (en) | iMEM reconfigurable architecture | |
CN1519703A (zh) | 可组合挂接的计算机多线程测试***及其方法 | |
CN1407466A (zh) | 配置工具 | |
CN1577290A (zh) | 用于方便成形一个应用程序的***和方法 | |
CN1959652A (zh) | 在分布式调试器中调试计算机程序的方法和装置 | |
CN1967539A (zh) | 用于监控和调试查询执行对象的装置和方法 | |
CN1282085C (zh) | 一种嵌入式***多任务并发调试的方法 | |
Yoon et al. | Effective and scalable software compatibility testing | |
US20050172290A1 (en) | iMEM ASCII FPU architecture | |
Atkinson et al. | A review of the rationale and architectures of PJama-a durable, flexible, evolvable and scalable orthogonally persistent programming platform. | |
CN1776644A (zh) | 一种基于有限状态机的对内存变量改写进行监控的方法 | |
CN105447285B (zh) | 一种提高OpenCL硬件执行效率的方法 | |
CN1295778C (zh) | 一种验证芯片硬件行为与软件模拟行为的一致性的方法 | |
CN104461832B (zh) | 一种监控应用服务器资源的方法及装置 | |
Bausch et al. | Bioopera: Cluster-aware computing | |
US7730458B2 (en) | Built-in diagnostics | |
CN1560734A (zh) | 双栈返回地址预测器设计方法 | |
CN114067917A (zh) | 基于调优参数的gatk超级计算机*** | |
Hu et al. | Reloca: Optimize resource allocation for data-parallel jobs using deep learning | |
CN1519721A (zh) | 可动态扩充的计算机测试***及其方法 | |
US20050177671A1 (en) | Intelligent memory device clock distribution architecture | |
CN1467936A (zh) | 一种边界扫描互连测试中对透明元件的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100505 Termination date: 20130123 |