Gå till slutet av bannern
Gå till början av bannern

SKLTP EI - Instruktioner för testdata

Hoppa till slutet på meta-data
Gå till början av metadata

Du visar en gammal version av den här sidan. Visa nuvarande version.

Jämför med nuvarande Visa sidhistorik

Version 1 Nästa »

Generera testdata för MySQL

 

För att generera testdata används för närvarande enhetstestet BenchmarkTest som skapar en väldigt enkel databasstruktur där varje post härleds utifrån ett heltal. Observera att testet först  skapar poster och sedan uppdaterar dessa. Med andra ord kan man avbryta körningen manuellt när första passet med skapandet är klart.

Procedur:

  1. Skapa en mysql databas på lämplig server. Observera att en lokal databas på din laptop åtminstone är dubbelt så snabb som normala virtuella servers i ett datacenter
  2. Checka ut SKLTP-EI och gör en "mvn clean install" från rot-biblioteket 
  3. Editera mavens byggfil pom.xml och lägg till mysql biblioteket
  4. Editera src/test/resources/ei-test-config.properties och ställ in rätt databas samt lägg till benchmarkRows som ska sättas till antalet rader som ska skapas och benchmarkBatchSize som ska sättas till batch storlek (500 är lagom)
  5. Editera src/test/resources/persistence-test.xml och kommentera bort hibernate.show_sql för att slippa en massa onödiga utskrifter
  6. Editera src/test/resources/log4j.xml och sätt level till WARN för org.hibernate.SQL för att slippa en massa onödiga utskrifter 
  7. Skapa testdata genom att köra "mvn -Dtest=BenchmarkTest test" detta kan ta några timmar så kommandot "nohup mvn -Dtest=BenchmarkTest test > benchmark-load.log 2>&1 &" kan med fördel användas
  8. Ladda ut data från tabellen genom att köra "mysqldump -u root test engagement_index_table | gzip  > engagement_index_table.gz" filen blir ca 615MB stor
  9. Ladda in data i den aktuella databasen genom att köra först kopiera databasfilen och sedan köra  "gunzip < engagement_index_table.gz | mysql -h <host> -u <user> -p <database>". Där <host> är hostnamnet på servern <user> är mysql användaren och <database> är namnet på databasen/schemat. Programmet kommer att fråga efter Exempel:

 

ei-test-config.properties snippet:

EI_JDBC_DRIVER=com.mysql.jdbc.Driver
EI_JDBC_URL=jdbc:mysql://localhost:3306/test
EI_JDBC_USR=root
EI_JDBC_PWD=
EI_JDBC_CON_POOL_INIT_SIZE=1
EI_JDBC_CON_POOL_MAX_ACTIVE=10
EI_JDBC_CON_POOL_MAX_IDLE=2
benchmarkRows = 10000000
benchmarkBatchSize = 500


pom.xml snippet:

<dependency>
 <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.24</version>
</dependency>

 

persistence-test.xm snippet:

<property name="hibernate.show_sql" value="false"/>

log4j.xml snippet:

<logger name="org.hibernate.SQL">
<level value="WARN" />
</logger>

 

 

  • Inga etiketter