Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 制作大型测试文件的好方法是什么?_Testing_File - Fatal编程技术网

Testing 制作大型测试文件的好方法是什么?

Testing 制作大型测试文件的好方法是什么?,testing,file,Testing,File,我正在尝试测试我刚刚编写的一些流文件上传/下载代码,但我需要一个巨大的(大于内存,如>4GB)文件进行测试。快速生成特定大小(但内部没有特定数据)的文件的好方法是什么 我知道我可以在硬盘上查找大小合适的文件,但我很好奇是否还有其他生成测试文件的好方法,特别是如果我需要特定大小的文件。下载文件也不好,因为我的连接很慢。在Unix上,这很容易: head -c <numbytes> /dev/random > bigfile.dat 在Unix上,这很简单: head -c &l

我正在尝试测试我刚刚编写的一些流文件上传/下载代码,但我需要一个巨大的(大于内存,如>4GB)文件进行测试。快速生成特定大小(但内部没有特定数据)的文件的好方法是什么

我知道我可以在硬盘上查找大小合适的文件,但我很好奇是否还有其他生成测试文件的好方法,特别是如果我需要特定大小的文件。下载文件也不好,因为我的连接很慢。

在Unix上,这很容易:

head -c <numbytes> /dev/random > bigfile.dat
在Unix上,这很简单:

head -c <numbytes> /dev/random > bigfile.dat

在*nix平台上,您可以执行以下操作:

dd if=/dev/zero of=test5000M.bin bs=5000000000 count=1
这将生成一个5000mb的文件,其中没有任何内容

在windows上,类似这样的操作应该可以工作:

fsutil file createnew test5000M.bin 5000000000

在*nix平台上,您可以执行以下操作:

dd if=/dev/zero of=test5000M.bin bs=5000000000 count=1
这将生成一个5000mb的文件,其中没有任何内容

在windows上,类似这样的操作应该可以工作:

fsutil file createnew test5000M.bin 5000000000

我过去只是在文件末尾进行查找和写操作,以分配大量数据块

但是,根据您使用的大小,此操作可能会失败。(根据我在WinXP上的经验,接近1.2 TB的限制)


我成功地将此方法用于硬盘驱动器老化应用程序,用于许多不同的系统配置。

我过去只在文件末尾执行查找和写入操作,以分配大量数据块

但是,根据您使用的大小,此操作可能会失败。(根据我在WinXP上的经验,接近1.2 TB的限制)


我成功地将此方法用于硬盘驱动器老化应用程序,用于许多不同的系统配置。

在*nix系统上,您可以创建一个几乎不使用任何实际磁盘空间的稀疏文件

dd if=/dev/zero bs=1 seek=4294967295 count=1 of=4G
ls -l 4G
-rw-r--r-- 1 me wheel 4294967296 2009-04-01 13:28 4G

这将创建一个文件,文件开头有一个大小为4GB-1的孔。这个洞不消耗文件系统块。您甚至可以创建太大而无法放入文件系统的稀疏文件。从孔中读取返回零。

在*nix系统上,您可以创建一个几乎不使用任何实际磁盘空间的稀疏文件

dd if=/dev/zero bs=1 seek=4294967295 count=1 of=4G
ls -l 4G
-rw-r--r-- 1 me wheel 4294967296 2009-04-01 13:28 4G
这将创建一个文件,文件开头有一个大小为4GB-1的孔。这个洞不消耗文件系统块。您甚至可以创建太大而无法放入文件系统的稀疏文件。从孔中读取返回零。

在Windows PowerShell中执行此操作:

function Create-TestFile([string]$location, [long]$sizeInBytes, [int]$numberOfFiles = 1 ,[char]$fillerChar="X")
{
$fc = new-object string ($fillerChar, $sizeInBytes ) ;
1..$numberOfFiles | %{ [io.file]::WriteAllText("$location\TestFile-$_.txt", $fc) }
}
下面是您如何使用它:

Create-TestFile "C:\temp" 2100 #creates a file 2100 bytes in size.
下面是在Windows PowerShell中执行此操作的步骤:

function Create-TestFile([string]$location, [long]$sizeInBytes, [int]$numberOfFiles = 1 ,[char]$fillerChar="X")
{
$fc = new-object string ($fillerChar, $sizeInBytes ) ;
1..$numberOfFiles | %{ [io.file]::WriteAllText("$location\TestFile-$_.txt", $fc) }
}
下面是您如何使用它:

Create-TestFile "C:\temp" 2100 #creates a file 2100 bytes in size.

在Windows上,还可以使用
fsutil
命令:

Usage : fsutil file createnew <filename> <length>
   Eg : fsutil file createnew C:\testfile.txt 1000
用法:fsutil文件createnew 例如:fsutil文件createnew C:\testfile.txt 1000
这将创建一个名为
testfile.txt
的文件,大小为1000字节。如果有必要,该文件只包含NUL。

在Windows上,您也可以使用
fsutil
命令:

Usage : fsutil file createnew <filename> <length>
   Eg : fsutil file createnew C:\testfile.txt 1000
用法:fsutil文件createnew 例如:fsutil文件createnew C:\testfile.txt 1000
这将创建一个名为
testfile.txt
的文件,大小为1000字节。不过,如果有必要的话,该文件只包含NUL。

我以前使用eatbits.exe实用程序。您可以在其中创建这些文件。它们对于安装测试非常有价值


我在网上的任何地方都找不到eatbits,它可能是我工作的公司的一个内部实用程序。

我以前使用eatbits.exe实用程序。您可以在其中创建这些文件。它们对于安装测试非常有价值


我在网上找不到eatbits,它可能是我工作的公司的内部实用程序。

我刚刚尝试了dd,但它不接受如此大的bs数量!它给了我这个错误:“dd:invalid number`5000000000'”如果文件传输有任何类型的压缩,使用一个空文件可能并不代表典型的用法,因为它会压缩得太好。我只是尝试了dd,它不接受bs的这么大的数字!它给了我一个错误:“dd:invalid number`5000000000'”如果文件传输有任何类型的压缩,使用一个空文件可能并不代表典型的用法,因为它会压缩得太好。因为很多答案都是unix特定的,你能指定你的平台吗?这并不重要(对任何操作系统上的答案感兴趣),但是我现在在一个*nix平台上。因为很多答案都是unix特定的,你能指定你的平台吗?这真的不重要(对任何操作系统上的答案感兴趣),但我现在在*nix平台上。对于大文件,我永远不会使用/dev/random,而是使用/dev/urandom-random有更多的熵,但很可能在生成它时会阻塞,而urandom将是一个“足够好”的文件不阻塞的随机性源。对于大文件,我永远不会使用/dev/random,而是使用/dev/urandom-random具有更多的熵,但在生成时很可能会阻塞,而urandom将是一个“足够好”的随机性源,不会阻塞。非常好,这非常有效。(虽然如果我试图测试任何涉及压缩算法的东西,我肯定会使用不同的方法。)非常好,这非常有效。(不过,如果我试图测试任何涉及压缩算法的东西,我肯定会使用不同的方法。)