neoload 1.3.14.dev3__tar.gz → 1.3.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. {neoload-1.3.14.dev3 → neoload-1.3.15}/PKG-INFO +9 -17
  2. {neoload-1.3.14.dev3 → neoload-1.3.15}/README.md +8 -16
  3. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/report.py +26 -38
  4. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/rest_crud.py +1 -0
  5. neoload-1.3.15/neoload/version.py +1 -0
  6. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload.egg-info/PKG-INFO +9 -17
  7. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/report/test_report_json_output.py +0 -6
  8. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/report/test_trends_json_output.py +0 -9
  9. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_custom_report.html +2 -8
  10. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_custom_report_filtered.html +2 -8
  11. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_template_trends.html +2 -8
  12. neoload-1.3.14.dev3/neoload/version.py +0 -1
  13. {neoload-1.3.14.dev3 → neoload-1.3.15}/.github/workflows/python-integration-tests.yml +0 -0
  14. {neoload-1.3.14.dev3 → neoload-1.3.15}/.github/workflows/python-package.yml +0 -0
  15. {neoload-1.3.14.dev3 → neoload-1.3.15}/.github/workflows/python-post-release-changelog-pr.yml +0 -0
  16. {neoload-1.3.14.dev3 → neoload-1.3.15}/.github/workflows/python-release.yml +0 -0
  17. {neoload-1.3.14.dev3 → neoload-1.3.15}/.gitignore +0 -0
  18. {neoload-1.3.14.dev3 → neoload-1.3.15}/.travis.yml +0 -0
  19. {neoload-1.3.14.dev3 → neoload-1.3.15}/CHANGELOG.md +0 -0
  20. {neoload-1.3.14.dev3 → neoload-1.3.15}/LICENSE +0 -0
  21. {neoload-1.3.14.dev3 → neoload-1.3.15}/MANIFEST.in +0 -0
  22. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/docker/Dockerfile +0 -0
  23. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/aws/.nlignore +0 -0
  24. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/aws/buildspec.yaml +0 -0
  25. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/azure_devops/.nlignore +0 -0
  26. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/azure_devops/Azure_DevOps_Pipeline_NeoLoad_CLI.jpg +0 -0
  27. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/azure_devops/Azure_DevOps_Pipeline_NeoLoad_SLA_jUnit.jpg +0 -0
  28. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/azure_devops/README.md +0 -0
  29. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/azure_devops/neoload-cli-docker.yml +0 -0
  30. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/azure_devops/neoload-cli-dyninfra.yml +0 -0
  31. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/bamboo-specs/.nlignore +0 -0
  32. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/bamboo-specs/Bamboo_Pipeline_NeoLoad_SLA_jUnit.jpg +0 -0
  33. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/bamboo-specs/README.md +0 -0
  34. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/bamboo-specs/bamboo-v1.yaml +0 -0
  35. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/bamboo-specs/bamboo-v2.yaml +0 -0
  36. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/github/neoload-github-actions-demo.yml +0 -0
  37. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/gitlab/.nlignore +0 -0
  38. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/gitlab/openshift.gitlab-ci.yml +0 -0
  39. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/jenkins/Jenkinsfile_dyninfra +0 -0
  40. {neoload-1.3.14.dev3 → neoload-1.3.15}/examples/pipelines/jenkins/Jenkinsfile_slafails +0 -0
  41. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/__init__.py +0 -0
  42. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/__main__.py +0 -0
  43. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/__init__.py +0 -0
  44. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/config.py +0 -0
  45. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/docker.py +0 -0
  46. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/fastfail.py +0 -0
  47. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/login.py +0 -0
  48. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/logout.py +0 -0
  49. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/logs.py +0 -0
  50. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/logs_url.py +0 -0
  51. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/project.py +0 -0
  52. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/run.py +0 -0
  53. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/status.py +0 -0
  54. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/stop.py +0 -0
  55. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/test_results.py +0 -0
  56. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/test_settings.py +0 -0
  57. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/validate.py +0 -0
  58. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/wait.py +0 -0
  59. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/workspaces.py +0 -0
  60. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/commands/zones.py +0 -0
  61. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/__init__.py +0 -0
  62. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/bad_as_code_exception.py +0 -0
  63. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/cli_exception.py +0 -0
  64. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/config_global.py +0 -0
  65. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/displayer.py +0 -0
  66. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/docker_lib.py +0 -0
  67. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/filtering.py +0 -0
  68. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/hooks.py +0 -0
  69. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/logs_tools.py +0 -0
  70. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/logs_traduction_map.py +0 -0
  71. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/name_resolver.py +0 -0
  72. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/neoLoad_project.py +0 -0
  73. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/paths.py +0 -0
  74. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/running_tools.py +0 -0
  75. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/schema_validation.py +0 -0
  76. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/tools.py +0 -0
  77. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/neoload_cli_lib/user_data.py +0 -0
  78. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/__init__.py +0 -0
  79. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/__init__.py +0 -0
  80. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/builtin_console_summary.j2 +0 -0
  81. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/builtin_transactions_csv.j2 +0 -0
  82. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/common.js +0 -0
  83. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/external_data.html.j2 +0 -0
  84. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/general_details.html.j2 +0 -0
  85. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/header.j2 +0 -0
  86. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/hits_per_second.html.j2 +0 -0
  87. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/running_vus.html.j2 +0 -0
  88. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/styles.css +0 -0
  89. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/transactions.html.j2 +0 -0
  90. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/common/workload_characteristics.html.j2 +0 -0
  91. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/custom_transactions_export.j2 +0 -0
  92. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/sample-custom-report.html.j2 +0 -0
  93. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/sample-trends-report.html.j2 +0 -0
  94. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/trends/general_details.html.j2 +0 -0
  95. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/trends/transaction_trends.html.j2 +0 -0
  96. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload/resources/jinja/trends/trends.js +0 -0
  97. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload.egg-info/SOURCES.txt +0 -0
  98. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload.egg-info/dependency_links.txt +0 -0
  99. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload.egg-info/entry_points.txt +0 -0
  100. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload.egg-info/requires.txt +0 -0
  101. {neoload-1.3.14.dev3 → neoload-1.3.15}/neoload.egg-info/top_level.txt +0 -0
  102. {neoload-1.3.14.dev3 → neoload-1.3.15}/notes/PSB_20200421_TODO.txt +0 -0
  103. {neoload-1.3.14.dev3 → neoload-1.3.15}/notes/acceptance.txt +0 -0
  104. {neoload-1.3.14.dev3 → neoload-1.3.15}/pull_request_template.md +0 -0
  105. {neoload-1.3.14.dev3 → neoload-1.3.15}/pytest.ini +0 -0
  106. {neoload-1.3.14.dev3 → neoload-1.3.15}/requirements.txt +0 -0
  107. {neoload-1.3.14.dev3 → neoload-1.3.15}/resources/as-code.latest.schema.json +0 -0
  108. {neoload-1.3.14.dev3 → neoload-1.3.15}/setup.cfg +0 -0
  109. {neoload-1.3.14.dev3 → neoload-1.3.15}/setup.py +0 -0
  110. {neoload-1.3.14.dev3 → neoload-1.3.15}/sonar-project.properties +0 -0
  111. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/__init__.py +0 -0
  112. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/docker/test_docker_cleanups.py +0 -0
  113. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/docker/test_docker_connections.py +0 -0
  114. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/docker/test_docker_hooks.py +0 -0
  115. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/fastfail/test_fastfail_slas.py +0 -0
  116. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/project/test_upload.py +0 -0
  117. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/report/test_report.py +0 -0
  118. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/report/test_report_templates.py +0 -0
  119. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/report/test_report_transactions.py +0 -0
  120. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/report/test_report_trends.py +0 -0
  121. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/report/test_trends_templates.py +0 -0
  122. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/status/test_status_with_names.py +0 -0
  123. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_config.py +0 -0
  124. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_login.py +0 -0
  125. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_logout.py +0 -0
  126. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_logs/test_logs.py +0 -0
  127. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_logs_url.py +0 -0
  128. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_results/test_result_delete.py +0 -0
  129. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_results/test_result_ls.py +0 -0
  130. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_results/test_result_patch.py +0 -0
  131. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_results/test_result_put.py +0 -0
  132. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_run.py +0 -0
  133. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_settings/test_create.py +0 -0
  134. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_settings/test_createorpatch.py +0 -0
  135. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_settings/test_delete.py +0 -0
  136. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_settings/test_ls.py +0 -0
  137. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_settings/test_patch.py +0 -0
  138. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_settings/test_put.py +0 -0
  139. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/test_validate.py +0 -0
  140. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/wait/test_wait.py +0 -0
  141. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/workspaces/test_workspace_ls.py +0 -0
  142. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/workspaces/test_workspace_use.py +0 -0
  143. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/commands/zones/test_zones.py +0 -0
  144. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/conftest.py +0 -0
  145. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/helpers/__init__.py +0 -0
  146. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/helpers/test_utils.py +0 -0
  147. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/expected/fastfail.log +0 -0
  148. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/expected/junit-sla.xml +0 -0
  149. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/expected/run.log +0 -0
  150. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/expected/summary.txt +0 -0
  151. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/runAllScripts.sh +0 -0
  152. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/cleanup.sh +0 -0
  153. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/project.upload.test.sh +0 -0
  154. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/results.delete.test.sh +0 -0
  155. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/results.patch.test.sh +0 -0
  156. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/results.put.test.sh +0 -0
  157. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/run.fastfail.test.sh +0 -0
  158. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/run.oneliner.test.sh +0 -0
  159. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/run.test.sh +0 -0
  160. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/settings.create.delete.test.sh +0 -0
  161. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/settings.patch.test.sh +0 -0
  162. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/settings.put.test.sh +0 -0
  163. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/validate.test.sh +0 -0
  164. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/wait.test.sh +0 -0
  165. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/integration/scripts/zones.ls.test.sh +0 -0
  166. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_cli_lib/test_SchemaValidation.py +0 -0
  167. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_cli_lib/test_displayer.py +0 -0
  168. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_cli_lib/test_docker.py +0 -0
  169. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_cli_lib/test_filtering.py +0 -0
  170. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_cli_lib/test_rest_crud.py +0 -0
  171. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_cli_lib/test_running_tools.py +0 -0
  172. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_cli_lib/test_tools.py +0 -0
  173. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_cli_lib/test_user_data.py +0 -0
  174. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/.nlignore +0 -0
  175. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/broken_yaml.yaml +0 -0
  176. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/empty.yaml +0 -0
  177. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/example_1/.gitlab-ci.yml +0 -0
  178. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/example_1/.nlignore +0 -0
  179. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/example_1/data/cities.csv +0 -0
  180. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/example_1/default.yaml +0 -0
  181. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/example_1/paths/geosearch_get.yaml +0 -0
  182. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/example_1/slas/prod.yaml +0 -0
  183. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/example_1/slas/uat.yaml +0 -0
  184. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/example_1.zip +0 -0
  185. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/invalid_to_schema.yaml +0 -0
  186. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/neoload_projects/simpledemo.yml +0 -0
  187. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/__init__.py +0 -0
  188. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/expected_neoload_junit_slas.xml +0 -0
  189. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/expected_summary_text_no_sla.txt +0 -0
  190. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/expected_summary_text_with_sla.txt +0 -0
  191. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/jinja/__init__.py +0 -0
  192. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_custom_transactions.csv +0 -0
  193. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_report.json +0 -0
  194. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_report_filtered.json +0 -0
  195. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_template_transactions.json +0 -0
  196. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_template_transactions_csv.csv +0 -0
  197. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/expected_trends.json +0 -0
  198. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/raw_expected_custom_report.html +0 -0
  199. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/resources/report/raw_expected_report.json +0 -0
  200. {neoload-1.3.14.dev3 → neoload-1.3.15}/tests/test_readme.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: neoload
