一种基于shell的测试内存读写的方法

文档序号:8282167阅读:361来源:国知局
一种基于shell的测试内存读写的方法
【技术领域】
[0001]本发明公开一种基于shell的测试内存读写的方法,属于内存测试领域。具体地说本发明涉及基于shell语言实现专门针对Iinux OS下对内存读写的自动化测试方法。
【背景技术】
[0002]内存是CPU可通过总线寻址,并进行读写操作的电脑部件。随着电脑软、硬件技术不断更新的要求,我们通常所说电脑内存(RAM)的大小,即是指内存的总容量。内存的读写能力是判断内存的重要因素,然而目前进行的内存读写压力测试,通常使用Memtester,其主要是捕获内存错误和一直处于很高或者很低的坏位,通过给定测试内存的大小和次数,对系统现有的内存进行随机值,异或比较,减法,乘法,除法,与或运算等项目的测试,但是memtester测试时无法设置时间、无法一次开启多线程并行的运行测试方式,产生种种弊端,比如输出结果错误,不利于用户对内存读写的判断,本发明设计一种基于shell的测试内存读写的方法,测试内存读写时,运行辅助测试程序,免去了参数修改、多次开启线程、结果处理等一系列繁复的测试工作,打破测试应用局限性,并且无需人工操作和整理数据等一系列繁复的工作,大大提升了测试效率。

【发明内容】

