CN108733525A - 一种存储模块自动测试并校验正确性的方法及系统 - Google Patents
一种存储模块自动测试并校验正确性的方法及系统 Download PDFInfo
- Publication number
- CN108733525A CN108733525A CN201810580310.3A CN201810580310A CN108733525A CN 108733525 A CN108733525 A CN 108733525A CN 201810580310 A CN201810580310 A CN 201810580310A CN 108733525 A CN108733525 A CN 108733525A
- Authority
- CN
- China
- Prior art keywords
- memory module
- carry
- module
- file
- function
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种存储模块自动测试并校验正确性的方法及系统,包括如下步骤:挂载移动存储模块到指定目录;创建自动挂载存储模块的功能脚本;执行功能脚本挂载存储模块到指定目录。创建挂载指定目录函数,将存储模块挂载到指定目录,若挂载失败,退出指定目录函数;若函数执行成功,返回挂载成功信息。创建随机文件,对移动存储模块进行读写测试;提取MD5值进行读写正确性校验。比较源文件提取的MD5值和拷贝后的文件的MD5值,如果相同则代表读写过程未出错,读写正确。
Description
技术领域
本发明涉及服务器测试技术领域,具体涉及一种存储模块自动测试并校验正确性的方法及系统。
背景技术
服务器在开发测试过程中需要验证USB接口的功能,如测试USB接口读写功能是否完备,读写的数据是否完整无误,就需要搭配U盘,进行读写等测试。
传统的对U盘进行测试的过程是将一个较大的文件存入U盘中,然后把U盘插入到机器上,将U盘内的文件拷贝到机器,再验证该文件的MD5值在拷贝前后是否一致。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),为计算机安全领域广泛使用的一种散列函数,用于确保信息传输完整一致,提供消息的完整性保护,是计算机广泛使用的杂凑算法之一。以上操作都是操作人员逐步操作。
发明内容
为了克服上述现有技术中的不足,本发明提供一种存储模块自动测试并校验正确性的方法及系统,以解决上述技术问题。
本发明的技术方案是:
一种存储模块自动测试并校验正确性的方法,包括如下步骤:
挂载移动存储模块到指定目录;
创建随机文件,对移动存储模块进行读写测试;
提取MD5值进行读写正确性校验。
进一步的,步骤挂载移动存储模块到指定目录,包括:
创建自动挂载存储模块的功能脚本;
执行功能脚本挂载存储模块到指定目录。
进一步的,步骤执行功能脚本挂载存储模块到指定目录,包括:
创建挂载指定目录函数,将存储模块挂载到指定目录,若挂载失败,退出指定目录函数;若函数执行成功,返回挂载成功信息。
进一步的,步骤创建随机文件,对移动存储模块进行读写测试,包括:
创建随机大文件,并将随机大文件写到存储模块;
创建读写测试函数,对存储模块文件进行读写测试;
进一步的,步骤提取MD5值进行读写正确性校验,包括:
将源文件拷贝到目标路径的文件;
分别提取源文件和拷贝后的文件的MD5值;
比较源文件提取的MD5值和拷贝后的文件的MD5值,如果相同则代表读写过程未出错,读写正确。
本发明技术方案还提供一种存储模块自动测试并校验正确性的系统,包括挂载模块、第一创建模块和提取模块;
挂载模块,用于挂载移动存储模块到指定目录;
第一创建模块,用于创建随机文件,对移动存储模块进行读写测试;
提取模块,用于提取MD5值进行读写正确性校验。
进一步的,该系统还包括第二创建模块和执行模块;
第二创建模块,用于创建自动挂载存储模块的功能脚本;
执行模块,用于执行功能脚本挂载存储模块到指定目录。
进一步的,第二创建模块包括挂载函数创建单元,挂载模块还包括挂载状态判断单元和信息返回单元
挂载函数创建单元,用于创建挂载指定目录函数;
挂载状态判断单元,用于判断挂载后的状态;
信息返回单元,用于返回挂载成功信息。
进一步的,包括第三创建模块和第四创建单元:
第三创建单元,用于创建随机大文件,并将随机大文件写到存储模块;
第四创建单元,用于创建读写测试函数,用于对存储模块文件进行读写测试;
进一步的,该系统还包括操作模块、比较判断模块和显示模块;
操作模块,用于将源文件拷贝到目标路径的文件;
提取模块,用于分别提取源文件和拷贝后的文件的MD5值;
比较判断模块,用于比较源文件提取的MD5值和拷贝后的文件的MD5值;
显示模块,用于对比较判断模块的判断结果进行显示。
进一步优选方案存储模块为U盘。
从以上技术方案可以看出,本发明具有以下优点:在linux系统下自动产生随机文件,使用该文件对U盘进行读写测试并校验读写正确性。操作简单便于操作人员使用,大大减少了人为操作所花费的时间,在时间上相较于人为操作所花费的时间,操作准确度上也有非常大幅度的提升,大幅提高了测试工作效率及准确度。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明实施例提供的一种存储模块自动测试并校验正确性的方法流程图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
如图1所示,实施例1提供的一种存储模块自动测试并校验正确性的方法,包括如下步骤:
S1:挂载移动存储模块到指定目录;
S11:创建自动挂载存储模块的功能脚本;
S12:执行功能脚本挂载存储模块到指定目录;
创建挂载指定目录函数,将存储模块挂载到指定目录,若挂载失败,退出指定目录函数;若函数执行成功,返回挂载成功信息。
S2:创建随机文件,对移动存储模块进行读写测试;
S21:创建随机大文件,并将随机大文件写到存储模块;
S22:创建读写测试函数,对存储模块文件进行读写测试;
S3:提取MD5值进行读写正确性校验。
S31:将源文件拷贝到目标路径的文件;
S32:分别提取源文件和拷贝后的文件的MD5值;
S33:比较源文件提取的MD5值和拷贝后的文件的MD5值,如果相同则代表读写过程未出错,读写正确。
存储模块为U盘。
另外,本发明实施例还提供一种存储模块自动测试并校验正确性的系统,包括挂载模块、第一创建模块和提取模块;
挂载模块,用于挂载移动存储模块到指定目录;
第一创建模块,用于创建随机文件,对移动存储模块进行读写测试;
提取模块,用于提取MD5值进行读写正确性校验。
该系统还包括第二创建模块和执行模块;
第二创建模块,用于创建自动挂载存储模块的功能脚本;
执行模块,用于执行功能脚本挂载存储模块到指定目录。
第二创建模块包括挂载函数创建单元,挂载模块还包括挂载状态判断单元和信息返回单元
挂载函数创建单元,用于创建挂载指定目录函数;
挂载状态判断单元,用于判断挂载后的状态;
信息返回单元,用于返回挂载成功信息。
该系统还包括第三创建模块和第四创建单元:
第三创建单元,用于创建随机大文件,并将随机大文件写到存储模块;
第四创建单元,用于创建读写测试函数,用于对存储模块文件进行读写测试;
该系统还包括操作模块、比较判断模块和显示模块;
操作模块,用于将源文件拷贝到目标路径的文件;
提取模块,用于分别提取源文件和拷贝后的文件的MD5值;
比较判断模块,用于比较源文件提取的MD5值和拷贝后的文件的MD5值;
显示模块,用于对比较判断模块的判断结果进行显示。
基于上述实施例实现过程具体如下:
将U盘插入到装有Linux系统的机器内,会在系统下显示为”/dev/sd*”,该名称在不同配置的系统下显示的名称不一样,所以该名称将作为脚本的参数进行输入。U盘需要挂载到系统的某个目录下,才可以在系统内写入和读取文件。自动挂载U盘的功能在脚本中可使用如下函数:
#创建名称为udisk_mount的函数,该函数的功能为将U盘挂载到系统下指定的目录。
function udisk_mount
{
local driverLetter=$1 #接收参数1,这里参数1设定为U盘的设备名称
local targetpath=$2 #接收参数2,参数2设定为要挂载的目录
#使用mount命令,将U盘挂载到指定目录,如果挂载失败则提示失败并return 1退出该函数,终止脚本。
mount $driverLetter $targetpath || { echo "Mount $driverLetter to $targetpath fail"; return 1; }
#如上述执行无误,返回挂载成功
echo "Mount $driverLetter to $targetpath pass"
return 0
}
对U盘进行写测试的时候需要准备较大文件,写到U盘里去。文件的随机性越高,测试的效果就越好,创建 file_create函数用于生成随机文件:
function file_create
{
#在这里将随机文件命名为 SOURCEFILE,如果文件 SOURCEFILE不存在,将创建
if [ ! -f SOURCEFILE ]; then
#在设备/dev/urandom中取随机数据,写入到 SOURCEFILE文件中
dd if=/dev/urandom of=SOURCEFILE bs=100M count=35 || return 1
fi
TARGETPATH=""
while [[ "$TARGETPATH" == "" ]]; do
TARGETPATH="`head -n 1 /dev/urandom | sed 's/[^a-Z0-9]//g' |strings -n 4 | head -n 1`abtest"
done
SOURCEFILE="SOURCEFILE"
}
创建如下函数,功能是读写测试:
function rw_test
{
local mode="$1" #接收参数1,用于记录测试是读还是写
local input="$2" #接收参数2,用于记录被拷贝的源文件路径名称
local output="$3" #接收参数3,用于记录拷贝的目标路径名称
local modeOutput=""
#如果变量$mode的值为"-w",使用变量modeOutput记录为写测试,如果$mode为"-r",则记录读,如果为其他就报错退出该脚本。
if [[ "$mode" == "-w" ]]; then modeOutput="Write"
elif [[ "$mode" == "-r" ]]; then modeOutput="Read"
else echo "RW Test Mode $mode" "fail"; return 1
fi
#使用dd工具将源文件拷贝到目标路径的文件
dd if=$input of=$output &>> $Log_File
#上面拷贝的代码执行结束后执行结果会存放在变量${PIPESTATUS[0]}里,如果值不为0,则显示报错,退出脚本。(执行结果为0代表执行成功,没有出错)
[ ${PIPESTATUS[0]} -ne 0 ] && { echo "$modeOutput Test fail"; return1; }
echo "$modeOutput Test pass"
#将被的源文件提取出MD5值
local md5_input="`md5sum $input | sed -r 's/(^\w+) .*/\1/'`"
echo "md5_input: $md5_input"
#将拷贝后的文件提取出MD5值
local md5_output="`md5sum $output | sed -r 's/(^\w+) .*/\1/'`"
echo "md5_output: $md5_output"
#比较前后产生的MD5值,如果相同则代表读写过程未出错
[[ "$md5_input" != "$md5_output" ]] && { echo "$modeOutput Test MD5Check fail"; return 1; }
echo "$modeOutput Test MD5 Check pass"
return 0
}
有了上面的函数之后,便可以调用它们组成一个脚本实现整个测试:
#调用函数udisk_mount挂载U盘,U盘的设备名称作为脚本的参数,通过变量$1传入udisk_mount函数,将U盘挂载到"/mnt"目录,一般使用U盘时会挂载到该目录下,但也可以挂载到其他目录。
udisk_mount $1 "/mnt"|| exit_code 1
#调用函数 file_create创建随机文件
file_create
#调用函数rw_test,输入"-w"表示执行写测试,将之前准备的随机文件 SOURCEFILE写入到U盘的挂载目录下
rw_test -w $SOURCEFILE "/mnt/test.tt"
#调用函数rw_test,输入"-r"表示执行读测试,将U盘的挂载目录下之前写入的文件test.tt,写入到系统/tmp/test.tt文件里(可以写入任意不是U盘的目录下)
rw_test -r "/mnt/test.tt" "/tmp/test.tt”
将上述代码整合到一个脚本后便可以执行,在显示模块观察显示的结果,便可得知测试是否通过。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种存储模块自动测试并校验正确性的方法,其特征在于,包括如下步骤:
挂载移动存储模块到指定目录;
创建随机文件,对移动存储模块进行读写测试;
提取MD5值进行读写正确性校验。
2.根据权利要求1所述的一种存储模块自动测试并校验正确性的方法,其特征在于,步骤挂载移动存储模块到指定目录,包括:
创建自动挂载存储模块的功能脚本;
执行功能脚本挂载存储模块到指定目录。
3.根据权利要求2所述的一种存储模块自动测试并校验正确性的方法,其特征在于,步骤执行功能脚本挂载存储模块到指定目录,包括:
创建挂载指定目录函数,将存储模块挂载到指定目录,若挂载失败,退出指定目录函数;若函数执行成功,返回挂载成功信息。
4.根据权利要求1所述的一种存储模块自动测试并校验正确性的方法,其特征在于,步骤创建随机文件,对移动存储模块进行读写测试,包括:
创建随机大文件,并将随机大文件写到存储模块;
创建读写测试函数,对存储模块文件进行读写测试。
5.根据权利要求1所述的一种存储模块自动测试并校验正确性的方法,其特征在于,步骤提取MD5值进行读写正确性校验,包括:
将源文件拷贝到目标路径的文件;
分别提取源文件和拷贝后的文件的MD5值;
比较源文件提取的MD5值和拷贝后的文件的MD5值,如果相同则代表读写过程未出错,读写正确。
6.一种存储模块自动测试并校验正确性的系统,其特征在于,包括挂载模块、第一创建模块和提取模块;
挂载模块,用于挂载移动存储模块到指定目录;
第一创建模块,用于创建随机文件,对移动存储模块进行读写测试;
提取模块,用于提取MD5值进行读写正确性校验。
7.根据权利要求6所述的一种存储模块自动测试并校验正确性的系统,其特征在于,该系统还包括第二创建模块和执行模块;
第二创建模块,用于创建自动挂载存储模块的功能脚本;
执行模块,用于执行功能脚本挂载存储模块到指定目录。
8.根据权利要求7所述的一种存储模块自动测试并校验正确性的系统,其特征在于,第二创建模块包括挂载函数创建单元,挂载模块还包括挂载状态判断单元和信息返回单元
挂载函数创建单元,用于创建挂载指定目录函数;
挂载状态判断单元,用于判断挂载后的状态;
信息返回单元,用于返回挂载成功信息。
9.根据权利要求8所述的一种存储模块自动测试并校验正确性的系统,其特征在于,包括第三创建模块和第四创建单元:
第三创建单元,用于创建随机大文件,并将随机大文件写到存储模块;
第四创建单元,用于创建读写测试函数,用于对存储模块文件进行读写测试。
10.根据权利要求9所述的一种存储模块自动测试并校验正确性的系统,其特征在于,该系统还包括操作模块、比较判断模块和显示模块;
操作模块,用于将源文件拷贝到目标路径的文件;
提取模块,用于分别提取源文件和拷贝后的文件的MD5值;
比较判断模块,用于比较源文件提取的MD5值和拷贝后的文件的MD5值;
显示模块,用于对比较判断模块的判断结果进行显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810580310.3A CN108733525A (zh) | 2018-06-07 | 2018-06-07 | 一种存储模块自动测试并校验正确性的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810580310.3A CN108733525A (zh) | 2018-06-07 | 2018-06-07 | 一种存储模块自动测试并校验正确性的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108733525A true CN108733525A (zh) | 2018-11-02 |
Family
ID=63932781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810580310.3A Pending CN108733525A (zh) | 2018-06-07 | 2018-06-07 | 一种存储模块自动测试并校验正确性的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108733525A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399744A (zh) * | 2019-07-31 | 2019-11-01 | 上海商米科技集团股份有限公司 | 数据加密方法和装置、移动终端以及计算机可读介质 |
CN110598473A (zh) * | 2019-09-18 | 2019-12-20 | 深圳市网心科技有限公司 | 一种移动存储介质管理方法、装置及设备和存储介质 |
WO2020164263A1 (zh) * | 2019-02-11 | 2020-08-20 | 平安科技(深圳)有限公司 | librgw的性能测试方法、装置和计算机设备 |
CN113076225A (zh) * | 2021-03-30 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种外接存储介质检测方法、装置、设备及存储介质 |
CN113140251A (zh) * | 2021-04-21 | 2021-07-20 | 深圳市研强物联技术有限公司 | 一种在产线测试中检测ram的方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704347A (zh) * | 2017-09-19 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种自动进行硬盘数据一致性测试的方法 |
-
2018
- 2018-06-07 CN CN201810580310.3A patent/CN108733525A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704347A (zh) * | 2017-09-19 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种自动进行硬盘数据一致性测试的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020164263A1 (zh) * | 2019-02-11 | 2020-08-20 | 平安科技(深圳)有限公司 | librgw的性能测试方法、装置和计算机设备 |
CN110399744A (zh) * | 2019-07-31 | 2019-11-01 | 上海商米科技集团股份有限公司 | 数据加密方法和装置、移动终端以及计算机可读介质 |
CN110399744B (zh) * | 2019-07-31 | 2022-02-01 | 上海商米科技集团股份有限公司 | 数据加密方法和装置、移动终端以及计算机可读介质 |
CN110598473A (zh) * | 2019-09-18 | 2019-12-20 | 深圳市网心科技有限公司 | 一种移动存储介质管理方法、装置及设备和存储介质 |
CN110598473B (zh) * | 2019-09-18 | 2022-08-16 | 深圳市网心科技有限公司 | 一种移动存储介质管理方法、装置及设备和存储介质 |
CN113076225A (zh) * | 2021-03-30 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种外接存储介质检测方法、装置、设备及存储介质 |
CN113140251A (zh) * | 2021-04-21 | 2021-07-20 | 深圳市研强物联技术有限公司 | 一种在产线测试中检测ram的方法及系统 |
CN113140251B (zh) * | 2021-04-21 | 2023-02-10 | 深圳市研强物联技术有限公司 | 一种在产线测试中检测ram的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733525A (zh) | 一种存储模块自动测试并校验正确性的方法及系统 | |
CN104391787B (zh) | 一种针对目标方法的监控、热切入方法及装置 | |
CN103186461A (zh) | 一种现场数据的保存方法和恢复方法以及相关装置 | |
CN103164523A (zh) | 数据一致性检查方法、装置及系统 | |
CN110008129B (zh) | 一种存储定时快照的可靠性测试方法、装置及设备 | |
CN102402562A (zh) | 数据库异地容灾方法及系统 | |
CN110659256A (zh) | 多机房同步方法、计算设备及计算机存储介质 | |
CN111767226A (zh) | 一种云计算平台资源的测试方法、系统及设备 | |
CN107391333A (zh) | 一种osd磁盘故障测试方法及系统 | |
CN104978336A (zh) | 基于Hadoop分布式计算平台的非结构化数据存储系统 | |
CN103198122A (zh) | 重启内存数据库的方法和装置 | |
CN105589733B (zh) | 一种数据处理方法和装置 | |
US6195767B1 (en) | Data corruption detection apparatus and method | |
CN107357721B (zh) | 测试系统的方法及装置 | |
CN103019931A (zh) | Asn.1接口的检测处理方法和装置 | |
CN108984757A (zh) | 一种数据导入方法及设备 | |
CN110059087B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN107133163A (zh) | 一种验证描述类api的方法与设备 | |
CN109726051A (zh) | 一种数据库备份数据有效性自动化验证方法 | |
CN106611138B (zh) | 一种ghost文件保密检查方法及装置 | |
CN113704123B (zh) | 接口测试方法、装置、设备以及存储介质 | |
CN113407180B (zh) | 一种配置页面生成方法、系统、设备以及介质 | |
US20180225165A1 (en) | Configurable system wide tests | |
CN108241607A (zh) | 算法测试案例的自动导入方法、服务器及存储介质 | |
CN114356768A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181102 |
|
RJ01 | Rejection of invention patent application after publication |