Домой » Инструментарий » Опенсорсные инструменты для тестирования баз данных

Опенсорсные инструменты для тестирования баз данных

Data Base testingТестирование баз данных не так распространено, как тестирование других частей приложения. В некоторых тестах базу данных вообще мокают. В этой статье я постараюсь разобрать инструменты для тестирования реляционных и NoSQL баз данных.

Такая ситуация связана с тем, что многие базы данных являются коммерческими и весь необходимый набор инструмента для работы с ними поставляется организацией, которая разработала данную базу. Однако, рост популярности NoSQL и различных форков MySQL в будущем, возможно, изменит такое положение дел.

Database Benchmark

Database Benchmark — это .NET инструмент, предназначенный для стресс-тестирования баз данных большими потоками данных. Приложение выполняет два основных тестовых сценария: вставку большого количества случайно сгенерированных записей с последовательными или случайными ключами и чтение вставленных записей, упорядоченных по их ключам. Он обладает широкими возможностями по генерации данных, графическими отчётами и конфигурированием возможных видов отчётов.

Поддерживаемые базы: MySQL, SQL Server, PostgreSQL, MongoDB и многие другие.

Database Rider

Database Rider предназначен, чтобы тестирование базы данных было было не сложнее юнит-тестирования.  Данная тула базируется на Arquillian и поэтому в Java проекте нужна лишь зависимость для DBUnit. Также возможно использование аннотаций, как в JUnit, интеграция с CDI через интерсепторы, поддержка JSON, YAML, XML, XLS и CSV, конфигурация через те же аннотации или yml файлы, интеграция с Cucumber, поддержка нескольких баз данных, работа с временными типами в датасетах.

Поддерживаемые базы: все те же, что и в JDBC .

DbFit

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

Поддерживаемые базы: Oracle, SQL Server, MySQL, DB2, PostgreSQL, HSQLDB и Derby.

dbstress

dbstress— инструмент для перфоманс и стресс-тестирования баз данных, написанный на Scala и Akka. Используя специальный JDBC-драйвер, он выполняет параллельно запросы определённое количество раз (возможно даже и к нескольким хостам) и сохраняет итоговый результат в csv файле.

Поддерживаемые базы: все те же, что и в JDBC .

DbUnit

DbUnit — это расширение JUnit (также используемое с Ant), которое между тестами может возвращать базу данных в нужное состояние. Данная возможность позволяет избежать зависимости между тестами, если один тест не пройдёт и при этом нарушит базу, то следующий тест начнётся с чистого листа. DbUnit имеет возможность трансфера данных между базой данных и XML документом. Есть и возможность работы с большими датасетам в потоковом режиме. Также можно проверить совпадает ли полученная база данных определённому эталону.

Поддерживаемые базы: все те же, что и в JDBC .

DB Test Driven

DB Test Driven представляет собой инструмент для unit — тестирования базы данных. Данная утилита весьма легковесная, работает с нативным SQL и устанавливается прямо в базу. Легко интегрируется с инструментами непрерывной интеграции, а версия для SQL Server имеет возможность оценить покрытие кода тестами.

Поддерживаемые базы: SQL Server, Oracle.

HammerDB

HammerDB — инструмент для нагрузочного и эталонного тестирования базы данных. Это автоматизированное приложение, которое также мультипоточно и имеет возможность использования динамических скриптов.  яв с открытым исходным кодом и инструмента сравнения. Он автоматизирован, многопоточен и расширяем с поддержкой динамических скриптов.

Поддерживаемые базы: Oracle, SQL Server, PostgreSQL, MySQL и другие.

JdbcSlim

JdbcSlim предлагает лёгкую интеграцию запросов и команд в Slim FitNesse. Основное внимание в проекте уделяется хранению рядом конфигураций, тестовых данных и SQL. Это гарантирует, что требования написаны независимо от реализации и понятны бизнес-пользователям. В JdbcSlim нет кода специфичного для какой либо базы данных. Он агностик специфики системы баз данных и не имеет специального кода для любой системы баз данных. В самом фреймворке всё описано высокоуровнево, внедрение каких-либо специфических вещей происходит за счёт изменения всего одного класса.

Поддерживаемые базы: Oracle, SQL Server, PostgreSQL, MySQL и другие.

JDBDT (Java DataBase Delta Testing)

JDBDT — это Java-библиотека для тестирования (на базе SQL) приложений баз данных. Библиотека предназначена для автоматизированной установки и проверки базы данных тестах. JDBDT не имеет зависимостей от сторонних библиотек, что упрощает её интеграцию. По сравнению с существующими библиотеаками для тестирования баз данных, JDBDT концептуально отличается возможностью использования δ-утверждений.

Поддерживаемые базы: PostgreSQL, MySQL, SQLite, Apache Derby, H2 and HSQLDB.

NBi

NBi по сути является аддоном для NUnit и предназначен больше для Business Intelligence сферы. Кроме работы с реляционными базами данных возможна работа с OLAP платформами (Analysis Services, Mondrian и т.д.), ETL и системами отчётов (Microsoft technologies). Основная цель данного фреймворка — создание тестов с помощью декларативного подхода основанного на XML. Вам не надо будет писать тесты на C# и использовать Visual Studio для компиляции тестов. Вам всего лишь надо создать xml-файл и интерпретировать с помощью NBi, дальше тесты можно запускать. Кроме NUnit можно портировать и на другие тестовые фреймворки.

Поддерживаемые базы: SQL Server, MySQL, PostgreSQL, Neo4j, MongoDB, DocumentDB и другие.

NoSQLMap

NoSQLMap написан на Python, чтобы проводить аудит на устойчивость sql — инъекциям и различным эксплойтам в конфигурации базы данных. А также для оценки устойчивости веб — приложения, использующего NoSQL базы, к такому роду атак. Основными целями приложения являются предоставление инструмента для тестирования серверов MongoDB и  развеяние мифа, что приложения NoSQL неприступны для SQL-инъекции.

Поддерживаемые базы: MongoDB.

NoSQLUnit

NoSQLUnit — это расширение для JUnit предназначенное для написания тестов в Java — приложениях, которые используют NoSQL базы данных. Цель NoSQLUnit — управлять жизненным циклом NoSQL. Данный инструмент поможет вам поддерживать тестируемые базы данных в известном состоянии и стандартизировать способ написания тестов для приложений использующих NoSQL.

Поддерживаемые базы: MongoDB, Cassandra, HBase, Redis и Neo4j.

ruby-plsql-spec

ruby-plsql-spec фреймворк для юнит — тестирования PL/SQL с помощью Ruby. Он базируется на двух других библиотеках:

  • ruby-plsql – Ruby API для вызова PL/SQL процедур;
  • RSpec – фреймворка для BDD.

Поддерживаемые базы: Oracle

SeLite

SeLite является расширением из семейства Selenium. Основная суть — иметь базу данных, базирующуюся на SQLite, изоллированно от приложения. Вы сможете обнаруживать ошибки web — сервера и шарить скрипты между тестами, работать со снэпшотами и т.д.

Поддерживаемые базы: SQLite, MySQL, PostgreSQL.

sqlmap

sqlmap — инструмент для тестирования на проникновение, с помощью которого можно автоматизировать процесс обнаружения и использования SQL-инъекций и захвата серверов баз данных. Он оснащен мощным механизмом обнаружения и множеством нишевых функций пентестерования.

Поддерживаемые базы: MySQL, Oracle, PostgreSQL, SQL Server, DB2 и другие.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*