четверг, 29 июня 2017 г.

А, так ты же просто битый файл грузишь!

Разворачиваю на новой машине сервера, включая подсказки. Подсказки есть в том числе по адресам — работают на ФИАС.

Сами подсказки поняла, читаю инструкцию. Она простая:
  1. Cкачайте ФИАС на сайте ФИАС (столбец полная БД ФИАС — формат DBF).
  2. Распакуйте архив fias_dbf.rar на сервере в каталог ...
  3. Создайте файл fias.ready.
  4. В журнале suggestions.log появится запись:
[INFO] (IndexManager) Process fias from '/dictionaries/fias' (03.06.2014 08:05:03
Скачиваю ФИАС. Сначала уперлась в то, что он почти скачался и «бобик сдох». Ах да, у меня же диск С переполнен, а «Загрузки» на нем. А скачивала я параллельно ФИАС и ЕГРЮЛ, который еще больше весит. Такие крупные файлы надо на диск D грузить.

Поставила скачивать на диск D. Скачались. Перенесла на сервер, это тоже не 5 секунд. Ладно. Пошла разархивировать. На ФИАС-е обломалась — на сервере не стоял RAR. Погуглила, как поставить RAR на Linux. Ок, установила, делаю unrar. Это самая долгая часть, он распаковывается полчаса-час.

Распаковался. Создаю ready-файл. Огребаю в логе

среда, 28 июня 2017 г.

Установка RAR на Linux

Ставила я сегодня три сервера на CentOS 7. Rar-архива там, разумеется, нет. И простая команда

yum install rar
yum install unrar

Не прокатила, увы:

No package rar available.
Error: Nothing to do

Пришлось погуглить. Наткнулась на хорошую статью — Установка архиватора RAR (UnRAR) на CentOS/RHEL/Oracle Linux.

В блоге сохраню способ, который мне помог, а то мало ли что случится с источником:

Скачиваем, разархивируем и компилируем:

wget http://rarlabs.com/rar/rarlinux-x64-5.4.0.tar.gz
tar xzf rarlinux-x64-5.4.0.tar.gz
cd rar
make install
Устанавливаем:

mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
Метод применим для всех дистрибутивов.

И применяем:

unrar x test.rar

Найти объединенные данные (мое решение)

На прошлой неделе публиковала задачку по SQL, которая попалась мне на работе — «Найти объединенные данные». Хочу рассказать, как я ее решала.

Перед тем, как строить догадки, я посмотрела на парочку идентификаторов «вживую» и сделала вывод, что часть из них окажется неактуальными. Тогда мне казалось, что все, что от меня надо — доказать свою теорию числами. Пффф!

Но это не такая простая задачка, как оказалось. Сначала я пошла втупую — скопировала первую колонку и попробовала сделать запрос in (1, 2, 3...). Выяснилось, что внутри IN может быть только 1000 параметров, а у меня их 82 000. Облом-с.

Но ведь можно работать с таблицей! То есть главное — запихать наши 82 000 в некую темповую табличку с данными. Тут следующий облом — я умею через Workhbench, а на сервере его нету. Пошла гуглить, как без него, нашла только load data, расстроилась. Уже думала попросить админов мне файлик на сервер закинуть, как коллега услышал про мои страдания и показал, как загружать файлы через sql developer (см пункт 2).

Итак, ура, данные загрузили! Что дальше?

Подготовка тестовых данных


А что, вы думали, что я сразу понесусь тестировать на миллионах данных? Нет, конечно, сначала скрипты надо обкатать на небольшом объеме. А то так запустишь селект, который 2 часа работает, а потом поймешь, что результат невалидный, так как ты про is not null забыл, или другое условие.

Так что сначала я обратилась к своей небольшой тестовой базе и надергала оттуда разных идентификаторов, которые покрывают самые разные ситуации. Номера групп — фактически номер теста.

Сначала начала рисовать табличку, а потом поняла, что мне проще сразу в виде запросов писать тест-кейсы. А если вам интересно само задание, то вернитесь к условию и подумайте, какие тесты вы бы накидали для проверки.

ID_PARTY
GROUPING
Комментарий
3048
1
Уже объединены. Исходный 3048. Его ИД больше ИД золотого
3041
1
5162
2
Уже объединены.
Исходный 5155. Его ИД меньше ИД золотого
5155
2
...
...
...


Вот что получилось у меня:

понедельник, 26 июня 2017 г.

Как загрузить данные из файла в табличку Oracle

Допустим, входной файлик выглядит так — test.csv:

HID_PARTY;HID_EXTERNAL
11;22
15;39
...

Как загрузить эти данные в Oracle?

1. Через WBImport в Workhbench


Workhbench удобен тем, что ты один раз подготовил скрипт и все, потом можешь одним кликом догружать все новые и новые тестовые данные. Скрипт для нашего простенького файлика будет такой:

WbImport -file=test.csv
         -type=text
         -table=TMP$HID
         -encoding="UTF-8"
         -mode=insert
         -header=true
         -decode=false
         -delimiter=';'
         -fileColumns=hid_party, hid_external
         -quoteCharEscaping=none
;

Если бы в файле были колонки с датами, добавились бы еще параметры:

         -dateFormat=yyyy-MM-dd
         -timestampFormat=yyyy-MM-dd HH:mm:ss

Когда создаем новый скрипт, то все, что меняет — это

  • файл, откуда грузить;
  • таблицу, куда грузить;
  • ее колонки (простое перечисление).

2. Import Data в SQL Developer

четверг, 22 июня 2017 г.

Панбагон. Стек-трейс во всю страницу при загрузке файла

Хочу халатик заказать. Нагуглила сайт http://moihalat.ru/.
Там, в целом, симпатичные эмблемы, но не зря же кнопочка «загрузить», верно?


Вдруг это не только для полотенец, но и для халатов?

Нажимаю «загрузить», заполняю все поля (телефон, емейл, аттач), сохраняю и... Ой



Тут очень хочется поерничать на тему php Smile :)
Но на любом языке можно написать необработанное исключение так, чтобы у тебя аж код пользователю показывался!

