mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 19:39:44 +08:00
fix #707: duration stat error in multiple testsuites
Thanks @lijuelijue and @plmmilove
This commit is contained in:
@@ -15,6 +15,10 @@
|
||||
- log httprunner version before running tests
|
||||
- remove unused import & code
|
||||
|
||||
**Fixed**
|
||||
|
||||
- fix #707: duration stat error in multiple testsuites
|
||||
|
||||
## 2.2.6 (2019-09-18)
|
||||
|
||||
**Added**
|
||||
|
||||
@@ -54,11 +54,11 @@ def get_summary(result):
|
||||
}
|
||||
}
|
||||
summary["stat"]["successes"] = summary["stat"]["total"] \
|
||||
- summary["stat"]["failures"] \
|
||||
- summary["stat"]["errors"] \
|
||||
- summary["stat"]["skipped"] \
|
||||
- summary["stat"]["expectedFailures"] \
|
||||
- summary["stat"]["unexpectedSuccesses"]
|
||||
- summary["stat"]["failures"] \
|
||||
- summary["stat"]["errors"] \
|
||||
- summary["stat"]["skipped"] \
|
||||
- summary["stat"]["expectedFailures"] \
|
||||
- summary["stat"]["unexpectedSuccesses"]
|
||||
|
||||
summary["time"] = {
|
||||
'start_at': result.start_at,
|
||||
@@ -80,10 +80,16 @@ def aggregate_stat(origin_stat, new_stat):
|
||||
for key in new_stat:
|
||||
if key not in origin_stat:
|
||||
origin_stat[key] = new_stat[key]
|
||||
|
||||
elif key == "duration":
|
||||
# duration = max_end_time - min_start_time
|
||||
max_end_time = max(origin_stat["start_at"] + origin_stat["duration"],
|
||||
new_stat["start_at"] + new_stat["duration"])
|
||||
min_start_time = min(origin_stat["start_at"], new_stat["start_at"])
|
||||
origin_stat["duration"] = max_end_time - min_start_time
|
||||
elif key == "start_at":
|
||||
# start datetime , duration=current_time - min(stat_at)
|
||||
origin_stat[key] = min(origin_stat[key], new_stat[key])
|
||||
origin_stat["duration"] = time.time() - origin_stat[key]
|
||||
# start datetime
|
||||
origin_stat["start_at"] = min(origin_stat["start_at"], new_stat["start_at"])
|
||||
else:
|
||||
origin_stat[key] += new_stat[key]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user