1

I write plugin for JMeter to automate database load testing. The main idea of plugin is create automate database load test when provided a minimum of information (connection string, quantity of users, throughput, schemas of tables that is tested, etc). I understand that such random test doesn't match to real behavior of user but purpose is to launch test in few minutes and get statistic of DB work such as select or DML queries time of response.

What aspect of database can be tested automaticly? How can I automaticly test this aspects? For example tables, index, trigers, functions... What statistic I can get in such way? Are there similar software? Do You have any idea? :)

At first I get metadata from DB for all tables and create queries(DML and all posible select for 1 table) from existing data in DB and put them to queue. Then sampler get the query from queue and execute it.

storm
  • 21
  • 3
  • I use Oracle Database to test at first – storm May 30 '14 at 18:51
  • 1
    This is a very broad question that probably requires a book to answer. Can you narrow it down some? – James Kingsbery Jun 02 '14 at 14:43
  • Yes, it's hard question. I am looking for algorithms(idea what can be tested automaticly and how). I made a plugin for JMeter that generate queries for specific schemas in DB(it use data from tables to create all posible queries) yesterday. Also I configured a JMeter project to execute this queries and collect statitic(only on user side). This JMeter project generates loading of DB with random queries. I think running this project some time is automaticly test of table and indexes(also I collect statistic of CPU|Memory|I/O for every query and using server resources by DBMS). – storm Jun 02 '14 at 15:38
  • Also I think about automaticly test performance of trigers. – storm Jun 02 '14 at 15:41

2 Answers2

0

A couple of questions to help you need to get to where you are going first.

1) What are the exact metrics you are looking to test? 2) Is this for comparing different database servers / end products, or is it for a specific database to measure how well your indexes are set up? 3) Will it be creating multiple concurrent connections to test record locking, etc?

Richard Varno
  • 537
  • 6
  • 8
  • 1) In my opinion, such automate test should use as many metrics as possible and metrics that make sense in such test. I want ot use response time, average response time, error rate, throughput, memory and CPU utilization at first. – storm May 30 '14 at 18:43
  • 2) it is for a specific database to measure how well your indexes are set up 3) Yes. I want to load DB with select/update/insert/delete simultaneously and seperatly – storm May 30 '14 at 18:49
0

I believe that you should start with official documentation such as Building a Database Test Plan.

Once you're comfortable with JDBC Connection Configuration details, have ojdbc6.jar in JMeter classpath (usually /lib folder) and will be able to execute sample query like select sysdate from dual;

you can start looking into i.e. Using JDBC Sampler in JMeter 2.6 guide for advanced information.

Dmitri T
  • 159,985
  • 5
  • 83
  • 133
  • thk :) I interesting more in ideas of automatisation. I have recently writed a plugin for JMeter that automaticly generate DB random load. Now I think about making algorithm more sofisticated for generate select with join of many tables, generate updates for diferent quntity of rows in one time. – storm Jun 02 '14 at 15:49