Skip to content

Commit 4f10210

Browse files
Merge pull request #65 from aquality-automation/feature/fix_testrun_view_performance
Feature/fix testrun view performance
2 parents 4d0eab1 + 89cf127 commit 4f10210

File tree

8 files changed

+67
-27
lines changed

8 files changed

+67
-27
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# CHANGELOG
22

3+
## 0.3.10 (unreleased)
4+
5+
Features:
6+
7+
Bugfixes:
8+
- Test run View Page performance is bad -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/99)
9+
310
## 0.3.9 (2020-04-21)
411

512
Features:

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<groupId>unifi_reporting_api</groupId>
77
<artifactId>api</artifactId>
88
<packaging>war</packaging>
9-
<version>0.3.9</version>
9+
<version>0.3.10</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

src/main/java/main/controllers/Project/ResultController.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,28 +108,31 @@ private void createPendingStepResults(TestResultDto template) throws AqualityExc
108108
private List<TestResultDto> fillResults(List<TestResultDto> results) throws AqualityException {
109109

110110
if (results.size() > 0) {
111+
int projectId = results.get(0).getProject_id();
111112
List<FinalResultDto> finalResults = finalResultController.get(new FinalResultDto());
112113
IssueDto issueDto = new IssueDto();
113-
issueDto.setProject_id(results.get(0).getProject_id());
114+
issueDto.setProject_id(projectId);
114115
List<IssueDto> issues = issueController.get(issueDto);
115116

116117
TestDto testTemplate = new TestDto();
117-
testTemplate.setProject_id(results.get(0).getProject_id());
118+
testTemplate.setProject_id(projectId);
118119
List<TestDto> tests = testController.get(testTemplate);
119120

120121
ProjectUserDto projectUserDto = new ProjectUserDto();
121-
projectUserDto.setProject_id(results.get(0).getProject_id());
122+
projectUserDto.setProject_id(projectId);
123+
124+
boolean isStepsEnabled = projectController.isStepsEnabled(projectId);
122125

123126
for (TestResultDto result : results) {
124-
fillResult(result, finalResults, tests, issues);
127+
fillResult(result, finalResults, tests, issues, isStepsEnabled);
125128
}
126129
}
127130

128131
return results;
129132
}
130133