3
- Version: 1.3.14.dev3
3
+ Version: 1.3.15
4
4
  Summary: A command-line native utility for launching and observing NeoLoad performance tests
5
5
  Home-page: https://github.com/Neotys-Labs/neoload-cli
6
6
  Author: Neotys
@@ -245,8 +245,6 @@ The 'report' subcommand is intended to simplify not only common data exporting n
245
245
  templating capabilities over a standard, correlated data model. In contrast to the test-results
246
246
  subcommand, 'report' can be used to generate as well as transform test result data.
247
247
 
248
- :warning: The 'report' subcommand can be **slow** (several hours) on results with a lots of transactions or monitors.
249
-
250
248
  ### Exporting Transaction CSV data
251
249
  ```
252
250
  Usage: neoload report [OPTIONS] [NAME]
@@ -322,20 +320,6 @@ neoload report --json-in ~/Downloads/temp.json \
322
320
  NOTE: built-in reports produce a reduced-scope JSON data model and are therefore faster
323
321
  that exporting all test data for various templates and output specs.
324
322
 
325
- ### Work with big results
326
-
327
- Big results for the CLI means several hundreds of transactions, with several LGs and last several hours.
328
-
329
- The 'report' subcommand get a lot of data from NeoLoad Web API, it is not recommended to use with big results
330
- because it could take several hours to complete and may fail.
331
-
332
- The 'report' subcommand gets all "values" and the "timeseries points" of all statistics from NLW API for each transaction and monitor: \
333
- it makes 2 API calls per transaction and 1 API call per monitor to NLW API. 10 calls are made in parallel
334
- (can be configured with env variable `NL_MAX_WORKERS`). \
335
- In NeoLoad Web SaaS, the rate limit of 300 calls per minute may be reached, the CLI will adapt and slow down.
336
-
337
- To see which API calls are made, you can use the debug option: `neoload --debug report`
338
-
339
323
  ## View zones
340
324
  ```
341
325
  neoload zones --human
@@ -469,6 +453,14 @@ neoload wait cur
469
453
 
470
454
  [An example for Jenkins pipeline is found here.](examples/pipelines/jenkins/Jenkinsfile_slafails)
471
455
 
