merge with master
4
.github/workflows/interop.yml
vendored
@@ -227,6 +227,10 @@ jobs:
|
||||
name: allure-report
|
||||
path: allure-report
|
||||
|
||||
# doing this to be able to aggregate multiple reports together later on
|
||||
- name: copy results into report
|
||||
run: cp -r allure-results allure-report/results
|
||||
|
||||
- name: copy new report
|
||||
run: |
|
||||
mkdir -p reports/interop/interop
|
||||
|
||||
8
.github/workflows/sanity.yml
vendored
@@ -305,15 +305,19 @@ jobs:
|
||||
with:
|
||||
name: allure-report-${{ matrix.testbed }}
|
||||
path: allure-report
|
||||
|
||||
# doing this to be able to aggregate multiple reports together later on
|
||||
- name: copy results into report
|
||||
run: cp -r allure-results allure-report/results
|
||||
|
||||
- name: copy new report
|
||||
if: ${{ (github.event.inputs.marker_expression || 'sanity') == 'sanity and not interop' }}
|
||||
if: ${{ (github.event.inputs.marker_expression || 'sanity and not interop') == 'sanity and not interop' }}
|
||||
run: |
|
||||
mkdir -p reports/sanity/${{ matrix.testbed }}
|
||||
cp -Tr allure-report reports/sanity/${{ matrix.testbed }}/${{ github.run_number }}
|
||||
|
||||
- name: update latest symlink
|
||||
if: ${{ (github.event.inputs.marker_expression || 'sanity') == 'sanity and not interop' }}
|
||||
if: ${{ (github.event.inputs.marker_expression || 'sanity and not interop') == 'sanity and not interop' }}
|
||||
working-directory: reports/sanity/${{ matrix.testbed }}
|
||||
run: ln -fns ${{ github.run_number }} latest
|
||||
|
||||
|
||||
133
.github/workflows/ucentralgw-deployment.yaml
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
name: Update uCentral
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
env:
|
||||
AWS_EKS_NAME: tip-wlan-main
|
||||
AWS_DEFAULT_OUTPUT: json
|
||||
AWS_DEFAULT_REGION: us-east-2
|
||||
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }}
|
||||
|
||||
# DigiCert certs
|
||||
DIGICERT_CERT: ${{ secrets.DIGICERT_CERT }}
|
||||
DIGICERT_KEY: ${{ secrets.DIGICERT_KEY }}
|
||||
|
||||
# https://stackoverflow.com/questions/59977364/github-actions-how-use-strategy-matrix-with-script
|
||||
testbeds: '[
|
||||
{
|
||||
"namespace": "qa01",
|
||||
"ucentralgw_version": "master",
|
||||
"ucentralsec_version": "main",
|
||||
"ucentralgwui_version": "main"
|
||||
},
|
||||
{
|
||||
"namespace": "dev01",
|
||||
"ucentralgw_version": "master",
|
||||
"ucentralsec_version": "main",
|
||||
"ucentralgwui_version": "main"
|
||||
}
|
||||
]'
|
||||
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
|
||||
jobs:
|
||||
generate-matrix:
|
||||
name: Generate matrix for build
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- name: generate-matrix
|
||||
id: set-matrix
|
||||
run: |
|
||||
echo '::set-output name=matrix::{"include":${{ env.testbeds }}}'
|
||||
|
||||
deploy:
|
||||
name: Update uCentral instances
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ generate-matrix ]
|
||||
strategy:
|
||||
matrix: ${{ fromJson( needs.generate-matrix.outputs.matrix ) }}
|
||||
fail-fast: false
|
||||
steps:
|
||||
|
||||
- name: Checkout uCentral assembly chart repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: wlan-cloud-ucentral-deploy
|
||||
repository: Telecominfraproject/wlan-cloud-ucentral-deploy
|
||||
- name: Checkout Helm values repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: toolsmith
|
||||
repository: Telecominfraproject/Toolsmith
|
||||
token: ${{ secrets.PAT_TOKEN }}
|
||||
|
||||
- name: Prepare certificates from secrets
|
||||
run: |
|
||||
echo "${{ env.DIGICERT_CERT }}" | base64 -d > cert.pem
|
||||
echo "${{ env.DIGICERT_KEY }}" | base64 -d > key.pem
|
||||
|
||||
- name: Fetch kubeconfig
|
||||
run: |
|
||||
aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
|
||||
|
||||
- name: Deploy uCentralGW
|
||||
working-directory: wlan-cloud-ucentral-deploy/chart
|
||||
run: |
|
||||
helm plugin install https://github.com/aslafy-z/helm-git --version 0.10.0
|
||||
sed -i '/wlan-cloud-ucentralgw@/s/ref=.*/ref='${{ matrix.ucentralgw_version }}'\"/g' Chart.yaml
|
||||
sed -i '/wlan-cloud-ucentralgw-ui@/s/ref=.*/ref='${{ matrix.ucentralgwui_version }}'\"/g' Chart.yaml
|
||||
sed -i '/wlan-cloud-ucentralsec@/s/ref=.*/ref='${{ matrix.ucentralsec_version }}'\"/g' Chart.yaml
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm repo update
|
||||
helm dependency update
|
||||
helm upgrade --install --create-namespace \
|
||||
--namespace ucentral-${{ matrix.namespace }} --wait --timeout 20m \
|
||||
-f ../../toolsmith/helm-values/assembly-ucentral/values.ucentral-${{ matrix.namespace }}.yaml \
|
||||
--set ucentralgw.configProperties."rtty\.token"=${{ secrets.RTTY_TOKEN }} \
|
||||
--set ucentralsec.configProperties."authentication\.default\.username"=${{ secrets.UCENTRALGW_AUTH_USERNAME }} \
|
||||
--set ucentralsec.configProperties."authentication\.default\.password"=${{ secrets.UCENTRALGW_AUTH_PASSWORD }} \
|
||||
--set rttys.config.token=${{ secrets.RTTY_TOKEN }} \
|
||||
--set-file ucentralgw.certs."restapi-cert\.pem"=../../cert.pem \
|
||||
--set-file ucentralgw.certs."restapi-key\.pem"=../../key.pem \
|
||||
--set-file ucentralgw.certs."websocket-cert\.pem"=../../cert.pem \
|
||||
--set-file ucentralgw.certs."websocket-key\.pem"=../../key.pem \
|
||||
--set-file rttys.certs."restapi-cert\.pem"=../../cert.pem \
|
||||
--set-file rttys.certs."restapi-key\.pem"=../../key.pem \
|
||||
--set-file ucentralsec.certs."restapi-cert\.pem"=../../cert.pem \
|
||||
--set-file ucentralsec.certs."restapi-key\.pem"=../../key.pem \
|
||||
--set ucentralgw.images.ucentralgw.tag=${{ matrix.ucentralgw_version }} \
|
||||
--set ucentralgwui.images.ucentralgwui.tag=${{ matrix.ucentralgwui_version }} \
|
||||
--set ucentralsec.images.ucentralsec.tag=${{ matrix.ucentralsec_version }} \
|
||||
tip-ucentral .
|
||||
|
||||
- name: Show resource state on deployment failure
|
||||
if: failure()
|
||||
run: |
|
||||
kubectl get pods --namespace ucentral-${{ matrix.namespace }}
|
||||
kubectl get services --namespace ucentral-${{ matrix.namespace }}
|
||||
kubectl get persistentvolumeclaims --namespace ucentral-${{ matrix.namespace }}
|
||||
- name: Describe pods on deployment failure
|
||||
if: failure()
|
||||
run: |
|
||||
kubectl describe pods --namespace ucentral-${{ matrix.namespace }}
|
||||
- name: Describe services on deployment failure
|
||||
if: failure()
|
||||
run: |
|
||||
kubectl describe services --namespace ucentral-${{ matrix.namespace }}
|
||||
- name: Describe persistentvolumeclaims on deployment failure
|
||||
if: failure()
|
||||
run: |
|
||||
kubectl describe persistentvolumeclaims --namespace ucentral-${{ matrix.namespace }}
|
||||
|
||||
- name: Rollback Cloud SDK
|
||||
if: failure()
|
||||
run: |
|
||||
helm rollback tip-ucentral --namespace ucentral-${{ matrix.namespace }} --wait --timeout 20m
|
||||
|
||||
48
.github/workflows/update-badges.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name: Update test number badges
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- "tests/**"
|
||||
|
||||
jobs:
|
||||
update_badges:
|
||||
runs-on: ubuntu-latest
|
||||
container: python:3.8
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: add TIP pypi repo
|
||||
run: |
|
||||
mkdir -p ~/.pip
|
||||
echo "[global]" > ~/.pip/pip.conf
|
||||
echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
|
||||
echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
|
||||
|
||||
- name: install dependencies
|
||||
run: pip install -r requirements.txt
|
||||
|
||||
- name: download badges
|
||||
working-directory: tests
|
||||
run: |
|
||||
mkdir -p ../.img
|
||||
wget https://img.shields.io/badge/total_tests-$(pytest --collect-only -q | tail -1 | cut -d ' ' -f 1)-green?style=flat-square -O ../.img/total-count.svg
|
||||
wget https://img.shields.io/badge/interop_tests-$(pytest --collect-only -m "interop" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../.img/interop-count.svg
|
||||
wget https://img.shields.io/badge/sanity_tests-$(pytest --collect-only -m "sanity and not interop" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../.img/sanity-count.svg
|
||||
wget https://img.shields.io/badge/performance_tests-$(pytest --collect-only -m "performance" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../.img/performance-count.svg
|
||||
|
||||
- name: commit changes
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
git add .
|
||||
git commit -m "Updating test count badges: $(date -u)"
|
||||
|
||||
- name: push changes
|
||||
uses: ad-m/github-push-action@v0.6.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: master
|
||||
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
1
.img/interop-count.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="102" height="20" role="img" aria-label="interop tests: 56"><title>interop tests: 56</title><g shape-rendering="crispEdges"><rect width="79" height="20" fill="#555"/><rect x="79" width="23" height="20" fill="#97ca00"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="405" y="140" transform="scale(.1)" fill="#fff" textLength="690">interop tests</text><text x="895" y="140" transform="scale(.1)" fill="#fff" textLength="130">56</text></g></svg>
|
||||
|
After Width: | Height: | Size: 636 B |
1
.img/performance-count.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="142" height="20" role="img" aria-label="performance tests: 241"><title>performance tests: 241</title><g shape-rendering="crispEdges"><rect width="111" height="20" fill="#555"/><rect x="111" width="31" height="20" fill="#97ca00"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="565" y="140" transform="scale(.1)" fill="#fff" textLength="1010">performance tests</text><text x="1255" y="140" transform="scale(.1)" fill="#fff" textLength="210">241</text></g></svg>
|
||||
|
After Width: | Height: | Size: 655 B |
1
.img/sanity-count.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="104" height="20" role="img" aria-label="sanity tests: 176"><title>sanity tests: 176</title><g shape-rendering="crispEdges"><rect width="73" height="20" fill="#555"/><rect x="73" width="31" height="20" fill="#97ca00"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="375" y="140" transform="scale(.1)" fill="#fff" textLength="630">sanity tests</text><text x="875" y="140" transform="scale(.1)" fill="#fff" textLength="210">176</text></g></svg>
|
||||
|
After Width: | Height: | Size: 636 B |
1
.img/total-count.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="96" height="20" role="img" aria-label="total tests: 519"><title>total tests: 519</title><g shape-rendering="crispEdges"><rect width="65" height="20" fill="#555"/><rect x="65" width="31" height="20" fill="#97ca00"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="335" y="140" transform="scale(.1)" fill="#fff" textLength="550">total tests</text><text x="795" y="140" transform="scale(.1)" fill="#fff" textLength="210">519</text></g></svg>
|
||||
|
After Width: | Height: | Size: 632 B |
60
README.md
@@ -5,13 +5,13 @@
|
||||
This repository contains the test automation framework and scripts for TIP Open WiFi.
|
||||
Test Framework is implemented in pytest
|
||||
|
||||

|
||||

|
||||
|
||||
The vision is to create an open test framework to ensure production grade Open Wifi Solution.
|
||||
|
||||
This test automation tied into our overall tooling at TIP as shown below:
|
||||
|
||||

|
||||

