mirror of
				https://github.com/Telecominfraproject/wlan-testing.git
				synced 2025-10-30 18:38:06 +00:00 
			
		
		
		
	report overview generation (#375)
* automate overview page deployment * document overview page in README
This commit is contained in:
		
							
								
								
									
										19
									
								
								.allure-overview/generate_overview.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.allure-overview/generate_overview.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| import json | ||||
| import os | ||||
| import pathlib | ||||
| import string | ||||
| import sys | ||||
|  | ||||
| base = pathlib.Path(os.path.dirname(os.path.abspath(__file__))) | ||||
|  | ||||
| def main(): | ||||
|     with open(base / 'index.html', 'r') as f: | ||||
|         overview_template = string.Template(f.read()) | ||||
|  | ||||
|     with open(base / 'overviews.json', 'r') as f: | ||||
|         overview_config = json.load(f)[sys.argv[1]] | ||||
|  | ||||
|     print(overview_template.safe_substitute(**overview_config)) | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
							
								
								
									
										52
									
								
								.allure-overview/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								.allure-overview/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
|  | ||||
| <head> | ||||
|   <meta charset="UTF-8"> | ||||
|   <script src="https://cdn.tailwindcss.com"></script> | ||||
| </head> | ||||
|  | ||||
| <body class="bg-[#29818c] text-white font-mono"> | ||||
|   <header class="relative flex items-center justify-between overflow-hidden"> | ||||
|     <div class="basis-1/3"> | ||||
|       <img class="max-w-xs max-h-20" src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralgw-ui/main/src/assets/OpenWiFi_LogoLockup_WhiteColour.svg" alt=""> | ||||
|     </div> | ||||
|     <p id="title" class="text-2xl text-center basis-1/3"></p> | ||||
|     <div class="basis-1/3"></div> | ||||
|   </header> | ||||
|   <div id="reports" class="grid grid-cols-1 xl:grid-cols-2 gap-x-6 gap-y-3 auto-rows-auto h-fit"></div> | ||||
|  | ||||
|   <script> | ||||
|     const title = $OVERVIEW_TITLE | ||||
|     const testbeds = $OVERVIEW_TESTBEDS | ||||
|  | ||||
|     const titleContainer = document.getElementById('title') | ||||
|     titleContainer.innerText = title | ||||
|  | ||||
|     const reportContainer = document.getElementById('reports') | ||||
|  | ||||
|     testbeds.forEach(testbed => { | ||||
|       const iframe = document.createElement('iframe') | ||||
|       iframe.setAttribute('src', `../${testbed}/latest`) | ||||
|       iframe.setAttribute('loading', 'lazy') | ||||
|       iframe.classList.add('w-full', 'min-h-[480px]') | ||||
|  | ||||
|       const caption = document.createElement('a') | ||||
|       caption.href = `../${testbed}` | ||||
|       caption.innerText = testbed | ||||
|  | ||||
|       const captionDiv = document.createElement('div') | ||||
|       captionDiv.classList.add('text-sm', 'text-center', 'underline') | ||||
|       captionDiv.appendChild(caption) | ||||
|  | ||||
|       const column = document.createElement('div') | ||||
|       column.classList.add('flex', 'flex-col') | ||||
|       column.appendChild(captionDiv) | ||||
|       column.appendChild(iframe) | ||||
|  | ||||
|       reportContainer.appendChild(column) | ||||
|     }); | ||||
|   </script> | ||||
| </body> | ||||
|  | ||||
| </html> | ||||
							
								
								
									
										20
									
								
								.allure-overview/overviews.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.allure-overview/overviews.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| { | ||||
|     "sanity": { | ||||
|         "OVERVIEW_TITLE": "'OpenWifi sanity results'", | ||||
|         "OVERVIEW_TESTBEDS": ["hfcl_ion4","tp-link_ec420-g1","edgecore_ecw5410","edgecore_ecw5211","edgecore_eap101","edgecore_eap102","cig_wf194c","cig_wf188n","indio_um-305ac"] | ||||
|     }, | ||||
|     "interop": { | ||||
|         "OVERVIEW_TITLE": "'OpenWifi interop results'", | ||||
|         "OVERVIEW_TESTBEDS": ["pixel-4","galaxy-s9","galaxy-s10","galaxy-s20","iphone-xr","iphone-7","iphone-11","iphone-12"] | ||||
|     }, | ||||
|  | ||||
|     "advanced": { | ||||
|         "OVERVIEW_TITLE": "'OpenWifi advanced results'", | ||||
|         "OVERVIEW_TESTBEDS": ["advanced-01","advanced-02"] | ||||
|     }, | ||||
|  | ||||
|     "performance": { | ||||
|         "OVERVIEW_TITLE": "'OpenWifi performance results'", | ||||
|         "OVERVIEW_TESTBEDS": ["basic-01","basic-02","basic-03","basic-04","basic-05","basic-06","basic-07","basic-08"] | ||||
|     } | ||||
| } | ||||
							
								
								
									
										36
									
								
								.github/workflows/update-overviews.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								.github/workflows/update-overviews.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| name: Update test report overview pages | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     paths: | ||||
|       - ".allure-overview/**" | ||||
|  | ||||
| jobs: | ||||
|   update_overview: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix:  | ||||
|         test_type: ['sanity', 'interop', 'advanced', 'performance'] | ||||
|  | ||||
|     runs-on: ubuntu-latest | ||||
|     container: python:3.8 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v2 | ||||
|  | ||||
|     - name: generate overview page | ||||
|       run: | | ||||
|         python .allure-overview/generate_overview.py ${{ matrix.test_type }} > index.html | ||||
|         cat index.html | ||||
|  | ||||
|     - name: upload overview page | ||||
|       if: github.ref == 'refs/heads/master' | ||||
|       env: | ||||
|         AWS_S3_BUCKET_NAME: openwifi-allure-reports | ||||
|         AWS_ACCOUNT_ID: "289708231103" | ||||
|         AWS_ACCESS_KEY_ID: ${{ secrets.ALLURE_S3_ACCESS_KEY_ID }} | ||||
|         AWS_SECRET_ACCESS_KEY: ${{ secrets.ALLURE_S3_ACCESS_KEY_SECRET }} | ||||
|         AWS_DEFAULT_REGION: us-east-1 | ||||
|         AWS_DEFAULT_OUTPUT: json | ||||
|       run: aws s3 cp --acl public-read --content-type text/html index.html s3://${AWS_S3_BUCKET_NAME}/${{ matrix.test_type }}/overview/index.html | ||||
|  | ||||
|  | ||||
| @@ -47,7 +47,11 @@ Using Swagger Autogenerated CloudSDK Library pypi package (implemented with [swa | ||||
|  | ||||
| ### Reporting | ||||
|  | ||||
| Currently the plan is to use pytest integrated with [allure](https://docs.qameta.io/allure/#_pytest) to create visual reports for the test outcomes | ||||
| Currently we use the [pytest allure integration](https://docs.qameta.io/allure/#_pytest) to create visual reports for the test outcomes. | ||||
|  | ||||
| Additionally we generate overview pages, e.g. like [this one](http://openwifi-allure-reports.s3-website-us-east-1.amazonaws.com/sanity/overview/) to consolidate multiple test reports of the same test type. | ||||
|  | ||||
| These overview pages are being deployed by [this workflow](.github/workflows/update-overviews.yml) and their configuration is set in [this file](./.allure-overview/overviews.json). | ||||
|  | ||||
| ### Miscellaneous | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max
					Max