This project implements a pseudo-random data and query generator that can be used to test any Perl DBI, JDBC or ODBC-compatible SQL server, in particular MySQL, but also JavaDB and PostgreSQL.
The Random Query Generator is a new tool for generating complete databases and executing queries against them for the purpose of functional and stress testing.
The tool is capable of executing test scenarios that include:
* Generate a database from a description of the desired data contents and properties;
* Execute random queries based on SQL templates the queries must conform to;
* Compare the results returned by different server versions, configurations, or storage engines;
* Monitor the server during the test and detect deadlocks, crashes, replication failures and other interesting events;
The tool is useful for the following audiences:
* Storage engine implementors can use the tool to test their code and the way it interacts with features of the core server (such as partitioning and replication);
* Individual users who are eager to break the server will have a powerful weapon in their hands.
* Implementors who wish to evaluate MySQL stability and performance can generate syntetic data and workloads that match the application they are planning to deploy;
Copyright © 2008, 2013, Oracle and/or its affiliates. All rights reserved.
Randgen is no longer being maintained. For an newer alternative to Randgen, see pquery and the pquery framework:
https:/
Project information
- Licence:
- GNU GPL v2
View full history Series and milestones
2.0 series is the current focus of development.
All bugs Latest bugs reported
-
Bug #1424136: "Table %s doesn't exist" error when trying to test a query
Reported -
Bug #1349930: old http://forge.mysql.com/wiki links referenced throughout project
Reported -
Bug #1222694: PS 5.6-QA tree in revid 418 (and earlier) locks up in mysqld
Reported -
Bug #1220975: Any logging code in MySQL.pm (--sqltrace or otherwise) does not log all transformer queries to the RQG log
Reported -
Bug #1108572: No text from say() or print() within ErrorLogAlarm makes it to the trial/runall log.
Reported
All blueprints Latest blueprints
-
Reporter which calls a script or program at begin at end and during some RQG run.
Registered -
Starting server in debug mode in release build in rqg run
Registered -
Running rqg as a non-root user with specific permission set
Registered -
Better handling for grammar syntax errors
Registered -
Simplify mysql query logs in the .log format
Registered