[0003]本发明针对memtester测试时无法设置时间、无法一次开启多线程并行的运行测试方式,产生种种弊端的问题,提供一种基于shell的测试内存读写的方法,实现测试内存读写时,运行辅助测试程序,免去了参数修改、多次开启线程、结果处理等一系列繁复的测试工作,打破测试应用局限性,并且无需人工操作和整理数据等一系列繁复的工作,大大提升了测试效率。
[0004]本发明提出的具体方案是:
一种基于shell的测试内存读写的方法,具体步骤为:
①确保测试内存基于Iinux内核的操作系统,安装memtester测试工具,拷贝到Iinux系统的文件夹下,以root身份登录到操作系统中,运行程序;
②预设置程序的参数,将预设的参数与测试读取到参数进行比对检查,确认测试环境是否满足要求,如不满足,显示输出提示重新设置测试参数;
③模式选择,通过case循环来获取命令行中的参数,并将参数运用到各函数中去,通过参数来控制程序运行,包括默认当前模式,计时模式,循环模式三种模式,其中计时模式和循环模式互斥,只能择一选择;
④在模式下进行memtester工具的测试环境设置,开始memtester单线程或多线程并行测试;
⑤测试完成后,查看测试结果文件,文件记录中记载有测试结果与测试时间记录,并清除程序运行过程中创建的临时文件。
[0005]所述的步骤②中预设参数包括准备测试的内存大小、测试时间、测试循环次数、所需CPU线程数等测试内存读写必须的参数。
[0006]所述的步骤②在预设置程序的参数前获取系统的cpu信息,包括物理cpu数量及总线程数量;获取线程编号与物理CPU编号的对应关系;获取内存容量的总大小,可用容量的总大小。
[0007]通过awk命令及grep命令抓取/proc/cpuinfo及/proc/meminfo中的关键字的方法,来获取系统的CPU信息,包括物理CPU数量及总线程数量;获取线程编号与物理CPU编号的对应关系;获取内存容量的总大小,可用容量的总大小。
[0008]所述的步骤③中默认当前模式是在不设置任何参数的情况下,默认运行全部可用内存容量和全部CPU线程;计时模式,根据预设置的时间参数,完成测试,在达到规定时间时,程序自动结束测试进程,记录结果;循环模式,根据预设置的循环次数,在规定测试内完成内存读写测试。
[0009]本发明的有益之处是:本测试方法主要是通过测试程序实现的,具有预设参数、自动执行测试、归纳记录测试结果等功能。无需冗杂的结果处理,大大节省了测试时间,提高了测试效率。弥补目前在进行内存读写测试时无法设置时间、无法一次开启多线程并行运行测试等弊端;操作、运行简易,全程无人值守;测试前可以预定参数,应用不受限制;记录的数据详尽,可通过数据掌握测试机情况,具备很强的适用性,适合广泛的推广到各种机型。
【具体实施方式】
[0010]本测试方法主体由测试程序实现,辅助测试程序基于bash shell语言编写。整个测试过程为准备、预设置、模式选择、开始运行、结果处理、环境清理等部分。本发明在一般室温下进行即可。
[0011]通常测试标准:
测试完成后,在测试机下查看测试结果文件,文件记录中记载有测试结果与测试时间记录,整个测试过程中测试机稳定运行,没有出现死机、掉电或蓝屏等异常现象。
[0012]若测试结果中有fail测试项等情况,则说明测试机内存某一区域读写有问题。
[0013]测试某一电脑内存具体测试过程为:
①确保测试内存基于Iinux内核的操作系统,安装memtester测试工具,拷贝到Iinux系统的文件夹下,以root身份登录到操作系统中,运行程序;
②在预设置程序的参数前获取系统的cpu信息,包括物理cpu数量及总线程数量;获取线程编号与物理cpu编号的对应关系;获取内存容量的总大小,可用容量的总大小,通过awk命令及grep命令抓取/proc/cpuinfo及/proc/meminfo中的关键字的方法来获取以上信息;预设置程序的参数,预设参数包括准备测试的内存大小、测试时间、测试循环次数、所需cpu线程数等测试内存读写必须的参数;将预设的参数与测试读取到参数进行比对检查,确认测试环境是否满足要求,如不满足,显示输出提示重新设置测试参数;
③模式选择,通过case循环来获取命令行中的参数,并将参数运用到各函数中去,通过参数来控制程序运行,包括默认当前模式,计时模式,循环模式三种模式,其中计时模式和循环模式互斥,只能择一选择;
④在模式下进行memtester工具的测试环境设置,开始memtester单线程或多线程并行测试;
⑤测试完成后,查看测试结果文件,文件记录中记载有测试结果与测试时间记录,并清除程序运行过程中创建的临时文件。
[0014]所述的步骤③中默认当前模式是在不设置任何参数的情况下,默认运行全部可用内存容量和全部CPU线程;计时模式,根据预设置的时间参数,完成测试,在达到规定时间时,程序自动结束测试进程,记录结果;循环模式,根据预设置的循环次数,在规定测试内完成内存读写测试。
[0015]测试所得数据如下: memtester vers1n 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.Licensed under the GNU General Public License vers1n 2 (only).pagesize is 8192pagesizemask is OxffffeOOOwant 480MB (503316480 bytes)
got 480MB (503316480 bytes), trying mlock...locked.Loop I
Stuck Address: ok
Random Value: ok
Compare XOR: ok
Compare SUB: ok
Compare MUL: ok
Compare DIV: ok
Compare OR: ok
Compare AND: ok
Sequential Increment: okSolid Bits: ok
Block Sequential: ok Checkerboard: ok
Bit Spread: ok
Bit Flip: ok
Walking Ones: ok
Walking Zeroes: ok
8-bit Writes: ok
16-bit Writes: ok
通过以上数据整个测试过程中测试机稳定运行,没有出现死机、掉电或蓝屏等异常现象。
【主权项】
1.一种基于Shell的测试内存读写的方法,其特征是具体步骤为: ①确保测试内存基于Iinux内核的操作系统,安装memtester测试工具,拷贝到Iinux系统的文件夹下,以root身份登录到操作系统中,运行程序; ②预设置程序的参数,将预设的参数与测试读取到参数进行比对检查,确认测试环境是否满足要求,如不满足,显示输出提示重新设置测试参数; ③模式选择,通过case循环来获取命令行中的参数,并将参数运用到各函数中去,通过参数来控制程序运行,包括默认当前模式,计时模式,循环模式三种模式,其中计时模式和循环模式互斥,只能择一选择; ④在模式下进行memtester工具的测试环境设置,开始memtester单线程或多线程并行测试; ⑤测试完成后,查看测试结果文件,文件记录中记载有测试结果与测试时间记录,并清除程序运行过程中创建的临时文件。
2.根据权利要求1所述的一种基于shell的测试内存读写的方法,其特征是所述的步骤②中预设参数包括准备测试的内存大小、测试时间、测试循环次数、所需cpu线程数等测试内存读写必须的参数。
3.根据权利要求2所述的一种基于shell的测试内存读写的方法,其特征是所述的步骤②在预设置程序的参数前获取系统的CPU信息,包括物理CPU数量及总线程数量;获取线程编号与物理CPU编号的对应关系;获取内存容量的总大小,可用容量的总大小。
4.根据权利要求1-3任一项所述的一种基于shell的测试内存读写的方法,其特征是通过awk命令及grep命令抓取/proc/cpuinfo及/proc/meminfo中的关键字的方法,来获取系统的cpu信息,包括物理cpu数量及总线程数量;获取线程编号与物理cpu编号的对应关系;获取内存容量的总大小,可用容量的总大小。
5.根据权利要求4所述的一种基于shell的测试内存读写的方法,其特征是所述的步骤③中默认当前模式是在不设置任何参数的情况下,默认运行全部可用内存容量和全部cpu线程;计时模式,根据预设置的时间参数,完成测试,在达到规定时间时,程序自动结束测试进程,记录结果;循环模式,根据预设置的循环次数,在规定测试内完成内存读写测试。
【专利摘要】本发明公开一种基于shell的测试内存读写的方法,属于内存测试领域,具体步骤为:①确保测试内存基于linux内核的操作系统,安装memtester测试工具,登录运行程序;②预设置程序的参数;③模式选择,包括默认当前模式,计时模式,循环模式三种模式,其中计时模式和循环模式互斥,只能择一选择;④在模式下进行memtester工具的测试环境设置,开始memtester单线程或多线程并行测试;⑤测试完成后,查看测试结果文件,文件记录中记载有测试结果与测试时间记录,并清除程序运行过程中创建的临时文件;本发明测试内存读写时,运行辅助测试程序,免去了参数修改、多次开启线程、结果处理等一系列繁复的测试工作,打破测试应用局限性,大大提升了测试效率。
【IPC分类】G06F11-22
【公开号】CN104598344
【申请号】CN201510056172
【发明人】颜东博
【申请人】浪潮电子信息产业股份有限公司
【公开日】2015年5月6日
【申请日】2015年2月3日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1