Analysis of Robot reports from OSM Jenkins¶

Date and time of the report: 2026-11-10 08:45:04.493808

Analysed period: 2026-10-20 to 2026-11-10.

1. Retrieval of all currrent data for aggregate analytics¶

Database update:

Retrieving new jobs...
Getting new builds from: osm-stage_3-merge/master, osm-stage_3-merge/v19.0, osm-stage_3-merge/v18.0, osm-stage_3-merge/v17.0, osm-stage_3-merge/v16.0, osm-stage_3-merge/v14.0
Traceback (most recent call last):
  File "/opt/conda/lib/python3.13/site-packages/urllib3/connection.py", line 198, in _new_conn
    sock = connection.create_connection(
        (self._dns_host, self.port),
    ...<2 lines>...
        socket_options=self.socket_options,
    )
  File "/opt/conda/lib/python3.13/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/opt/conda/lib/python3.13/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
    ~~~~~~~~~~~~^^^^
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/conda/lib/python3.13/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    response = self._make_request(
        conn,
    ...<10 lines>...
        **response_kw,
    )
  File "/opt/conda/lib/python3.13/site-packages/urllib3/connectionpool.py", line 488, in _make_request
    raise new_e
  File "/opt/conda/lib/python3.13/site-packages/urllib3/connectionpool.py", line 464, in _make_request
    self._validate_conn(conn)
    ~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/opt/conda/lib/python3.13/site-packages/urllib3/connectionpool.py", line 1093, in _validate_conn
    conn.connect()
    ~~~~~~~~~~~~^^
  File "/opt/conda/lib/python3.13/site-packages/urllib3/connection.py", line 704, in connect
    self.sock = sock = self._new_conn()
                       ~~~~~~~~~~~~~~^^
  File "/opt/conda/lib/python3.13/site-packages/urllib3/connection.py", line 213, in _new_conn
    raise NewConnectionError(
        self, f"Failed to establish a new connection: {e}"
    ) from e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x789ed13e2510>: Failed to establish a new connection: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/conda/lib/python3.13/site-packages/requests/adapters.py", line 667, in send
    resp = conn.urlopen(
        method=request.method,
    ...<9 lines>...
        chunked=chunked,
    )
  File "/opt/conda/lib/python3.13/site-packages/urllib3/connectionpool.py", line 841, in urlopen
    retries = retries.increment(
        method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
    )
  File "/opt/conda/lib/python3.13/site-packages/urllib3/util/retry.py", line 519, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='osm.etsi.org', port=443): Max retries exceeded with url: /jenkins/crumbIssuer/api/json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x789ed13e2510>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/osm-analytics/Jenkins/./00-script-jenkins_and_robot_etl.py", line 98, in <module>
    ingest_update_all_jenkins_job(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        jenkins_server=server,
        ^^^^^^^^^^^^^^^^^^^^^^
    ...<8 lines>...
        table_robot_reports_extended=table_robot_reports_extended
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/osm-analytics/Jenkins/jenkins_robot_etl.py", line 32, in ingest_update_all_jenkins_job
    df_builds_of_job = get_all_job_builds(jenkins_server, job_name)
  File "/osm-analytics/Jenkins/jenkins_lib.py", line 79, in get_all_job_builds
    my_job = server.get_job_info(job_name, 0, True)
  File "/opt/conda/lib/python3.13/site-packages/jenkins/__init__.py", line 478, in get_job_info
    response = self.jenkins_open(requests.Request(
        'GET', self._build_url(JOB_INFO, locals())
    ))
  File "/opt/conda/lib/python3.13/site-packages/jenkins/__init__.py", line 570, in jenkins_open
    return self.jenkins_request(req, add_crumb, resolve_auth).text
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.13/site-packages/jenkins/__init__.py", line 594, in jenkins_request
    self.maybe_add_crumb(req)
    ~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/opt/conda/lib/python3.13/site-packages/jenkins/__init__.py", line 383, in maybe_add_crumb
    response = self.jenkins_open(requests.Request(
        'GET', self._build_url(CRUMB_URL)), add_crumb=False)
  File "/opt/conda/lib/python3.13/site-packages/jenkins/__init__.py", line 570, in jenkins_open
    return self.jenkins_request(req, add_crumb, resolve_auth).text
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.13/site-packages/jenkins/__init__.py", line 597, in jenkins_request
    self._request(req, stream))
    ~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.13/site-packages/jenkins/__init__.py", line 563, in _request
    return self._session.send(r, **_settings)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.13/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
  File "/opt/conda/lib/python3.13/site-packages/requests/adapters.py", line 700, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='osm.etsi.org', port=443): Max retries exceeded with url: /jenkins/crumbIssuer/api/json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x789ed13e2510>: Failed to establish a new connection: [Errno 111] Connection refused'))
Retrieving from database...	
DONE

2. Aggregated analysis of stability¶

2.1 Restricts data to time window for analysis¶

2.2 Finding sequences of successful builds and Robot reports¶

Two values retrieved from the build are key to determine the state of the jubs and test suites at a given moment:

  • build_result is the outcome of the build, reported by Jenkins. It can be: SUCCESS, FAILURE, UNSTABLE or ABORTED.
  • test_result is the summary of the concerned Robot tests. It can be: FAIL, UNAVAILABLE or PASS.

