вторник, 23 апреля 2019 г.

Генераторы тестовых файлов с нужным весом

Для тестирования границ и пограничных значений нам нужно создавать файлы определенного размера. Но как создать файл весом именно 150кб? Мучиться вручную не очень хочется, поэтому лучше использовать генераторы данных. Вот пара полезных ссылочек.


Online random file generator




https://pinetools.com/random-file-generator

Выбрали количество файлов, их вес, нажали снизу на кнопочку «Generate» — вуаля!
Генератор может создать даже большие файлы (2гб, 100 гб).


Скачанный файл не имеет расширения. Так что если вы тестируете картинки (размер аватарки или превью пиццы) — переименуйте скачайнный файл в .jpg и попробуйте загрузить в систему.

Да, через просмотрщик фото файл не откроется, потому что система создает файлы-пустышки. Но первую проверку на вес провести можно, обычно ведь сначала она идет, а потом уже содержимое изучается.


Fake file generator




https://www.fakefilegenerator.com/generate-file.php

Тут можно указать расширение файла — будет это эксель, ворд или даже jpeg. Правда, если сгенерить картинку, она все равно не откроется просмотрщиком фото, это тоже пустышка.

Максимальный размер генерируемого файла — 10Мб


Линуксодная утилита dd


Работает на линуксе и маке из консоли по умолчанию. На винде работает через терминал cygwin. Вот описание на википедии — dd (Unix).


Для генерации картинки jpg весом 150кб:

dd if=/dev/zero of=example.jpeg  bs=150k  count=1


Генерация заданного количества рандомных файлов, в данном случае 800:

for i in {0..800}; do dd if=/dev/urandom bs=200 count=$i of=file$i; done

См также: 
Как в linux создать много тестовых папок и файлов



Линуксодная утилита fallocate


Работает на линуксе и маке из консоли по умолчанию. В cygwin по умолчанию нету.
Позволяет создать файл заданного размера. Например файл 16кб:

fallocate -l 16K 16K.txt



Виндовая утилита fsutil


Работает по умолчанию, ничего устанавливать не надо. Открыли консоль и работаем!


Для генерации txt весом 150кб:

fsutil file createNew test.txt 15000




PS — статья написана в помощь студентам моей школы для начинающих тестировщиков

PPS — добавила на Testbase в навык выбора инструментов, теперь не потеряется!

17 комментариев:

  1. Спасибо, полезно.
    В строчке "Тут можно указать разрешение файла — будет это эксель, ворд или даже jpeg." вероятно имеется опечатка. Речь ведь про расширение файла?

    ОтветитьУдалить
  2. Еще забыли про команды в PowerShell (там можно как с пустыми значениями, так и рандомными) и виндовым приложением BigByte.

    ОтветитьУдалить
    Ответы
    1. Почему «забыла»? Я не ставила цели перечислить вообще все-все-все. В посте так и написано: «Вот ПАРА полезных ссылочек», я рассказала о том, что сама знаю / использовала / студенты мои использовали.

      Если хотите поделиться опытом, так сразу вводите в контекст. Команды в PowerShell — что команды? Какие? Ваш комментарий мне не особо помогает, потому что надо идти и гуглить эти самые команды. А в примерах поста есть конкретные команды + онлайн-генераторы, где команды знать вообще не надо

      Удалить
  3. Ничего не понятно в этих ваших терминах

    ОтветитьУдалить
  4. Если линукс, то все уже вшито в систему, используем urandom, ограничиваем по месту. И это будет живой текстовый файл, который будет проходить валидацию на формат.
    tr -dc A-Za-z0-9 1mb.txt

    ОтветитьУдалить
  5. Fake file generator
    Сейчас можно до 95.37 MB генерить файлы.
    99999999 bytes

    ОтветитьУдалить
    Ответы
    1. А вот нет. Написать можно. А генерит всё равно на 10 Мб(

      Удалить
  6. Здравствуйте. Подскажите школьнику) Вот сгенерировал я изображение через сигвин, а как его теперь получить? Его нужно как-то сохранить в файл?

    ОтветитьУдалить
    Ответы
    1. Насколько я понимаю, это ваш параметр «of», где путь к итоговому файлу. Или полный, или ляжет относительно директории запуска

      Удалить
  7. for i in {0..800}; do dd if=/dev/urandom bs=200 count=$i of=file$i; done
    сгенерирует 800 файлов, каждый из которых будет на 200б больше предыдущего :)
    Если надо генерировать одинаковые файлы размером в 200б, то надо изменить параметр count=1

    ОтветитьУдалить
  8. Здравствуйте, Ольга! К сожалению, масса картинок недоступна. Они "битые".
    Например, на этой странице: https://okiseleva.blogspot.com/2019/04/blog-post_86.html?lr=1 ни одна картинка не показывается.
    Окружение: Google Chrome Версия 102.0.5005.63 (Официальная сборка), (64 бит) Понимаю, что материалы блога могут не поддерживаться, но всё-таки...

    ОтветитьУдалить