456
+ ## Troubleshooting
457
+ ### Windows and non UTF-8 characters
458
+ Windows use default encoding as ASCII, but the NeoLoad CLI needs UTF-8 encoding.\
459
+ Before running some commands like `neoload report` on windows, you need to set environment variable `set PYTHONUTF8=1`\
460
+ More info [here](https://docs.python.org/3/using/windows.html#utf-8-mode) and [here](https://docs.python.org/3/library/os.html#utf8-mode).
461
+ Note that with Python 3.15, no need to do that anymore [PEP 686 – Make UTF-8 mode default](https://peps.python.org/pep-0686/)
462
+
463
+
472
464
  ## Packaging the CLI with Build Agents
473
465
  Many of the above CI examples include a step to explicitly install the NeoLoad CLI as part of the
474
466
  build steps. However, if you want the CLI baked into some build agent directly so that it
@@ -214,8 +214,6 @@ The 'report' subcommand is intended to simplify not only common data exporting n
214
214
  templating capabilities over a standard, correlated data model. In contrast to the test-results
215
215
  subcommand, 'report' can be used to generate as well as transform test result data.
216
216
 
217
- :warning: The 'report' subcommand can be **slow** (several hours) on results with a lots of transactions or monitors.
218
-
219
217
  ### Exporting Transaction CSV data
220
218
  ```
221
219
  Usage: neoload report [OPTIONS] [NAME]
@@ -291,20 +289,6 @@ neoload report --json-in ~/Downloads/temp.json \
291
289
  NOTE: built-in reports produce a reduced-scope JSON data model and are therefore faster
292
290
  that exporting all test data for various templates and output specs.
293
291
 
294
- ### Work with big results
295
-
296
- Big results for the CLI means several hundreds of transactions, with several LGs and last several hours.
297
-
298
- The 'report' subcommand get a lot of data from NeoLoad Web API, it is not recommended to use with big results
299
- because it could take several hours to complete and may fail.
300
-
301
- The 'report' subcommand gets all "values" and the "timeseries points" of all statistics from NLW API for each transaction and monitor: \
302
- it makes 2 API calls per transaction and 1 API call per monitor to NLW API. 10 calls are made in parallel
303
- (can be configured with env variable `NL_MAX_WORKERS`). \
304
- In NeoLoad Web SaaS, the rate limit of 300 calls per minute may be reached, the CLI will adapt and slow down.
305
-
306
- To see which API calls are made, you can use the debug option: `neoload --debug report`
307
-
308
292
  ## View zones
309
293
  ```
310
294
  neoload zones --human
@@ -438,6 +422,14 @@ neoload wait cur
438
422
 
439
423
  [An example for Jenkins pipeline is found here.](examples/pipelines/jenkins/Jenkinsfile_slafails)
440
424
 
425
+ ## Troubleshooting
426
+ ### Windows and non UTF-8 characters
427
+ Windows use default encoding as ASCII, but the NeoLoad CLI needs UTF-8 encoding.\
428
+ Before running some commands like `neoload report` on windows, you need to set environment variable `set PYTHONUTF8=1`\
429
+ More info [here](https://docs.python.org/3/using/windows.html#utf-8-mode) and [here](https://docs.python.org/3/library/os.html#utf8-mode).
430
+ Note that with Python 3.15, no need to do that anymore [PEP 686 – Make UTF-8 mode default](https://peps.python.org/pep-0686/)
431
+
432
+
441
433
  ## Packaging the CLI with Build Agents
442
434
  Many of the above CI examples include a step to explicitly install the NeoLoad CLI as part of the
443
435
  build steps. However, if you want the CLI baked into some build agent directly so that it
@@ -224,7 +224,7 @@ def parse_source_data_spec(json_in, model, report_type, name):
224
224
 
225
225
  def process_final_output(template, template_text, json_data):
226
226
  if template_text is None or template_text == "":
227
- return json.dumps(json_data)
227
+ return json.dumps(json_data, ensure_ascii=False)
228
228
  else:
229
229
  dirname = os.path.dirname(os.path.abspath(template))
230
230
  loader = jinja2.FileSystemLoader(searchpath=dirname)
@@ -259,43 +259,35 @@ def can_raw_transactions_data():
259
259
  return False if user_data.is_version_lower_than('2.6.0') else True
260
260
 
261
261
 
262
- def is_not_all_transactions(element):
263
- return element.get('elementId') != 'all-transactions'
262
+ def should_raw_transactions_data(__id, time_filter):
263
+ if time_filter is not None and can_raw_transactions_data():
264
+ # look for the transaction with the smallest number of iterations, but that has raw data
264
265
 
265
-
266
- def should_raw_transactions_data(__id, time_binding):
267
- if rest_crud.get_workspace() is None:
268
- logging.warning("No Workspace defined. For better performance, please define one before the report: neoload workspace use 'Default Workspace'")
269
266
  # grab all transactions list
270
267
  json_elements_transactions = rest_crud.get(
271
268
  get_end_point(__id, __operation_elements) + "?" + QUERY_CATEGORY_TRANSACTION)
272
- values = []
269
+ txns = []
273
270
  for el in json_elements_transactions:
274
271
  if el['type'] != 'TRANSACTION':
275
272
  continue
276
273
  # grab count of this transaction and only add if there are iterations
277
274
  json_values = rest_crud.get(get_end_point(__id, __operation_elements) + "/" + el['id'] + "/values")
278
275
  if json_values['count'] > 0:
279
- values.append({
280
- 'elementId': el['id'],
276
+ txns.append({
277
+ 'id': el['id'],
281
278
  'count': json_values['count']
282
279
  })
283
- break
284
- else:
285
- values = rest_crud.get(get_end_point(__id, __operation_elements) + "/values?" + QUERY_CATEGORY_TRANSACTION)
286
- transaction_with_max_count = max(filter(is_not_all_transactions, values), key=lambda el: el['count'], default=None)
287
- if time_binding is not None and "from_secs" in time_binding and can_raw_transactions_data() and transaction_with_max_count is not None:
288
- tr_id = transaction_with_max_count.get('elementId')
289
- try:
290
- raw_points_length = len(
291
- rest_crud.get(f"{get_end_point(__id, __operation_elements)}/{tr_id}/raw?format=JSON"))
292
- except cli_exception.CliException as ex:
293
- logging.error(ex.format_message())
294
- raw_points_length = 0
295
- gprint(f"Will {'' if raw_points_length > 0 else 'not '}use raw data because time filter enabled and transaction {tr_id} has {raw_points_length} raw data")
296
- return raw_points_length > 0
297
-
298
- logging.debug("Will not use raw data because: no time filter or NLW not compatible or no transaction has raw data")
280
+
281
+ # sort ascending by count (smallest number of iterations produces smallest amount of data)
282
+ txns = sorted(txns, key=lambda el: el['count'])
283
+ for el in txns:
284
+ this_raw_count = len(
285
+ rest_crud.get(get_end_point(__id, __operation_elements) + "/" + el['id'] + "/raw?format=JSON"))
286
+ if this_raw_count > 0:
287
+ logging.debug("use_raw[1]: True")
288
+ return True
289
+
290
+ logging.debug("use_raw[1]: False")
299
291
  return False
300
292
 
301
293
 
@@ -355,9 +347,11 @@ def get_single_report(name, components=None, time_filter=None, elements_filter=N
355
347
 
356
348
  statistics_list = get_standard_statistics_list()
357
349
 
358
- fill_single_requests(__id, elements_filter, time_binding, statistics_list, components, data)
350
+ use_txn_raw = should_raw_transactions_data(__id, time_filter)
359
351
 
360
- fill_single_transactions(__id, elements_filter, time_binding, statistics_list, components, data)
352
+ fill_single_requests(__id, elements_filter, time_binding, statistics_list, use_txn_raw, components, data)
353
+
354
+ fill_single_transactions(__id, elements_filter, time_binding, statistics_list, use_txn_raw, components, data)
361
355
 
362
356
  fill_single_monitors(__id, components, data)
363
357
 
@@ -414,7 +408,7 @@ def fill_single_events(__id, components, data):
414
408
  data['events'] = rest_crud.get(get_end_point(__id, __operation_events))
415
409
 
416
410
 
417
- def fill_single_requests(__id, elements_filter, time_binding, statistics_list, components, data):
411
+ def fill_single_requests(__id, elements_filter, time_binding, statistics_list, use_txn_raw, components, data):
418
412
  if components['all_requests']:
419
413
  gprint("Getting all-request data...")
420
414
 
@@ -429,13 +423,13 @@ def fill_single_requests(__id, elements_filter, time_binding, statistics_list, c
429
423
  json_elements_all_requests = json_elements_all_requests + json_elements_all_requests_preserve
430
424
 
431
425
  json_elements_all_requests = get_elements_data(__id, json_elements_all_requests, time_binding, True,
432
- statistics_list, False)
426
+ statistics_list, use_txn_raw)
433
427
 
434
428
  data['all_requests'] = json_elements_all_requests[0] if json_elements_all_requests is not None and len(
435
429
  json_elements_all_requests) > 0 else {},
436
430
 
437
431
 
438
- def fill_single_transactions(__id, elements_filter, time_binding, statistics_list, components, data):
432
+ def fill_single_transactions(__id, elements_filter, time_binding, statistics_list, use_txn_raw, components, data):
439
433
  if components['transactions']:
440
434
  gprint("Getting transactions...")
441
435
 
@@ -444,7 +438,6 @@ def fill_single_transactions(__id, elements_filter, time_binding, statistics_lis
444
438
  if not elements_filter is None:
445
439
  json_elements_transactions = filter_elements(json_elements_transactions, elements_filter)
446
440
 
447
- use_txn_raw = should_raw_transactions_data(__id, time_binding)
448
441
  json_elements_transactions = get_elements_data(__id, json_elements_transactions, time_binding, True,
449
442
  statistics_list, use_txn_raw)
450
443
 
@@ -907,12 +900,7 @@ def get_elements_data(result_id, base_col, time_binding, include_points, statist
907
900
  procedure = lambda el: (
908
901
  get_perf_time(), get_element_data(el, result_id, time_binding, include_points, statistics_list, use_txn_raw))
909
902
 
910
- max_workers = MAX_ELEMENTS_WORKERS
911
- try:
912
- max_workers = int(os.getenv('NL_MAX_WORKERS', MAX_ELEMENTS_WORKERS))
913
- except ValueError:
914
- logging.warning(f'NL_MAX_WORKERS environment variable is not an integer. Use default {MAX_ELEMENTS_WORKERS}')
915
- with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
903
+ with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_ELEMENTS_WORKERS) as executor:
916
904
  translate = {executor.submit(procedure, el): el for el in base_col}
917
905
  for future in concurrent.futures.as_completed(translate):
918
906
  orig = translate[future]
@@ -169,6 +169,7 @@ def __create_url(endpoint: str):
169
169
 
170
170
 
171
171
  def __handle_error(response):
172
+ response.encoding = response.apparent_encoding
172
173
  status_code = response.status_code
173
174
  if status_code > 299:
174
175
  request = response.request
@@ -0,0 +1 @@
1
+ __version__ = "1.3.15"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: neoload
3
- Version: 1.3.14.dev3
3
+ Version: 1.3.15
4
4
  Summary: A command-line native utility for launching and observing NeoLoad performance tests
5
5
  Home-page: https://github.com/Neotys-Labs/neoload-cli
6
6
  Author: Neotys
@@ -245,8 +245,6 @@ The 'report' subcommand is intended to simplify not only common data exporting n
245
245
  templating capabilities over a standard, correlated data model. In contrast to the test-results
246
246
  subcommand, 'report' can be used to generate as well as transform test result data.
247
247
 
248
- :warning: The 'report' subcommand can be **slow** (several hours) on results with a lots of transactions or monitors.
249
-
250
248
  ### Exporting Transaction CSV data
251
249
  ```
252
250
  Usage: neoload report [OPTIONS] [NAME]
@@ -322,20 +320,6 @@ neoload report --json-in ~/Downloads/temp.json \
322
320
  NOTE: built-in reports produce a reduced-scope JSON data model and are therefore faster
323
321
  that exporting all test data for various templates and output specs.
324
322
 
325
- ### Work with big results
326
-
327
- Big results for the CLI means several hundreds of transactions, with several LGs and last several hours.
328
-
329
- The 'report' subcommand get a lot of data from NeoLoad Web API, it is not recommended to use with big results
330
- because it could take several hours to complete and may fail.
331
-
332
- The 'report' subcommand gets all "values" and the "timeseries points" of all statistics from NLW API for each transaction and monitor: \
333
- it makes 2 API calls per transaction and 1 API call per monitor to NLW API. 10 calls are made in parallel
334
- (can be configured with env variable `NL_MAX_WORKERS`). \
335
- In NeoLoad Web SaaS, the rate limit of 300 calls per minute may be reached, the CLI will adapt and slow down.
336
-
337
- To see which API calls are made, you can use the debug option: `neoload --debug report`
338
-
339
323
  ## View zones
340
324
  ```
341
325
  neoload zones --human
@@ -469,6 +453,14 @@ neoload wait cur
469
453
 
470
454
  [An example for Jenkins pipeline is found here.](examples/pipelines/jenkins/Jenkinsfile_slafails)
471
455
 
456
+ ## Troubleshooting
457
+ ### Windows and non UTF-8 characters
458
+ Windows use default encoding as ASCII, but the NeoLoad CLI needs UTF-8 encoding.\
459
+ Before running some commands like `neoload report` on windows, you need to set environment variable `set PYTHONUTF8=1`\
460
+ More info [here](https://docs.python.org/3/using/windows.html#utf-8-mode) and [here](https://docs.python.org/3/library/os.html#utf8-mode).
461
+ Note that with Python 3.15, no need to do that anymore [PEP 686 – Make UTF-8 mode default](https://peps.python.org/pep-0686/)
462
+
463
+
472
464
  ## Packaging the CLI with Build Agents
473
465
  Many of the above CI examples include a step to explicitly install the NeoLoad CLI as part of the
474
466
  build steps. However, if you want the CLI baked into some build agent directly so that it
@@ -122,9 +122,6 @@ class TestReportJsonOutput:
122
122
  elif endpoint == 'v3/workspaces/5f689c3f0860270001606902/test-results/c6ae22a9-9868-4966-8b1e-8439b985e792/monitors/de6f330b-eecb-32cf-8582-63e0e1654735/points':
123
123
  return '[{"from":0,"to":1000,"AVG":0},{"from":1000,"to":2000,"AVG":10},{"from":2000,"to":3000,"AVG":10}]'
124
124
 
125
- elif endpoint == 'v3/workspaces/5f689c3f0860270001606902/test-results/c6ae22a9-9868-4966-8b1e-8439b985e792/elements/values?category=TRANSACTION':
126
- return '[{"count":259,"elementPerSecond":2.1455317,"minDuration":137,"maxDuration":5590,"avgDuration":372.4556,"minTTFB":32,"maxTTFB":229,"avgTTFB":59.158302,"failureCount":0,"failureRate":0.0,"percentile50":186.0,"percentile90":240.0,"percentile95":266.0,"percentile99":5584.0,"elementId":"e66cb9ec-3c72-49b4-b3a2-5fa91e2fd911","userPathId":"kamoulox"},{"count":259,"elementPerSecond":2.1455317,"minDuration":139,"maxDuration":305,"avgDuration":176.32819,"minTTFB":32,"maxTTFB":92,"avgTTFB":44.749035,"failureCount":0,"failureRate":0.0,"percentile50":169.0,"percentile90":215.0,"percentile95":241.0,"percentile99":279.0,"elementId":"818d2419-daec-43d6-b004-b1195799df57","userPathId":"kamoulox"},{"count":259,"elementPerSecond":2.1455317,"minDuration":136,"maxDuration":365,"avgDuration":176.99614,"minTTFB":32,"maxTTFB":91,"avgTTFB":46.482624,"failureCount":0,"failureRate":0.0,"percentile50":166.0,"percentile90":236.0,"percentile95":246.0,"percentile99":305.0,"elementId":"7dea9e71-4777-4fdb-88d0-2a3dbb2eaa1a","userPathId":"kamoulox"},{"count":259,"elementPerSecond":2.1455317,"minDuration":134,"maxDuration":356,"avgDuration":170.46332,"minTTFB":32,"maxTTFB":90,"avgTTFB":44.69884,"failureCount":0,"failureRate":0.0,"percentile50":161.0,"percentile90":202.0,"percentile95":214.0,"percentile99":277.0,"elementId":"6a0ef850-8644-4236-80e5-53748fbd2d01","userPathId":"kamoulox"},{"count":1036,"elementPerSecond":8.582127,"minDuration":134,"maxDuration":5590,"avgDuration":224.0608,"minTTFB":32,"maxTTFB":229,"avgTTFB":48.7722,"failureCount":0,"failureRate":0.0,"percentile50":171.0,"percentile90":219.0,"percentile95":246.0,"percentile99":365.0,"elementId":"all-transactions","userPathId":"all-userpaths"}]'
127
-
128
125
  elif endpoint.startswith \
129
126
  ("v3/workspaces/5f689c3f0860270001606902/test-results/c6ae22a9-9868-4966-8b1e-8439b985e792/monitors/"):
130
127
  return '[]'
@@ -248,8 +245,5 @@ class TestReportJsonOutput:
248
245
  elif endpoint == 'v3/workspaces/5f689c3f0860270001606902/test-results/1c393548-1e78-4632-8dd1-b661fb6cd043/monitors/a471ab71-378c-3e5b-b119-6c9b20b86106/points':
249
246
  return '[{"from": 0, "to": 1000, "AVG": 247.0}, {"from": 1000, "to": 2000, "AVG": 270.0}, {"from": 2000, "to": 3000, "AVG": 270.0}, {"from": 3000, "to": 4000, "AVG": 272.0}, {"from": 4000, "to": 5000, "AVG": 272.0}, {"from": 5000, "to": 6000, "AVG": 271.0}, {"from": 6000, "to": 7000, "AVG": 271.0}, {"from": 7000, "to": 8000, "AVG": 271.0}, {"from": 8000, "to": 9000, "AVG": 271.0}, {"from": 9000, "to": 10000, "AVG": 271.0}, {"from": 10000, "to": 11000, "AVG": 272.0}]'
250
247
 
251
- elif endpoint == 'v3/workspaces/5f689c3f0860270001606902/test-results/1c393548-1e78-4632-8dd1-b661fb6cd043/elements/values?category=TRANSACTION':
252
- return '[{"count":259,"elementPerSecond":2.1455317,"minDuration":137,"maxDuration":5590,"avgDuration":372.4556,"minTTFB":32,"maxTTFB":229,"avgTTFB":59.158302,"failureCount":0,"failureRate":0.0,"percentile50":186.0,"percentile90":240.0,"percentile95":266.0,"percentile99":5584.0,"elementId":"e66cb9ec-3c72-49b4-b3a2-5fa91e2fd911","userPathId":"kamoulox"},{"count":259,"elementPerSecond":2.1455317,"minDuration":139,"maxDuration":305,"avgDuration":176.32819,"minTTFB":32,"maxTTFB":92,"avgTTFB":44.749035,"failureCount":0,"failureRate":0.0,"percentile50":169.0,"percentile90":215.0,"percentile95":241.0,"percentile99":279.0,"elementId":"818d2419-daec-43d6-b004-b1195799df57","userPathId":"kamoulox"},{"count":259,"elementPerSecond":2.1455317,"minDuration":136,"maxDuration":365,"avgDuration":176.99614,"minTTFB":32,"maxTTFB":91,"avgTTFB":46.482624,"failureCount":0,"failureRate":0.0,"percentile50":166.0,"percentile90":236.0,"percentile95":246.0,"percentile99":305.0,"elementId":"7dea9e71-4777-4fdb-88d0-2a3dbb2eaa1a","userPathId":"kamoulox"},{"count":259,"elementPerSecond":2.1455317,"minDuration":134,"maxDuration":356,"avgDuration":170.46332,"minTTFB":32,"maxTTFB":90,"avgTTFB":44.69884,"failureCount":0,"failureRate":0.0,"percentile50":161.0,"percentile90":202.0,"percentile95":214.0,"percentile99":277.0,"elementId":"6a0ef850-8644-4236-80e5-53748fbd2d01","userPathId":"kamoulox"},{"count":1036,"elementPerSecond":8.582127,"minDuration":134,"maxDuration":5590,"avgDuration":224.0608,"minTTFB":32,"maxTTFB":229,"avgTTFB":48.7722,"failureCount":0,"failureRate":0.0,"percentile50":171.0,"percentile90":219.0,"percentile95":246.0,"percentile99":365.0,"elementId":"all-transactions","userPathId":"all-userpaths"}]'
253
-
254
248
  else:
255
249
  raise Exception('Endpoint NOT mocked : ' + endpoint)
@@ -160,14 +160,5 @@ class TestTrendsJsonOutput:
160
160
  elif endpoint == 'v3/workspaces/5f689c3f0860270001606902/test-results/8725e0cd-92a4-4105-803b-86433851fcfc/elements/b3e1f7c6-a4ef-438e-a3bb-8ffa1cb4a85e/points?statistics=AVG_DURATION,MIN_DURATION,MAX_DURATION,COUNT,THROUGHPUT,ELEMENTS_PER_SECOND,ERRORS,ERRORS_PER_SECOND,ERROR_RATE,AVG_TTFB,MIN_TTFB,MAX_TTFB':
161
161
  return '[{"from": 0, "to": 5120000, "AVG_TTFB": 42.64835, "ERRORS": 0, "AVG_DURATION": 42.64835, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 53, "MAX_DURATION": 53, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 5120000, "to": 10240000, "AVG_TTFB": 42.755493, "ERRORS": 0, "AVG_DURATION": 42.755493, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 52, "MAX_DURATION": 52, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 10240000, "to": 15360000, "AVG_TTFB": 42.660275, "ERRORS": 0, "AVG_DURATION": 42.660275, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 15360000, "to": 20480000, "AVG_TTFB": 42.691257, "ERRORS": 0, "AVG_DURATION": 42.691257, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 48, "MAX_DURATION": 48, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 20480000, "to": 25600000, "AVG_TTFB": 42.635616, "ERRORS": 0, "AVG_DURATION": 42.635616, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 25600000, "to": 30720000, "AVG_TTFB": 42.695652, "ERRORS": 0, "AVG_DURATION": 42.695652, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 30720000, "to": 35840000, "AVG_TTFB": 44.041096, "ERRORS": 0, "AVG_DURATION": 44.041096, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 552, "MAX_DURATION": 552, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 35840000, "to": 40960000, "AVG_TTFB": 42.576923, "ERRORS": 0, "AVG_DURATION": 42.576923, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 46, "MAX_DURATION": 46, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 40960000, "to": 46080000, "AVG_TTFB": 42.698368, "ERRORS": 0, "AVG_DURATION": 42.698368, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 47, "MAX_DURATION": 47, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 46080000, "to": 51200000, "AVG_TTFB": 47.2549, "ERRORS": 0, "AVG_DURATION": 47.2549, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 1649, "MAX_DURATION": 1649, "ELEMENTS_PER_SECOND": 0.069726564, "THROUGHPUT": 0.0, "COUNT": 357}, {"from": 51200000, "to": 56320000, "AVG_TTFB": 42.618786, "ERRORS": 0, "AVG_DURATION": 42.618786, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07070313, "THROUGHPUT": 0.0, "COUNT": 362}, {"from": 56320000, "to": 61440000, "AVG_TTFB": 42.586113, "ERRORS": 0, "AVG_DURATION": 42.586113, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.0703125, "THROUGHPUT": 0.0, "COUNT": 360}, {"from": 61440000, "to": 66560000, "AVG_TTFB": 43.163486, "ERRORS": 0, "AVG_DURATION": 43.163486, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 246, "MAX_DURATION": 246, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 66560000, "to": 71680000, "AVG_TTFB": 42.649315, "ERRORS": 0, "AVG_DURATION": 42.649315, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 49, "MAX_DURATION": 49, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 71680000, "to": 76800000, "AVG_TTFB": 43.00551, "ERRORS": 0, "AVG_DURATION": 43.00551, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 147, "MAX_DURATION": 147, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 76800000, "to": 81920000, "AVG_TTFB": 42.51233, "ERRORS": 0, "AVG_DURATION": 42.51233, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 81920000, "to": 87040000, "AVG_TTFB": 42.628414, "ERRORS": 0, "AVG_DURATION": 42.628414, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 55, "MAX_DURATION": 55, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 87040000, "to": 92160000, "AVG_TTFB": 42.402172, "ERRORS": 0, "AVG_DURATION": 42.402172, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 92160000, "to": 97280000, "AVG_TTFB": 42.4, "ERRORS": 0, "AVG_DURATION": 42.4, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 49, "MAX_DURATION": 49, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 97280000, "to": 102400000, "AVG_TTFB": 43.717808, "ERRORS": 0, "AVG_DURATION": 43.717808, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 543, "MAX_DURATION": 543, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 102400000, "to": 107520000, "AVG_TTFB": 42.333332, "ERRORS": 0, "AVG_DURATION": 42.333332, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 49, "MAX_DURATION": 49, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 107520000, "to": 112640000, "AVG_TTFB": 42.355015, "ERRORS": 0, "AVG_DURATION": 42.355015, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.072070315, "THROUGHPUT": 0.0, "COUNT": 369}, {"from": 112640000, "to": 117760000, "AVG_TTFB": 42.46049, "ERRORS": 0, "AVG_DURATION": 42.46049, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 102, "MAX_DURATION": 102, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 117760000, "to": 122880000, "AVG_TTFB": 42.348774, "ERRORS": 0, "AVG_DURATION": 42.348774, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 122880000, "to": 128000000, "AVG_TTFB": 42.345303, "ERRORS": 0, "AVG_DURATION": 42.345303, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 47, "MAX_DURATION": 47, "ELEMENTS_PER_SECOND": 0.07070313, "THROUGHPUT": 0.0, "COUNT": 362}, {"from": 128000000, "to": 133120000, "AVG_TTFB": 42.371586, "ERRORS": 0, "AVG_DURATION": 42.371586, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 47, "MAX_DURATION": 47, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 133120000, "to": 138240000, "AVG_TTFB": 42.71507, "ERRORS": 0, "AVG_DURATION": 42.71507, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 114, "MAX_DURATION": 114, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 138240000, "to": 143360000, "AVG_TTFB": 42.347107, "ERRORS": 0, "AVG_DURATION": 42.347107, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 143360000, "to": 148480000, "AVG_TTFB": 42.32967, "ERRORS": 0, "AVG_DURATION": 42.32967, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 148480000, "to": 153600000, "AVG_TTFB": 42.372604, "ERRORS": 0, "AVG_DURATION": 42.372604, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 47, "MAX_DURATION": 47, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 153600000, "to": 158720000, "AVG_TTFB": 42.361412, "ERRORS": 0, "AVG_DURATION": 42.361412, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 158720000, "to": 163840000, "AVG_TTFB": 46.74931, "ERRORS": 0, "AVG_DURATION": 46.74931, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 1130, "MAX_DURATION": 1130, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 163840000, "to": 168960000, "AVG_TTFB": 42.442623, "ERRORS": 0, "AVG_DURATION": 42.442623, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 168960000, "to": 174080000, "AVG_TTFB": 42.48361, "ERRORS": 0, "AVG_DURATION": 42.48361, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 55, "MAX_DURATION": 55, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 174080000, "to": 179200000, "AVG_TTFB": 42.440773, "ERRORS": 0, "AVG_DURATION": 42.440773, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 179200000, "to": 184320000, "AVG_TTFB": 43.035618, "ERRORS": 0, "AVG_DURATION": 43.035618, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 256, "MAX_DURATION": 256, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 184320000, "to": 189440000, "AVG_TTFB": 44.201103, "ERRORS": 0, "AVG_DURATION": 44.201103, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 634, "MAX_DURATION": 634, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 189440000, "to": 194560000, "AVG_TTFB": 46.317936, "ERRORS": 0, "AVG_DURATION": 46.317936, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 1454, "MAX_DURATION": 1454, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 194560000, "to": 199680000, "AVG_TTFB": 45.19726, "ERRORS": 0, "AVG_DURATION": 45.19726, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 1015, "MAX_DURATION": 1015, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 199680000, "to": 204800000, "AVG_TTFB": 42.530056, "ERRORS": 0, "AVG_DURATION": 42.530056, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 51, "MAX_DURATION": 51, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 204800000, "to": 209920000, "AVG_TTFB": 42.515236, "ERRORS": 0, "AVG_DURATION": 42.515236, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07050781, "THROUGHPUT": 0.0, "COUNT": 361}, {"from": 209920000, "to": 215040000, "AVG_TTFB": 42.563187, "ERRORS": 0, "AVG_DURATION": 42.563187, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 96, "MAX_DURATION": 96, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 215040000, "to": 220160000, "AVG_TTFB": 42.72576, "ERRORS": 0, "AVG_DURATION": 42.72576, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 152, "MAX_DURATION": 152, "ELEMENTS_PER_SECOND": 0.07050781, "THROUGHPUT": 0.0, "COUNT": 361}, {"from": 220160000, "to": 225280000, "AVG_TTFB": 44.265755, "ERRORS": 0, "AVG_DURATION": 44.265755, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 698, "MAX_DURATION": 698, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 225280000, "to": 230400000, "AVG_TTFB": 42.488766, "ERRORS": 0, "AVG_DURATION": 42.488766, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 49, "MAX_DURATION": 49, "ELEMENTS_PER_SECOND": 0.06953125, "THROUGHPUT": 0.0, "COUNT": 356}, {"from": 230400000, "to": 235520000, "AVG_TTFB": 42.485096, "ERRORS": 0, "AVG_DURATION": 42.485096, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.072070315, "THROUGHPUT": 0.0, "COUNT": 369}, {"from": 235520000, "to": 240640000, "AVG_TTFB": 42.515068, "ERRORS": 0, "AVG_DURATION": 42.515068, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 240640000, "to": 245760000, "AVG_TTFB": 42.356163, "ERRORS": 0, "AVG_DURATION": 42.356163, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 245760000, "to": 250880000, "AVG_TTFB": 42.270718, "ERRORS": 0, "AVG_DURATION": 42.270718, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 49, "MAX_DURATION": 49, "ELEMENTS_PER_SECOND": 0.07070313, "THROUGHPUT": 0.0, "COUNT": 362}, {"from": 250880000, "to": 256000000, "AVG_TTFB": 42.364132, "ERRORS": 0, "AVG_DURATION": 42.364132, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 67, "MAX_DURATION": 67, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 256000000, "to": 261120000, "AVG_TTFB": 42.40822, "ERRORS": 0, "AVG_DURATION": 42.40822, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 61, "MAX_DURATION": 61, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 261120000, "to": 266240000, "AVG_TTFB": 42.84153, "ERRORS": 0, "AVG_DURATION": 42.84153, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 235, "MAX_DURATION": 235, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 266240000, "to": 271360000, "AVG_TTFB": 42.42033, "ERRORS": 0, "AVG_DURATION": 42.42033, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 46, "MAX_DURATION": 46, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 271360000, "to": 276480000, "AVG_TTFB": 42.51233, "ERRORS": 0, "AVG_DURATION": 42.51233, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 276480000, "to": 281600000, "AVG_TTFB": 42.81967, "ERRORS": 0, "AVG_DURATION": 42.81967, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 145, "MAX_DURATION": 145, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 281600000, "to": 286720000, "AVG_TTFB": 42.580822, "ERRORS": 0, "AVG_DURATION": 42.580822, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 286720000, "to": 291840000, "AVG_TTFB": 42.546963, "ERRORS": 0, "AVG_DURATION": 42.546963, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 46, "MAX_DURATION": 46, "ELEMENTS_PER_SECOND": 0.07070313, "THROUGHPUT": 0.0, "COUNT": 362}, {"from": 291840000, "to": 296960000, "AVG_TTFB": 42.62295, "ERRORS": 0, "AVG_DURATION": 42.62295, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 296960000, "to": 302080000, "AVG_TTFB": 42.49587, "ERRORS": 0, "AVG_DURATION": 42.49587, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 302080000, "to": 307200000, "AVG_TTFB": 42.535713, "ERRORS": 0, "AVG_DURATION": 42.535713, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 46, "MAX_DURATION": 46, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 307200000, "to": 312320000, "AVG_TTFB": 42.446865, "ERRORS": 0, "AVG_DURATION": 42.446865, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 312320000, "to": 317440000, "AVG_TTFB": 45.04155, "ERRORS": 0, "AVG_DURATION": 45.04155, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 957, "MAX_DURATION": 957, "ELEMENTS_PER_SECOND": 0.07050781, "THROUGHPUT": 0.0, "COUNT": 361}, {"from": 317440000, "to": 322560000, "AVG_TTFB": 42.52186, "ERRORS": 0, "AVG_DURATION": 42.52186, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 322560000, "to": 327680000, "AVG_TTFB": 42.48229, "ERRORS": 0, "AVG_DURATION": 42.48229, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 327680000, "to": 332800000, "AVG_TTFB": 42.40274, "ERRORS": 0, "AVG_DURATION": 42.40274, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 332800000, "to": 337920000, "AVG_TTFB": 42.429752, "ERRORS": 0, "AVG_DURATION": 42.429752, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 337920000, "to": 343040000, "AVG_TTFB": 42.431694, "ERRORS": 0, "AVG_DURATION": 42.431694, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 343040000, "to": 348160000, "AVG_TTFB": 42.398907, "ERRORS": 0, "AVG_DURATION": 42.398907, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 46, "MAX_DURATION": 46, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 348160000, "to": 353280000, "AVG_TTFB": 42.38692, "ERRORS": 0, "AVG_DURATION": 42.38692, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 353280000, "to": 358400000, "AVG_TTFB": 42.516483, "ERRORS": 0, "AVG_DURATION": 42.516483, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 358400000, "to": 363520000, "AVG_TTFB": 42.52459, "ERRORS": 0, "AVG_DURATION": 42.52459, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 49, "MAX_DURATION": 49, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 363520000, "to": 368640000, "AVG_TTFB": 44.554348, "ERRORS": 0, "AVG_DURATION": 44.554348, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 819, "MAX_DURATION": 819, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 368640000, "to": 373760000, "AVG_TTFB": 42.463013, "ERRORS": 0, "AVG_DURATION": 42.463013, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 373760000, "to": 378880000, "AVG_TTFB": 42.807064, "ERRORS": 0, "AVG_DURATION": 42.807064, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 182, "MAX_DURATION": 182, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 378880000, "to": 384000000, "AVG_TTFB": 42.527626, "ERRORS": 0, "AVG_DURATION": 42.527626, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 48, "MAX_DURATION": 48, "ELEMENTS_PER_SECOND": 0.07070313, "THROUGHPUT": 0.0, "COUNT": 362}, {"from": 384000000, "to": 389120000, "AVG_TTFB": 42.449593, "ERRORS": 0, "AVG_DURATION": 42.449593, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 389120000, "to": 394240000, "AVG_TTFB": 42.473972, "ERRORS": 0, "AVG_DURATION": 42.473972, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 394240000, "to": 399360000, "AVG_TTFB": 50.043716, "ERRORS": 0, "AVG_DURATION": 50.043716, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 1529, "MAX_DURATION": 1529, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 399360000, "to": 404480000, "AVG_TTFB": 42.423077, "ERRORS": 0, "AVG_DURATION": 42.423077, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 404480000, "to": 409600000, "AVG_TTFB": 42.464287, "ERRORS": 0, "AVG_DURATION": 42.464287, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 409600000, "to": 414720000, "AVG_TTFB": 43.696476, "ERRORS": 0, "AVG_DURATION": 43.696476, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 497, "MAX_DURATION": 497, "ELEMENTS_PER_SECOND": 0.072070315, "THROUGHPUT": 0.0, "COUNT": 369}, {"from": 414720000, "to": 419840000, "AVG_TTFB": 42.5, "ERRORS": 0, "AVG_DURATION": 42.5, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 49, "MAX_DURATION": 49, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 419840000, "to": 424960000, "AVG_TTFB": 42.472374, "ERRORS": 0, "AVG_DURATION": 42.472374, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07070313, "THROUGHPUT": 0.0, "COUNT": 362}, {"from": 424960000, "to": 430080000, "AVG_TTFB": 42.472527, "ERRORS": 0, "AVG_DURATION": 42.472527, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 430080000, "to": 435200000, "AVG_TTFB": 42.525887, "ERRORS": 0, "AVG_DURATION": 42.525887, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 435200000, "to": 440320000, "AVG_TTFB": 42.51366, "ERRORS": 0, "AVG_DURATION": 42.51366, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 440320000, "to": 445440000, "AVG_TTFB": 42.469944, "ERRORS": 0, "AVG_DURATION": 42.469944, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 445440000, "to": 450560000, "AVG_TTFB": 42.49863, "ERRORS": 0, "AVG_DURATION": 42.49863, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 450560000, "to": 455680000, "AVG_TTFB": 42.464672, "ERRORS": 0, "AVG_DURATION": 42.464672, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 455680000, "to": 460800000, "AVG_TTFB": 42.476963, "ERRORS": 0, "AVG_DURATION": 42.476963, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.072070315, "THROUGHPUT": 0.0, "COUNT": 369}, {"from": 460800000, "to": 465920000, "AVG_TTFB": 42.516483, "ERRORS": 0, "AVG_DURATION": 42.516483, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 47, "MAX_DURATION": 47, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 465920000, "to": 471040000, "AVG_TTFB": 42.50411, "ERRORS": 0, "AVG_DURATION": 42.50411, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 471040000, "to": 476160000, "AVG_TTFB": 43.277927, "ERRORS": 0, "AVG_DURATION": 43.277927, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 338, "MAX_DURATION": 338, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 476160000, "to": 481280000, "AVG_TTFB": 42.41011, "ERRORS": 0, "AVG_DURATION": 42.41011, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 50, "MAX_DURATION": 50, "ELEMENTS_PER_SECOND": 0.06953125, "THROUGHPUT": 0.0, "COUNT": 356}, {"from": 481280000, "to": 486400000, "AVG_TTFB": 42.442623, "ERRORS": 0, "AVG_DURATION": 42.442623, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 486400000, "to": 491520000, "AVG_TTFB": 42.40274, "ERRORS": 0, "AVG_DURATION": 42.40274, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 491520000, "to": 496640000, "AVG_TTFB": 42.73297, "ERRORS": 0, "AVG_DURATION": 42.73297, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 121, "MAX_DURATION": 121, "ELEMENTS_PER_SECOND": 0.07167969, "THROUGHPUT": 0.0, "COUNT": 367}, {"from": 496640000, "to": 501760000, "AVG_TTFB": 42.460056, "ERRORS": 0, "AVG_DURATION": 42.460056, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 501760000, "to": 506880000, "AVG_TTFB": 42.550964, "ERRORS": 0, "AVG_DURATION": 42.550964, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.070898436, "THROUGHPUT": 0.0, "COUNT": 363}, {"from": 506880000, "to": 512000000, "AVG_TTFB": 42.51639, "ERRORS": 0, "AVG_DURATION": 42.51639, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 512000000, "to": 517120000, "AVG_TTFB": 42.445354, "ERRORS": 0, "AVG_DURATION": 42.445354, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 517120000, "to": 522240000, "AVG_TTFB": 42.575344, "ERRORS": 0, "AVG_DURATION": 42.575344, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 50, "MAX_DURATION": 50, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 522240000, "to": 527360000, "AVG_TTFB": 42.630436, "ERRORS": 0, "AVG_DURATION": 42.630436, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 55, "MAX_DURATION": 55, "ELEMENTS_PER_SECOND": 0.071875, "THROUGHPUT": 0.0, "COUNT": 368}, {"from": 527360000, "to": 532480000, "AVG_TTFB": 42.60929, "ERRORS": 0, "AVG_DURATION": 42.60929, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 46, "MAX_DURATION": 46, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 532480000, "to": 537600000, "AVG_TTFB": 48.63115, "ERRORS": 0, "AVG_DURATION": 48.63115, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 2254, "MAX_DURATION": 2254, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 537600000, "to": 542720000, "AVG_TTFB": 42.598362, "ERRORS": 0, "AVG_DURATION": 42.598362, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 48, "MAX_DURATION": 48, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 542720000, "to": 547840000, "AVG_TTFB": 42.56011, "ERRORS": 0, "AVG_DURATION": 42.56011, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07148437, "THROUGHPUT": 0.0, "COUNT": 366}, {"from": 547840000, "to": 552960000, "AVG_TTFB": 42.575344, "ERRORS": 0, "AVG_DURATION": 42.575344, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 49, "MAX_DURATION": 49, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 552960000, "to": 558080000, "AVG_TTFB": 42.46154, "ERRORS": 0, "AVG_DURATION": 42.46154, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 46, "MAX_DURATION": 46, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 558080000, "to": 563200000, "AVG_TTFB": 42.384617, "ERRORS": 0, "AVG_DURATION": 42.384617, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 563200000, "to": 568320000, "AVG_TTFB": 43.38889, "ERRORS": 0, "AVG_DURATION": 43.38889, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 380, "MAX_DURATION": 380, "ELEMENTS_PER_SECOND": 0.0703125, "THROUGHPUT": 0.0, "COUNT": 360}, {"from": 568320000, "to": 573440000, "AVG_TTFB": 42.48077, "ERRORS": 0, "AVG_DURATION": 42.48077, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 573440000, "to": 578560000, "AVG_TTFB": 42.4958, "ERRORS": 0, "AVG_DURATION": 42.4958, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.069726564, "THROUGHPUT": 0.0, "COUNT": 357}, {"from": 578560000, "to": 583680000, "AVG_TTFB": 42.63014, "ERRORS": 0, "AVG_DURATION": 42.63014, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 42, "ERROR_RATE": 0.0, "MIN_TTFB": 42, "MAX_TTFB": 46, "MAX_DURATION": 46, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 583680000, "to": 588800000, "AVG_TTFB": 42.46575, "ERRORS": 0, "AVG_DURATION": 42.46575, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 588800000, "to": 593920000, "AVG_TTFB": 44.655556, "ERRORS": 0, "AVG_DURATION": 44.655556, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 600, "MAX_DURATION": 600, "ELEMENTS_PER_SECOND": 0.0703125, "THROUGHPUT": 0.0, "COUNT": 360}, {"from": 593920000, "to": 599040000, "AVG_TTFB": 42.582417, "ERRORS": 0, "AVG_DURATION": 42.582417, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 55, "MAX_DURATION": 55, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 599040000, "to": 604160000, "AVG_TTFB": 42.554947, "ERRORS": 0, "AVG_DURATION": 42.554947, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.07109375, "THROUGHPUT": 0.0, "COUNT": 364}, {"from": 604160000, "to": 609280000, "AVG_TTFB": 42.38904, "ERRORS": 0, "AVG_DURATION": 42.38904, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 45, "MAX_DURATION": 45, "ELEMENTS_PER_SECOND": 0.07128906, "THROUGHPUT": 0.0, "COUNT": 365}, {"from": 609280000, "to": 614400000, "AVG_TTFB": 42.379486, "ERRORS": 0, "AVG_DURATION": 42.379486, "ERRORS_PER_SECOND": 0.0, "MIN_DURATION": 41, "ERROR_RATE": 0.0, "MIN_TTFB": 41, "MAX_TTFB": 44, "MAX_DURATION": 44, "ELEMENTS_PER_SECOND": 0.038085938, "THROUGHPUT": 0.0, "COUNT": 195}]'
162
162
 
163
- elif endpoint == 'v3/workspaces/5f689c3f0860270001606902/test-results/71e88176-3353-4bcd-941a-284533099b43/elements/values?category=TRANSACTION':
164
- return '[{"count":175134,"elementPerSecond":0.28616166,"minDuration":4,"maxDuration":39397,"avgDuration":88.658615,"minTTFB":0,"maxTTFB":38709,"avgTTFB":20.956781,"failureCount":515,"failureRate":0.29406056,"percentile50":44.0,"percentile90":109.0,"percentile95":216.0,"percentile99":853.0,"elementId":"all-transactions","userPathId":"all-userpaths"},{"count":43769,"elementPerSecond":0.07151672,"minDuration":13,"maxDuration":25501,"avgDuration":88.53439,"minTTFB":2,"maxTTFB":25208,"avgTTFB":14.020608,"failureCount":177,"failureRate":0.40439582,"percentile50":28.0,"percentile90":106.0,"percentile95":147.0,"percentile99":1255.5,"elementId":"0ca05bf2-4ba9-483e-9041-c9ac38ecb8b8","userPathId":"ParcoursUtilisateur"},{"count":43789,"elementPerSecond":0.0715494,"minDuration":12,"maxDuration":39397,"avgDuration":165.83934,"minTTFB":0,"maxTTFB":38709,"avgTTFB":13.644523,"failureCount":174,"failureRate":0.39736006,"percentile50":70.0,"percentile90":218.0,"percentile95":255.0,"percentile99":1628.0,"elementId":"062b066f-e7c0-4e67-9a08-65d6494fecc9","userPathId":"ParcoursUtilisateur"},{"count":43769,"elementPerSecond":0.07151672,"minDuration":42,"maxDuration":57,"avgDuration":44.10802,"minTTFB":42,"maxTTFB":57,"avgTTFB":44.10802,"failureCount":0,"failureRate":0.0,"percentile50":44.0,"percentile90":45.0,"percentile95":46.0,"percentile99":47.0,"elementId":"b3e1f7c6-a4ef-438e-a3bb-8ffa1cb4a85e","userPathId":"ParcoursUtilisateur"},{"count":43807,"elementPerSecond":0.071578816,"minDuration":4,"maxDuration":32618,"avgDuration":56.14566,"minTTFB":1,"maxTTFB":21955,"avgTTFB":12.065035,"failureCount":164,"failureRate":0.37436938,"percentile50":20.0,"percentile90":77.0,"percentile95":79.0,"percentile99":436.0,"elementId":"50ddd53f-4a4b-4bf8-a6b3-7a262d3d6cef","userPathId":"ParcoursUtilisateur"}]'
165
-
166
- elif endpoint == 'v3/workspaces/5f689c3f0860270001606902/test-results/ba912bd5-d4ee-425c-ae82-b56a75c0e6ef/elements/values?category=TRANSACTION':
167
- return '[{"count":42460,"elementPerSecond":0.06937791,"minDuration":12,"maxDuration":349267,"avgDuration":263.73944,"minTTFB":1,"maxTTFB":29896,"avgTTFB":13.923928,"failureCount":187,"failureRate":0.44041452,"percentile50":73.0,"percentile90":222.0,"percentile95":284.0,"percentile99":2191.5,"elementId":"062b066f-e7c0-4e67-9a08-65d6494fecc9","userPathId":"ParcoursUtilisateur"},{"count":169824,"elementPerSecond":0.2774855,"minDuration":4,"maxDuration":349267,"avgDuration":154.04784,"minTTFB":1,"maxTTFB":29896,"avgTTFB":21.678661,"failureCount":530,"failureRate":0.3120878,"percentile50":45.0,"percentile90":135.0,"percentile95":220.0,"percentile99":1167.5,"elementId":"all-transactions","userPathId":"all-userpaths"},{"count":42438,"elementPerSecond":0.06934196,"minDuration":43,"maxDuration":532,"avgDuration":45.06122,"minTTFB":43,"maxTTFB":532,"avgTTFB":45.06122,"failureCount":0,"failureRate":0.0,"percentile50":45.0,"percentile90":46.0,"percentile95":46.0,"percentile99":53.0,"elementId":"b3e1f7c6-a4ef-438e-a3bb-8ffa1cb4a85e","userPathId":"ParcoursUtilisateur"},{"count":42488,"elementPerSecond":0.06942365,"minDuration":4,"maxDuration":347335,"avgDuration":150.04663,"minTTFB":1,"maxTTFB":26125,"avgTTFB":13.476652,"failureCount":170,"failureRate":0.400113,"percentile50":19.0,"percentile90":76.0,"percentile95":82.0,"percentile99":1003.5,"elementId":"50ddd53f-4a4b-4bf8-a6b3-7a262d3d6cef","userPathId":"ParcoursUtilisateur"},{"count":42438,"elementPerSecond":0.06934196,"minDuration":14,"maxDuration":300103,"avgDuration":157.29189,"minTTFB":2,"maxTTFB":27974,"avgTTFB":14.26653,"failureCount":173,"failureRate":0.4076535,"percentile50":30.0,"percentile90":109.0,"percentile95":164.0,"percentile99":1487.5,"elementId":"0ca05bf2-4ba9-483e-9041-c9ac38ecb8b8","userPathId":"ParcoursUtilisateur"}]'
168
-
169
- elif endpoint == 'v3/workspaces/5f689c3f0860270001606902/test-results/8725e0cd-92a4-4105-803b-86433851fcfc/elements/values?category=TRANSACTION':
170
- return '[{"count":43605,"elementPerSecond":0.07124878,"minDuration":14,"maxDuration":52860,"avgDuration":178.2553,"minTTFB":2,"maxTTFB":20923,"avgTTFB":29.552986,"failureCount":536,"failureRate":1.2292168,"percentile50":31.0,"percentile90":214.0,"percentile95":635.0,"percentile99":2599.0,"elementId":"0ca05bf2-4ba9-483e-9041-c9ac38ecb8b8","userPathId":"ParcoursUtilisateur"},{"count":43605,"elementPerSecond":0.07124878,"minDuration":41,"maxDuration":2254,"avgDuration":42.898132,"minTTFB":41,"maxTTFB":2254,"avgTTFB":42.898132,"failureCount":0,"failureRate":0.0,"percentile50":42.0,"percentile90":43.0,"percentile95":43.0,"percentile99":44.0,"elementId":"b3e1f7c6-a4ef-438e-a3bb-8ffa1cb4a85e","userPathId":"ParcoursUtilisateur"},{"count":43621,"elementPerSecond":0.07127492,"minDuration":13,"maxDuration":42019,"avgDuration":280.4733,"minTTFB":1,"maxTTFB":24906,"avgTTFB":33.460835,"failureCount":551,"failureRate":1.2631531,"percentile50":78.0,"percentile90":360.0,"percentile95":878.0,"percentile99":3572.0,"elementId":"062b066f-e7c0-4e67-9a08-65d6494fecc9","userPathId":"ParcoursUtilisateur"},{"count":174480,"elementPerSecond":0.28509316,"minDuration":3,"maxDuration":52860,"avgDuration":156.48524,"minTTFB":1,"maxTTFB":24906,"avgTTFB":32.4538,"failureCount":1624,"failureRate":0.9307657,"percentile50":43.0,"percentile90":219.0,"percentile95":404.0,"percentile99":2107.5,"elementId":"all-transactions","userPathId":"all-userpaths"},{"count":43649,"elementPerSecond":0.071320675,"minDuration":3,"maxDuration":43991,"avgDuration":124.30122,"minTTFB":1,"maxTTFB":20266,"avgTTFB":23.911499,"failureCount":537,"failureRate":1.2302687,"percentile50":18.0,"percentile90":95.0,"percentile95":290.0,"percentile99":1772.0,"elementId":"50ddd53f-4a4b-4bf8-a6b3-7a262d3d6cef","userPathId":"ParcoursUtilisateur"}]'
171
-
172
163
  else:
173
164
  raise Exception('Endpoint NOT mocked : ' + endpoint)
@@ -235,8 +235,8 @@ function getMinMaxAvgMedianStdDev(data, plot) {
235
235
  <div style="float:left;width:80%;">
236
236
  <h1 style="text-align:left;">#3</h1>
237
237
  </div>
238
- <div style="float:right;width:20%;padding-top:0.75em;">
239
- <div class="logo" style="margin:auto auto;transform: scale(0.5);">&nbsp;</div>
238
+ <div style="float:right;width:160px;padding-top:0.75em;">
239
+ <svg fill="hsla(210, 100%, 30%, 1)" viewBox="0 0 1366 281.16"><polygon points="34.84 227.65 0 192.81 52.38 140.43 0.39 88.44 35.23 53.6 122.06 140.43 34.84 227.65"></polygon><polygon points="88.34 281.16 53.51 246.32 140.73 159.1 227.56 245.93 192.72 280.76 140.73 228.78 88.34 281.16"></polygon><polygon points="140.43 122.06 53.6 35.23 88.44 0.4 140.43 52.39 192.81 0 227.65 34.84 140.43 122.06"></polygon><polygon points="468.86 31.92 289.87 31.92 289.87 65.1 361.88 65.1 361.88 248.26 396.85 248.26 396.85 65.1 468.86 65.1 468.86 31.92"></polygon><path d="M475.27,106.83l-3.22-18.74H441V248.26h35v-106a54.21,54.21,0,0,1,21.62-16.84,75.54,75.54,0,0,1,31.27-6.53h6.27V85.1h-6.27C507.51,85.1,489.53,92.4,475.27,106.83Z"></path><rect x="553.54" y="88.09" width="34.97" height="160.17"></rect><rect x="552.49" y="26.54" width="37.06" height="37.06"></rect><path d="M698.43,84C647.13,84,607,120.54,607,167.2v.61c0,46.15,40,82.29,91.14,82.29,18.74,0,34.61-3.73,48.5-11.42l-.39-.35c-.6-.55-1.21-1.1-1.77-1.7h0a81.16,81.16,0,0,1-15.07-23.18,60.44,60.44,0,0,1-29.23,7.27c-31.35,0-55-23-55-53.52v-.61c0-29.67,23.27-52.91,53-52.91A60.63,60.63,0,0,1,729.62,122a88.74,88.74,0,0,1,17.79-26.71C733.54,87.67,717.5,84,698.43,84Z"></path><path d="M818.2,85.1a78.28,78.28,0,0,0-28.15,5.3,71,71,0,0,0-24.38,15.71,77.17,77.17,0,0,0-17,26.17c-4.26,10.44-6.42,22.77-6.42,36.66a103.82,103.82,0,0,0,5,32.88A67.86,67.86,0,0,0,788.79,245c10.61,4.12,23.26,6.21,37.61,6.21a149.67,149.67,0,0,0,16.64-.92c5.44-.61,10.57-1.37,15.23-2.27a124.88,124.88,0,0,0,12.55-3,63.44,63.44,0,0,0,8.14-3l-4.83-28.9a113,113,0,0,1-17.5,4.91,123.43,123.43,0,0,1-25.5,2.46c-15.86,0-28.14-3.59-36.52-10.68s-13.21-17.25-14.26-30.18l-.06-.71H889.18c.18-1.84.32-3.94.42-6.24.1-2.64.15-4.87.15-6.83,0-26.74-6.36-47.12-18.9-60.56S840.6,85.1,818.2,85.1Zm34.7,68H780.57l.1-.74a62.7,62.7,0,0,1,3.5-13.87,38.93,38.93,0,0,1,7.21-12.1,34.87,34.87,0,0,1,27.13-11.8,34.91,34.91,0,0,1,14.93,3,31.25,31.25,0,0,1,10.63,8.1,35.47,35.47,0,0,1,6.59,12.12,48,48,0,0,1,2.24,14.69Z"></path><path d="M994.06,85.1c-19.22,0-36.78,7.46-52.29,22.18l-3.3-19.19H907.4V248.26h35V144.16C956.61,126.79,971.78,118,987.48,118c19.77,0,29,10.35,29,32.57v97.71h35V147.56c0-17.61-5.14-32.53-15.28-44.37C1025.86,91.19,1011.7,85.1,994.06,85.1Z"></path><path d="M1123.54,49.87l-63.36,62v7.32h28.39v88.74c0,28.34,16.43,43.33,47.51,43.33a61.19,61.19,0,0,0,28.69-7l2.09-1.09V214.78h-6.8l-.76.34c-13.3,5.91-24.77,5.1-31.23,2.38-3-1.31-4.53-5.33-4.53-12V119.18h43.32V88.09h-43.32Z"></path><rect x="1188.39" y="88.09" width="34.97" height="160.17"></rect><rect x="1187.35" y="26.54" width="37.06" height="37.06"></rect><path d="M1356,173a47.6,47.6,0,0,0-24.31-15.16l-26.46-6.94a119.71,119.71,0,0,1-21.89-7.8c-6.51-3.16-7.27-7-7.27-9.59,0-4.25,2.38-7.78,7.27-10.79,5.42-3.34,14.23-5,26.19-5,12.17,0,24.83,2.72,37.65,8.07l.72.3h6.76V94.66l-2.54-.94a141.69,141.69,0,0,0-49.76-8.62c-18.21,0-32.89,4.75-43.64,14.11-10.9,9.5-16.42,22-16.42,37,0,11.14,3.47,20.48,10.32,27.76A51.06,51.06,0,0,0,1277,178.49l26.33,7.06a130.83,130.83,0,0,1,21.59,7.61c7,3.31,7,6.66,7,7.76,0,7.49-3,17.45-29.28,17.45a99,99,0,0,1-51.2-13.8l-.92-.54h-6.45v32.18l2,1.11c16.84,9.24,35.72,13.93,56.11,13.93,20.65,0,36.57-4.53,47.3-13.45,10.94-9.1,16.49-20.43,16.49-33.68C1366,191.13,1362.63,180.65,1356,173Z"></path></svg>
240
240
  </div>
241
241
  </div>
242
242
 
@@ -564,12 +564,6 @@ table.legend, table.legend > tbody > tr > td {
564
564
  border: 0px;
565
565
  padding:0px;
566
566
  }
567
-
568
- .logo {
569
- width: 300px;
570
- height: 74px;
571
- background-image: url(data:image/jpeg;base64,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);
572
- }
573
567
  </style>
574
568
  </body>
575
569
  </html>