131-
private void fillResult(TestResultDto result, List<FinalResultDto> finalResults, List<TestDto> tests, List<IssueDto> issues) throws AqualityException {
132-
if (projectController.isStepsEnabled(result.getProject_id())) {
134+
private void fillResult(TestResultDto result, List<FinalResultDto> finalResults, List<TestDto> tests, List<IssueDto> issues, boolean isStepsEnabled) throws AqualityException {
135+
if (isStepsEnabled) {
133136
fillResultSteps(result);
134137
}
135138

src/main/java/main/controllers/Project/TestController.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
import java.util.stream.Collectors;
1414

1515
public class TestController extends BaseController<TestDto> {
16-
private TestDao testDao;
17-
private TestSuiteDao suiteDao;
18-
private TestResultDao resultDao;
19-
private Test2SuiteController test2SuiteController;
20-
private ProjectUserController projectUserController;
16+
private final TestDao testDao;
17+
private final TestSuiteDao suiteDao;
18+
private final TestResultDao resultDao;
19+
private final Test2SuiteController test2SuiteController;
20+
private final ProjectUserController projectUserController;
2121

2222
public TestController(UserDto user) {
2323
super(user);
@@ -54,10 +54,8 @@ public TestDto createOrUpdate(TestDto test) throws AqualityException {
5454
if(existingTests.size() > 0) {
5555
TestDto existingTest = existingTests.get(0);
5656
if(existingTest.getSuites() != null) {
57-
TestSuiteDto testSuite = existingTest.getSuites().stream().filter(suite -> suite.getId().equals(test.getSuites().get(0).getId())).findFirst().orElse(null);
58-
if(testSuite != null) {
59-
existingTest.getSuites().add(test.getSuites().get(0));
60-
}
57+
existingTest.getSuites().stream()
58+
.filter(suite -> suite.getId().equals(test.getSuites().get(0).getId())).findFirst().ifPresent(testSuite -> existingTest.getSuites().add(test.getSuites().get(0)));
6159
}else {
6260
existingTest.setSuites(test.getSuites());
6361
}
@@ -98,12 +96,12 @@ public boolean delete(TestDto template) throws AqualityException {
9896
}
9997
}
10098

101-
public boolean updateMultipleTests(List<TestDto> entities) throws AqualityException {
99+
public void updateMultipleTests(List<TestDto> entities) throws AqualityException {
102100
if (entities.size() > 0 && (baseUser.isManager() || baseUser.getProjectUser(entities.get(0).getProject_id()).isEditor())) {
103101
for (TestDto test : entities) {
104102
updateSuites(test);
105103
}
106-
return testDao.updateMultiply(entities);
104+
testDao.updateMultiply(entities);
107105
} else {
108106
throw new AqualityPermissionsException("Account is not allowed to update Test ", baseUser);
109107
}
@@ -162,16 +160,12 @@ private List<TestDto> fillTests(List<TestDto> tests) throws AqualityException {
162160
TestSuiteDto testSuiteDto = new TestSuiteDto();
163161
testSuiteDto.setProject_id(projectId);
164162
List<TestSuiteDto> testSuites = suiteDao.searchAll(testSuiteDto);
165-
List<Test2SuiteDto> test2Suites = new ArrayList<>();
166163
ProjectDto projectDto = new ProjectDto();
167164
projectDto.setId(tests.get(0).getProject_id());
168165

169-
for (TestSuiteDto testSuite : testSuites) {
170-
Test2SuiteDto test2Suite = new Test2SuiteDto();
171-
test2Suite.setSuite_id(testSuite.getId());
172-
test2Suites.addAll(test2SuiteController.get(test2Suite));
173-
}
174-
166+
Test2SuiteDto test2Suite = new Test2SuiteDto();
167+
test2Suite.setProject_id(projectId);
168+
List<Test2SuiteDto> test2Suites = test2SuiteController.get(test2Suite);
175169

176170
for (TestDto test : tests) {
177171
if (test.getDeveloper_id() != null) {
@@ -192,7 +186,8 @@ private void updateSuites(TestDto test) throws AqualityException {
192186
test2SuiteDto.setTest_id(test.getId());
193187
List<Test2SuiteDto> oldSuites = test2SuiteController.get(test2SuiteDto);
194188
if (test.getSuites() != null && test.getSuites().size() > 0) {
195-
for (TestSuiteDto newSuite : test.getSuites()) {
189+
List<TestSuiteDto> suites = test.getSuites();
190+
for (TestSuiteDto newSuite : suites) {
196191
Test2SuiteDto alreadyExists = oldSuites.stream().filter(x -> Objects.equals(x.getSuite_id(), newSuite.getId())).findAny().orElse(null);
197192
if (alreadyExists != null) {
198193
oldSuites.removeIf(x -> Objects.equals(x.getSuite_id(), alreadyExists.getSuite_id()));

src/main/java/main/model/db/dao/project/Test2SuiteDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
public class Test2SuiteDao extends DAO<Test2SuiteDto> {
77
public Test2SuiteDao() {
88
super(Test2SuiteDto.class);
9-
select = "{call SELECT_TEST_SUITES(?,?)}";
9+
select = "{call SELECT_TEST_SUITES(?,?,?)}";
1010
insert = "{call INSERT_TEST_TO_SUITE(?,?)}";
1111
remove = "{call REMOVE_TEST_FROM_SUITE(?,?)}";
1212
}

src/main/java/main/model/dto/project/Test2SuiteDto.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,7 @@ public class Test2SuiteDto extends BaseDto {
1717
@DataBaseInsert
1818
@DataBaseSearchable
1919
private Integer suite_id;
20+
@DataBaseName(name="request_project_id")
21+
@DataBaseSearchable
22+
private Integer project_id;
2023
}

src/main/resources/db_changelog/changelog.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,5 @@
3232
<include file="db.changelog-0.3.7.xml" relativeToChangelogFile="true"/>
3333
<include file="db.changelog-0.3.8.xml" relativeToChangelogFile="true"/>
3434
<include file="db.changelog-0.3.9.xml" relativeToChangelogFile="true"/>
35+
<include file="db.changelog-0.3.10.xml" relativeToChangelogFile="true"/>
3536
</databaseChangeLog>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<databaseChangeLog
3+
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
6+
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
7+
8+
<changeSet id="Update SELECT_TEST_SUITES add project_id" author="v.kostyukevich">
9+
<sql endDelimiter="#">
10+
11+
DROP procedure IF EXISTS `SELECT_TEST_SUITES`;
12+
13+
#
14+
CREATE PROCEDURE `SELECT_TEST_SUITES`(
15+
IN request_test_id VARCHAR(11),
16+
IN request_suite_id VARCHAR(11),
17+
IN request_project_id VARCHAR(11)
18+
)
19+
BEGIN
20+
Select suite_tests.*, tests.project_id as project_id
21+
FROM suite_tests LEFT JOIN tests on test_id = tests.id
22+
where (request_test_id = '' OR test_id = request_test_id)
23+
AND (request_suite_id = '' OR suite_id = request_suite_id)
24+
AND (request_project_id='' OR project_id = request_project_id);
25+
END
26+
</sql>
27+
<rollback>
28+
</rollback>
29+
</changeSet>
30+
31+
</databaseChangeLog>

0 commit comments

Comments
 (0)