Task #2095
closedPerformance testing for the export/import agenda
100%
Description
- Goal of this ticket is made user testing of export/import.
- Please make performance testing for roles and systems (1000 entities would be good goal).
Updated by Vít Švanda almost 5 years ago
This feature is in the branch "vsvanda/1972-export-import".
Updated by Ondrej Husník almost 5 years ago
Performance testing¶
Performance testing took place with using numbers of Systems (specifically CSVDir system) with assigned several roles, set mapping etc. to increase overall number of entities to export.
The goal was to find both particular time of duration and estimation of the export/import complexity. Testing was performed on personal NB (i7, 16GB RAM, SSD). Database (MSSQL) was placed on the SSD communicating with IdM via localhost only. System wasn’t running out of any resources during testing.
Following table shows number of testing systems and measured times of their export and import. The growth of the operation time is roughly linearly proportional to number of testing systems and by extension overall processed entities.
System num | Overall entity num | Export time [min] | Import time - Dry run [min] | Import time - Apply changes [min] | Zip size [MB] |
---|---|---|---|---|---|
111 | 2691 | 1 | 1 | 3 | 2,18 |
201 | 4851 | 1 | 3 | 10 | 3,93 |
415 | 9982 | 2 | 10 | 35 | 8,08 |
815 | 19582 | 4 | 38 | 130 | 15,8 |
Functionality testing¶
User testing was focused on testing export and various scenarios of import. It worked in general as expected. Imported batch was exported again and compared with the originally imported batch - checked file content of the exported batches - in order to prove equality of such batches. Only changes of some IDs and modification time were allowed. Dependent parts missing in IdM and contained in the batch were imported, items missing in the batch were removed from IdM and items contained in both were updated unless excluded from removal/replacement due to disabled authoritative mode setting.
Found trouble and limitations
I. A difficulty occurred during import of a system, when another system with different IDs but same name/code already existed in IdM. Import causes temporal presence of two System schemas with different ID and same name/code which is not allowed.
II. Import fails in case of using Attributes mapped within role in the source batch, but IdM doesn’t contain corresponding role. While missing roles assigned to system are omitted from import as optional, Attributes mapped within role are attempted to be linked to that non-existent roles which ends up with an exception.
Validation failed for [SysRoleSystemAttribute], errors [[ConstraintViolationImpl{interpolatedMessage='nesmí být null', propertyPath=roleSystem, rootBeanClass=class eu.bcvsolutions.idm.acc.entity.SysRoleSystemAttribute, messageTemplate='{javax.validation.constraints.NotNull.message}'}]]
at eu.bcvsolutions.idm.core.api.service.AbstractReadWriteDtoService.validate(Abstrac
III. It wasn't possible to export created bare system without any selected connector even though such system is legal to save.
UX suggestion
In the Batch detail → All modifications
1) First combo for Operation selection could have the hint text “Operation” instead of “Select...”
2) Filter search items could be swapped to correspond with the order of columns in the table.
Updated by Vít Švanda almost 5 years ago
I improved a UX suggestions.
https://github.com/bcvsolutions/CzechIdMng/commit/08ebb9df062edc63765a0b5169e049a23184cacc
Updated by Vít Švanda almost 5 years ago
Found trouble and limitations:
I - It is limitation in version 10.2.0.
II - This is a big problem I have to solve this!
III - Fixed.
Updated by Vít Švanda almost 5 years ago
I fixed number II.
Role-system-attribute type is sets as optional now.
Commit: https://github.com/bcvsolutions/CzechIdMng/commit/077dd2dfaeda17e277927c97499d0f7cfa2e2495
You can try it again and close this ticket.
Updated by Ondrej Husník almost 5 years ago
After your correction is role mapping belonging to missing role successfully omitted and import passes.
Updated by Radek Tomiška over 4 years ago
- Status changed from Resolved to Closed