Based on these two states, 3 types of temporal sequences of success/failure are identified per builds and test suites:

  1. Successful builds/failed builds in a row: grp_build_result.
  2. Successful test reports vs. test reports with fails in a row: grp_test_result.
  3. Clean builds and tests vs. failures (of any kind) in a row: grp_success_fail.

For the identification of these sequences, the following mapping applies:

Type of sequence Relevant state OK sequence contains NOK sequence contains Ignore
grp_build_result build_result SUCCESS or UNSTABLE FAILURE ABORTED
grp_test_result test_result PASS FAIL UNAVAILABLE
grp_success_fail test_result PASS FAIL or UNAVAILABLE N/A

The different groupings of segments are detected and a label is added to each sample...

DONE

Then, the duration of each of the sequences of success/failure is determined and a specific dataframe is built summarizing such sequences, to ease their representation and analysis...

DONE

2.3 Finding sequences of pass/fails per test suite¶

DONE

3. Reports¶

3.1 Aggregated success rate per test step¶

Empty dataframe. Skipping.
Empty dataframe. Skipping.
Empty dataframe. Skipping.
Empty dataframe. Skipping.
Empty dataframe. Skipping.
Empty dataframe. Skipping.

3.2 Overall success of Jenkins builds and Robot tests¶

No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

3.3 Sequences of pass/fails per test suites¶

Empty dataframe. Skipping.
Empty dataframe. Skipping.
Empty dataframe. Skipping.
Empty dataframe. Skipping.
Empty dataframe. Skipping.
Empty dataframe. Skipping.

3.4 Failing days per test suite¶

No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
Out[58]:
job Master branch Release EIGHTEEN Release FOURTEEN ... Release NINETEEN Release SEVENTEEN Release SIXTEEN
days_failing days_passing days_run error_rate days_failing days_passing days_run error_rate days_failing days_passing ... days_run error_rate days_failing days_passing days_run error_rate days_failing days_passing days_run error_rate
suites
Basic 01-Crud Operations On Vim Targets 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Basic 05-Instantiation Parameters In Cloud Init 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Basic 06-Vnf With Charm 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Basic 07-Secure Key Management 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Basic 08-Disable Port Security Network Level 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Sa 08-Vnf With Vnf Indicators Snmp 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Slice 01-Network Slicing 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Slice 02-Shared Network Slicing 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Sol003 01-Vnf-Lifecycle-Management 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Sol003 02-Dualstack Ip Vnfm 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

62 rows × 24 columns

4. Information about the latest builds of relevant jobs¶

Latest build of each job¶

auto_id job build timestamp duration build_result test_result pass_count fail_count
0 9680 osm-stage_3-merge/master 3742 2026-05-04 23:06:08 15008 FAILURE UNAVAILABLE NaN NaN
1 10216 osm-stage_3-merge/v19.0 214 2026-09-02 13:11:07 135984 FAILURE UNAVAILABLE NaN NaN
2 10232 osm-stage_3-merge/v18.0 377 2026-09-02 21:12:09 29412 FAILURE UNAVAILABLE NaN NaN
3 10247 osm-stage_3-merge/v17.0 602 2026-09-02 16:49:08 22570 FAILURE UNAVAILABLE NaN NaN
4 10263 osm-stage_3-merge/v16.0 711 2026-09-03 01:41:07 33366 FAILURE UNAVAILABLE NaN NaN
5 10278 osm-stage_3-merge/v14.0 1129 2026-09-02 18:08:08 36298 FAILURE UNAVAILABLE NaN NaN

Click to see the details of build 3742 of osm-stage_3-merge/master

Click to see the details of build 214 of osm-stage_3-merge/v19.0

Click to see the details of build 377 of osm-stage_3-merge/v18.0

Click to see the details of build 602 of osm-stage_3-merge/v17.0

Click to see the details of build 711 of osm-stage_3-merge/v16.0

Click to see the details of build 1129 of osm-stage_3-merge/v14.0

Failed test suites per job (if any):¶

osm-stage_3-merge/master: (full report)

auto_id name status starttime endtime pass fail failed_test_name failed_keyword

osm-stage_3-merge/v19.0: (full report)

auto_id name status starttime endtime pass fail failed_test_name failed_keyword

osm-stage_3-merge/v18.0: (full report)

auto_id name status starttime endtime pass fail failed_test_name failed_keyword

osm-stage_3-merge/v17.0: (full report)

auto_id name status starttime endtime pass fail failed_test_name failed_keyword

osm-stage_3-merge/v16.0: (full report)

auto_id name status starttime endtime pass fail failed_test_name failed_keyword

osm-stage_3-merge/v14.0: (full report)

auto_id name status starttime endtime pass fail failed_test_name failed_keyword

Details of failed tests into failing test suites (if any):¶

osm-stage_3-merge/master: (full report)

auto_id suite_name test_name keyword_name status starttime endtime

osm-stage_3-merge/v19.0: (full report)

auto_id suite_name test_name keyword_name status starttime endtime

osm-stage_3-merge/v18.0: (full report)

auto_id suite_name test_name keyword_name status starttime endtime

osm-stage_3-merge/v17.0: (full report)

auto_id suite_name test_name keyword_name status starttime endtime

osm-stage_3-merge/v16.0: (full report)

auto_id suite_name test_name keyword_name status starttime endtime

osm-stage_3-merge/v14.0: (full report)

auto_id suite_name test_name keyword_name status starttime endtime



Powered by osm-analytics