|
||||
|
||||
### General guidelines
|
||||
|
||||
@@ -41,7 +41,6 @@ pylint --fail-under=7 *py
|
||||
|
||||
the command above would produce a non-zero exit code if the score drops below 7.
|
||||
|
||||
|
||||
### TIP Controller Integration
|
||||
|
||||
Using Swagger Autogenerated CloudSDK Library pypi package (implemented with [swagger codegen](https://github.com/swagger-api/swagger-codegen)).
|
||||
@@ -50,7 +49,7 @@ Using Swagger Autogenerated CloudSDK Library pypi package (implemented with [swa
|
||||
|
||||
Currently the plan is to use pytest integrated with [allure](https://docs.qameta.io/allure/#_pytest) to create visual reports for the test outcomes
|
||||
|
||||
### Miscelanneous
|
||||
### Miscellaneous
|
||||
|
||||
1. Do not use old style string formatting: `"Hello %s" % var`; use `f"Hello {var}` instead
|
||||
2. use `"""` in Docstrings
|
||||
@@ -62,8 +61,17 @@ https://docs.pytest.org/en/latest/usage.html
|
||||
http://pythontesting.net/framework/pytest/pytest-introduction/
|
||||
|
||||
### Test status
|
||||
|
||||

|
||||
|
||||
[](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/sanity.yml)
|
||||

|
||||
|
||||
[](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/interop.yml)
|
||||

|
||||
|
||||
[](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/performance.yml)
|
||||

|
||||
|
||||
### Best Practice
|
||||
|
||||
@@ -74,11 +82,11 @@ http://pythontesting.net/framework/pytest/pytest-introduction/
|
||||
|
||||
All code must be written in python 3 and conform to PEP 8 style guide. The test framework is built using pytest.
|
||||
|
||||
[](https://www.python.org/)
|
||||
[](https://www.python.org/)
|
||||
[](https://www.python.org/dev/peps/pep-0008/)
|
||||
|
||||
|
||||
### Directory Structure
|
||||
|
||||
```bash
|
||||
├── lanforge - /* to be migrated */
|
||||
├── libs
|
||||
@@ -100,6 +108,7 @@ All code must be written in python 3 and conform to PEP 8 style guide. The test
|
||||
|── scale
|
||||
|── README.md -/* Pytest framework and testcases information */
|
||||
```
|
||||
|
||||
### Setup Instructions
|
||||
|
||||
#### Step 1
|
||||
@@ -123,6 +132,19 @@ cd wlan-testing
|
||||
|
||||
#### Step 2
|
||||
|
||||
Please ensure you follow the steps outlined in [here](./libs/controller/README.md)
|
||||
|
||||
```shell
|
||||
Lets add the TIP pypi repository by following the below steps:
|
||||
|
||||
mkdir ~/.pip
|
||||
echo "[global]" > ~/.pip/pip.conf
|
||||
echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
|
||||
echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
|
||||
```
|
||||
|
||||
#### Step 3
|
||||
|
||||
Please ensure you have python version >= 3 is required. Double check this by running "python --version" command.
|
||||
|
||||
```shell
|
||||
@@ -130,31 +152,7 @@ User this to check "python --version"
|
||||
|
||||
Lets Install the Python Packages needed
|
||||
|
||||
pip3 install pytest==6.2.2
|
||||
pip3 install bs4
|
||||
pip3 install paramiko
|
||||
pip3 install xlsxwriter
|
||||
pip3 install influxdb_client
|
||||
pip3 install allure-pytest
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
#### Step 3
|
||||
|
||||
Please ensure you follow the steps outlined in [here](./libs/controller/README.md)
|
||||
|
||||
```shell
|
||||
Lets Install Controller Libraries, follow below steps:
|
||||
|
||||
mkdir ~/.pip
|
||||
echo "[global]" > ~/.pip/pip.conf
|
||||
echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
|
||||
echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
|
||||
echo "tip-wlan-cloud" > ~/.pip/requirements.txt
|
||||
pip3 install -r ~/.pip/requirements.txt
|
||||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
#### Step 4
|
||||
|
||||
@@ -3,7 +3,8 @@ RUN mkdir ~/.pip
|
||||
RUN echo "[global]" > ~/.pip/pip.conf
|
||||
RUN echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
|
||||
RUN echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
|
||||
RUN pip3 install pytest==6.2.2 bs4 paramiko xlsxwriter requests pandas influxdb influxdb-client scp allure-pytest tip-wlan-cloud selenium perfecto-py37 Appium-Python-Client
|
||||
COPY requirements.txt requirements.txt
|
||||
RUN pip3 install -r requirements.txt
|
||||
COPY lanforge /wlan-testing/lanforge
|
||||
COPY tests /wlan-testing/tests
|
||||
COPY libs /wlan-testing/libs
|
||||
|
||||
@@ -3,6 +3,8 @@ from create_chamberview_dut import DUT
|
||||
import time
|
||||
from LANforge.lfcli_base import LFCliBase
|
||||
import json
|
||||
import os
|
||||
import pandas as pd
|
||||
|
||||
class ChamberView:
|
||||
|
||||
@@ -104,4 +106,22 @@ class ChamberView:
|
||||
cli_base = LFCliBase(_lfjson_host=self.lanforge_ip, _lfjson_port=self.lanforge_port, )
|
||||
return cli_base.json_post(req_url, data)
|
||||
|
||||
def read_kpi_file(self, column_name, dir_name ):
|
||||
if column_name == None:
|
||||
df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', engine='python')
|
||||
if df.empty == True:
|
||||
return "empty"
|
||||
else:
|
||||
return df
|
||||
else:
|
||||
df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', usecols=column_name, engine='python')
|
||||
if df.empty == True:
|
||||
return "empty"
|
||||
else:
|
||||
return df
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 8.9 KiB |
BIN
reports/ap-auto-2021-06-24-06-07-50/CenturyGothic.woff
Normal file
BIN
reports/ap-auto-2021-06-24-06-07-50/candela_swirl_small-72h.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
reports/ap-auto-2021-06-24-06-07-50/canvil.ico
Normal file
|
After Width: | Height: | Size: 766 B |
BIN
reports/ap-auto-2021-06-24-06-07-50/chart-1.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
@@ -0,0 +1,157 @@
|
||||
Date,"Total Upload/RX (Mbps)",Date,"Total Download/RX (Mbps)",Date,"UL + DL Sum/RX (Mbps)",Date,"UDP UL + DL Sum/RX (Mbps)",Date,"UDP DL/RX (Mbps)",Date,"UDP UL/RX (Mbps)",
|
||||
"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,
|
||||
"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,
|
||||
"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,
|
||||
"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,
|
||||
"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,
|
||||
"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,
|
||||
"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,
|
||||
"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,
|
||||
"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,
|
||||
"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,
|
||||
"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,
|
||||
"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,
|
||||
"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,
|
||||
"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,
|
||||
"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,
|
||||
"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,
|
||||
"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,
|
||||
"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,
|
||||
"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,
|
||||
"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,
|
||||
"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,
|
||||
"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,
|
||||
"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,
|
||||
"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,
|
||||
"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,
|
||||
"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,
|
||||
"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,
|
||||
"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,
|
||||
"2021-06-24T13:05:13.767 UTC",0,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",0,
|
||||
"2021-06-24T13:05:15.123 UTC",0,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",0,
|
||||
"2021-06-24T13:05:16.379 UTC",0,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",0,
|
||||
"2021-06-24T13:05:17.516 UTC",0,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",0,
|
||||
"2021-06-24T13:05:18.635 UTC",0,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",0,
|
||||
"2021-06-24T13:05:20.559 UTC",0,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",0,
|
||||
"2021-06-24T13:05:21.762 UTC",0,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",0,
|
||||
"2021-06-24T13:05:22.906 UTC",0,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",0,
|
||||
"2021-06-24T13:05:24.083 UTC",0,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",0,
|
||||
"2021-06-24T13:05:26.051 UTC",0,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",0,
|
||||
"2021-06-24T13:05:27.409 UTC",0,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",0,
|
||||
"2021-06-24T13:05:28.559 UTC",0,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",0,
|
||||
"2021-06-24T13:05:29.682 UTC",0,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",0,
|
||||
"2021-06-24T13:05:31.459 UTC",0,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",0,
|
||||
"2021-06-24T13:05:32.753 UTC",0,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",0,
|
||||
"2021-06-24T13:05:33.899 UTC",0,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",0,
|
||||
"2021-06-24T13:05:35.326 UTC",0,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",0,
|
||||
"2021-06-24T13:05:37.613 UTC",0,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",0,
|
||||
"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,
|
||||
"2021-06-24T13:05:39.945 UTC",0,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",0,
|
||||
"2021-06-24T13:05:41.012 UTC",0,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",0,
|
||||
"2021-06-24T13:05:42.019 UTC",0,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",0,
|
||||
"2021-06-24T13:05:43.939 UTC",0,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",0,
|
||||
"2021-06-24T13:05:45.014 UTC",0,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",0,
|
||||
"2021-06-24T13:05:46.089 UTC",0,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",0,
|
||||
"2021-06-24T13:05:47.111 UTC",0,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",0,
|
||||
"2021-06-24T13:05:48.151 UTC",0,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",0,
|
||||
"2021-06-24T13:05:49.485 UTC",0,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",0,
|
||||
"2021-06-24T13:05:50.565 UTC",0,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",0,
|
||||
"2021-06-24T13:05:51.569 UTC",0,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",0,
|
||||
"2021-06-24T13:05:52.572 UTC",0,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",0,
|
||||
"2021-06-24T13:05:53.580 UTC",0,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",0,
|
||||
"2021-06-24T13:05:55.086 UTC",0,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",0,
|
||||
"2021-06-24T13:05:56.099 UTC",0,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",0,
|
||||
"2021-06-24T13:05:57.105 UTC",0,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",0,
|
||||
"2021-06-24T13:05:58.109 UTC",0,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",0,
|
||||
"2021-06-24T13:05:59.127 UTC",0,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",0,
|
||||
"2021-06-24T13:06:00.761 UTC",0,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",0,
|
||||
"2021-06-24T13:06:01.986 UTC",0,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",0,
|
||||
"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,
|
||||
"2021-06-24T13:06:04.029 UTC",0,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",0,
|
||||
"2021-06-24T13:06:05.032 UTC",0,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",0,
|
||||
"2021-06-24T13:06:06.764 UTC",0,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",0,
|
||||
"2021-06-24T13:06:08.019 UTC",0,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",0,
|
||||
"2021-06-24T13:06:09.031 UTC",0,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",0,
|
||||
"2021-06-24T13:06:10.052 UTC",0,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",0,
|
||||
"2021-06-24T13:06:11.141 UTC",0,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",0,
|
||||
"2021-06-24T13:06:12.961 UTC",0,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",0,
|
||||
"2021-06-24T13:06:13.985 UTC",0,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",0,
|
||||
"2021-06-24T13:06:14.991 UTC",0,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",0,
|
||||
"2021-06-24T13:06:15.996 UTC",0,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",0,
|
||||
"2021-06-24T13:06:17.000 UTC",0,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",0,
|
||||
"2021-06-24T13:06:18.016 UTC",0,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",0,
|
||||
"2021-06-24T13:06:19.074 UTC",0,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",0,
|
||||
"2021-06-24T13:06:20.078 UTC",0,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",0,
|
||||
"2021-06-24T13:06:21.126 UTC",0,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",0,
|
||||
"2021-06-24T13:06:22.175 UTC",0,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",0,
|
||||
"2021-06-24T13:06:24.014 UTC",0,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",0,
|
||||
"2021-06-24T13:06:25.138 UTC",0,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",0,
|
||||
"2021-06-24T13:06:26.153 UTC",0,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",0,
|
||||
"2021-06-24T13:06:27.458 UTC",0,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",0,
|
||||
"2021-06-24T13:06:30.313 UTC",0,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",0,
|
||||
"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,
|
||||
"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",0,"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",0,"2021-06-24T13:06:32.456 UTC",81.01041,
|
||||
"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",0,"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",0,"2021-06-24T13:06:33.462 UTC",81.01041,
|
||||
"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",0,"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",0,"2021-06-24T13:06:34.466 UTC",115.21429,
|
||||
"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",0,"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",0,"2021-06-24T13:06:36.207 UTC",74.11585,
|
||||
"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",0,"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",0,"2021-06-24T13:06:37.236 UTC",128.71215,
|
||||
"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",0,"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",0,"2021-06-24T13:06:38.239 UTC",136.12795,
|
||||
"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",0,"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",0,"2021-06-24T13:06:39.243 UTC",145.54554,
|
||||
"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",0,"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",0,"2021-06-24T13:06:40.246 UTC",139.12486,
|
||||
"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",0,"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",0,"2021-06-24T13:06:41.818 UTC",131.13375,
|
||||
"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",0,"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",0,"2021-06-24T13:06:42.825 UTC",139.43639,
|
||||
"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",0,"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",0,"2021-06-24T13:06:43.831 UTC",147.65079,
|
||||
"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",0,"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",0,"2021-06-24T13:06:44.849 UTC",160.72659,
|
||||
"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",0,"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",0,"2021-06-24T13:06:45.876 UTC",157.75082,
|
||||
"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",0,"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",0,"2021-06-24T13:06:47.306 UTC",157.75082,
|
||||
"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",0,"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",0,"2021-06-24T13:06:48.402 UTC",140.73814,
|
||||
"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",0,"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",0,"2021-06-24T13:06:49.473 UTC",140.18522,
|
||||
"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",0,"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",0,"2021-06-24T13:06:50.475 UTC",140.9653,
|
||||
"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",0,"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",0,"2021-06-24T13:06:51.479 UTC",149.74488,
|
||||
"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",0,"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",0,"2021-06-24T13:06:52.900 UTC",149.74488,
|
||||
"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",0,"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",0,"2021-06-24T13:06:53.975 UTC",154.60875,
|
||||
"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",0,"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",0,"2021-06-24T13:06:55.081 UTC",157.48085,
|
||||
"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",0,"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",0,"2021-06-24T13:06:56.091 UTC",156.62474,
|
||||
"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",0,"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",0,"2021-06-24T13:06:57.171 UTC",46.2555,
|
||||
"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",0,"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",0,"2021-06-24T13:06:58.775 UTC",46.2555,
|
||||
"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",0,"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",0,"2021-06-24T13:06:59.855 UTC",128.1117,
|
||||
"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",0,"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",0,"2021-06-24T13:07:00.858 UTC",149.7146,
|
||||
"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",0,"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",0,"2021-06-24T13:07:01.861 UTC",138.46164,
|
||||
"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",0,"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",0,"2021-06-24T13:07:02.865 UTC",131.2945,
|
||||
"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",0,"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",0,"2021-06-24T13:07:04.356 UTC",121.3569,
|
||||
"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",0,"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",0,"2021-06-24T13:07:05.406 UTC",130.35988,
|
||||
"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",0,"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",0,"2021-06-24T13:07:06.412 UTC",142.1523,
|
||||
"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",0,"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",0,"2021-06-24T13:07:07.416 UTC",136.28422,
|
||||
"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",0,"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",0,"2021-06-24T13:07:08.419 UTC",134.34447,
|
||||
"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",0,"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",0,"2021-06-24T13:07:10.092 UTC",132.86177,
|
||||
"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",0,"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",0,"2021-06-24T13:07:11.187 UTC",134.60485,
|
||||
"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",0,"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",0,"2021-06-24T13:07:12.193 UTC",137.69828,
|
||||
"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",0,"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",0,"2021-06-24T13:07:13.195 UTC",122.84054,
|
||||
"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",0,"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",0,"2021-06-24T13:07:14.198 UTC",123.97687,
|
||||
"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",0,"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",0,"2021-06-24T13:07:15.559 UTC",122.20608,
|
||||
"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",0,"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",0,"2021-06-24T13:07:16.569 UTC",123.6539,
|
||||
"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",0,"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",0,"2021-06-24T13:07:17.572 UTC",119.04136,
|
||||
"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",0,"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",0,"2021-06-24T13:07:18.575 UTC",118.09227,
|
||||
"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",0,"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",0,"2021-06-24T13:07:19.602 UTC",131.86202,
|
||||
"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,
|
||||
"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",0,"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",0,"2021-06-24T13:07:22.307 UTC",47.09622,
|
||||
"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",0,"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",0,"2021-06-24T13:07:23.342 UTC",113.1122,
|
||||
"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",0,"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",0,"2021-06-24T13:07:24.346 UTC",183.21198,
|
||||
"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",0,"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",0,"2021-06-24T13:07:25.350 UTC",200.66185,
|
||||
"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",0,"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",0,"2021-06-24T13:07:27.258 UTC",200.66185,
|
||||
"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",0,"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",0,"2021-06-24T13:07:28.435 UTC",183.28354,
|
||||
"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",0,"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",0,"2021-06-24T13:07:29.439 UTC",179.58321,
|
||||
"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",0,"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",0,"2021-06-24T13:07:30.443 UTC",178.73124,
|
||||
"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",0,"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",0,"2021-06-24T13:07:31.447 UTC",186.23463,
|
||||
"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",0,"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",0,"2021-06-24T13:07:33.039 UTC",196.21518,
|
||||
"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",0,"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",0,"2021-06-24T13:07:36.225 UTC",182.65512,
|
||||
"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",0,"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",0,"2021-06-24T13:07:37.306 UTC",153.38336,
|
||||
"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",0,"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",0,"2021-06-24T13:07:38.375 UTC",164.19841,
|
||||
"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",0,"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",0,"2021-06-24T13:07:39.385 UTC",199.45854,
|
||||
"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",0,"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",0,"2021-06-24T13:07:41.299 UTC",211.0476,
|
||||
"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",0,"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",0,"2021-06-24T13:07:42.321 UTC",142.29037,
|
||||
"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",0,"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",0,"2021-06-24T13:07:43.640 UTC",160.24816,
|
||||
"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,
|
||||
"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,
|
||||
"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,
|
||||
"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,
|
||||
|
@@ -0,0 +1,4 @@
|
||||
"Throughput for different bands",
|
||||
"2.4Ghz","5Ghz","Combined-2","Dual",
|
||||
45.93387,167.48692,213.42079,169.00617
|
||||
145.23156,128.71492,273.94648,179.92017
|
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
11
reports/ap-auto-2021-06-24-06-07-50/custom.css
Normal file
@@ -0,0 +1,11 @@
|
||||
/* file reserved for customer styling of reports */
|
||||
/* rename to custom.css to take effect */
|
||||
|
||||
.TitleFont {}
|
||||
.HeaderFont {}
|
||||
.TableFont {}
|
||||
.TableBorder {}
|
||||
.ImgStyle {}
|
||||
.HeaderStyle {}
|
||||
.FooterStyle {}
|
||||
/* eof */
|
||||
2397
reports/ap-auto-2021-06-24-06-07-50/index-print.html
Normal file
2398
reports/ap-auto-2021-06-24-06-07-50/index.html
Normal file
BIN
reports/ap-auto-2021-06-24-06-07-50/kpi-chart-0-print.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
reports/ap-auto-2021-06-24-06-07-50/kpi-chart-0.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
2
reports/ap-auto-2021-06-24-06-07-50/kpi.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
Date test-rig dut-hw-version dut-sw-version dut-model-num dut-serial-num test-priority test-id short-description pass/fail numeric-score test details Units Graph-Group Subtest-Pass Subtest-Fail
|
||||
1624540068480 ecw5410 ecw5410-2021-06-16-pending-e8418c0.tar. ecw5410 903cb3944817 100 AP Auto Multi Band Performance Score FAIL 80.48127866945252 Dual-Concurrent vs 90% of Sum: 169.01 Mbps / 192.08 Mbps Dual-Concurrent vs 90% of Sum: 179.92 Mbps / 246.55 Mbps Score Score 0 2
|
||||
|
BIN
reports/ap-auto-2021-06-24-06-07-50/logo.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
256
reports/ap-auto-2021-06-24-06-07-50/report.css
Normal file
@@ -0,0 +1,256 @@
|
||||
html, body,div {
|
||||
margin: 0;
|
||||
padding:0;
|
||||
font-size: 14px;
|
||||
}
|
||||
h1,h2,h3,h4 {
|
||||
padding: 0em;
|
||||
line-height: 1.5;
|
||||
text-align: left;
|
||||
color: rgb(42,91,41);
|
||||
}
|
||||
@font-face {
|
||||
font-family: CenturyGothic;
|
||||
src: url("CenturyGothic.woff"),
|
||||
url("images/CenturyGothic.woff"),
|
||||
url("/images/CenturyGothic.woff"),
|
||||
url("http://www.candelatech.com/images/CenturyGothic.woff");
|
||||
}
|
||||
body,h1,h2,h3,h4 {
|
||||
font-family: CenturyGothic, "Century Gothic", Arial, Helvetica, sans-serif;
|
||||
}
|
||||
h1 { font-size: 30px;}
|
||||
h2 { font-size: 24px;}
|
||||
h3 { font-size: 18px;}
|
||||
h4 { font-size: 14px;}
|
||||
li,pre,tt {
|
||||
text-align: left;
|
||||
}
|
||||
pre {
|
||||
font-size: 10px;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
background: #e0e0e0;
|
||||
}
|
||||
table, td, th {
|
||||
border: 1px solid gray;
|
||||
padding 4px;
|
||||
}
|
||||
table.noborder, table.noborder td, table.noborder th {
|
||||
border: 0 none;
|
||||
}
|
||||
td {
|
||||
background: white;
|
||||
}
|
||||
td.ar {
|
||||
text-align: right;
|
||||
}
|
||||
th {
|
||||
color: rgb(42,91,41);
|
||||
text-align: center;
|
||||
}
|
||||
#lf_title {
|
||||
text-align: center;
|
||||
background-image: url(candela_swirl_small-72h.png);
|
||||
background-position: right;
|
||||
background-repeat: no-repeat;
|
||||
height: 90px;
|
||||
}
|
||||
#new_chart {
|
||||
display: block;
|
||||
height: 250px;
|
||||
min-width: 200px;
|
||||
width: 80%;
|
||||
border: 1px solid black;
|
||||
margin: 14px auto;
|
||||
padding: 14px;
|
||||
vertical-align: bottom;
|
||||
text-align: center;
|
||||
}
|
||||
.lf_chart {
|
||||
margin: 1em;
|
||||
padding: 5px;
|
||||
}
|
||||
#error_types ul {
|
||||
background: #f0f0f0;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
margin: 1em;
|
||||
padding: 0.25em inherit 0.25em inherit;
|
||||
max-height: 8em;
|
||||
overflow: auto;
|
||||
}
|
||||
li {
|
||||
line-height: 1.5;
|
||||
}
|
||||
.contentDiv {
|
||||
margin: 1em 0.25in;
|
||||
}
|
||||
.ct-point {
|
||||
stroke-width: 6px;}
|
||||
|
||||
.o_el {
|
||||
display: inline-block;
|
||||
width: 100px;
|
||||
height: 230px;
|
||||
border: none;
|
||||
margin: 1px 1px 16px 1px;
|
||||
padding: 10px 10px 0 10px;
|
||||
background: #eee;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
.bar_el {
|
||||
display: block;
|
||||
background: green;
|
||||
border: none;
|
||||
min-height: 1px;
|
||||
|
||||
margin: 0 0 5px 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.label_el {
|
||||
color: black;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-family: Arial,Helvetica,sans-serif,mono;
|
||||
margin: 1px;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
width: inherit;
|
||||
}
|
||||
.value_el {
|
||||
font-family: Arial,Helvetica,sans-serif,mono;
|
||||
color: black;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
margin: 0 auto;
|
||||
padding: none;
|
||||
border: none;
|
||||
background: white;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
width: auto;
|
||||
}
|
||||
.value_el>span {
|
||||
background: #f0f0f0a0;
|
||||
border: 1px solid #f0f0f0a0;
|
||||
border-radius: 5px;
|
||||
padding: 1px;
|
||||
min-width: 2em;
|
||||
}
|
||||
.error {
|
||||
color: red;
|
||||
}
|
||||
|
||||
@media only screen {
|
||||
.hideFromPrint { }
|
||||
.hideFromScreen { display:none; }
|
||||
}
|
||||
@media only print {
|
||||
.hideFromScreen { }
|
||||
.hideFromPrint { display:none; }
|
||||
}
|
||||
|
||||
/* these styles will get overridden by custom.css */
|
||||
.TitleFontScreen {
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 50px;
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
.TitleFontPrint {
|
||||
line-height: 1;
|
||||
margin-left:0px;
|
||||
margin-right:auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 50px;
|
||||
padding-top: 20px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.TitleFontPrintSub {
|
||||
line-height: 1;
|
||||
margin-left:0px;
|
||||
margin-right:auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
/*font-size: 20px; Let 'h3', etc control this */
|
||||
padding-top: 0px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.HeaderFont {}
|
||||
.TableFont {}
|
||||
.TableBorder {}
|
||||
.ImgStyle {}
|
||||
div.Section h1, div.Section h2 {
|
||||
margin: 0 0 0 0em;
|
||||
}
|
||||
div.HeaderStyle h1, div.HeaderStyle h2 {
|
||||
text-align: left;
|
||||
margin: 0 0 0 0;
|
||||
}
|
||||
div.Section {
|
||||
padding 5px;
|
||||
position: relative;
|
||||
}
|
||||
div.Section img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
div.FooterStyle {
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
border: 0 none;
|
||||
border-top: 2px solid #2A5B29;
|
||||
color: #2A5B29;
|
||||
font-size: 12px;
|
||||
margin-top: 2em;
|
||||
}
|
||||
div.FooterStyle img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
text-align: right;
|
||||
}
|
||||
div.FooterStyle span.Gradient {
|
||||
background: white;
|
||||
color: #2A5B29;
|
||||
display: inline-block;
|
||||
height: 30px;
|
||||
line-height: 1;
|
||||
padding-top: 22px;
|
||||
padding-bottom: 20px;
|
||||
padding-left: 2em;
|
||||
vertical-align: middle;
|
||||
max-width:80%;
|
||||
float:left;
|
||||
width:50%;
|
||||
}
|
||||
.FooterStyle a, .FooterStyle a:visited {
|
||||
color: #2A5B29;
|
||||
font-size: 12px;
|
||||
line-height: 1;
|
||||
height: 30px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
div.FooterStyle a.LogoImgLink {
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
float: right;
|
||||
}
|
||||
a .LogoImgLink {
|
||||
}
|
||||
a.LogoImgLink img {
|
||||
}
|
||||
BIN
reports/ap-auto-2021-06-24-06-07-50/report_banner-1000x205.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/CenturyGothic.woff
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/canvil.ico
Normal file
|
After Width: | Height: | Size: 766 B |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-1-print.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-1.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-2-print.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-2.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-3-print.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-3.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-4-print.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-4.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-5-print.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-5.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-6-print.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/chart-6.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,48 @@
|
||||
"Endpoint RX Packet Loss Percentage",
|
||||
Date,"cv_udp-1.1-1.wlan000--1.0.0-A/Packet Loss Percent",Date,"cv_udp-1.1-1.wlan000--1.0.0-B/Packet Loss Percent",Date,"cv_tcp-1.1-1.wlan000--1.0.0-A/Packet Loss Percent",Date,"cv_tcp-1.1-1.wlan000--1.0.0-B/Packet Loss Percent",
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:29.353 UTC",0,"2021-06-14T06:18:29.353 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:31.119 UTC",0,"2021-06-14T06:18:31.119 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:32.314 UTC",0,"2021-06-14T06:18:32.314 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:33.423 UTC",0,"2021-06-14T06:18:33.423 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:34.558 UTC",0,"2021-06-14T06:18:34.558 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:36.329 UTC",0,"2021-06-14T06:18:36.329 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:37.527 UTC",0,"2021-06-14T06:18:37.527 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:38.612 UTC",0,"2021-06-14T06:18:38.612 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:39.718 UTC",0,"2021-06-14T06:18:39.718 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:40.833 UTC",0,"2021-06-14T06:18:40.833 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:41.941 UTC",0,"2021-06-14T06:18:41.941 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:43.908 UTC",0,"2021-06-14T06:18:43.908 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:45.097 UTC",0,"2021-06-14T06:18:45.097 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:46.300 UTC",0,"2021-06-14T06:18:46.300 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:47.459 UTC",0,"2021-06-14T06:18:47.459 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:49.925 UTC",0,"2021-06-14T06:18:49.925 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:51.046 UTC",0,"2021-06-14T06:18:51.046 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:52.185 UTC",0,"2021-06-14T06:18:52.185 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:54.069 UTC",0,"2021-06-14T06:18:54.069 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:55.565 UTC",0,"2021-06-14T06:18:55.565 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:56.700 UTC",0,"2021-06-14T06:18:56.700 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:57.858 UTC",0,"2021-06-14T06:18:57.858 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:59.822 UTC",0,"2021-06-14T06:18:59.822 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:01.008 UTC",0,"2021-06-14T06:19:01.008 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:02.203 UTC",0,"2021-06-14T06:19:02.203 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:03.375 UTC",0,"2021-06-14T06:19:03.375 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:05.214 UTC",0,"2021-06-14T06:19:05.214 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:06.582 UTC",0,"2021-06-14T06:19:06.582 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:07.740 UTC",0,"2021-06-14T06:19:07.740 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:08.908 UTC",0,"2021-06-14T06:19:08.908 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:10.553 UTC",0,"2021-06-14T06:19:10.553 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:11.905 UTC",0,"2021-06-14T06:19:11.905 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:13.039 UTC",0,"2021-06-14T06:19:13.039 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:14.170 UTC",0,"2021-06-14T06:19:14.170 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:15.985 UTC",0,"2021-06-14T06:19:15.985 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:17.198 UTC",0,"2021-06-14T06:19:17.198 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:18.389 UTC",0,"2021-06-14T06:19:18.389 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:19.535 UTC",0,"2021-06-14T06:19:19.535 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:21.236 UTC",0,"2021-06-14T06:19:21.236 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:22.461 UTC",0,"2021-06-14T06:19:22.461 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:23.611 UTC",0,"2021-06-14T06:19:23.611 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:24.730 UTC",0,"2021-06-14T06:19:24.730 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:26.535 UTC",0,"2021-06-14T06:19:26.535 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:27.696 UTC",0,"2021-06-14T06:19:27.696 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:28.941 UTC",0,"2021-06-14T06:19:28.941 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:30.055 UTC",0,"2021-06-14T06:19:30.055 UTC",0,
|
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
@@ -0,0 +1,3 @@
|
||||
"Latency vs Loops",
|
||||
"loop-1",
|
||||
12902
|
||||
|
Can't render this file because it has a wrong number of fields in line 3.
|
@@ -0,0 +1,3 @@
|
||||
"RX Pps vs Loops",
|
||||
"loop-1",
|
||||
9.54248
|
||||
|
Can't render this file because it has a wrong number of fields in line 3.
|
@@ -0,0 +1,59 @@
|
||||
"Realtime Throughput",
|
||||
Date,"Total Upload/RX (Mbps)",Date,"Total Download/RX (Mbps)",Date,"UL + DL Sum/RX (Mbps)",
|
||||
"2021-06-14T06:18:14.491 UTC",0,"2021-06-14T06:18:14.491 UTC",0,"2021-06-14T06:18:14.491 UTC",0,
|
||||
"2021-06-14T06:18:15.696 UTC",0,"2021-06-14T06:18:15.696 UTC",0,"2021-06-14T06:18:15.696 UTC",0,
|
||||
"2021-06-14T06:18:16.929 UTC",0,"2021-06-14T06:18:16.929 UTC",0,"2021-06-14T06:18:16.929 UTC",0,
|
||||
"2021-06-14T06:18:18.013 UTC",0,"2021-06-14T06:18:18.013 UTC",0,"2021-06-14T06:18:18.013 UTC",0,
|
||||
"2021-06-14T06:18:19.762 UTC",0,"2021-06-14T06:18:19.762 UTC",0,"2021-06-14T06:18:19.762 UTC",0,
|
||||
"2021-06-14T06:18:20.906 UTC",0,"2021-06-14T06:18:20.906 UTC",0,"2021-06-14T06:18:20.906 UTC",0,
|
||||
"2021-06-14T06:18:22.048 UTC",0,"2021-06-14T06:18:22.048 UTC",0,"2021-06-14T06:18:22.048 UTC",0,
|
||||
"2021-06-14T06:18:23.187 UTC",0,"2021-06-14T06:18:23.187 UTC",0,"2021-06-14T06:18:23.187 UTC",0,
|
||||
"2021-06-14T06:18:25.015 UTC",0,"2021-06-14T06:18:25.015 UTC",0,"2021-06-14T06:18:25.015 UTC",0,
|
||||
"2021-06-14T06:18:26.182 UTC",0,"2021-06-14T06:18:26.182 UTC",0,"2021-06-14T06:18:26.182 UTC",0,
|
||||
"2021-06-14T06:18:28.153 UTC",0,"2021-06-14T06:18:28.153 UTC",0,"2021-06-14T06:18:28.153 UTC",0,
|
||||
"2021-06-14T06:18:29.442 UTC",1.75003,"2021-06-14T06:18:29.442 UTC",0,"2021-06-14T06:18:29.442 UTC",1.75003,
|
||||
"2021-06-14T06:18:31.174 UTC",1.75003,"2021-06-14T06:18:31.174 UTC",1.80106,"2021-06-14T06:18:31.174 UTC",3.55109,
|
||||
"2021-06-14T06:18:32.316 UTC",2.87806,"2021-06-14T06:18:32.316 UTC",5.20833,"2021-06-14T06:18:32.316 UTC",8.08638,
|
||||
"2021-06-14T06:18:33.426 UTC",3.2864,"2021-06-14T06:18:33.426 UTC",3.45554,"2021-06-14T06:18:33.426 UTC",6.74194,
|
||||
"2021-06-14T06:18:34.560 UTC",4.04095,"2021-06-14T06:18:34.560 UTC",1.26318,"2021-06-14T06:18:34.560 UTC",5.30413,
|
||||
"2021-06-14T06:18:36.404 UTC",4.73456,"2021-06-14T06:18:36.404 UTC",0.31271,"2021-06-14T06:18:36.404 UTC",5.04727,
|
||||
"2021-06-14T06:18:37.534 UTC",3.89843,"2021-06-14T06:18:37.534 UTC",4.1251,"2021-06-14T06:18:37.534 UTC",8.02353,
|
||||
"2021-06-14T06:18:38.614 UTC",4.17425,"2021-06-14T06:18:38.614 UTC",7.22493,"2021-06-14T06:18:38.614 UTC",11.39918,
|
||||
"2021-06-14T06:18:39.720 UTC",4.03886,"2021-06-14T06:18:39.720 UTC",4.27919,"2021-06-14T06:18:39.720 UTC",8.31805,
|
||||
"2021-06-14T06:18:40.835 UTC",4.41466,"2021-06-14T06:18:40.835 UTC",4.67455,"2021-06-14T06:18:40.835 UTC",9.0892,
|
||||
"2021-06-14T06:18:41.944 UTC",3.85986,"2021-06-14T06:18:41.944 UTC",1.21643,"2021-06-14T06:18:41.944 UTC",5.07629,
|
||||
"2021-06-14T06:18:43.911 UTC",6.43784,"2021-06-14T06:18:43.911 UTC",0.68502,"2021-06-14T06:18:43.911 UTC",7.12286,
|
||||
"2021-06-14T06:18:45.104 UTC",10.06896,"2021-06-14T06:18:45.104 UTC",2.25064,"2021-06-14T06:18:45.104 UTC",12.3196,
|
||||
"2021-06-14T06:18:46.305 UTC",19.0978,"2021-06-14T06:18:46.305 UTC",4.0045,"2021-06-14T06:18:46.305 UTC",23.1023,
|
||||
"2021-06-14T06:18:48.754 UTC",36.90406,"2021-06-14T06:18:48.754 UTC",4.86103,"2021-06-14T06:18:48.754 UTC",41.76509,
|
||||
"2021-06-14T06:18:49.929 UTC",53.73509,"2021-06-14T06:18:49.929 UTC",5.78265,"2021-06-14T06:18:49.929 UTC",59.51774,
|
||||
"2021-06-14T06:18:51.049 UTC",66.41366,"2021-06-14T06:18:51.049 UTC",7.63314,"2021-06-14T06:18:51.049 UTC",74.0468,
|
||||
"2021-06-14T06:18:52.194 UTC",84.9243,"2021-06-14T06:18:52.194 UTC",9.92113,"2021-06-14T06:18:52.194 UTC",94.84543,
|
||||
"2021-06-14T06:18:54.399 UTC",96.77401,"2021-06-14T06:18:54.399 UTC",9.92113,"2021-06-14T06:18:54.399 UTC",106.69514,
|
||||
"2021-06-14T06:18:55.568 UTC",94.12947,"2021-06-14T06:18:55.568 UTC",7.71467,"2021-06-14T06:18:55.568 UTC",101.84414,
|
||||
"2021-06-14T06:18:56.709 UTC",96.54569,"2021-06-14T06:18:56.709 UTC",8.34182,"2021-06-14T06:18:56.709 UTC",104.8875,
|
||||
"2021-06-14T06:18:57.866 UTC",98.07408,"2021-06-14T06:18:57.866 UTC",8.86503,"2021-06-14T06:18:57.866 UTC",106.93911,
|
||||
"2021-06-14T06:18:59.826 UTC",94.74527,"2021-06-14T06:18:59.826 UTC",7.48923,"2021-06-14T06:18:59.826 UTC",102.2345,
|
||||
"2021-06-14T06:19:01.015 UTC",94.41135,"2021-06-14T06:19:01.015 UTC",7.34423,"2021-06-14T06:19:01.015 UTC",101.75558,
|
||||
"2021-06-14T06:19:02.206 UTC",95.25536,"2021-06-14T06:19:02.206 UTC",8.33255,"2021-06-14T06:19:02.206 UTC",103.58791,
|
||||
"2021-06-14T06:19:03.387 UTC",97.57287,"2021-06-14T06:19:03.387 UTC",8.50956,"2021-06-14T06:19:03.387 UTC",106.08243,
|
||||
"2021-06-14T06:19:05.376 UTC",99.95112,"2021-06-14T06:19:05.376 UTC",5.75767,"2021-06-14T06:19:05.376 UTC",105.70879,
|
||||
"2021-06-14T06:19:06.590 UTC",92.26879,"2021-06-14T06:19:06.590 UTC",4.72484,"2021-06-14T06:19:06.590 UTC",96.99363,
|
||||
"2021-06-14T06:19:07.743 UTC",86.53777,"2021-06-14T06:19:07.743 UTC",4.7272,"2021-06-14T06:19:07.743 UTC",91.26497,
|
||||
"2021-06-14T06:19:08.978 UTC",84.74502,"2021-06-14T06:19:08.978 UTC",4.58302,"2021-06-14T06:19:08.978 UTC",89.32804,
|
||||
"2021-06-14T06:19:10.756 UTC",87.24463,"2021-06-14T06:19:10.756 UTC",4.58302,"2021-06-14T06:19:10.756 UTC",91.82764,
|
||||
"2021-06-14T06:19:11.916 UTC",92.16941,"2021-06-14T06:19:11.916 UTC",3.65123,"2021-06-14T06:19:11.916 UTC",95.82064,
|
||||
"2021-06-14T06:19:13.041 UTC",91.02048,"2021-06-14T06:19:13.041 UTC",3.49271,"2021-06-14T06:19:13.041 UTC",94.51319,
|
||||
"2021-06-14T06:19:14.173 UTC",87.2426,"2021-06-14T06:19:14.173 UTC",2.12289,"2021-06-14T06:19:14.173 UTC",89.36549,
|
||||
"2021-06-14T06:19:16.022 UTC",86.80179,"2021-06-14T06:19:16.022 UTC",1.62499,"2021-06-14T06:19:16.022 UTC",88.42678,
|
||||
"2021-06-14T06:19:17.204 UTC",86.8341,"2021-06-14T06:19:17.204 UTC",1.67498,"2021-06-14T06:19:17.204 UTC",88.50908,
|
||||
"2021-06-14T06:19:18.409 UTC",86.3232,"2021-06-14T06:19:18.409 UTC",1.92374,"2021-06-14T06:19:18.409 UTC",88.24694,
|
||||
"2021-06-14T06:19:19.624 UTC",84.41218,"2021-06-14T06:19:19.624 UTC",2.04373,"2021-06-14T06:19:19.624 UTC",86.45591,
|
||||
"2021-06-14T06:19:21.316 UTC",86.27471,"2021-06-14T06:19:21.316 UTC",2.71882,"2021-06-14T06:19:21.316 UTC",88.99353,
|
||||
"2021-06-14T06:19:22.478 UTC",83.51591,"2021-06-14T06:19:22.478 UTC",2.0343,"2021-06-14T06:19:22.478 UTC",85.55021,
|
||||
"2021-06-14T06:19:23.613 UTC",84.26147,"2021-06-14T06:19:23.613 UTC",0.70839,"2021-06-14T06:19:23.613 UTC",84.96986,
|
||||
"2021-06-14T06:19:24.737 UTC",87.03975,"2021-06-14T06:19:24.737 UTC",0.80498,"2021-06-14T06:19:24.737 UTC",87.84473,
|
||||
"2021-06-14T06:19:26.585 UTC",86.71005,"2021-06-14T06:19:26.585 UTC",0.80498,"2021-06-14T06:19:26.585 UTC",87.51503,
|
||||
"2021-06-14T06:19:27.763 UTC",86.6069,"2021-06-14T06:19:27.763 UTC",1.32252,"2021-06-14T06:19:27.763 UTC",87.92942,
|
||||
"2021-06-14T06:19:28.944 UTC",84.86319,"2021-06-14T06:19:28.944 UTC",2.06289,"2021-06-14T06:19:28.944 UTC",86.92608,
|
||||
"2021-06-14T06:19:30.067 UTC",82.69794,"2021-06-14T06:19:30.067 UTC",2.44029,"2021-06-14T06:19:30.067 UTC",85.13823,
|
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
@@ -0,0 +1,48 @@
|
||||
"Rx Errors",
|
||||
Date,"cv_udp-1.1-1.wlan000--1.0.0-A/Errors",Date,"cv_udp-1.1-1.wlan000--1.0.0-B/Errors",Date,"cv_tcp-1.1-1.wlan000--1.0.0-A/Errors",Date,"cv_tcp-1.1-1.wlan000--1.0.0-B/Errors",
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:29.353 UTC",0,"2021-06-14T06:18:29.353 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:31.119 UTC",0,"2021-06-14T06:18:31.119 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:32.314 UTC",0,"2021-06-14T06:18:32.314 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:33.423 UTC",0,"2021-06-14T06:18:33.423 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:34.558 UTC",0,"2021-06-14T06:18:34.558 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:36.329 UTC",0,"2021-06-14T06:18:36.329 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:37.527 UTC",0,"2021-06-14T06:18:37.527 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:38.612 UTC",0,"2021-06-14T06:18:38.612 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:39.718 UTC",0,"2021-06-14T06:18:39.718 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:40.833 UTC",0,"2021-06-14T06:18:40.833 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:41.941 UTC",0,"2021-06-14T06:18:41.941 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:43.908 UTC",0,"2021-06-14T06:18:43.908 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:45.097 UTC",0,"2021-06-14T06:18:45.097 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:46.300 UTC",0,"2021-06-14T06:18:46.300 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:47.459 UTC",0,"2021-06-14T06:18:47.459 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:49.925 UTC",0,"2021-06-14T06:18:49.925 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:51.046 UTC",0,"2021-06-14T06:18:51.046 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:52.185 UTC",0,"2021-06-14T06:18:52.185 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:54.069 UTC",0,"2021-06-14T06:18:54.069 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:55.565 UTC",0,"2021-06-14T06:18:55.565 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:56.700 UTC",0,"2021-06-14T06:18:56.700 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:57.858 UTC",0,"2021-06-14T06:18:57.858 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:18:59.822 UTC",0,"2021-06-14T06:18:59.822 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:01.008 UTC",0,"2021-06-14T06:19:01.008 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:02.203 UTC",0,"2021-06-14T06:19:02.203 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:03.375 UTC",0,"2021-06-14T06:19:03.375 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:05.214 UTC",0,"2021-06-14T06:19:05.214 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:06.582 UTC",0,"2021-06-14T06:19:06.582 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:07.740 UTC",0,"2021-06-14T06:19:07.740 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:08.908 UTC",0,"2021-06-14T06:19:08.908 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:10.553 UTC",0,"2021-06-14T06:19:10.553 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:11.905 UTC",0,"2021-06-14T06:19:11.905 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:13.039 UTC",0,"2021-06-14T06:19:13.039 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:14.170 UTC",0,"2021-06-14T06:19:14.170 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:15.985 UTC",0,"2021-06-14T06:19:15.985 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:17.198 UTC",0,"2021-06-14T06:19:17.198 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:18.389 UTC",0,"2021-06-14T06:19:18.389 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:19.535 UTC",0,"2021-06-14T06:19:19.535 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:21.236 UTC",0,"2021-06-14T06:19:21.236 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:22.461 UTC",0,"2021-06-14T06:19:22.461 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:23.611 UTC",0,"2021-06-14T06:19:23.611 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:24.730 UTC",0,"2021-06-14T06:19:24.730 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:26.535 UTC",0,"2021-06-14T06:19:26.535 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:27.696 UTC",0,"2021-06-14T06:19:27.696 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:28.941 UTC",0,"2021-06-14T06:19:28.941 UTC",0,
|
||||
NA,NA,NA,NA,"2021-06-14T06:19:30.055 UTC",0,"2021-06-14T06:19:30.055 UTC",0,
|
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
@@ -0,0 +1,3 @@
|
||||
"Throughput vs Loops",
|
||||
"loop-1",
|
||||
71.56142
|
||||
|
Can't render this file because it has a wrong number of fields in line 3.
|
11
reports/dataplane-2021-06-13-11-19-31/custom.css
Normal file
@@ -0,0 +1,11 @@
|
||||
/* file reserved for customer styling of reports */
|
||||
/* rename to custom.css to take effect */
|
||||
|
||||
.TitleFont {}
|
||||
.HeaderFont {}
|
||||
.TableFont {}
|
||||
.TableBorder {}
|
||||
.ImgStyle {}
|
||||
.HeaderStyle {}
|
||||
.FooterStyle {}
|
||||
/* eof */
|
||||
495
reports/dataplane-2021-06-13-11-19-31/index-print.html
Normal file
@@ -0,0 +1,495 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8' />
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1' />
|
||||
<title>Dataplane Test</title> <link rel='shortcut icon' href='canvil.ico' type='image/x-icon' />
|
||||
<link rel='stylesheet' href='report.css' />
|
||||
<link rel='stylesheet' href='custom.css' />
|
||||
<style>
|
||||
pre {
|
||||
overflow: auto;
|
||||
}
|
||||
img {
|
||||
width: 100%;
|
||||
max-width: 8in;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class='Section report_banner-1000x205' style='background-image:url("report_banner-1000x205.jpg");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
|
||||
<img align='right' style='padding:0;margin:5;width:200px;' src='CandelaLogo2-90dpi-200x90-trans.png' border='0' />
|
||||
<div class='HeaderStyle'>
|
||||
<h1 class='TitleFontPrint'>Dataplane Test</h1><br/><h4 class='TitleFontPrintSub'><br><br><br><br><br>Sun Jun 13 23:19:35 PDT 2021</h4></div>
|
||||
|
||||
</div><!-- end section -->
|
||||
<div class='contentDiv'>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
<table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
|
||||
<tr>
|
||||
<th colspan="2">
|
||||
Test Setup Information
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Device Under Test
|
||||
</td>
|
||||
<td>
|
||||
<table width="100%" border="0" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
|
||||
<tr>
|
||||
<td>
|
||||
Name
|
||||
</td>
|
||||
<td colspan="3">
|
||||
basic-ext-03-03
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Software Version
|
||||
</td>
|
||||
<td>
|
||||
ecw5410-1.1.0.tar.gz
|
||||
</td>
|
||||
<td>
|
||||
Hardware Version
|
||||
</td>
|
||||
<td>
|
||||
ecw5410
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Model Number
|
||||
</td>
|
||||
<td>
|
||||
ecw5410
|
||||
</td>
|
||||
<td>
|
||||
Serial Number
|
||||
</td>
|
||||
<td>
|
||||
903cb3944857
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SSIDs
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<pre>ssid_wpa2_2g </pre>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Passwords
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<pre>something </pre>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
BSSIDs
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<pre>90:3c:b3:94:48:58 </pre>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Notes
|
||||
</td>
|
||||
<td colspan="3">
|
||||
[BLANK]
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 align="left">
|
||||
Objective
|
||||
</h2>
|
||||
<p align="left" width="900">
|
||||
The Candela WiFi data plane test is designed to conduct an automatic
|
||||
testing of all combinations of station types, MIMO types, Channel
|
||||
Bandwidths, Traffic types, Traffic direction, Frame sizes etc… It will
|
||||
run a quick throughput test at every combination of these test variables
|
||||
and plot all the results in a set of charts to compare performance. The
|
||||
user is allowed to define an intended load as a percentage of the max
|
||||
theoretical PHY rate for every test combination. The expected behavior
|
||||
is that for every test combination the achieved throughput should be at
|
||||
least 70% of the theoretical max PHY rate under ideal test conditions.
|
||||
This test provides a way to go through hundreds of combinations in a
|
||||
fully automated fashion and very easily find patterns and problem areas
|
||||
which can be further debugged using more specific testing.
|
||||
</p>
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
<br/><br/>Throughput for each different traffic type. Datasets with names ending in '-LL' will include the IP, TCP, UDP and Ethernet header bytes in their calculation. For Armageddon traffic only, low-level throughput includes the Ethernet FCS and preamble. Other datasets report 'goodput' for the protocol.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Throughput_vs_Loops-1.csv'>CSV Data for Throughput vs Loops</a><br/></small>
|
||||
<img src='kpi-chart-0-print.png' alt='Throughput vs Loops'><br/>
|
||||
<img src='chart-1-print.png' alt='Throughput as % of theoretical vs Packet Size'><br/>
|
||||
|
||||
<br/><br/>Pps throughput for each different traffic type. The values are estimated packets-per-second over the DUT, but some protocols such as TCP make this difficult to know for certain, so the value is extrapolated.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-RX_Pps_vs_Loops-1.csv'>CSV Data for RX Pps vs Loops</a><br/></small>
|
||||
<img src='chart-2-print.png' alt='RX Pps vs Loops'><br/>
|
||||
|
||||
<br/><br/>Latency for each different traffic type. If opposite-direction traffic is non-zero, then round-trip time will be reported. Otherwise, one-way latency will be reported.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Latency_vs_Loops-1.csv'>CSV Data for Latency vs Loops</a><br/></small>
|
||||
<img src='chart-3-print.png' alt='Latency vs Loops'><br/>
|
||||
|
||||
<br/><br/>Realtime Graph shows summary download and upload RX Goodput rate of connections created by this test. Goodput does not include Ethernet, IP, UDP/TCP header overhead.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Realtime_Throughput-1.csv'>CSV Data for Realtime Throughput</a><br/></small>
|
||||
<img src='chart-4-print.png' alt='Realtime Throughput'><br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>
|
||||
Test Information
|
||||
</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
Message
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Starting dataplane test with: 1 iterations.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<br/>
|
||||
<br/><br/><table border='1' style='font-size:8px'>
|
||||
<tr><th>Channel</th><th>Frequency</th><th>Security</th><th>NSS</th><th>Cfg-Mode</th><th>Bandwidth</th><th>Pkt</th><th>Traffic-Type</th><th>Direction</th><th>Atten</th><th>Rotation</th><th>Duration</th><th>Offered-1m</th><th>Rx-Bps</th><th>Rx-Bps-1m</th><th>Rx-Bps-LL</th><th>Rx-Bps-3s</th><th>Phy-Rate</th><th>Theoretical</th><th>Throughput%</th><th>RSSI</th><th>Tx-Failed</th><th>Tx-Failed%</th><th>Tx-Rate</th><th>Rx-Rate</th><th>Rpt-Mode</th><th>Rpt-Mode-Brief</th></tr>
|
||||
<tr><td>6</td><td>2437</td><td>WPA2</td><td>3</td><td>AUTO</td><td>20</td><td>1024</td><td>TCP</td><td>DUT-TX</td><td>NA</td><td>NA</td><td>60</td><td>75.853 Mbps</td><td>69.903 Mbps</td><td>71.561 Mbps</td><td>75.684 Mbps</td><td>83.13 Mbps</td><td>1.3 Gbps</td><td>NA</td><td>NA</td><td>-5</td><td>0 / 119365</td><td>0</td><td>156 Mbps</td><td>19.5 Mbps</td><td>802.11bgn</td><td>802.11n</td></tr>
|
||||
</table>
|
||||
|
||||
<br/><br/>Brief csv report, may be imported into third-party tools.
|
||||
<br/>
|
||||
<br/><br/><table border='1' >
|
||||
<tr><th>Step Index</th><th>Position [Deg]</th><th>Attenuation [dB]</th><th>Throughput [Mbps]</th><th>Beacon RSSI [dBm]</th><th>Data RSSI [dBm]</th></tr>
|
||||
<tr><td>0</td><td>NA</td><td>0</td><td>69.90</td><td>0</td><td>-5</td></tr>
|
||||
</table>
|
||||
|
||||
<br/><br/>Packet Loss Percentage graph shows the percentage of lost packets as detected by the receiving endpoint due to packet gaps. If there is full packet loss, then this will not report any loss since there will be no gap to detect.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Endpoint_RX_Packet_Loss_Percentage-1.csv'>CSV Data for Endpoint RX Packet Loss Percentage</a><br/></small>
|
||||
<img src='chart-5-print.png' alt='Endpoint RX Packet Loss Percentage'><br/>
|
||||
|
||||
<br/><br/>Error Graph shows occurances of packet errors.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Rx_Errors-1.csv'>CSV Data for Rx Errors</a><br/></small>
|
||||
<img src='chart-6-print.png' alt='Rx Errors'><br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
<table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
|
||||
<tr>
|
||||
<th colspan="2">
|
||||
Test configuration and LANforge software version
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Path Loss
|
||||
</td>
|
||||
<td>
|
||||
10
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Requested Speed
|
||||
</td>
|
||||
<td>
|
||||
85%
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Requested Opposite Speed
|
||||
</td>
|
||||
<td>
|
||||
85%
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Multi-Conn
|
||||
</td>
|
||||
<td>
|
||||
1
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Armageddon Multi-Pkt
|
||||
</td>
|
||||
<td>
|
||||
1000
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
ToS
|
||||
</td>
|
||||
<td>
|
||||
0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Duration:
|
||||
</td>
|
||||
<td>
|
||||
1 min (1 m)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Settle Time:
|
||||
</td>
|
||||
<td>
|
||||
1 sec (1 s)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Send Buffer Size:
|
||||
</td>
|
||||
<td>
|
||||
OS Default
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Receive Buffer Size:
|
||||
</td>
|
||||
<td>
|
||||
OS Default
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Channels
|
||||
</td>
|
||||
<td>
|
||||
AUTO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Spatial Streams
|
||||
</td>
|
||||
<td>
|
||||
AUTO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Bandwidth
|
||||
</td>
|
||||
<td>
|
||||
AUTO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Attenuator-1
|
||||
</td>
|
||||
<td>
|
||||
0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Attenuation-1
|
||||
</td>
|
||||
<td>
|
||||
0..+50..950
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Attenuator-2
|
||||
</td>
|
||||
<td>
|
||||
0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Attenuation-2
|
||||
</td>
|
||||
<td>
|
||||
0..+50..950
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Turntable Chamber
|
||||
</td>
|
||||
<td>
|
||||
0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Turntable Angles
|
||||
</td>
|
||||
<td>
|
||||
0..+45..359
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Modes
|
||||
</td>
|
||||
<td>
|
||||
Auto
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Packet Size
|
||||
</td>
|
||||
<td>
|
||||
1024
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Security
|
||||
</td>
|
||||
<td>
|
||||
AUTO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Traffic Type
|
||||
</td>
|
||||
<td>
|
||||
TCP
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Direction
|
||||
</td>
|
||||
<td>
|
||||
DUT Transmit
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Upstream Port
|
||||
</td>
|
||||
<td>
|
||||
1.1.eth1 Firmware: 0. 6-5 Resource: lf0350-9540
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
WiFi Port
|
||||
</td>
|
||||
<td>
|
||||
1.1.wlan000 Firmware: 10.1-ct-8x-__xtH-022-bcdb24ff Resource:
|
||||
lf0350-9540
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Outer Loop is Attenuation
|
||||
</td>
|
||||
<td>
|
||||
false
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Show Events
|
||||
</td>
|
||||
<td>
|
||||
true
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Auto Save Report
|
||||
</td>
|
||||
<td>
|
||||
true
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Build Date
|
||||
</td>
|
||||
<td>
|
||||
Wed 26 May 2021 11:06:38 AM PDT
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Build Version
|
||||
</td>
|
||||
<td>
|
||||
5.4.3
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Git Version
|
||||
</td>
|
||||
<td>
|
||||
899b50be0d42cdc86f0a6ae44d9bd6aaab43fe0b
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<br/>
|
||||
<br/><a href='kpi.csv'>Key Performance Indicators CSV</a><br/><br/>
|
||||
</div><!-- end content-div -->
|
||||
<div class='FooterStyle'><span class='Gradient'>Generated by Candela Technologies LANforge network testing tool.<br/>
|
||||
<a href='https://www.candelatech.com/' target='_blank'>www.candelatech.com</a>
|
||||
</span>
|
||||
<a align='right' class='LogoImgLink' href='https://www.candelatech.com/' target='_blank'><img align='right' src='logo.png'></a>
|
||||
</div><br/>
|
||||
</body>
|
||||
</html>
|
||||
500
reports/dataplane-2021-06-13-11-19-31/index.html
Normal file
@@ -0,0 +1,500 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8' />
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1' />
|
||||
<title>Dataplane Test</title> <link rel='shortcut icon' href='canvil.ico' type='image/x-icon' />
|
||||
<link rel='stylesheet' href='report.css' />
|
||||
<link rel='stylesheet' href='custom.css' />
|
||||
<style>
|
||||
pre {
|
||||
overflow: auto;
|
||||
}
|
||||
img {
|
||||
width: 100%;
|
||||
max-width: 8in;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class='Section report_banner-1000x205' style='background-image:url("report_banner-1000x205.jpg");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
|
||||
<img align='right' style='padding:0;margin:5;width:200px;' src='CandelaLogo2-90dpi-200x90-trans.png' border='0' />
|
||||
<div class='HeaderStyle'>
|
||||
<h1 class='TitleFontPrint'>Dataplane Test</h1><br/><h4 class='TitleFontPrintSub'><br><br><br><br><br>Sun Jun 13 23:19:31 PDT 2021</h4></div>
|
||||
|
||||
</div><!-- end section -->
|
||||
<div class='contentDiv'>
|
||||
<a href='dataplane-report-2021-06-13-11-18-08.pdf'>PDF Report</a><br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
<table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
|
||||
<tr>
|
||||
<th colspan="2">
|
||||
Test Setup Information
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Device Under Test
|
||||
</td>
|
||||
<td>
|
||||
<table width="100%" border="0" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
|
||||
<tr>
|
||||
<td>
|
||||
Name
|
||||
</td>
|
||||
<td colspan="3">
|
||||
basic-ext-03-03
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Software Version
|
||||
</td>
|
||||
<td>
|
||||
ecw5410-1.1.0.tar.gz
|
||||
</td>
|
||||
<td>
|
||||
Hardware Version
|
||||
</td>
|
||||
<td>
|
||||
ecw5410
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Model Number
|
||||
</td>
|
||||
<td>
|
||||
ecw5410
|
||||
</td>
|
||||
<td>
|
||||
Serial Number
|
||||
</td>
|
||||
<td>
|
||||
903cb3944857
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SSIDs
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<pre>ssid_wpa2_2g </pre>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Passwords
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<pre>something </pre>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
BSSIDs
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<pre>90:3c:b3:94:48:58 </pre>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Notes
|
||||
</td>
|
||||
<td colspan="3">
|
||||
[BLANK]
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 align="left">
|
||||
Objective
|
||||
</h2>
|
||||
<p align="left" width="900">
|
||||
The Candela WiFi data plane test is designed to conduct an automatic
|
||||
testing of all combinations of station types, MIMO types, Channel
|
||||
Bandwidths, Traffic types, Traffic direction, Frame sizes etc… It will
|
||||
run a quick throughput test at every combination of these test variables
|
||||
and plot all the results in a set of charts to compare performance. The
|
||||
user is allowed to define an intended load as a percentage of the max
|
||||
theoretical PHY rate for every test combination. The expected behavior
|
||||
is that for every test combination the achieved throughput should be at
|
||||
least 70% of the theoretical max PHY rate under ideal test conditions.
|
||||
This test provides a way to go through hundreds of combinations in a
|
||||
fully automated fashion and very easily find patterns and problem areas
|
||||
which can be further debugged using more specific testing.
|
||||
</p>
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
<br/><br/>Throughput for each different traffic type. Datasets with names ending in '-LL' will include the IP, TCP, UDP and Ethernet header bytes in their calculation. For Armageddon traffic only, low-level throughput includes the Ethernet FCS and preamble. Other datasets report 'goodput' for the protocol.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Throughput_vs_Loops-1.csv'>CSV Data for Throughput vs Loops</a><br/></small>
|
||||
<img src='kpi-chart-0.png' alt='Throughput vs Loops'><br/>
|
||||
<img src='chart-1.png' alt='Throughput as % of theoretical vs Packet Size'><br/>
|
||||
|
||||
<br/><br/>Pps throughput for each different traffic type. The values are estimated packets-per-second over the DUT, but some protocols such as TCP make this difficult to know for certain, so the value is extrapolated.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-RX_Pps_vs_Loops-1.csv'>CSV Data for RX Pps vs Loops</a><br/></small>
|
||||
<img src='chart-2.png' alt='RX Pps vs Loops'><br/>
|
||||
|
||||
<br/><br/>Latency for each different traffic type. If opposite-direction traffic is non-zero, then round-trip time will be reported. Otherwise, one-way latency will be reported.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Latency_vs_Loops-1.csv'>CSV Data for Latency vs Loops</a><br/></small>
|
||||
<img src='chart-3.png' alt='Latency vs Loops'><br/>
|
||||
|
||||
<br/><br/>Realtime Graph shows summary download and upload RX Goodput rate of connections created by this test. Goodput does not include Ethernet, IP, UDP/TCP header overhead.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Realtime_Throughput-1.csv'>CSV Data for Realtime Throughput</a><br/></small>
|
||||
<img src='chart-4.png' alt='Realtime Throughput'><br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>
|
||||
Test Information
|
||||
</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
Message
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Starting dataplane test with: 1 iterations.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<br/>
|
||||
<br/><br/><table border='1' style='font-size:8px'>
|
||||
<tr><th>Channel</th><th>Frequency</th><th>Security</th><th>NSS</th><th>Cfg-Mode</th><th>Bandwidth</th><th>Pkt</th><th>Traffic-Type</th><th>Direction</th><th>Atten</th><th>Rotation</th><th>Duration</th><th>Offered-1m</th><th>Rx-Bps</th><th>Rx-Bps-1m</th><th>Rx-Bps-LL</th><th>Rx-Bps-3s</th><th>Phy-Rate</th><th>Theoretical</th><th>Throughput%</th><th>RSSI</th><th>Tx-Failed</th><th>Tx-Failed%</th><th>Tx-Rate</th><th>Rx-Rate</th><th>Rpt-Mode</th><th>Rpt-Mode-Brief</th></tr>
|
||||
<tr><td>6</td><td>2437</td><td>WPA2</td><td>3</td><td>AUTO</td><td>20</td><td>1024</td><td>TCP</td><td>DUT-TX</td><td>NA</td><td>NA</td><td>60</td><td>75.853 Mbps</td><td>69.903 Mbps</td><td>71.561 Mbps</td><td>75.684 Mbps</td><td>83.13 Mbps</td><td>1.3 Gbps</td><td>NA</td><td>NA</td><td>-5</td><td>0 / 119365</td><td>0</td><td>156 Mbps</td><td>19.5 Mbps</td><td>802.11bgn</td><td>802.11n</td></tr>
|
||||
</table>
|
||||
<br/><a href='text-tab-0.csv'>TAB Delineated Data for Table Above</a>
|
||||
<br/><a href='text-csv-0.csv'>CSV Data for Table Above</a>
|
||||
|
||||
<br/><br/>Brief csv report, may be imported into third-party tools.
|
||||
<br/>
|
||||
<br/><br/><table border='1' >
|
||||
<tr><th>Step Index</th><th>Position [Deg]</th><th>Attenuation [dB]</th><th>Throughput [Mbps]</th><th>Beacon RSSI [dBm]</th><th>Data RSSI [dBm]</th></tr>
|
||||
<tr><td>0</td><td>NA</td><td>0</td><td>69.90</td><td>0</td><td>-5</td></tr>
|
||||
</table>
|
||||
<br/><a href='text-tab-1.csv'>TAB Delineated Data for Table Above</a>
|
||||
<br/><a href='text-csv-1.csv'>CSV Data for Table Above</a>
|
||||
|
||||
<br/><br/>Packet Loss Percentage graph shows the percentage of lost packets as detected by the receiving endpoint due to packet gaps. If there is full packet loss, then this will not report any loss since there will be no gap to detect.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Endpoint_RX_Packet_Loss_Percentage-1.csv'>CSV Data for Endpoint RX Packet Loss Percentage</a><br/></small>
|
||||
<img src='chart-5.png' alt='Endpoint RX Packet Loss Percentage'><br/>
|
||||
|
||||
<br/><br/>Error Graph shows occurances of packet errors.
|
||||
<br/>
|
||||
<small><br/><a href='csv-data/data-Rx_Errors-1.csv'>CSV Data for Rx Errors</a><br/></small>
|
||||
<img src='chart-6.png' alt='Rx Errors'><br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
<table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
|
||||
<tr>
|
||||
<th colspan="2">
|
||||
Test configuration and LANforge software version
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Path Loss
|
||||
</td>
|
||||
<td>
|
||||
10
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Requested Speed
|
||||
</td>
|
||||
<td>
|
||||
85%
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Requested Opposite Speed
|
||||
</td>
|
||||
<td>
|
||||
85%
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Multi-Conn
|
||||
</td>
|
||||
<td>
|
||||
1
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Armageddon Multi-Pkt
|
||||
</td>
|
||||
<td>
|
||||
1000
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
ToS
|
||||
</td>
|
||||
<td>
|
||||
0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Duration:
|
||||
</td>
|
||||
<td>
|
||||
1 min (1 m)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Settle Time:
|
||||
</td>
|
||||
<td>
|
||||
1 sec (1 s)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Send Buffer Size:
|
||||
</td>
|
||||
<td>
|
||||
OS Default
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Receive Buffer Size:
|
||||
</td>
|
||||
<td>
|
||||
OS Default
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Channels
|
||||
</td>
|
||||
<td>
|
||||
AUTO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Spatial Streams
|
||||
</td>
|
||||
<td>
|
||||
AUTO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Bandwidth
|
||||
</td>
|
||||
<td>
|
||||
AUTO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Attenuator-1
|
||||
</td>
|
||||
<td>
|
||||
0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Attenuation-1
|
||||
</td>
|
||||
<td>
|
||||
0..+50..950
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Attenuator-2
|
||||
</td>
|
||||
<td>
|
||||
0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Attenuation-2
|
||||
</td>
|
||||
<td>
|
||||
0..+50..950
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Turntable Chamber
|
||||
</td>
|
||||
<td>
|
||||
0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Turntable Angles
|
||||
</td>
|
||||
<td>
|
||||
0..+45..359
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Modes
|
||||
</td>
|
||||
<td>
|
||||
Auto
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Packet Size
|
||||
</td>
|
||||
<td>
|
||||
1024
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Security
|
||||
</td>
|
||||
<td>
|
||||
AUTO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Traffic Type
|
||||
</td>
|
||||
<td>
|
||||
TCP
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Direction
|
||||
</td>
|
||||
<td>
|
||||
DUT Transmit
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Upstream Port
|
||||
</td>
|
||||
<td>
|
||||
1.1.eth1 Firmware: 0. 6-5 Resource: lf0350-9540
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
WiFi Port
|
||||
</td>
|
||||
<td>
|
||||
1.1.wlan000 Firmware: 10.1-ct-8x-__xtH-022-bcdb24ff Resource:
|
||||
lf0350-9540
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Outer Loop is Attenuation
|
||||
</td>
|
||||
<td>
|
||||
false
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Show Events
|
||||
</td>
|
||||
<td>
|
||||
true
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Auto Save Report
|
||||
</td>
|
||||
<td>
|
||||
true
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Build Date
|
||||
</td>
|
||||
<td>
|
||||
Wed 26 May 2021 11:06:38 AM PDT
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Build Version
|
||||
</td>
|
||||
<td>
|
||||
5.4.3
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Git Version
|
||||
</td>
|
||||
<td>
|
||||
899b50be0d42cdc86f0a6ae44d9bd6aaab43fe0b
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<br/>
|
||||
<br/><a href='kpi.csv'>Key Performance Indicators CSV</a><br/><br/>
|
||||
</div><!-- end content-div -->
|
||||
<div class='FooterStyle'><span class='Gradient'>Generated by Candela Technologies LANforge network testing tool.<br/>
|
||||
<a href='https://www.candelatech.com/' target='_blank'>www.candelatech.com</a>
|
||||
</span>
|
||||
<a align='right' class='LogoImgLink' href='https://www.candelatech.com/' target='_blank'><img align='right' src='logo.png'></a>
|
||||
</div><br/>
|
||||
</body>
|
||||
</html>
|
||||
BIN
reports/dataplane-2021-06-13-11-19-31/kpi-chart-0-print.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
reports/dataplane-2021-06-13-11-19-31/kpi-chart-0.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
2
reports/dataplane-2021-06-13-11-19-31/kpi.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
Date test-rig dut-hw-version dut-sw-version dut-model-num dut-serial-num test-priority test-id short-description pass/fail numeric-score test details Units Graph-Group Subtest-Pass Subtest-Fail
|
||||
1623651570763 ecw5410 ecw5410-1.1.0.tar.gz ecw5410 903cb3944857 90 Dataplane TCP-DUT-TX-1024pkt-sz 69.90298 Throughput at specified settings. Mbps Throughput 0 0
|
||||
|
BIN
reports/dataplane-2021-06-13-11-19-31/logo.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
256
reports/dataplane-2021-06-13-11-19-31/report.css
Normal file
@@ -0,0 +1,256 @@
|
||||
html, body,div {
|
||||
margin: 0;
|
||||
padding:0;
|
||||
font-size: 14px;
|
||||
}
|
||||
h1,h2,h3,h4 {
|
||||
padding: 0em;
|
||||
line-height: 1.5;
|
||||
text-align: left;
|
||||
color: rgb(42,91,41);
|
||||
}
|
||||
@font-face {
|
||||
font-family: CenturyGothic;
|
||||
src: url("CenturyGothic.woff"),
|
||||
url("images/CenturyGothic.woff"),
|
||||
url("/images/CenturyGothic.woff"),
|
||||
url("http://www.candelatech.com/images/CenturyGothic.woff");
|
||||
}
|
||||
body,h1,h2,h3,h4 {
|
||||
font-family: CenturyGothic, "Century Gothic", Arial, Helvetica, sans-serif;
|
||||
}
|
||||
h1 { font-size: 30px;}
|
||||
h2 { font-size: 24px;}
|
||||
h3 { font-size: 18px;}
|
||||
h4 { font-size: 14px;}
|
||||
li,pre,tt {
|
||||
text-align: left;
|
||||
}
|
||||
pre {
|
||||
font-size: 10px;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
background: #e0e0e0;
|
||||
}
|
||||
table, td, th {
|
||||
border: 1px solid gray;
|
||||
padding 4px;
|
||||
}
|
||||
table.noborder, table.noborder td, table.noborder th {
|
||||
border: 0 none;
|
||||
}
|
||||
td {
|
||||
background: white;
|
||||
}
|
||||
td.ar {
|
||||
text-align: right;
|
||||
}
|
||||
th {
|
||||
color: rgb(42,91,41);
|
||||
text-align: center;
|
||||
}
|
||||
#lf_title {
|
||||
text-align: center;
|
||||
background-image: url(candela_swirl_small-72h.png);
|
||||
background-position: right;
|
||||
background-repeat: no-repeat;
|
||||
height: 90px;
|
||||
}
|
||||
#new_chart {
|
||||
display: block;
|
||||
height: 250px;
|
||||
min-width: 200px;
|
||||
width: 80%;
|
||||
border: 1px solid black;
|
||||
margin: 14px auto;
|
||||
padding: 14px;
|
||||
vertical-align: bottom;
|
||||
text-align: center;
|
||||
}
|
||||
.lf_chart {
|
||||
margin: 1em;
|
||||
padding: 5px;
|
||||
}
|
||||
#error_types ul {
|
||||
background: #f0f0f0;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
margin: 1em;
|
||||
padding: 0.25em inherit 0.25em inherit;
|
||||
max-height: 8em;
|
||||
overflow: auto;
|
||||
}
|
||||
li {
|
||||
line-height: 1.5;
|
||||
}
|
||||
.contentDiv {
|
||||
margin: 1em 0.25in;
|
||||
}
|
||||
.ct-point {
|
||||
stroke-width: 6px;}
|
||||
|
||||
.o_el {
|
||||
display: inline-block;
|
||||
width: 100px;
|
||||
height: 230px;
|
||||
border: none;
|
||||
margin: 1px 1px 16px 1px;
|
||||
padding: 10px 10px 0 10px;
|
||||
background: #eee;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
.bar_el {
|
||||
display: block;
|
||||
background: green;
|
||||
border: none;
|
||||
min-height: 1px;
|
||||
|
||||
margin: 0 0 5px 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.label_el {
|
||||
color: black;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-family: Arial,Helvetica,sans-serif,mono;
|
||||
margin: 1px;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
width: inherit;
|
||||
}
|
||||
.value_el {
|
||||
font-family: Arial,Helvetica,sans-serif,mono;
|
||||
color: black;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
margin: 0 auto;
|
||||
padding: none;
|
||||
border: none;
|
||||
background: white;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
width: auto;
|
||||
}
|
||||
.value_el>span {
|
||||
background: #f0f0f0a0;
|
||||
border: 1px solid #f0f0f0a0;
|
||||
border-radius: 5px;
|
||||
padding: 1px;
|
||||
min-width: 2em;
|
||||
}
|
||||
.error {
|
||||
color: red;
|
||||
}
|
||||
|
||||
@media only screen {
|
||||
.hideFromPrint { }
|
||||
.hideFromScreen { display:none; }
|
||||
}
|
||||
@media only print {
|
||||
.hideFromScreen { }
|
||||
.hideFromPrint { display:none; }
|
||||
}
|
||||
|
||||
/* these styles will get overridden by custom.css */
|
||||
.TitleFontScreen {
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 50px;
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
.TitleFontPrint {
|
||||
line-height: 1;
|
||||
margin-left:0px;
|
||||
margin-right:auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 50px;
|
||||
padding-top: 20px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.TitleFontPrintSub {
|
||||
line-height: 1;
|
||||
margin-left:0px;
|
||||
margin-right:auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
/*font-size: 20px; Let 'h3', etc control this */
|
||||
padding-top: 0px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.HeaderFont {}
|
||||
.TableFont {}
|
||||
.TableBorder {}
|
||||
.ImgStyle {}
|
||||
div.Section h1, div.Section h2 {
|
||||
margin: 0 0 0 0em;
|
||||
}
|
||||
div.HeaderStyle h1, div.HeaderStyle h2 {
|
||||
text-align: left;
|
||||
margin: 0 0 0 0;
|
||||
}
|
||||
div.Section {
|
||||
padding 5px;
|
||||
position: relative;
|
||||
}
|
||||
div.Section img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
div.FooterStyle {
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
border: 0 none;
|
||||
border-top: 2px solid #2A5B29;
|
||||
color: #2A5B29;
|
||||
font-size: 12px;
|
||||
margin-top: 2em;
|
||||
}
|
||||
div.FooterStyle img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
text-align: right;
|
||||
}
|
||||
div.FooterStyle span.Gradient {
|
||||
background: white;
|
||||
color: #2A5B29;
|
||||
display: inline-block;
|
||||
height: 30px;
|
||||
line-height: 1;
|
||||
padding-top: 22px;
|
||||
padding-bottom: 20px;
|
||||
padding-left: 2em;
|
||||
vertical-align: middle;
|
||||
max-width:80%;
|
||||
float:left;
|
||||
width:50%;
|
||||
}
|
||||
.FooterStyle a, .FooterStyle a:visited {
|
||||
color: #2A5B29;
|
||||
font-size: 12px;
|
||||
line-height: 1;
|
||||
height: 30px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
div.FooterStyle a.LogoImgLink {
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
float: right;
|
||||
}
|
||||
a .LogoImgLink {
|
||||
}
|
||||
a.LogoImgLink img {
|
||||
}
|
||||
BIN
reports/dataplane-2021-06-13-11-19-31/report_banner-1000x205.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
2
reports/dataplane-2021-06-13-11-19-31/text-csv-0.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
Channel,Frequency,Security,NSS,Cfg-Mode,Bandwidth,Pkt,Traffic-Type,Direction,Atten,Rotation,Duration,Offered-1m,Rx-Bps,Rx-Bps-1m,Rx-Bps-LL,Rx-Bps-3s,Phy-Rate,Theoretical,Throughput%,RSSI,Tx-Failed,Tx-Failed%,Tx-Rate,Rx-Rate,Rpt-Mode,Rpt-Mode-Brief
|
||||
6,2437,WPA2,3,AUTO,20,1024,TCP,DUT-TX,NA,NA,60,75.853 Mbps,69.903 Mbps,71.561 Mbps,75.684 Mbps,83.13 Mbps,1.3 Gbps,NA,NA,-5,0 / 119365,0,156 Mbps,19.5 Mbps,802.11bgn,802.11n
|
||||
|
2
reports/dataplane-2021-06-13-11-19-31/text-csv-1.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
Step Index,Position [Deg],Attenuation [dB],Throughput [Mbps],Beacon RSSI [dBm],Data RSSI [dBm]
|
||||
0,NA,0,69.90,0,-5
|
||||
|
2
reports/dataplane-2021-06-13-11-19-31/text-tab-0.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
Channel Frequency Security NSS Cfg-Mode Bandwidth Pkt Traffic-Type Direction Atten Rotation Duration Offered-1m Rx-Bps Rx-Bps-1m Rx-Bps-LL Rx-Bps-3s Phy-Rate Theoretical Throughput% RSSI Tx-Failed Tx-Failed% Tx-Rate Rx-Rate Rpt-Mode Rpt-Mode-Brief
|
||||
6 2437 WPA2 3 AUTO 20 1024 TCP DUT-TX NA NA 60 75.853 Mbps 69.903 Mbps 71.561 Mbps 75.684 Mbps 83.13 Mbps 1.3 Gbps NA NA -5 0 / 119365 0 156 Mbps 19.5 Mbps 802.11bgn 802.11n
|
||||
|
2
reports/dataplane-2021-06-13-11-19-31/text-tab-1.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
Step Index Position [Deg] Attenuation [dB] Throughput [Mbps] Beacon RSSI [dBm] Data RSSI [dBm]
|
||||
0 NA 0 69.90 0 -5
|
||||
|
14
requirements.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
allure-pytest
|
||||
Appium-Python-Client
|
||||
bs4
|
||||
influxdb
|
||||
influxdb-client
|
||||
pandas
|
||||
paramiko
|
||||
perfecto-py37
|
||||
pytest==6.2.2
|
||||
requests
|
||||
scp
|
||||
selenium
|
||||
tip-wlan-cloud
|
||||
xlsxwriter
|
||||
@@ -1,11 +0,0 @@
|
||||
FROM python:alpine3.12
|
||||
WORKDIR /tests
|
||||
COPY . /tests
|
||||
|
||||
RUN mkdir ~/.pip \
|
||||
&& echo "[global]" > ~/.pip/pip.conf \
|
||||
&& echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf \
|
||||
&& echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
|
||||
RUN pip3 install -r requirements.txt
|
||||
|
||||
ENTRYPOINT [ "/bin/sh" ]
|
||||
@@ -1,3 +0,0 @@
|
||||
FROM wlan-tip-tests
|
||||
RUN pip3 install pylint
|
||||
ENTRYPOINT [ "pylint" ]
|
||||
@@ -6,7 +6,56 @@
|
||||
|
||||
"""
|
||||
CONFIGURATION = {
|
||||
"basic-01": {
|
||||
"advanced-02": {
|
||||
"controller": {
|
||||
'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build", # API base url for the controller
|
||||
'username': 'support@example.com', # cloud controller Login
|
||||
'password': 'support', # Cloud Controller Login Password
|
||||
'version': '1.1.0-SNAPSHOT', # Controller version
|
||||
'commit_date': "2021-04-27" # Controller version sdk, commit date
|
||||
},
|
||||
'access_point': [
|
||||
{
|
||||
'model': 'eap102', # AP Model, can be found in ap console using "node" command
|
||||
'mode': 'wifi6', # wifi5/wifi6 can be found on AP Hardware page on Confluence
|
||||
'serial': '903cb39d6959', # "node" command has serial_number information
|
||||
'jumphost': True,
|
||||
# True, if you have AP On serial console and not ssh access, False, if you have AP ssh access from the machine
|
||||
'ip': "localhost",
|
||||
# IP Address of System, which has AP Connected to serial cable (if jumphost is True), else - AP IP Address
|
||||
'username': "lanforge", # ssh username of system (lab-ctlr/ap)
|
||||
'password': "pumpkin77", # ssh password for system (lab-ctlr/ap)
|
||||
'port': 8803, # 22, # ssh port for system (lab-ctlr/ap)
|
||||
'jumphost_tty': '/dev/ttyAP3', # if jumphost is True, enter the serial console device name
|
||||
'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/dev/eap102-2021-06-25-pending-b6743c3.tar.gz"
|
||||
# Enter the Target AP Version URL for Testing
|
||||
}
|
||||
],
|
||||
# Traffic generator
|
||||
"traffic_generator": {
|
||||
"name": "lanforge", # ( lanforge/ perfecto)
|
||||
# Details for LANforge system
|
||||
"details": {
|
||||
"ip": "localhost", # localhost,
|
||||
"port": 8802, # 8802,
|
||||
"ssh_port": 8804,
|
||||
"2.4G-Radio": ["wiphy2", "wiphy4"],
|
||||
"5G-Radio": ["wiphy5", "wiphy3"],
|
||||
"AX-Radio": [],
|
||||
"upstream": "1.1.eth1",
|
||||
"upstream_subnet": "10.28.2.1/24",
|
||||
"uplink": "1.1.eth3",
|
||||
"2.4G-Station-Name": "wlan0",
|
||||
"5G-Station-Name": "wlan0",
|
||||
"AX-Station-Name": "ax"
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
||||
"basic-01": {
|
||||
"controller": {
|
||||
'url': "https://wlan-portal-svc-nola-02.cicd.lab.wlan.tip.build", # API base url for the controller
|
||||
'username': 'support@example.com',
|
||||
|
||||
@@ -253,7 +253,7 @@ def instantiate_firmware(request, setup_controller, get_configuration):
|
||||
|
||||
for access_point_info in get_configuration['access_point']:
|
||||
version = access_point_info["version"]
|
||||
if request.config.getini("build") != "0":
|
||||
if request.config.getini("build").__contains__("https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/"):
|
||||
version = request.config.getini("build")
|
||||
firmware_client = FirmwareUtility(sdk_client=setup_controller,
|
||||
model=access_point_info["model"],
|
||||
@@ -513,6 +513,13 @@ def create_lanforge_chamberview_dut(get_configuration, testbed):
|
||||
testbed=testbed, access_point_data=get_configuration["access_point"])
|
||||
yield True
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def lf_tools(get_configuration, testbed):
|
||||
""" Create a DUT on LANforge"""
|
||||
obj = ChamberView(lanforge_data=get_configuration["traffic_generator"]["details"],
|
||||
testbed=testbed, access_point_data=get_configuration["access_point"])
|
||||
yield obj
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def create_vlan(request, testbed, get_configuration):
|
||||
|
||||
@@ -0,0 +1,670 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.append(
|
||||
os.path.dirname(
|
||||
os.path.realpath(__file__)
|
||||
)
|
||||
)
|
||||
if "libs" not in sys.path:
|
||||
sys.path.append(f'../libs')
|
||||
|
||||
from controller.controller import ProfileUtility
|
||||
import time
|
||||
from lanforge.lf_tests import RunTest
|
||||
from lanforge.lf_tools import ChamberView
|
||||
import pytest
|
||||
import allure
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def instantiate_profile():
|
||||
yield ProfileUtility
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def lf_tools(get_configuration, testbed):
|
||||
lf_tools_obj = ChamberView(lanforge_data=get_configuration['traffic_generator']['details'],
|
||||
access_point_data=get_configuration['access_point'],
|
||||
testbed=testbed)
|
||||
yield lf_tools_obj
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def create_lanforge_chamberview(lf_tools):
|
||||
scenario_object, scenario_name = lf_tools.Chamber_View()
|
||||
return scenario_name
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def create_lanforge_chamberview_dut(lf_tools):
|
||||
dut_object, dut_name = lf_tools.Create_Dut()
|
||||
return dut_name
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def setup_vlan():
|
||||
vlan_id = [100]
|
||||
allure.attach(body=str(vlan_id), name="VLAN Created: ")
|
||||
yield vlan_id[0]
|
||||
|
||||
|
||||
@allure.feature("CLIENT CONNECTIVITY SETUP")
|
||||
@pytest.fixture(scope="class")
|
||||
def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment_id,
|
||||
instantiate_profile, get_markers, create_lanforge_chamberview_dut, lf_tools,
|
||||
get_security_flags, get_configuration, radius_info, get_apnos):
|
||||
instantiate_profile = instantiate_profile(sdk_client=setup_controller)
|
||||
vlan_id, mode = 0, 0
|
||||
instantiate_profile.cleanup_objects()
|
||||
parameter = dict(request.param)
|
||||
print(parameter)
|
||||
test_cases = {}
|
||||
profile_data = {}
|
||||
if parameter['mode'] not in ["BRIDGE", "NAT", "VLAN"]:
|
||||
print("Invalid Mode: ", parameter['mode'])
|
||||
allure.attach(body=parameter['mode'], name="Invalid Mode: ")
|
||||
yield test_cases
|
||||
|
||||
if parameter['mode'] == "NAT":
|
||||
mode = "NAT"
|
||||
vlan_id = 1
|
||||
if parameter['mode'] == "BRIDGE":
|
||||
mode = "BRIDGE"
|
||||
vlan_id = 1
|
||||
if parameter['mode'] == "VLAN":
|
||||
mode = "BRIDGE"
|
||||
vlan_id = setup_vlan
|
||||
|
||||
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Equipment-AP-" + parameter['mode'])
|
||||
|
||||
profile_data["equipment_ap"] = {"profile_name": testbed + "-Equipment-AP-" + parameter['mode']}
|
||||
profile_data["ssid"] = {}
|
||||
for i in parameter["ssid_modes"]:
|
||||
profile_data["ssid"][i] = []
|
||||
for j in range(len(parameter["ssid_modes"][i])):
|
||||
profile_name = testbed + "-SSID-" + i + "-" + str(j) + "-" + parameter['mode']
|
||||
data = parameter["ssid_modes"][i][j]
|
||||
data["profile_name"] = profile_name
|
||||
if "mode" not in dict(data).keys():
|
||||
data["mode"] = mode
|
||||
if "vlan" not in dict(data).keys():
|
||||
data["vlan"] = vlan_id
|
||||
instantiate_profile.delete_profile_by_name(profile_name=profile_name)
|
||||
profile_data["ssid"][i].append(data)
|
||||
# print(profile_name)
|
||||
# print(profile_data)
|
||||
|
||||
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
|
||||
time.sleep(10)
|
||||
"""
|
||||
Setting up rf profile
|
||||
"""
|
||||
rf_profile_data = {
|
||||
"name": "RF-Profile-" + testbed + "-" + parameter['mode'] + "-" +
|
||||
get_configuration['access_point'][0]['mode']
|
||||
}
|
||||
|
||||
for i in parameter["rf"]:
|
||||
rf_profile_data[i] = parameter['rf'][i]
|
||||
# print(rf_profile_data)
|
||||
|
||||
try:
|
||||
instantiate_profile.delete_profile_by_name(profile_name=rf_profile_data['name'])
|
||||
instantiate_profile.set_rf_profile(profile_data=rf_profile_data,
|
||||
mode=get_configuration['access_point'][0]['mode'])
|
||||
allure.attach(body=str(rf_profile_data),
|
||||
name="RF Profile Created : " + get_configuration['access_point'][0]['mode'])
|
||||
except Exception as e:
|
||||
print(e)
|
||||
allure.attach(body=str(e), name="Exception ")
|
||||
|
||||
# Radius Profile Creation
|
||||
if parameter["radius"]:
|
||||
radius_info = radius_info
|
||||
radius_info["name"] = testbed + "-Automation-Radius-Profile-" + mode
|
||||
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
|
||||
try:
|
||||
instantiate_profile.create_radius_profile(radius_info=radius_info)
|
||||
allure.attach(body=str(radius_info),
|
||||
name="Radius Profile Created")
|
||||
test_cases['radius_profile'] = True
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases['radius_profile'] = False
|
||||
|
||||
# SSID Profile Creation
|
||||
lf_dut_data = []
|
||||
for mode in profile_data['ssid']:
|
||||
if mode == "open":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
|
||||
test_cases["open_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["open_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
|
||||
test_cases["open_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["open_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
if mode == "wpa":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
|
||||
test_cases["wpa_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
|
||||
test_cases["wpa_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
if mode == "wpa2_personal":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
|
||||
test_cases["wpa2_personal_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa2_personal_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
|
||||
test_cases["wpa2_personal_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa2_personal_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
|
||||
if mode == "wpa_wpa2_personal_mixed":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(
|
||||
profile_data=j)
|
||||
test_cases["wpa_wpa2_personal_mixed_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa_wpa2_personal_mixed_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(
|
||||
profile_data=j)
|
||||
test_cases["wpa_wpa2_personal_mixed_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa_wpa2_personal_mixed_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
if mode == "wpa3_personal":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
|
||||
test_cases["wpa3_personal_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_personal_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
|
||||
test_cases["wpa3_personal_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_personal_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
if mode == "wpa3_personal_mixed":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
|
||||
profile_data=j)
|
||||
test_cases["wpa3_personal_mixed_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_personal_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
|
||||
profile_data=j)
|
||||
test_cases["wpa3_personal_mixed_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_personal_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
|
||||
if mode == "wpa_enterprise":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa_enterprise_ssid_profile(profile_data=j)
|
||||
test_cases["wpa_enterprise_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa_enterprise_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa_enterprise_ssid_profile(profile_data=j)
|
||||
test_cases["wpa_enterprise_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa_enterprise_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
if mode == "wpa2_enterprise":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
|
||||
test_cases["wpa2_enterprise_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa2_enterprise_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
|
||||
test_cases["wpa2_enterprise_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa2_enterprise_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
if mode == "wpa3_enterprise":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
|
||||
test_cases["wpa3_enterprise_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_enterprise_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
|
||||
test_cases["wpa3_enterprise_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_enterprise_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
|
||||
if mode == "wpa_wpa2_enterprise_mixed":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa_wpa2_enterprise_mixed_ssid_profile(
|
||||
profile_data=j)
|
||||
test_cases["wpa_wpa2_enterprise_mixed_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa_wpa2_enterprise_mixed_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa_wpa2_enterprise_mixed_ssid_profile(
|
||||
profile_data=j)
|
||||
test_cases["wpa_wpa2_enterprise_mixed_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa_wpa2_enterprise_mixed_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
if mode == "wpa3_enterprise_mixed":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa3_enterprise_mixed_ssid_profile(
|
||||
profile_data=j)
|
||||
test_cases["wpa3_enterprise_mixed_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_enterprise_mixed_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wpa3_enterprise_mixed_ssid_profile(
|
||||
profile_data=j)
|
||||
test_cases["wpa3_enterprise_mixed_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_enterprise_mixed_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
|
||||
if mode == "wep":
|
||||
for j in profile_data["ssid"][mode]:
|
||||
# print(j)
|
||||
if mode in get_markers.keys() and get_markers[mode]:
|
||||
try:
|
||||
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wep_ssid_profile(profile_data=j)
|
||||
test_cases["wpa3_enterprise_2g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_enterprise_2g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
try:
|
||||
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
|
||||
j["appliedRadios"]):
|
||||
lf_dut_data.append(j)
|
||||
creates_profile = instantiate_profile.create_wep_ssid_profile(profile_data=j)
|
||||
test_cases["wpa3_enterprise_5g"] = True
|
||||
allure.attach(body=str(creates_profile),
|
||||
name="SSID Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["wpa3_enterprise_5g"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="SSID Profile Creation Failed")
|
||||
# Equipment AP Profile Creation
|
||||
try:
|
||||
instantiate_profile.set_ap_profile(profile_data=profile_data['equipment_ap'])
|
||||
test_cases["equipment_ap"] = True
|
||||
allure.attach(body=str(profile_data['equipment_ap']),
|
||||
name="Equipment AP Profile Created")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
test_cases["equipment_ap"] = False
|
||||
allure.attach(body=str(e),
|
||||
name="Equipment AP Profile Creation Failed")
|
||||
|
||||
# Push the Equipment AP Profile to AP
|
||||
try:
|
||||
for i in get_equipment_id:
|
||||
instantiate_profile.push_profile_old_method(equipment_id=i)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print("failed to create AP Profile")
|
||||
|
||||
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
|
||||
ssid_names = []
|
||||
for i in instantiate_profile.profile_creation_ids["ssid"]:
|
||||
ssid_names.append(instantiate_profile.get_ssid_name_by_profile_id(profile_id=i))
|
||||
ssid_names.sort()
|
||||
|
||||
# This loop will check the VIF Config with cloud profile
|
||||
vif_config = []
|
||||
test_cases['vifc'] = False
|
||||
for i in range(0, 18):
|
||||
vif_config = list(ap_ssh.get_vif_config_ssids())
|
||||
vif_config.sort()
|
||||
print(vif_config)
|
||||
print(ssid_names)
|
||||
if ssid_names == vif_config:
|
||||
test_cases['vifc'] = True
|
||||
break
|
||||
time.sleep(10)
|
||||
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "SSID Pushed from Controller: " + str(ssid_names)),
|
||||
name="SSID Profiles in VIF Config and Controller: ")
|
||||
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
|
||||
|
||||
# This loop will check the VIF Config with VIF State
|
||||
test_cases['vifs'] = False
|
||||
for i in range(0, 18):
|
||||
vif_state = list(ap_ssh.get_vif_state_ssids())
|
||||
vif_state.sort()
|
||||
vif_config = list(ap_ssh.get_vif_config_ssids())
|
||||
vif_config.sort()
|
||||
print(vif_config)
|
||||
print(vif_state)
|
||||
if vif_state == vif_config:
|
||||
test_cases['vifs'] = True
|
||||
break
|
||||
time.sleep(10)
|
||||
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "VIF State: " + str(vif_state)),
|
||||
name="SSID Profiles in VIF Config and VIF State: ")
|
||||
|
||||
ap_logs = ap_ssh.logread()
|
||||
allure.attach(body=ap_logs, name="AP LOgs: ")
|
||||
ssid_info = ap_ssh.get_ssid_info()
|
||||
ssid_data = []
|
||||
print(ssid_info)
|
||||
for i in range(0, len(ssid_info)):
|
||||
if ssid_info[i][1] == "OPEN":
|
||||
ssid_info[i].append("")
|
||||
if ssid_info[i][1] == "OPEN":
|
||||
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=OPEN" +
|
||||
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
|
||||
if ssid_info[i][1] == "WPA":
|
||||
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA" +
|
||||
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
|
||||
if ssid_info[i][1] == "WPA2":
|
||||
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA2" +
|
||||
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
|
||||
if ssid_info[i][1] == "WPA3_PERSONAL":
|
||||
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA3" +
|
||||
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
|
||||
if ssid_info[i][1] == "WPA | WPA2":
|
||||
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA|WPA2" +
|
||||
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
|
||||
if ssid_info[i][1] == "EAP-TTLS":
|
||||
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=EAP-TTLS" +
|
||||
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
|
||||
|
||||
ssid_data.append(ssid)
|
||||
|
||||
# Add bssid password and security from iwinfo data
|
||||
# Format SSID Data in the below format
|
||||
# ssid_data = [
|
||||
# ['ssid_idx=0 ssid=Default-SSID-2g security=WPA|WEP| password=12345678 bssid=90:3c:b3:94:48:58'],
|
||||
# ['ssid_idx=1 ssid=Default-SSID-5gl password=12345678 bssid=90:3c:b3:94:48:59']
|
||||
# ]
|
||||
allure.attach(name="SSID DATA IN LF DUT", body=str(ssid_data))
|
||||
lf_tools.update_ssid(ssid_data=ssid_data)
|
||||
|
||||
def teardown_session():
|
||||
print("\nRemoving Profiles")
|
||||
instantiate_profile.delete_profile_by_name(profile_name=profile_data['equipment_ap']['profile_name'])
|
||||
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["ssid"])
|
||||
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["radius"])
|
||||
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["rf"])
|
||||
allure.attach(body=str(profile_data['equipment_ap']['profile_name'] + "\n"),
|
||||
name="Tear Down in Profiles ")
|
||||
time.sleep(20)
|
||||
|
||||
request.addfinalizer(teardown_session)
|
||||
yield test_cases
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def lf_test(get_configuration, setup_influx):
|
||||
# print(get_configuration)
|
||||
obj = RunTest(lanforge_data=get_configuration['traffic_generator']['details'], influx_params=setup_influx)
|
||||
# pytest.exit("")
|
||||
yield obj
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def station_names_twog(request, get_configuration):
|
||||
station_names = []
|
||||
for i in range(0, int(request.config.getini("num_stations"))):
|
||||
station_names.append(get_configuration["traffic_generator"]["details"]["2.4G-Station-Name"] + "0" + str(i))
|
||||
yield station_names
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def station_names_fiveg(request, get_configuration):
|
||||
station_names = []
|
||||
for i in range(0, int(request.config.getini("num_stations"))):
|
||||
station_names.append(get_configuration["traffic_generator"]["details"]["5G-Station-Name"] + "0" + str(i))
|
||||
yield station_names
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def num_stations(request):
|
||||
num_sta = int(request.config.getini("num_stations"))
|
||||
yield num_sta
|
||||
|
||||
|
||||
@pytest.fixture(scope="class")
|
||||
def get_vif_state(get_apnos, get_configuration):
|
||||
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
|
||||
vif_config = list(ap_ssh.get_vif_config_ssids())
|
||||
vif_state = list(ap_ssh.get_vif_state_ssids())
|
||||
vif_state.sort()
|
||||
vif_config.sort()
|
||||
allure.attach(name="vif_state", body=str(vif_state))
|
||||
yield vif_state
|
||||
|
||||
@pytest.fixture(scope="class")
|
||||
def get_vlan_list(get_apnos, get_configuration):
|
||||
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
|
||||
vlan_list = list(ap_ssh.get_vlan())
|
||||
vlan_list.sort()
|
||||
allure.attach(name="vlan_list", body=str(vlan_list))
|
||||
yield vlan_list
|
||||
|
||||
|
||||
@@ -0,0 +1,353 @@
|
||||
"""
|
||||
|
||||
Advanced Test: Rate v/s Range test under various combinations: Bridge Mode
|
||||
pytest -m "ratevsrange and bridge " -s -vvv --skip-testrail --testbed=basic-01 --alluredir=../allure_reports
|
||||
--> allure serve ../allure_reports/
|
||||
|
||||
|
||||
"""
|
||||
import os
|
||||
import time
|
||||
|
||||
import pytest
|
||||
import allure
|
||||
import os.path
|
||||
import csv
|
||||
import pandas as pd
|
||||
|
||||
pytestmark = [pytest.mark.ratevsrange, pytest.mark.bridge ,pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
|
||||
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}],
|
||||
"wpa": [{"ssid_name": "ssid_wpa_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}],
|
||||
"wpa2_personal": [
|
||||
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}]},
|
||||
"rf": {
|
||||
"is5GHz": {"channelBandwidth": "is20MHz"},
|
||||
"is5GHzL": {"channelBandwidth": "is20MHz"},
|
||||
"is5GHzU": {"channelBandwidth": "is20MHz"}
|
||||
},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
@pytest.mark.usefixtures("setup_profiles")
|
||||
@pytest.mark.Mhz20
|
||||
class TestRatevsRangeBridge(object):
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.client11b
|
||||
def test_client_wpa2_personal_2g_11b(self, get_vif_state,
|
||||
lf_test, station_names_twog, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and client11b" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2495
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "BRIDGE"
|
||||
band = "twog"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_twog, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11b'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
|
||||
instance_name="BRIDGE_RVR_11B",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
print("report name ", report_name)
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
print("entries",entries)
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
|
||||
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_twog)
|
||||
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
if str(kpi_val) == "empty":
|
||||
print("kpi is empty, station did not got ip, Test failed")
|
||||
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
|
||||
assert False
|
||||
else:
|
||||
print("Test passed successfully")
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.client11g
|
||||
def test_client_wpa2_personal_2g_11g(self, get_vif_state,
|
||||
lf_test, station_names_twog, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and bridge and client11g" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2496
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "BRIDGE"
|
||||
band = "twog"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_twog, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11g'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
|
||||
instance_name="BRIDGE_RVR_11G",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_twog)
|
||||
script_dir = os.path.dirname(__file__) # Script directory
|
||||
print(script_dir)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
if str(kpi_val) == "empty":
|
||||
print("kpi is empty, station did not got ip, Test failed")
|
||||
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
|
||||
assert False
|
||||
else:
|
||||
print("Test passed successfully")
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11a
|
||||
def test_client_wpa2_personal_5g_11a(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration,lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and bridge and client11a" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2497
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "BRIDGE"
|
||||
band = "fiveg"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11a'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="BRIDGE_RVR_11A",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=['numeric-score'], dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
if str(kpi_val) == "empty":
|
||||
print("kpi is empty, station did not got ip, Test failed")
|
||||
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
|
||||
assert False
|
||||
else:
|
||||
print("Test passed successfully")
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11an
|
||||
def test_client_wpa2_personal_5g_11an(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and bridge and client11an" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2498
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "BRIDGE"
|
||||
band = "fiveg"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11an'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="BRIDGE_RVR_11AN",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
if str(kpi_val) == "empty":
|
||||
print("kpi is empty, station did not got ip, Test failed")
|
||||
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
|
||||
assert False
|
||||
else:
|
||||
print("Test passed successfully")
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.performance_advanced
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11ac
|
||||
def test_client_wpa2_personal_5g_11ac(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and bridge and client11ac" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2499
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "BRIDGE"
|
||||
band = "fiveg"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11an-AC'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'] ,['attenuator2: 1.1.3059'], ['attenuations: 0..+50..950'],['attenuations2: 0..+50..950']]
|
||||
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="BRIDGE_RVR_11AC",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
if str(kpi_val) == "empty":
|
||||
print("kpi is empty, station did not got ip, Test failed")
|
||||
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
|
||||
assert False
|
||||
else:
|
||||
print("Test passed successfully")
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
316
tests/e2e/advanced/rate_vs_range/wpa2_personal/test_nat_mode.py
Normal file
@@ -0,0 +1,316 @@
|
||||
"""
|
||||
|
||||
Advanced Test: Rate v/s Range test under various combinations: NAT Mode
|
||||
pytest -m "throughput_benchmark_test and nat" -s -vvv --skip-testrail --testbed=basic-01
|
||||
|
||||
|
||||
"""
|
||||
import os
|
||||
import time
|
||||
|
||||
import pytest
|
||||
import allure
|
||||
|
||||
pytestmark = [pytest.mark.ratevsrange, pytest.mark.nat ,pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
|
||||
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}],
|
||||
"wpa": [{"ssid_name": "ssid_wpa_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}],
|
||||
"wpa2_personal": [
|
||||
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}]},
|
||||
"rf": {
|
||||
"is5GHz": {"channelBandwidth": "is20MHz"},
|
||||
"is5GHzL": {"channelBandwidth": "is20MHz"},
|
||||
"is5GHzU": {"channelBandwidth": "is20MHz"}
|
||||
},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
@pytest.mark.usefixtures("setup_profiles")
|
||||
@pytest.mark.Mhz20
|
||||
class TestRatevsRangeNat(object):
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.client11b
|
||||
def test_client_wpa2_personal_2g_11b(self, get_vif_state,
|
||||
lf_test, station_names_twog, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and nat and 11bclient" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2495
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "NAT"
|
||||
band = "twog"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_twog, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11b'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
|
||||
instance_name="NAT_RVR_11B",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_twog)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.client11g
|
||||
def test_client_wpa2_personal_2g_11g(self, get_vif_state,
|
||||
lf_test, station_names_twog, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and nat and client11g" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2496
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "NAT"
|
||||
band = "twog"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_twog, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11G'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
|
||||
instance_name="NAT_RVR_11G",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_twog)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11a
|
||||
def test_client_wpa2_personal_5g_11a(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and nat and client11a" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2497
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "NAT"
|
||||
band = "fiveg"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11a'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="NAT_RVR_11A",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11an
|
||||
def test_client_wpa2_personal_5g_11an(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration,lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and nat and client11an" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2498
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "NAT"
|
||||
band = "fiveg"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11an'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="NAT_RVR_11AN",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.performance_advanced
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11ac
|
||||
def test_client_wpa2_personal_5g_11ac(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and nat and client11ac" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2499
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "NAT"
|
||||
band = "fiveg"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11an-AC'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="NAT_RVR_11AC",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
314
tests/e2e/advanced/rate_vs_range/wpa2_personal/test_vlan_mode.py
Normal file
@@ -0,0 +1,314 @@
|
||||
"""
|
||||
|
||||
Advanced Test: Rate v/s Range test under various combinations: VLAN Mode
|
||||
pytest -m "throughput_benchmark_test and vlan" -s -vvv --skip-testrail --testbed=basic-01
|
||||
|
||||
|
||||
"""
|
||||
import os
|
||||
import time
|
||||
|
||||
import pytest
|
||||
import allure
|
||||
|
||||
pytestmark = [pytest.mark.ratevsrange, pytest.mark.vlan ,pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "VLAN",
|
||||
"ssid_modes": {
|
||||
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
|
||||
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}],
|
||||
"wpa": [{"ssid_name": "ssid_wpa_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}],
|
||||
"wpa2_personal": [
|
||||
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}]},
|
||||
"rf": {
|
||||
"is5GHz": {"channelBandwidth": "is20MHz"},
|
||||
"is5GHzL": {"channelBandwidth": "is20MHz"},
|
||||
"is5GHzU": {"channelBandwidth": "is20MHz"}
|
||||
},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
@pytest.mark.usefixtures("setup_profiles")
|
||||
@pytest.mark.Mhz20
|
||||
class TestRatevsRangeVlan(object):
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.client11b
|
||||
def test_client_wpa2_personal_2g_11b(self, get_vif_state,
|
||||
lf_test, station_names_twog, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and vlan and 11bclient" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2495
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "VLAN"
|
||||
band = "twog"
|
||||
vlan = 100
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_twog, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11b'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
|
||||
instance_name="VLAN_RVR_11B",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_twog)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.client11g
|
||||
def test_client_wpa2_personal_2g_11g(self, get_vif_state,
|
||||
lf_test, station_names_twog, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and vlan and client11g" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2496
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "VLAN"
|
||||
band = "twog"
|
||||
vlan = 100
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_twog, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11g'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
|
||||
instance_name="VLAN_RVR_11G",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_twog)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11a
|
||||
def test_client_wpa2_personal_5g_11a(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and vlan and client11a" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2497
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "VLAN"
|
||||
band = "fiveg"
|
||||
vlan = 100
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11a'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="VLAN_RVR_11A",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11an
|
||||
def test_client_wpa2_personal_5g_11an(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration,lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and vlan and client11an" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2498
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "VLAN"
|
||||
band = "fiveg"
|
||||
vlan = 100
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11an'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="VLAN_RVR_11AN",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
|
||||
@pytest.mark.performance_advanced
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.client11ac
|
||||
def test_client_wpa2_personal_5g_11ac(self, get_vif_state,
|
||||
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
|
||||
get_configuration, lf_tools):
|
||||
"""
|
||||
|
||||
pytest -m "ratevsrange and vlan and client11ac" -s -vvv --skip-testrail --testbed=advanced-02
|
||||
jira- wifi-2499
|
||||
"""
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
mode = "VLAN"
|
||||
band = "fiveg"
|
||||
vlan = 1
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
if ssid_name not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
|
||||
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
|
||||
passkey=security_key, mode=mode, band=band,
|
||||
station_name=station_names_fiveg, vlan_id=vlan)
|
||||
print("station", station)
|
||||
|
||||
val = [['modes: 802.11an-AC'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
|
||||
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
|
||||
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
|
||||
|
||||
if station:
|
||||
time.sleep(3)
|
||||
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
|
||||
instance_name="VLAN_RVR_11AC",
|
||||
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
|
||||
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
|
||||
print("Test Completed... Cleaning up Stations")
|
||||
lf_test.Client_disconnect(station_name=station_names_fiveg)
|
||||
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
|
||||
print(str(kpi_val))
|
||||
allure.attach(name="Kpi Data", body=str(kpi_val))
|
||||
assert station
|
||||
else:
|
||||
assert False
|
||||
@@ -0,0 +1,67 @@
|
||||
"""
|
||||
Dual Band Performance Test : Bridge Mode
|
||||
pytest -m "dual_band_test and bridge"
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.dual_band_test, pytest.mark.bridge,
|
||||
pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
|
||||
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}]},
|
||||
"rf": {},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.dual_band_test
|
||||
@pytest.mark.wifi5
|
||||
@pytest.mark.wifi6
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
|
||||
@pytest.mark.usefixtures("setup_profiles")
|
||||
class TestDualbandPerformanceBridge(object):
|
||||
"""
|
||||
pytest -m "dual_band_test and bridge and open and twog and fiveg"
|
||||
"""
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.fiveg
|
||||
def test_client_open(self,get_vif_state,create_lanforge_chamberview_dut, lf_test,get_configuration):
|
||||
profile_data = setup_params_general["ssid_modes"]["open"]
|
||||
ssid_2G = profile_data[0]["ssid_name"]
|
||||
ssid_5G = profile_data[1]["ssid_name"]
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
mode = "BRIDGE"
|
||||
vlan = 1
|
||||
if ssid_2G and ssid_5G not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
|
||||
|
||||
dbpt_obj = lf_test.dualbandperformancetest(mode=mode,ssid_2G=ssid_2G,ssid_5G=ssid_5G,
|
||||
instance_name="dbp_instance_open_bridge",
|
||||
vlan_id=vlan, dut_name=dut_name)
|
||||
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
"""
|
||||
Dual Band Performance Test : NAT Mode
|
||||
pytest -m "dual_band_test and nat"
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.dual_band_test, pytest.mark.nat,
|
||||
pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
|
||||
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}]},
|
||||
"rf": {},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.dual_band_test
|
||||
@pytest.mark.wifi5
|
||||
@pytest.mark.wifi6
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
|
||||
@pytest.mark.usefixtures("setup_profiles")
|
||||
class TestDualbandPerformanceNat(object):
|
||||
"""
|
||||
pytest -m "dual_band_test and nat and open and twog and fiveg"
|
||||
"""
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.fiveg
|
||||
def test_client_open(self,get_vif_state,create_lanforge_chamberview_dut, lf_test,get_configuration):
|
||||
profile_data = setup_params_general["ssid_modes"]["open"]
|
||||
ssid_2G = profile_data[0]["ssid_name"]
|
||||
ssid_5G = profile_data[1]["ssid_name"]
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
mode = "NAT"
|
||||
vlan = 1
|
||||
if ssid_2G and ssid_5G not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
|
||||
|
||||
dbpt_obj = lf_test.dualbandperformancetest(mode=mode,ssid_2G=ssid_2G,ssid_5G=ssid_5G,
|
||||
instance_name="dbp_instance_open_nat",
|
||||
vlan_id=vlan, dut_name=dut_name)
|
||||
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
"""
|
||||
Dual Band Performance Test : VLAN Mode
|
||||
pytest -m "dual_band_test and vlan"
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.dual_band_test, pytest.mark.vlan,
|
||||
pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "VLAN",
|
||||
"ssid_modes": {
|
||||
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
|
||||
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}]},
|
||||
"rf": {},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.dual_band_test
|
||||
@pytest.mark.wifi5
|
||||
@pytest.mark.wifi6
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"create_vlan",
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
|
||||
@pytest.mark.usefixtures("setup_profiles","create_vlan")
|
||||
class TestDualbandPerformanceVlan(object):
|
||||
"""
|
||||
pytest -m "dual_band_test and vlan and open and twog and fiveg"
|
||||
"""
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.fiveg
|
||||
def test_client_open(self,get_vif_state,create_lanforge_chamberview_dut, lf_test,get_configuration):
|
||||
profile_data = setup_params_general["ssid_modes"]["open"]
|
||||
ssid_2G = profile_data[0]["ssid_name"]
|
||||
ssid_5G = profile_data[1]["ssid_name"]
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
mode = "VLAN"
|
||||
vlan = 100
|
||||
if ssid_2G and ssid_5G not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
|
||||
|
||||
dbpt_obj = lf_test.dualbandperformancetest(mode=mode,ssid_2G=ssid_2G,ssid_5G=ssid_5G,
|
||||
instance_name="dbp_instance_open_vlan",
|
||||
vlan_id=vlan, dut_name=dut_name)
|
||||
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")
|
||||
@@ -0,0 +1,68 @@
|
||||
"""
|
||||
Dual Band Performance Test : Bridge Mode
|
||||
pytest -m "performance and dual_band_test and bridge"
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.performance,pytest.mark.dual_band_test, pytest.mark.bridge,
|
||||
pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"wpa2_personal": [
|
||||
{"ssid_name": "ssid_wpa2p_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa2p_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}]},
|
||||
"rf": {},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.dual_band_test
|
||||
@pytest.mark.wifi5
|
||||
@pytest.mark.wifi6
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
|
||||
@pytest.mark.usefixtures("setup_profiles")
|
||||
class TestDualbandPerformanceBridge(object):
|
||||
"""
|
||||
pytest -m "performance and dual_band_test and bridge and wpa2_personal and twog and fiveg"
|
||||
"""
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.fiveg
|
||||
def test_client_wpa2_personal(self,get_vif_state,create_lanforge_chamberview_dut,lf_test,get_configuration):
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"]
|
||||
ssid_2G = profile_data[0]["ssid_name"]
|
||||
ssid_5G = profile_data[1]["ssid_name"]
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
mode = "BRIDGE"
|
||||
vlan = 1
|
||||
if ssid_2G and ssid_5G not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
|
||||
|
||||
dbpt_obj = lf_test.dualbandperformancetest(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
|
||||
instance_name="dbp_instance_wpa2p_bridge",
|
||||
vlan_id=vlan, dut_name=dut_name)
|
||||
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
"""
|
||||
Dual Band Performance Test : NAT Mode
|
||||
pytest -m "performance and dual_band_test and nat"
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.performance,pytest.mark.dual_band_test, pytest.mark.nat,
|
||||
pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"wpa2_personal": [
|
||||
{"ssid_name": "ssid_wpa2p_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa2p_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}]},
|
||||
"rf": {},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.dual_band_test
|
||||
@pytest.mark.wifi5
|
||||
@pytest.mark.wifi6
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
|
||||
@pytest.mark.usefixtures("setup_profiles")
|
||||
class TestDualbandPerformanceNat(object):
|
||||
|
||||
"""
|
||||
pytest -m "performance and dual_band_test and nat and wpa2_personal and twog and fiveg"
|
||||
"""
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.fiveg
|
||||
def test_client_wpa2_personal(self,get_vif_state,create_lanforge_chamberview_dut,lf_test,get_configuration):
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"]
|
||||
ssid_2G = profile_data[0]["ssid_name"]
|
||||
ssid_5G = profile_data[1]["ssid_name"]
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
mode = "NAT"
|
||||
vlan = 1
|
||||
if ssid_2G and ssid_5G not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
|
||||
|
||||
dbpt_obj = lf_test.dualbandperformancetest(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
|
||||
instance_name="dbp_instance_wpa2p_nat",
|
||||
vlan_id=vlan, dut_name=dut_name)
|
||||
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
"""
|
||||
Dual Band Performance Test : VLAN Mode
|
||||
pytest -m "performance and dual_band_test and vlan"
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.performance,pytest.mark.dual_band_test, pytest.mark.vlan,
|
||||
pytest.mark.usefixtures("setup_test_run")]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "VLAN",
|
||||
"ssid_modes": {
|
||||
"wpa2_personal": [
|
||||
{"ssid_name": "ssid_wpa2p_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
|
||||
{"ssid_name": "ssid_wpa2p_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
|
||||
"security_key": "something"}]},
|
||||
"rf": {},
|
||||
"radius": False
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.dual_band_test
|
||||
@pytest.mark.wifi5
|
||||
@pytest.mark.wifi6
|
||||
@pytest.mark.parametrize(
|
||||
'setup_profiles',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"create_vlan",
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
|
||||
@pytest.mark.usefixtures("setup_profiles","create_vlan")
|
||||
class TestDualbandPerformanceVlan(object):
|
||||
|
||||
"""
|
||||
pytest -m "dual_band_test and vlan and wpa2_personal and twog and fiveg"
|
||||
"""
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.fiveg
|
||||
def test_client_wpa2_personal(self,get_vif_state,create_lanforge_chamberview_dut,lf_test,get_configuration):
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"]
|
||||
ssid_2G = profile_data[0]["ssid_name"]
|
||||
ssid_5G = profile_data[1]["ssid_name"]
|
||||
dut_name = create_lanforge_chamberview_dut
|
||||
mode = "VLAN"
|
||||
vlan = 100
|
||||
if ssid_2G and ssid_5G not in get_vif_state:
|
||||
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
|
||||
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
|
||||
|
||||
dbpt_obj = lf_test.dualbandperformancetest(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
|
||||
instance_name="dbp_instance_wpa2p_vlan",
|
||||
vlan_id=vlan, dut_name=dut_name)
|
||||
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
|
||||
entries = os.listdir("../reports/" + report_name + '/')
|
||||
pdf = False
|
||||
for i in entries:
|
||||
if ".pdf" in i:
|
||||
pdf = i
|
||||
if pdf:
|
||||
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
|
||||
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")
|
||||
|
||||