Started work on test plan

master
Edward M. Kagan 4 years ago
parent 170f5463b9
commit 97a42861b2

@ -11,9 +11,12 @@
- [Apache Cayenne](https://github.com/apache/cayenne) - [Apache Cayenne](https://github.com/apache/cayenne)
- [Ebean](https://github.com/ebean-orm/ebean) - [Ebean](https://github.com/ebean-orm/ebean)
- [MyBatis](https://github.com/mybatis/mybatis-3)
- [jOOQ](https://github.com/jOOQ/jOOQ) - [jOOQ](https://github.com/jOOQ/jOOQ)
- [speedment](https://github.com/speedment/speedment) - [speedment](https://github.com/speedment/speedment)
- [ORMLite Core](https://github.com/j256/ormlite-core)
- [EclipseLink](https://github.com/eclipse-ee4j/eclipselink)
- [MyBatis](https://github.com/mybatis/mybatis-3)
- [Querydsl](https://github.com/querydsl/querydsl)
- [Hibernate](https://github.com/hibernate/hibernate-orm) (as JPA representative - zero mark) - [Hibernate](https://github.com/hibernate/hibernate-orm) (as JPA representative - zero mark)
## Initial criteria ## Initial criteria
@ -31,3 +34,47 @@ Good to see if:
- "N+1" problem automatic solutions (as much as possible) - "N+1" problem automatic solutions (as much as possible)
- ability to generate raw SQL (to be executed elsewhere) - ability to generate raw SQL (to be executed elsewhere)
- support for binary (BLOB) storage and extraction (10Mb per record max) - support for binary (BLOB) storage and extraction (10Mb per record max)
## Test plan
- postgres version 14 & 14-alpine (test database performance baseline)
- two databases (one with partitioning, one without)
- tables per database
- xxs _[50 records]_
- xs _[500 records]_
- s _[5000 records]_
- m _[50000 records]_
- l _[500000 records]_
- xl _[5000000 records]_
- xxl _[50000000 records]_
- each test module starts a fresh copy of database
- database content is procedure-generated
- random sequences must be pregenerated to be exactly same for all tests (to eliminate test-path diviations)
- random sequence for each test is unique and not intersect (to eliminate postgresql optimizations)
## Requests plan
- search
- random get by id
- find by integer equals
- find by string equals
- find by date equals
- find by integer more X & less Y
- find by float more X & less Y
- find by date after X & before Y
<!-- - update
- random by id
-
- insert
- with correct data
- with unique constrain
- update
- random by id
- by
- delete
- random by id
- by criteria -->
## Documentation analysis
**MyBatis** out of competitions, due to ass-whipping-xml notation.

Loading…
Cancel
Save