Давайте оформим баг по шаблону:

Как обрезать видео (утилита)

Скриншот из видео
Утилита — ffmpeg.
Гуглим ее и скачиваем.

Далее работаем в консоли:

ffmpeg -i input.avi  -ss 0 -t 800 test.avi result.avi

Где:
-ss 0 - это стартовая секунда видео
-t - это количество секунд, через которое видео закончится (необязательный параметр, если не указать, будет до конца видео)
test.avi — путь к исходному файлу (если вызывать консоль там же, где и файл, то весь путь не надо, только название)
result.avi — путь к итоговому файлу (если хотим положить обработанный файлик рядышком). Если не указать, перезатрется исходный файл! Форматы файлов обязательно должны совпадать!

Пример — мы ездили в крытый Пандпарк, записали видео прыжка с 8 метров. Записывать видео коллега стал слишком рано и первые 29 секунд ничего не происходит.  Пока инструктор объясняет что да как, пока я переживаю и боюсь прыгать... На видео просто скукота, не видно же страданий! Так что мне надо было вырезать первые 29 секунд.

Захожу в командной строке в папку и ввожу команду:

ffmpeg -i 8_meter.mp4  -ss 29  8_meter_result.mp4

И вот результат! Никаких 29 секунд ничего-не-делания =)))

Тестировщикам может пригодиться, если делаете видео для разработчиков. Ну и вообще полезная штука! Smile :)

Склейка видео:

ffmpeg -i "concat:00000.MTS|00001.MTS|00002.MTS|00003.MTS" -c copy output.MTS

понедельник, 19 июня 2017 г.

Мнемоники от моих студентов

На моем курсе «Школа для начинающих тестировщиков» есть творческое задание — придумать свою мнемонику по тестированию! Разумеется, оно необязательное 

Но у ребят такие классные мысли возникают, что я просто не могу ими не делиться! Вот, например, очень важная для тестировщика мнемоника:

АГУ

А — анализируй,
Г — границы проверяй,
У — уточняющие вопросы задавай.



В этом посте буду собирать все мнемоники ребят в одном месте. Наслаждайтесь! 
Записывать буду в формате «Имя автора — перечисление его мнемоник», чтобы потом не гадать «у кого там было про зонтик?»: