mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-10-31 19:08:01 +00:00
Merged WIFI-7 branches (#1053)
* Added sanity marker for 6g test cases Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Add logic for better error handling * Add detailed error logging * Add fix for broken Dynamic VLAN 6GHz test cases * Configured channel mode to EHT for wifi7 * Removed sercomm_ap72tip and Added sonicfi_rap7110c-341x AP in the sanity, performance and regression workflows Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Replaced HE mode with EHT mode for the AP config Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Increased sleep time after config push * Replaced 2g test case with 5g test case in the sanity suite Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Swapped the testbed basic-4a and basic-5a Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Increased the sleep time after the config push Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Update sleep time for all interfaces to come up * Removed sonicfi_rap7110c-341x AP from basic-4 and added it in advanced-2 testbed Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Updated the DFS path for WiFi 7 APs Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Add BE capacity tests and BE client scale tests * Rename client_scale tests into ax_client_scale tests * Rename client_scale_tests into ax_client_scale_tests * Remove bidirectional tests from ax_client_scale tests * Add configuraion data * Provide pass fail criteria for 2G 2x2 40MHz * Modified the marker name Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added be_client_scale_tests, wifi_capacity_be_tests and ax_client_scale_tests for new performance suite Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Increased the wait time after config push Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added the ax capacity marker Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Change upload and download rate for BE client scale * Added pass fail values for BE mode Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Modified the markers for the test cases Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added be mode pass fail Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added pass-fail values for 6g 2x2 160MHz Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added pass-fail values for 6g 2x2 160MHz Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Replaced basic-4a with adv-2a Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Add Multiband testcases * Add multi_band_tests marker * Replaced dual band with multi band test Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Update sleep time after config push * Update sleep time after config push * ADD EMPSK 6G testcase * Update dataplane tests * Modified the namespace name for sonicfi_rap630c-311g Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com> * Replaced advanced-2a with advanced-2c Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com> * Replaced advanced-2a with advanced-2c Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com> * Updated code as per master Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com> * Replaced advanced-2c with basic-5b Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com> * Added jsonschema module Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com> * Replace basic-5b with advanced-2c * Add EAP112 & OAP103-BR to all automation workflows * Add EAP112 & OAP103-BR to all automation workflows * Update workflows * Update workflows * Add CIG189H in workflows * Add CIG189H to performance workflow and add pass/fail criteria for performance testing * Add CIG189H in AP models in a workflow * Add Advance Captive Portal testcases on 5GHz and 6GHz * Change sonicfi-rap7110c-341x AP from advance-2c to basic-4a in sanity and regression workflows * Modify the namespace name for sonicfi_rap7110c-341x * Update logic to assign channel mode in controller.py Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update performance workflow and add sanity marker to a be_capacity test Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Add pass fail criteria for perforamnce for CIG189H AP Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Added sets parameter to enable the UDP-Burst,UDP-GRO and Multiple Endpoints options Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com> * Remove regression marker from EMPSK testcase Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update DFS path for the EAP112 AP Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update pass fail criteria for CIG189H AP for AX mode Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update pass fail criteria for cig189h AP Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Modify tedtbed from basic-4a to basic-5a for cig_wf189 AP in sanity workflow Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update dfs path for WIFI7 AP Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update dfs path Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update EMPSK test case Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Enable 320MHz from client side for EMPSK test case Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Add EMPSK test case into sanity test suite * Remove EMPSK from sanity Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Fix typos: replaced wap with wpa encryption Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update EMPSK testcase Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update the testbed name for sonicfi_rap7110c-341x AP to basic-4a in performance workflow Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update radio config for DFS testcases Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Update DFS testcase to verify configured channel Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> * Add get_dut_logs_per_test_case and get_test_device_logs fixtures to multiband testcases Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> --------- Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com> Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com> Co-authored-by: bhargavi-mamidipaka <bhargavi.mamidipaka@candelatech.com> Co-authored-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>
This commit is contained in:
committed by
GitHub
parent
ae0fb31623
commit
98e67832aa
1327
.github/workflows/performance.yml
vendored
1327
.github/workflows/performance.yml
vendored
File diff suppressed because it is too large
Load Diff
274
.github/workflows/quali.yml
vendored
274
.github/workflows/quali.yml
vendored
@@ -22,7 +22,7 @@ on:
|
|||||||
description: "revision of the Open Wifi Helm chart"
|
description: "revision of the Open Wifi Helm chart"
|
||||||
ap_models:
|
ap_models:
|
||||||
required: true
|
required: true
|
||||||
default: "cig_wf186h,edgecore_eap104,cig_wf196,udaya_a6-id2,sonicfi_rap630c-311g,hfcl_ion4xe,yuncore_fap655,cig_wf189,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111"
|
default: "cig_wf186h,edgecore_eap104,sonicfi_rap630c-311g,hfcl_ion4xe,yuncore_fap655,cig_wf189,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111,edgecore_oap103,edgecore_eap112,cig_wf189h"
|
||||||
description: "the AP models to test"
|
description: "the AP models to test"
|
||||||
ap_version:
|
ap_version:
|
||||||
required: true
|
required: true
|
||||||
@@ -103,7 +103,7 @@ jobs:
|
|||||||
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf189,edgecore_eap105,edgecore_eap111' }}"
|
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf189,edgecore_eap105,edgecore_eap111' }}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf186h,cig_wf196,yuncore_ax820,yuncore_fap655,sercomm_ap72tip,edgecore_eap101' }}"
|
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf186h,cig_wf196,yuncore_ax820,yuncore_fap655,sercomm_ap72tip,edgecore_eap101,edgecore_oap103,edgecore_eap112,cig_wf189h' }}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "List of AP models to test - $AP_MODELS"
|
echo "List of AP models to test - $AP_MODELS"
|
||||||
@@ -1208,11 +1208,277 @@ jobs:
|
|||||||
if: failure()
|
if: failure()
|
||||||
run: kubectl -n openwifi-qa01 logs deployment/owsec
|
run: kubectl -n openwifi-qa01 logs deployment/owsec
|
||||||
|
|
||||||
|
test-edgecore-oap103:
|
||||||
|
needs: [ "vars", "build" ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_oap103')"
|
||||||
|
env:
|
||||||
|
AP_MODEL: edgecore_oap103
|
||||||
|
steps:
|
||||||
|
- name: Set AP model output
|
||||||
|
id: ap_model
|
||||||
|
run: |
|
||||||
|
echo "model=${AP_MODEL}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.8"
|
||||||
|
|
||||||
|
# TODO WIFI-7839 delete when issue is resolved on AWS CLI side
|
||||||
|
- name: install kubectl
|
||||||
|
run: |
|
||||||
|
curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl"
|
||||||
|
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
|
||||||
|
|
||||||
|
- name: get EKS access credentials
|
||||||
|
run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
|
||||||
|
|
||||||
|
- name: prepare namespace name
|
||||||
|
id: namespace
|
||||||
|
run: |
|
||||||
|
NAMESPACE="testing-${{ github.run_id }}-$(echo ${{ steps.ap_model.outputs.model }} | tr '[:upper:]' '[:lower:]' | tr '_' '-')"
|
||||||
|
echo "name=${NAMESPACE}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: prepare configuration
|
||||||
|
run: |
|
||||||
|
cat << EOF > lab_info.json
|
||||||
|
${{ secrets.LAB_INFO_JSON }}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
- name: run tests
|
||||||
|
uses: ./.github/actions/run-tests
|
||||||
|
with:
|
||||||
|
namespace: ${{ steps.namespace.outputs.name }}
|
||||||
|
testbed: basic-3
|
||||||
|
marker_expression: "${{ needs.vars.outputs.marker_expression }}"
|
||||||
|
configuration_file: "./lab_info.json"
|
||||||
|
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
|
||||||
|
additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"'
|
||||||
|
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}"
|
||||||
|
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
|
||||||
|
|
||||||
|
# necessary because if conditionals in composite actions are currently not respected
|
||||||
|
- name: get tests logs
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }} --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
|
||||||
|
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }} $podname || true
|
||||||
|
|
||||||
|
- name: delete namespace
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}
|
||||||
|
|
||||||
|
- name: show gw logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owgw
|
||||||
|
|
||||||
|
- name: show fms logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owfms
|
||||||
|
|
||||||
|
- name: show prov logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owprov
|
||||||
|
|
||||||
|
- name: show analytics logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owanalytics
|
||||||
|
|
||||||
|
- name: show subscription (userportal) logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owsub
|
||||||
|
|
||||||
|
- name: show sec logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owsec
|
||||||
|
|
||||||
|
test-edgecore-eap112:
|
||||||
|
needs: [ "vars", "build" ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap112')"
|
||||||
|
env:
|
||||||
|
AP_MODEL: edgecore_eap112
|
||||||
|
steps:
|
||||||
|
- name: Set AP model output
|
||||||
|
id: ap_model
|
||||||
|
run: |
|
||||||
|
echo "model=${AP_MODEL}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.8"
|
||||||
|
|
||||||
|
# TODO WIFI-7839 delete when issue is resolved on AWS CLI side
|
||||||
|
- name: install kubectl
|
||||||
|
run: |
|
||||||
|
curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl"
|
||||||
|
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
|
||||||
|
|
||||||
|
- name: get EKS access credentials
|
||||||
|
run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
|
||||||
|
|
||||||
|
- name: prepare namespace name
|
||||||
|
id: namespace
|
||||||
|
run: |
|
||||||
|
NAMESPACE="testing-${{ github.run_id }}-$(echo ${{ steps.ap_model.outputs.model }} | tr '[:upper:]' '[:lower:]' | tr '_' '-')"
|
||||||
|
echo "name=${NAMESPACE}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: prepare configuration
|
||||||
|
run: |
|
||||||
|
cat << EOF > lab_info.json
|
||||||
|
${{ secrets.LAB_INFO_JSON }}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
- name: run tests
|
||||||
|
uses: ./.github/actions/run-tests
|
||||||
|
with:
|
||||||
|
namespace: ${{ steps.namespace.outputs.name }}
|
||||||
|
testbed: basic-1
|
||||||
|
marker_expression: "${{ needs.vars.outputs.marker_expression }}"
|
||||||
|
configuration_file: "./lab_info.json"
|
||||||
|
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
|
||||||
|
additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"'
|
||||||
|
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}"
|
||||||
|
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
|
||||||
|
|
||||||
|
# necessary because if conditionals in composite actions are currently not respected
|
||||||
|
- name: get tests logs
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }} --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
|
||||||
|
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }} $podname || true
|
||||||
|
|
||||||
|
- name: delete namespace
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}
|
||||||
|
|
||||||
|
- name: show gw logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owgw
|
||||||
|
|
||||||
|
- name: show fms logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owfms
|
||||||
|
|
||||||
|
- name: show prov logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owprov
|
||||||
|
|
||||||
|
- name: show analytics logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owanalytics
|
||||||
|
|
||||||
|
- name: show subscription (userportal) logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owsub
|
||||||
|
|
||||||
|
- name: show sec logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owsec
|
||||||
|
|
||||||
|
test-cig-wf189h:
|
||||||
|
needs: [ "vars", "build" ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'cig_wf189h')"
|
||||||
|
env:
|
||||||
|
AP_MODEL: cig_wf189h
|
||||||
|
steps:
|
||||||
|
- name: Set AP model output
|
||||||
|
id: ap_model
|
||||||
|
run: |
|
||||||
|
echo "model=${AP_MODEL}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.8"
|
||||||
|
|
||||||
|
# TODO WIFI-7839 delete when issue is resolved on AWS CLI side
|
||||||
|
- name: install kubectl
|
||||||
|
run: |
|
||||||
|
curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl"
|
||||||
|
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
|
||||||
|
|
||||||
|
- name: get EKS access credentials
|
||||||
|
run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
|
||||||
|
|
||||||
|
- name: prepare namespace name
|
||||||
|
id: namespace
|
||||||
|
run: |
|
||||||
|
NAMESPACE="testing-${{ github.run_id }}-$(echo ${{ steps.ap_model.outputs.model }} | tr '[:upper:]' '[:lower:]' | tr '_' '-')"
|
||||||
|
echo "name=${NAMESPACE}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: prepare configuration
|
||||||
|
run: |
|
||||||
|
cat << EOF > lab_info.json
|
||||||
|
${{ secrets.LAB_INFO_JSON }}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
- name: run tests
|
||||||
|
uses: ./.github/actions/run-tests
|
||||||
|
with:
|
||||||
|
namespace: ${{ steps.namespace.outputs.name }}
|
||||||
|
testbed: basic-4
|
||||||
|
marker_expression: "${{ needs.vars.outputs.marker_expression }}"
|
||||||
|
configuration_file: "./lab_info.json"
|
||||||
|
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
|
||||||
|
additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"'
|
||||||
|
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}"
|
||||||
|
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
|
||||||
|
|
||||||
|
# necessary because if conditionals in composite actions are currently not respected
|
||||||
|
- name: get tests logs
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }} --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
|
||||||
|
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }} $podname || true
|
||||||
|
|
||||||
|
- name: delete namespace
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}
|
||||||
|
|
||||||
|
- name: show gw logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owgw
|
||||||
|
|
||||||
|
- name: show fms logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owfms
|
||||||
|
|
||||||
|
- name: show prov logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owprov
|
||||||
|
|
||||||
|
- name: show analytics logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owanalytics
|
||||||
|
|
||||||
|
- name: show subscription (userportal) logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owsub
|
||||||
|
|
||||||
|
- name: show sec logs
|
||||||
|
if: failure()
|
||||||
|
run: kubectl -n openwifi-qa01 logs deployment/owsec
|
||||||
# Save reports
|
# Save reports
|
||||||
report:
|
report:
|
||||||
if: "!cancelled()"
|
if: "!cancelled()"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [vars, test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111]
|
needs: [vars, test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111,test-edgecore-oap103,test-edgecore-eap112,test-cig-wf189h]
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -1263,7 +1529,7 @@ jobs:
|
|||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
cleanup:
|
cleanup:
|
||||||
needs: [test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111]
|
needs: [test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111,test-edgecore-oap103,test-edgecore-eap112,test-cig-wf189h]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
1014
.github/workflows/regression.yml
vendored
1014
.github/workflows/regression.yml
vendored
File diff suppressed because it is too large
Load Diff
@@ -462,7 +462,19 @@ class APLIBS:
|
|||||||
logging.info("Status count: " + str(status_count_1))
|
logging.info("Status count: " + str(status_count_1))
|
||||||
if status_count_1 == 1:
|
if status_count_1 == 1:
|
||||||
logging.info("In Mediatek Chipsets")
|
logging.info("In Mediatek Chipsets")
|
||||||
cmd = f'cd && cd /sys/kernel/debug/ieee80211/phy1/mt76/ && ls && echo 1 > radar_trigger'
|
cmd = f'cd && cd //sys/kernel/debug/ieee80211/phy1/mt76/ && ls && echo 1 > radar_trigger'
|
||||||
|
else:
|
||||||
|
cmd1 = '[ -f /sys/kernel/debug/ieee80211/phy2/mt76/radar_trigger ] && echo "True" || echo "False"'
|
||||||
|
output = self.run_generic_command(cmd=cmd1, idx=idx,
|
||||||
|
print_log=print_log,
|
||||||
|
attach_allure=attach_allure,
|
||||||
|
expected_attachment_type=allure.attachment_type.JSON)
|
||||||
|
ret = output.split("\n")
|
||||||
|
status_count_1 = int(ret.count("True"))
|
||||||
|
logging.info("Status count: " + str(status_count_1))
|
||||||
|
if status_count_1 == 1:
|
||||||
|
logging.info("In Mediatek EAP112 Chipset (phy2)")
|
||||||
|
cmd = f'cd && cd /sys/kernel/debug/ieee80211/phy2/mt76/ && ls && echo 1 > radar_trigger'
|
||||||
else:
|
else:
|
||||||
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && ls && echo 1 > dfs_simulate_radar'
|
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && ls && echo 1 > dfs_simulate_radar'
|
||||||
elif type_.lower() == "wifi7":
|
elif type_.lower() == "wifi7":
|
||||||
@@ -478,7 +490,7 @@ class APLIBS:
|
|||||||
if status_count == 1:
|
if status_count == 1:
|
||||||
cmd = "cd && cd /sys/kernel/debug/ieee80211/phy0/ && cd ath12k_hw1 && echo 1 > dfs_simulate_radar"
|
cmd = "cd && cd /sys/kernel/debug/ieee80211/phy0/ && cd ath12k_hw1 && echo 1 > dfs_simulate_radar"
|
||||||
else:
|
else:
|
||||||
cmd = f'cd && cd /sys/kernel/debug/ath12k/ && cd qcn* && cd mac1 && ls && echo 1 > dfs_simulate_radar'
|
cmd = "cd && cd /sys/kernel/debug/ieee80211/phy00/ && cd ath12k_hw1 && echo 1 > dfs_simulate_radar"
|
||||||
output = self.run_generic_command(cmd=cmd, idx=idx,
|
output = self.run_generic_command(cmd=cmd, idx=idx,
|
||||||
print_log=print_log,
|
print_log=print_log,
|
||||||
attach_allure=attach_allure,
|
attach_allure=attach_allure,
|
||||||
@@ -525,7 +537,7 @@ class APLIBS:
|
|||||||
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd qcn6122_2 && cd mac0 && logread | grep DFS'
|
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd qcn6122_2 && cd mac0 && logread | grep DFS'
|
||||||
else:
|
else:
|
||||||
#cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && logread | grep DFS'
|
#cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && logread | grep DFS'
|
||||||
cmd1 = '[ -f /sys/kernel/debug/ieee80211/phy1/mt76/radar_trigger ] && echo "True" || echo "False"'
|
cmd1 = '[ -f //sys/kernel/debug/ieee80211/phy1/mt76/radar_trigger ] && echo "True" || echo "False"'
|
||||||
output = self.run_generic_command(cmd=cmd1, idx=idx,
|
output = self.run_generic_command(cmd=cmd1, idx=idx,
|
||||||
print_log=print_log,
|
print_log=print_log,
|
||||||
attach_allure=attach_allure,
|
attach_allure=attach_allure,
|
||||||
@@ -534,7 +546,19 @@ class APLIBS:
|
|||||||
status_count_1 = int(ret.count("True"))
|
status_count_1 = int(ret.count("True"))
|
||||||
logging.info("Status count: " + str(status_count_1))
|
logging.info("Status count: " + str(status_count_1))
|
||||||
if status_count_1 == 1:
|
if status_count_1 == 1:
|
||||||
cmd = f'cd && cd /sys/kernel/debug/ieee80211/phy1/mt76/ && logread | grep DFS'
|
cmd = f'cd && cd //sys/kernel/debug/ieee80211/phy1/mt76/ && logread | grep DFS'
|
||||||
|
else:
|
||||||
|
# cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && logread | grep DFS'
|
||||||
|
cmd1 = '[ -f //sys/kernel/debug/ieee80211/phy2/mt76/radar_trigger ] && echo "True" || echo "False"'
|
||||||
|
output = self.run_generic_command(cmd=cmd1, idx=idx,
|
||||||
|
print_log=print_log,
|
||||||
|
attach_allure=attach_allure,
|
||||||
|
expected_attachment_type=allure.attachment_type.JSON)
|
||||||
|
ret = output.split("\n")
|
||||||
|
status_count_1 = int(ret.count("True"))
|
||||||
|
logging.info("Status count: " + str(status_count_1))
|
||||||
|
if status_count_1 == 1:
|
||||||
|
cmd = f'cd && cd //sys/kernel/debug/ieee80211/phy2/mt76/ && logread | grep DFS'
|
||||||
else:
|
else:
|
||||||
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && logread | grep DFS'
|
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && logread | grep DFS'
|
||||||
elif type_.lower() == "wifi7":
|
elif type_.lower() == "wifi7":
|
||||||
@@ -545,9 +569,9 @@ class APLIBS:
|
|||||||
expected_attachment_type=allure.attachment_type.JSON)
|
expected_attachment_type=allure.attachment_type.JSON)
|
||||||
logging.info("DFS logread output: " + str(output))
|
logging.info("DFS logread output: " + str(output))
|
||||||
if output.__contains__("False"):
|
if output.__contains__("False"):
|
||||||
cmd = f'cd && cd /sys/kernel/debug/ieee80211/phy0/ath12k_hw1/ && logread | grep DFS'
|
cmd = f'cd && cd /sys/kernel/debug/ieee80211/phy00/ath12k_hw1/ && logread | grep DFS'
|
||||||
else:
|
else:
|
||||||
cmd = f'cd && cd /sys/kernel/debug/ath12k/ && cd qcn* && cd mac1 && logread | grep DFS'
|
cmd = f'cd && cd /sys/kernel/debug/ieee80211/phy0/ath12k_hw1/ && logread | grep DFS'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
output = self.run_generic_command(cmd=cmd, idx=idx,
|
output = self.run_generic_command(cmd=cmd, idx=idx,
|
||||||
|
|||||||
@@ -2611,7 +2611,7 @@ class UProfileUtility:
|
|||||||
ssid_info.append(temp)
|
ssid_info.append(temp)
|
||||||
return ssid_info
|
return ssid_info
|
||||||
|
|
||||||
def set_radio_config(self, radio_config={}, open_roaming=False):
|
def set_radio_config(self, radio_config={}, open_roaming=False, ap_mode="wifi6"):
|
||||||
if open_roaming:
|
if open_roaming:
|
||||||
base_radio_config_2g = {
|
base_radio_config_2g = {
|
||||||
"band": "2G",
|
"band": "2G",
|
||||||
@@ -2627,6 +2627,13 @@ class UProfileUtility:
|
|||||||
"channel-width": 80,
|
"channel-width": 80,
|
||||||
"channel": "auto"
|
"channel": "auto"
|
||||||
}
|
}
|
||||||
|
if ap_mode == "wifi6" or ap_mode =="wifi6e":
|
||||||
|
base_radio_config_2g["channel-mode"] = "HE"
|
||||||
|
base_radio_config_5g["channel-mode"] = "HE"
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
logging.info("yes it's wifi7 AP and open_roaming")
|
||||||
|
base_radio_config_2g["channel-mode"] = "EHT"
|
||||||
|
base_radio_config_5g["channel-mode"] = "EHT"
|
||||||
|
|
||||||
for band in radio_config:
|
for band in radio_config:
|
||||||
if band == "2G" and radio_config[band] is not None:
|
if band == "2G" and radio_config[band] is not None:
|
||||||
@@ -2641,22 +2648,33 @@ class UProfileUtility:
|
|||||||
base_radio_config_2g = {
|
base_radio_config_2g = {
|
||||||
"band": "2G",
|
"band": "2G",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
"channel-mode": "HE",
|
"channel-mode": "EHT",
|
||||||
"channel": "auto"
|
"channel": "auto"
|
||||||
}
|
}
|
||||||
base_radio_config_5g = {
|
base_radio_config_5g = {
|
||||||
"band": "5G",
|
"band": "5G",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
"allow-dfs": False,
|
"allow-dfs": False,
|
||||||
"channel-mode": "HE",
|
"channel-mode": "EHT",
|
||||||
"channel": "auto"
|
"channel": "auto"
|
||||||
}
|
}
|
||||||
base_radio_config_6g = {
|
base_radio_config_6g = {
|
||||||
"band": "6G",
|
"band": "6G",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
"channel-mode": "HE",
|
"channel-mode": "EHT",
|
||||||
"channel": "auto"
|
"channel": "auto"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ap_mode == "wifi6" or ap_mode =="wifi6e":
|
||||||
|
base_radio_config_2g["channel-mode"] = "HE"
|
||||||
|
base_radio_config_5g["channel-mode"] = "HE"
|
||||||
|
base_radio_config_6g["channel-mode"] = "HE"
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
logging.info("yes it's wifi7 AP")
|
||||||
|
base_radio_config_2g["channel-mode"] = "EHT"
|
||||||
|
base_radio_config_5g["channel-mode"] = "EHT"
|
||||||
|
base_radio_config_6g["channel-mode"] = "EHT"
|
||||||
|
|
||||||
for band in radio_config:
|
for band in radio_config:
|
||||||
if band == "2G" and radio_config[band] is not None:
|
if band == "2G" and radio_config[band] is not None:
|
||||||
for keys in radio_config[band]:
|
for keys in radio_config[band]:
|
||||||
@@ -2671,6 +2689,8 @@ class UProfileUtility:
|
|||||||
self.base_profile_config["radios"].append(base_radio_config_2g)
|
self.base_profile_config["radios"].append(base_radio_config_2g)
|
||||||
self.base_profile_config["radios"].append(base_radio_config_5g)
|
self.base_profile_config["radios"].append(base_radio_config_5g)
|
||||||
self.base_profile_config["radios"].append(base_radio_config_6g)
|
self.base_profile_config["radios"].append(base_radio_config_6g)
|
||||||
|
|
||||||
|
logging.info(f"base_profile_config:{self.base_profile_config}")
|
||||||
self.vlan_section["ssids"] = []
|
self.vlan_section["ssids"] = []
|
||||||
self.vlan_ids = []
|
self.vlan_ids = []
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,8 @@ class tip_2x:
|
|||||||
"wpa3_enterprise",
|
"wpa3_enterprise",
|
||||||
"wpa_wpa2_enterprise_mixed",
|
"wpa_wpa2_enterprise_mixed",
|
||||||
"wpa3_enterprise_mixed",
|
"wpa3_enterprise_mixed",
|
||||||
"wpa3_enterprise_192"
|
"wpa3_enterprise_192",
|
||||||
|
"owe"
|
||||||
]
|
]
|
||||||
tip_2x_specific_encryption_translation = {"open": "none",
|
tip_2x_specific_encryption_translation = {"open": "none",
|
||||||
"wpa": "psk",
|
"wpa": "psk",
|
||||||
@@ -77,7 +78,8 @@ class tip_2x:
|
|||||||
"wpa3_enterprise": "wpa3",
|
"wpa3_enterprise": "wpa3",
|
||||||
"wpa_wpa2_enterprise_mixed": "wpa-mixed",
|
"wpa_wpa2_enterprise_mixed": "wpa-mixed",
|
||||||
"wpa3_enterprise_mixed": "wpa3-mixed",
|
"wpa3_enterprise_mixed": "wpa3-mixed",
|
||||||
"wpa3_enterprise_192": "wpa3-192"
|
"wpa3_enterprise_192": "wpa3-192",
|
||||||
|
"owe":"owe"
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, controller_data=None, target=None, configuration=None,
|
def __init__(self, controller_data=None, target=None, configuration=None,
|
||||||
@@ -231,6 +233,12 @@ class tip_2x:
|
|||||||
requested_combination=None, open_roaming=False):
|
requested_combination=None, open_roaming=False):
|
||||||
f_conf = self.setup_configuration_data(configuration=configuration,
|
f_conf = self.setup_configuration_data(configuration=configuration,
|
||||||
requested_combination=requested_combination)
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
# fetch ap_mode from DUT data (ap_mode can be wifii6 or wifi6e or wifi7)
|
||||||
|
for i in range(0, len(self.device_under_tests_info)):
|
||||||
|
ap_mode = self.device_under_tests_info[i]["mode"]
|
||||||
|
logging.info(f"ap_mode:{ap_mode}")
|
||||||
|
|
||||||
if open_roaming:
|
if open_roaming:
|
||||||
logging.info("Selected Configuration of open roaming: " + str(json.dumps(f_conf, indent=2)))
|
logging.info("Selected Configuration of open roaming: " + str(json.dumps(f_conf, indent=2)))
|
||||||
final_configuration = f_conf.copy()
|
final_configuration = f_conf.copy()
|
||||||
@@ -243,10 +251,11 @@ class tip_2x:
|
|||||||
|
|
||||||
# Setup Radio Scenario
|
# Setup Radio Scenario
|
||||||
if final_configuration["rf"] != {}:
|
if final_configuration["rf"] != {}:
|
||||||
profile_object.set_radio_config(radio_config=final_configuration["rf"], open_roaming=open_roaming)
|
profile_object.set_radio_config(radio_config=final_configuration["rf"], open_roaming=open_roaming,
|
||||||
|
ap_mode=ap_mode)
|
||||||
else:
|
else:
|
||||||
final_configuration["rf"] = {"2G": {}, "5G": {}, "6G": {}}
|
final_configuration["rf"] = {"2G": {}, "5G": {}, "6G": {}}
|
||||||
profile_object.set_radio_config(open_roaming=open_roaming)
|
profile_object.set_radio_config(open_roaming=open_roaming, ap_mode=ap_mode)
|
||||||
for ssid in final_configuration["ssid_modes"]:
|
for ssid in final_configuration["ssid_modes"]:
|
||||||
for ssid_data in final_configuration["ssid_modes"][ssid]:
|
for ssid_data in final_configuration["ssid_modes"][ssid]:
|
||||||
if final_configuration["radius"]:
|
if final_configuration["radius"]:
|
||||||
@@ -276,10 +285,10 @@ class tip_2x:
|
|||||||
|
|
||||||
# Setup Radio Scenario
|
# Setup Radio Scenario
|
||||||
if final_configuration["rf"] != {}:
|
if final_configuration["rf"] != {}:
|
||||||
profile_object.set_radio_config(radio_config=final_configuration["rf"])
|
profile_object.set_radio_config(radio_config=final_configuration["rf"], ap_mode=ap_mode)
|
||||||
else:
|
else:
|
||||||
final_configuration["rf"] = {"2G": {}, "5G": {}, "6G": {}}
|
final_configuration["rf"] = {"2G": {}, "5G": {}, "6G": {}}
|
||||||
profile_object.set_radio_config()
|
profile_object.set_radio_config(ap_mode=ap_mode)
|
||||||
for ssid in final_configuration["ssid_modes"]:
|
for ssid in final_configuration["ssid_modes"]:
|
||||||
for ssid_data in final_configuration["ssid_modes"][ssid]:
|
for ssid_data in final_configuration["ssid_modes"][ssid]:
|
||||||
if final_configuration["radius"]:
|
if final_configuration["radius"]:
|
||||||
@@ -393,8 +402,8 @@ class tip_2x:
|
|||||||
logging.info("resp: " + str(resp))
|
logging.info("resp: " + str(resp))
|
||||||
uuid = resp["details"]["uuid"]
|
uuid = resp["details"]["uuid"]
|
||||||
logging.info("uuid from resp: " + str(uuid))
|
logging.info("uuid from resp: " + str(uuid))
|
||||||
logging.info("Waiting for 30 sec after config push")
|
logging.info("Waiting for 45 sec after config push")
|
||||||
time.sleep(30)
|
time.sleep(45)
|
||||||
r_data = self.dut_library_object.ubus_call_ucentral_status(idx=i, print_log=True, attach_allure=False)
|
r_data = self.dut_library_object.ubus_call_ucentral_status(idx=i, print_log=True, attach_allure=False)
|
||||||
latest_uuid_after_apply = r_data["latest"]
|
latest_uuid_after_apply = r_data["latest"]
|
||||||
active_uuid_after_apply = r_data["active"]
|
active_uuid_after_apply = r_data["active"]
|
||||||
@@ -425,9 +434,9 @@ class tip_2x:
|
|||||||
pytest.fail("Config is not Properly Applied on AP")
|
pytest.fail("Config is not Properly Applied on AP")
|
||||||
|
|
||||||
self.dut_library_object.get_active_config(idx=i, print_log=True, attach_allure=False)
|
self.dut_library_object.get_active_config(idx=i, print_log=True, attach_allure=False)
|
||||||
logging.info("Waiting for 30 Seconds for All interfaces to come up")
|
logging.info("Waiting for 45 Seconds for All interfaces to come up")
|
||||||
# wait time interfaces to come up
|
# wait time interfaces to come up
|
||||||
time.sleep(30)
|
time.sleep(45)
|
||||||
|
|
||||||
# x = 0
|
# x = 0
|
||||||
# while uuid_before_apply == uuid_after_apply:
|
# while uuid_before_apply == uuid_after_apply:
|
||||||
@@ -502,7 +511,22 @@ class tip_2x:
|
|||||||
n = len(temp_data[dut])
|
n = len(temp_data[dut])
|
||||||
lst = list(range(0, n))
|
lst = list(range(0, n))
|
||||||
ret_val[dut]["ssid_data"] = dict.fromkeys(lst)
|
ret_val[dut]["ssid_data"] = dict.fromkeys(lst)
|
||||||
|
fields = ["SSID", "Encryption", "Password", "Band", "BSSID"]
|
||||||
for j in ret_val[dut]["ssid_data"]:
|
for j in ret_val[dut]["ssid_data"]:
|
||||||
|
ssid_entry = temp_data[dut][j]
|
||||||
|
expected_length = 5
|
||||||
|
if len(ssid_entry) < expected_length:
|
||||||
|
missing_fields = []
|
||||||
|
# Check each field for its presence
|
||||||
|
for index, field in enumerate(fields):
|
||||||
|
if len(ssid_entry) <= index:
|
||||||
|
missing_fields.append(field)
|
||||||
|
if missing_fields:
|
||||||
|
logging.error(
|
||||||
|
f"Error: Missing field(s) {', '.join(missing_fields)} for SSID entry '{ssid_entry[0]}' in {ssid_entry}. Please check iwinfo")
|
||||||
|
pytest.fail(
|
||||||
|
f"Error: Missing field(s) {', '.join(missing_fields)} for SSID entry '{ssid_entry[0]}' in {ssid_entry}. Please check iwinfo")
|
||||||
|
else:
|
||||||
a = temp_data[dut][j].copy()
|
a = temp_data[dut][j].copy()
|
||||||
a = dict.fromkeys(["ssid", "encryption", "password", "band", "bssid"])
|
a = dict.fromkeys(["ssid", "encryption", "password", "band", "bssid"])
|
||||||
a["ssid"] = temp_data[dut][j][0]
|
a["ssid"] = temp_data[dut][j][0]
|
||||||
@@ -660,14 +684,19 @@ class tip_2x:
|
|||||||
band = "2G"
|
band = "2G"
|
||||||
elif o[i + 9].__contains__("5."):
|
elif o[i + 9].__contains__("5."):
|
||||||
band = "5G"
|
band = "5G"
|
||||||
|
elif "unknown" in o[i + 9]:
|
||||||
|
logging.info(f"Error: {o[i - 1]} has an unknown channel frequency from iwinfo")
|
||||||
|
pytest.fail(f"Error: {o[i - 1]} has an unknown channel frequency from iwinfo")
|
||||||
else:
|
else:
|
||||||
band = "6G"
|
band = "6G"
|
||||||
iwinfo_bssid_data[o[i - 1]] = [o[i + 1].replace('"', ''), o[i + 4], band]
|
iwinfo_bssid_data[o[i - 1]] = [o[i + 1].replace('"', ''), o[i + 4], band]
|
||||||
|
logging.info(f"iwinfo_bssid_data:{iwinfo_bssid_data}")
|
||||||
for p in iwinfo_bssid_data:
|
for p in iwinfo_bssid_data:
|
||||||
for q in ssid_info_sdk:
|
for q in ssid_info_sdk:
|
||||||
if iwinfo_bssid_data[p][0] == q[0] and iwinfo_bssid_data[p][2] == q[3]:
|
if iwinfo_bssid_data[p][0] == q[0] and iwinfo_bssid_data[p][2] == q[3]:
|
||||||
q.append(iwinfo_bssid_data[p][1])
|
q.append(iwinfo_bssid_data[p][1])
|
||||||
ssid_info_sdk.append(channel_info)
|
ssid_info_sdk.append(channel_info)
|
||||||
|
logging.info(f"ssid_info_sdk:{ssid_info_sdk}")
|
||||||
return ssid_info_sdk
|
return ssid_info_sdk
|
||||||
|
|
||||||
def get_dut_version(self):
|
def get_dut_version(self):
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ def get_security_flags():
|
|||||||
security = ["open", "wpa", "wep", "wpa2_personal", "wpa3_personal", "wpa3_personal_mixed",
|
security = ["open", "wpa", "wep", "wpa2_personal", "wpa3_personal", "wpa3_personal_mixed",
|
||||||
"wpa_wpa2_enterprise_mixed", "wpa2_eap", "wpa2_only_eap",
|
"wpa_wpa2_enterprise_mixed", "wpa2_eap", "wpa2_only_eap",
|
||||||
"wpa_wpa2_personal_mixed", "wpa_enterprise", "wpa2_enterprise", "wpa3_enterprise_mixed",
|
"wpa_wpa2_personal_mixed", "wpa_enterprise", "wpa2_enterprise", "wpa3_enterprise_mixed",
|
||||||
"wpa3_enterprise", "twog", "fiveg", "sixg", "fiveg_lower", "fiveg_upper", "radius"]
|
"wpa3_enterprise", "twog", "fiveg", "sixg", "fiveg_lower", "fiveg_upper", "radius", "owe"]
|
||||||
yield security
|
yield security
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
pytest -m "external_captive_portal_tests and bridge"
|
pytest -m "external_captive_portal_tests and bridge"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
@@ -12,14 +13,11 @@ import paramiko
|
|||||||
import pytest
|
import pytest
|
||||||
from tabulate import tabulate
|
from tabulate import tabulate
|
||||||
|
|
||||||
pytestmark = [pytest.mark.external_captive_portal_tests, pytest.mark.bridge, pytest.mark.advanced_captive_portal_tests]
|
pytestmark = [pytest.mark.external_captive_portal_tests, pytest.mark.bridge, pytest.mark.advanced_captive_portal_tests,
|
||||||
|
pytest.mark.click_to_continue]
|
||||||
|
|
||||||
setup_params_general = {
|
|
||||||
"mode": "BRIDGE",
|
captive = {
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_ext_cap_portal_open_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "uam",
|
"auth-mode": "uam",
|
||||||
"uam-port": 3990,
|
"uam-port": 3990,
|
||||||
"uam-secret": "hotsys123",
|
"uam-secret": "hotsys123",
|
||||||
@@ -28,31 +26,114 @@ setup_params_general = {
|
|||||||
"auth-server": "radius.hotspotsystem.com",
|
"auth-server": "radius.hotspotsystem.com",
|
||||||
"auth-port": 1812,
|
"auth-port": 1812,
|
||||||
"auth-secret": "hotsys123",
|
"auth-secret": "hotsys123",
|
||||||
"walled-garden-fqdn": [
|
"walled-garden-fqdn": ["*.google.com", "telecominfraproject.com", "customer.hotspotsystem.com", "youtube.com"]
|
||||||
"*.google.com",
|
|
||||||
"telecominfraproject.com",
|
|
||||||
"customer.hotspotsystem.com",
|
|
||||||
"youtube.com"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_ext_cap_portal_open_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_ext_cap_portal_open_5g_ctc", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "ext_cap_portal_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ext_cap_portal_6g_ctc", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="External Captive Portal")
|
@allure.suite(suite_name="External Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestBridgeModeExternalCaptivePortal(object):
|
class TestBridgeModeExternalCaptivePortal(object):
|
||||||
"""
|
"""
|
||||||
External Captive Portal Test: BRIDGE Mode
|
External Captive Portal Test: BRIDGE Mode
|
||||||
@@ -61,17 +142,17 @@ class TestBridgeModeExternalCaptivePortal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.click_to_continue
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Click-to-continue mode with open encryption 2.4 GHz Band Bridge mode")
|
@allure.title("Click-to-continue mode with open encryption 2.4 GHz Band Bridge mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-11148", name="WIFI-11148")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-11148", name="WIFI-11148")
|
||||||
def test_bridge_open_2g_click_to_continue(self, get_test_library, get_dut_logs_per_test_case,
|
def test_bridge_open_2g_click_to_continue(self, setup_initial_configuration, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, check_connectivity, setup_configuration,
|
get_test_device_logs, check_connectivity,
|
||||||
get_testbed_details, get_target_object):
|
get_testbed_details, get_target_object):
|
||||||
"""
|
"""
|
||||||
BRIDGE Mode External Captive Portal Test with open encryption 2.4 GHz Band
|
BRIDGE Mode External Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and twog and bridge and click_to_continue"
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and twog and bridge and click_to_continue"
|
||||||
"""
|
"""
|
||||||
|
get_test_library.check_band_ap(band="twog")
|
||||||
def run_command_using_ssh(ssh_client, command: str):
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
output = ""
|
output = ""
|
||||||
try_count = 1
|
try_count = 1
|
||||||
@@ -96,9 +177,193 @@ class TestBridgeModeExternalCaptivePortal(object):
|
|||||||
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_2g=1)[0].keys())[0]
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_2g=1)[0].keys())[0]
|
||||||
security = "open"
|
security = "open"
|
||||||
station = 'sta_ecp'
|
station = 'sta_ecp'
|
||||||
|
desired_band = "2G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["open"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
sta_got_ip = get_test_library.client_connect_using_radio(
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
ssid=setup_params_general["ssid_modes"][security][0]["ssid_name"],
|
ssid=ssid_name,
|
||||||
|
passkey="[BLANK]",
|
||||||
|
security="open",
|
||||||
|
mode=setup_params_general["mode"],
|
||||||
|
radio=radio_port_name,
|
||||||
|
station_name=[station],
|
||||||
|
attach_port_info=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
|
dict_table_sta = {
|
||||||
|
"Key": list(sta_info["interface"].keys()),
|
||||||
|
"Value": list(sta_info["interface"].values())
|
||||||
|
}
|
||||||
|
data_table_sta = tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Stations Data ({station}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"Stations Data ({station})", body=str(data_table_sta))
|
||||||
|
|
||||||
|
if sta_got_ip is False:
|
||||||
|
logging.info("Station Failed to get IP")
|
||||||
|
pytest.fail("Station Failed to get IP")
|
||||||
|
|
||||||
|
logging.info("Connecting SSH connection...")
|
||||||
|
hostname = get_test_library.manager_ip
|
||||||
|
port = get_test_library.manager_ssh_port
|
||||||
|
username = 'root'
|
||||||
|
password = 'lanforge'
|
||||||
|
ping_host = "google.com"
|
||||||
|
ping_count = 10
|
||||||
|
ping_command = f"/home/lanforge/vrf_exec.bash {station} ping -c {ping_count} {ping_host}"
|
||||||
|
client = paramiko.SSHClient()
|
||||||
|
try:
|
||||||
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
client.connect(hostname, port=port, username=username, password=password)
|
||||||
|
|
||||||
|
logging.info("Making sure client not getting internet access before UAM authentication...")
|
||||||
|
ping_output_pre_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nBefore Captive Portal-UAM authentication:\n{ping_output_pre_authentication}\n")
|
||||||
|
allure.attach(name="Before Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_pre_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" not in ping_output_pre_authentication:
|
||||||
|
logging.info("Client already have internet access before UAM authentication!!!")
|
||||||
|
pytest.fail("Client already have internet access before UAM authentication")
|
||||||
|
logging.info("Client do not have internet access before UAM authentication.")
|
||||||
|
|
||||||
|
logging.info("Getting the inet ip address...")
|
||||||
|
logging.info(f"AP idx: {get_test_library.dut_data.index(dut)}")
|
||||||
|
cmd_output = get_target_object.get_dut_library_object().run_generic_command(
|
||||||
|
cmd="ifconfig up0v0",
|
||||||
|
idx=get_test_library.dut_data.index(dut),
|
||||||
|
attach_allure=False
|
||||||
|
)
|
||||||
|
ip_pattern = re.compile(r"inet addr:(\d+\.\d+\.\d+\.\d+)")
|
||||||
|
match = ip_pattern.search(cmd_output)
|
||||||
|
inet_ip_addr = match.group(1)
|
||||||
|
logging.info(f"inet ip addr: {inet_ip_addr}")
|
||||||
|
|
||||||
|
expected_location = f"/home/lanforge/vrf_exec.bash {station} curl -I http://{inet_ip_addr}/hotspot/"
|
||||||
|
expected_location_output = run_command_using_ssh(client, expected_location)
|
||||||
|
|
||||||
|
challenge_link = re.findall(r'^Location:\s+(.*?)\s*$', expected_location_output, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Redirection link: {challenge_link}")
|
||||||
|
|
||||||
|
url_info = {}
|
||||||
|
for field in challenge_link.split('?')[1].split('&'):
|
||||||
|
key_val_list = field.split('=')
|
||||||
|
if len(key_val_list) == 2 and len(key_val_list[1]) != 0:
|
||||||
|
url_info[key_val_list[0]] = key_val_list[1]
|
||||||
|
logging.info(f"url_info: {url_info}")
|
||||||
|
|
||||||
|
challenge = url_info['challenge']
|
||||||
|
nasid = url_info['nasid']
|
||||||
|
station_mac = url_info['mac']
|
||||||
|
uamport = url_info['uamport']
|
||||||
|
|
||||||
|
link = (
|
||||||
|
f"https://customer.hotspotsystem.com/customer/hotspotlogin.php?name=&email=&company=&address="
|
||||||
|
f"&city=&state=&country=&zip=&phone=&capture_custom_1=&capture_custom_2=&capture_custom_3="
|
||||||
|
f"&capture_custom_4=&capture_custom_5=&ssl-login=&chal={challenge}&uamip={inet_ip_addr}"
|
||||||
|
f"&uamport={uamport}&nasid={nasid}&mac={station_mac}&userurl=&login=login&skin_id="
|
||||||
|
f"&uid={station_mac}&pwd=password&operator={nasid}&location_id=1&lang=en&agree=1"
|
||||||
|
)
|
||||||
|
|
||||||
|
expected_302 = f'/home/lanforge/vrf_exec.bash {station} curl -I "{link}"'
|
||||||
|
response_302 = run_command_using_ssh(client, expected_302)
|
||||||
|
|
||||||
|
logging.info(f"\n{response_302}")
|
||||||
|
allure.attach(name="Expected 302 response: ", body=str(response_302),
|
||||||
|
attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|
||||||
|
link_to_hit = re.findall(r'^Location:\s+(.*?)\s*$', response_302, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Link to hit: {link_to_hit}")
|
||||||
|
|
||||||
|
cmd_to_authenticate = f'/home/lanforge/vrf_exec.bash {station} curl "{link_to_hit}"'
|
||||||
|
authentication_response = run_command_using_ssh(client, cmd_to_authenticate)
|
||||||
|
|
||||||
|
logging.info(f"\n{authentication_response}\n")
|
||||||
|
allure.attach(name="Response from captive portal: ",
|
||||||
|
body=authentication_response, attachment_type=allure.attachment_type.HTML)
|
||||||
|
|
||||||
|
if "<h1> Connected </h1>" not in authentication_response:
|
||||||
|
logging.info("Captive portal authentication Failed")
|
||||||
|
pytest.fail("Captive portal authentication Failed")
|
||||||
|
|
||||||
|
logging.info("Captive portal authentication successful! Checking if client got internet access...")
|
||||||
|
ping_output_post_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nAfter Captive Portal-UAM authentication:\n{ping_output_post_authentication}\n")
|
||||||
|
allure.attach(name="After Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_post_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" in ping_output_post_authentication:
|
||||||
|
logging.info("Client did not get internet access even after authentication!!!")
|
||||||
|
pytest.fail("Client did not get internet access even after authentication")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error occurred: {e}", exc_info=True)
|
||||||
|
pytest.fail(f"Error occurred: {e}")
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Click-to-continue mode with open encryption 5 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_open_5g_click_to_continue(self, setup_initial_configuration, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode External Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and fiveg and bridge and click_to_continue"
|
||||||
|
"""
|
||||||
|
get_test_library.check_band_ap(band="fiveg")
|
||||||
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
|
output = ""
|
||||||
|
try_count = 1
|
||||||
|
while output.strip() == "" and try_count <= 10:
|
||||||
|
try:
|
||||||
|
try_count += 1
|
||||||
|
time.sleep(2)
|
||||||
|
logging.info(f"Executing command: {command}")
|
||||||
|
stdin, stdout, stderr = ssh_client.exec_command(command)
|
||||||
|
output = stdout.read().decode()
|
||||||
|
except Exception as exc:
|
||||||
|
logging.error(f"Handled Exception while running {command}: {exc}", exc_info=True)
|
||||||
|
|
||||||
|
if output.strip() == "":
|
||||||
|
allure.attach(name="No response while running following command:", body=f"{command}")
|
||||||
|
raise Exception("No output from command, check test body!")
|
||||||
|
return output
|
||||||
|
|
||||||
|
for dut in get_test_library.dut_data:
|
||||||
|
get_test_library.pre_cleanup()
|
||||||
|
|
||||||
|
radio_port_dict = get_test_library.get_radio_availabilities(num_stations_5g=1)
|
||||||
|
logging.info(f"radio_port_dict value:{radio_port_dict}")
|
||||||
|
radio_port_name = list(radio_port_dict[1].keys())[0]
|
||||||
|
security = "open"
|
||||||
|
station = 'sta_ecp'
|
||||||
|
desired_band = "5G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["open"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
|
|
||||||
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
|
ssid=ssid_name,
|
||||||
passkey="[BLANK]",
|
passkey="[BLANK]",
|
||||||
security="open",
|
security="open",
|
||||||
mode=setup_params_general["mode"],
|
mode=setup_params_general["mode"],
|
||||||
@@ -106,6 +371,178 @@ class TestBridgeModeExternalCaptivePortal(object):
|
|||||||
station_name=[station],
|
station_name=[station],
|
||||||
attach_port_info=False
|
attach_port_info=False
|
||||||
)
|
)
|
||||||
|
logging.info("station creation done")
|
||||||
|
|
||||||
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
|
dict_table_sta = {
|
||||||
|
"Key": list(sta_info["interface"].keys()),
|
||||||
|
"Value": list(sta_info["interface"].values())
|
||||||
|
}
|
||||||
|
data_table_sta = tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Stations Data ({station}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"Stations Data ({station})", body=str(data_table_sta))
|
||||||
|
|
||||||
|
if sta_got_ip is False:
|
||||||
|
logging.info("Station Failed to get IP")
|
||||||
|
pytest.fail("Station Failed to get IP")
|
||||||
|
|
||||||
|
logging.info("Connecting SSH connection...")
|
||||||
|
hostname = get_test_library.manager_ip
|
||||||
|
port = get_test_library.manager_ssh_port
|
||||||
|
username = 'root'
|
||||||
|
password = 'lanforge'
|
||||||
|
ping_host = "google.com"
|
||||||
|
ping_count = 10
|
||||||
|
ping_command = f"/home/lanforge/vrf_exec.bash {station} ping -c {ping_count} {ping_host}"
|
||||||
|
client = paramiko.SSHClient()
|
||||||
|
try:
|
||||||
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
client.connect(hostname, port=port, username=username, password=password)
|
||||||
|
|
||||||
|
logging.info("Making sure client not getting internet access before UAM authentication...")
|
||||||
|
ping_output_pre_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nBefore Captive Portal-UAM authentication:\n{ping_output_pre_authentication}\n")
|
||||||
|
allure.attach(name="Before Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_pre_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" not in ping_output_pre_authentication:
|
||||||
|
logging.info("Client already have internet access before UAM authentication!!!")
|
||||||
|
pytest.fail("Client already have internet access before UAM authentication")
|
||||||
|
logging.info("Client do not have internet access before UAM authentication.")
|
||||||
|
|
||||||
|
logging.info("Getting the inet ip address...")
|
||||||
|
logging.info(f"AP idx: {get_test_library.dut_data.index(dut)}")
|
||||||
|
cmd_output = get_target_object.get_dut_library_object().run_generic_command(
|
||||||
|
cmd="ifconfig up0v0",
|
||||||
|
idx=get_test_library.dut_data.index(dut),
|
||||||
|
attach_allure=False
|
||||||
|
)
|
||||||
|
ip_pattern = re.compile(r"inet addr:(\d+\.\d+\.\d+\.\d+)")
|
||||||
|
match = ip_pattern.search(cmd_output)
|
||||||
|
inet_ip_addr = match.group(1)
|
||||||
|
logging.info(f"inet ip addr: {inet_ip_addr}")
|
||||||
|
|
||||||
|
expected_location = f"/home/lanforge/vrf_exec.bash {station} curl -I http://{inet_ip_addr}/hotspot/"
|
||||||
|
expected_location_output = run_command_using_ssh(client, expected_location)
|
||||||
|
|
||||||
|
challenge_link = re.findall(r'^Location:\s+(.*?)\s*$', expected_location_output, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Redirection link: {challenge_link}")
|
||||||
|
|
||||||
|
url_info = {}
|
||||||
|
for field in challenge_link.split('?')[1].split('&'):
|
||||||
|
key_val_list = field.split('=')
|
||||||
|
if len(key_val_list) == 2 and len(key_val_list[1]) != 0:
|
||||||
|
url_info[key_val_list[0]] = key_val_list[1]
|
||||||
|
logging.info(f"url_info: {url_info}")
|
||||||
|
|
||||||
|
challenge = url_info['challenge']
|
||||||
|
nasid = url_info['nasid']
|
||||||
|
station_mac = url_info['mac']
|
||||||
|
uamport = url_info['uamport']
|
||||||
|
|
||||||
|
link = (
|
||||||
|
f"https://customer.hotspotsystem.com/customer/hotspotlogin.php?name=&email=&company=&address="
|
||||||
|
f"&city=&state=&country=&zip=&phone=&capture_custom_1=&capture_custom_2=&capture_custom_3="
|
||||||
|
f"&capture_custom_4=&capture_custom_5=&ssl-login=&chal={challenge}&uamip={inet_ip_addr}"
|
||||||
|
f"&uamport={uamport}&nasid={nasid}&mac={station_mac}&userurl=&login=login&skin_id="
|
||||||
|
f"&uid={station_mac}&pwd=password&operator={nasid}&location_id=1&lang=en&agree=1"
|
||||||
|
)
|
||||||
|
expected_302 = f'/home/lanforge/vrf_exec.bash {station} curl -I "{link}"'
|
||||||
|
response_302 = run_command_using_ssh(client, expected_302)
|
||||||
|
|
||||||
|
logging.info(f"\n{response_302}")
|
||||||
|
allure.attach(name="Expected 302 response: ", body=str(response_302),
|
||||||
|
attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|
||||||
|
link_to_hit = re.findall(r'^Location:\s+(.*?)\s*$', response_302, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Link to hit: {link_to_hit}")
|
||||||
|
|
||||||
|
cmd_to_authenticate = f'/home/lanforge/vrf_exec.bash {station} curl "{link_to_hit}"'
|
||||||
|
authentication_response = run_command_using_ssh(client, cmd_to_authenticate)
|
||||||
|
|
||||||
|
logging.info(f"\n{authentication_response}\n")
|
||||||
|
allure.attach(name="Response from captive portal: ",
|
||||||
|
body=authentication_response, attachment_type=allure.attachment_type.HTML)
|
||||||
|
|
||||||
|
if "<h1> Connected </h1>" not in authentication_response:
|
||||||
|
logging.info("Captive portal authentication Failed")
|
||||||
|
pytest.fail("Captive portal authentication Failed")
|
||||||
|
|
||||||
|
logging.info("Captive portal authentication successful! Checking if client got internet access...")
|
||||||
|
ping_output_post_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nAfter Captive Portal-UAM authentication:\n{ping_output_post_authentication}\n")
|
||||||
|
allure.attach(name="After Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_post_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" in ping_output_post_authentication:
|
||||||
|
logging.info("Client did not get internet access even after authentication!!!")
|
||||||
|
pytest.fail("Client did not get internet access even after authentication")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error occurred: {e}", exc_info=True)
|
||||||
|
pytest.fail(f"Error occurred: {e}")
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Click-to-continue mode with owe encryption 6 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_6g_click_to_continue(self, setup_initial_configuration, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode External Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and owe and sixg and bridge and click_to_continue"
|
||||||
|
"""
|
||||||
|
get_test_library.check_band_ap(band="sixg")
|
||||||
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
|
output = ""
|
||||||
|
try_count = 1
|
||||||
|
while output.strip() == "" and try_count <= 10:
|
||||||
|
try:
|
||||||
|
try_count += 1
|
||||||
|
time.sleep(2)
|
||||||
|
logging.info(f"Executing command: {command}")
|
||||||
|
stdin, stdout, stderr = ssh_client.exec_command(command)
|
||||||
|
output = stdout.read().decode()
|
||||||
|
except Exception as exc:
|
||||||
|
logging.error(f"Handled Exception while running {command}: {exc}", exc_info=True)
|
||||||
|
|
||||||
|
if output.strip() == "":
|
||||||
|
allure.attach(name="No response while running following command:", body=f"{command}")
|
||||||
|
raise Exception("No output from command, check test body!")
|
||||||
|
return output
|
||||||
|
|
||||||
|
for dut in get_test_library.dut_data:
|
||||||
|
get_test_library.pre_cleanup()
|
||||||
|
|
||||||
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_6g=1).keys())[0]
|
||||||
|
station = 'sta_ecp'
|
||||||
|
desired_band = "6G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["owe"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
|
ssid=ssid_name,
|
||||||
|
passkey="[BLANK]",
|
||||||
|
security="owe",
|
||||||
|
mode=setup_params_general["mode"],
|
||||||
|
radio=radio_port_name,
|
||||||
|
station_name=[station],
|
||||||
|
attach_port_info=False, enable_owe = True,
|
||||||
|
is_bw320=is_bw320, is_ht160=is_ht160
|
||||||
|
)
|
||||||
|
|
||||||
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
dict_table_sta = {
|
dict_table_sta = {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
pytest -m "external_captive_portal_tests and NAT"
|
pytest -m "external_captive_portal_tests and NAT"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
@@ -12,14 +13,9 @@ import paramiko
|
|||||||
import pytest
|
import pytest
|
||||||
from tabulate import tabulate
|
from tabulate import tabulate
|
||||||
|
|
||||||
pytestmark = [pytest.mark.external_captive_portal_tests, pytest.mark.NAT, pytest.mark.advanced_captive_portal_tests]
|
pytestmark = [pytest.mark.external_captive_portal_tests, pytest.mark.nat, pytest.mark.advanced_captive_portal_tests, pytest.mark.click_to_continue]
|
||||||
|
|
||||||
setup_params_general = {
|
captive = {
|
||||||
"mode": "NAT",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_ext_cap_portal_open_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "uam",
|
"auth-mode": "uam",
|
||||||
"uam-port": 3990,
|
"uam-port": 3990,
|
||||||
"uam-secret": "hotsys123",
|
"uam-secret": "hotsys123",
|
||||||
@@ -35,43 +31,132 @@ setup_params_general = {
|
|||||||
"youtube.com"
|
"youtube.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_ext_cap_portal_open_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_ext_cap_portal_open_5g_ctc", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "ext_cap_portal_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ext_cap_portal_6g_ctc", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="External Captive Portal")
|
@allure.suite(suite_name="External Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestNatModeExternalCaptivePortal(object):
|
class TestNatModeExternalCaptivePortal(object):
|
||||||
"""
|
"""
|
||||||
External Captive Portal Test: NAT Mode
|
External Captive Portal Test: NAT Mode
|
||||||
pytest -m "advanced_captive_portal_tests and NAT and external_captive_portal_tests"
|
pytest -m "advanced_captive_portal_tests and nat and external_captive_portal_tests"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.click_to_continue
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Click-to-continue mode with open encryption 2.4 GHz Band NAT mode")
|
@allure.title("Click-to-continue mode with open encryption 2.4 GHz Band NAT mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14124", name="WIFI-14124")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14124", name="WIFI-14124")
|
||||||
def test_nat_open_2g_click_to_continue(self, get_test_library, get_dut_logs_per_test_case,
|
def test_nat_open_2g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, check_connectivity, setup_configuration,
|
get_dut_logs_per_test_case,get_test_device_logs, check_connectivity,
|
||||||
get_testbed_details, get_target_object):
|
get_testbed_details, get_target_object):
|
||||||
"""
|
"""
|
||||||
NAT Mode External Captive Portal Test with open encryption 2.4 GHz Band
|
NAT Mode External Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and twog and NAT and click_to_continue"
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and twog and nat and click_to_continue"
|
||||||
"""
|
"""
|
||||||
|
get_test_library.check_band_ap(band="twog")
|
||||||
def run_command_using_ssh(ssh_client, command: str):
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
output = ""
|
output = ""
|
||||||
try_count = 1
|
try_count = 1
|
||||||
@@ -96,13 +181,24 @@ class TestNatModeExternalCaptivePortal(object):
|
|||||||
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_2g=1)[0].keys())[0]
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_2g=1)[0].keys())[0]
|
||||||
security = "open"
|
security = "open"
|
||||||
station = 'sta_ecp'
|
station = 'sta_ecp'
|
||||||
|
desired_band = "2G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["open"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
sta_got_ip = get_test_library.client_connect_using_radio(
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
ssid=setup_params_general["ssid_modes"][security][0]["ssid_name"],
|
ssid=ssid_name,
|
||||||
passkey="[BLANK]",
|
passkey="[BLANK]",
|
||||||
security="open",
|
security="open",
|
||||||
mode="NAT-WAN",
|
mode="NAT-WAN",
|
||||||
radio=radio_port_name,
|
radio=radio_port_name,
|
||||||
|
band="twog",
|
||||||
station_name=[station],
|
station_name=[station],
|
||||||
attach_port_info=False
|
attach_port_info=False
|
||||||
)
|
)
|
||||||
@@ -218,3 +314,348 @@ class TestNatModeExternalCaptivePortal(object):
|
|||||||
pytest.fail(f"Error occurred: {e}")
|
pytest.fail(f"Error occurred: {e}")
|
||||||
finally:
|
finally:
|
||||||
client.close()
|
client.close()
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Click-to-continue mode with open encryption 5 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_open_5g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
NAT Mode External Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and fiveg and nat and click_to_continue"
|
||||||
|
"""
|
||||||
|
get_test_library.check_band_ap(band="fiveg")
|
||||||
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
|
output = ""
|
||||||
|
try_count = 1
|
||||||
|
while output.strip() == "" and try_count <= 10:
|
||||||
|
try:
|
||||||
|
try_count += 1
|
||||||
|
time.sleep(2)
|
||||||
|
logging.info(f"Executing command: {command}")
|
||||||
|
stdin, stdout, stderr = ssh_client.exec_command(command)
|
||||||
|
output = stdout.read().decode()
|
||||||
|
except Exception as exc:
|
||||||
|
logging.error(f"Handled Exception while running {command}: {exc}", exc_info=True)
|
||||||
|
|
||||||
|
if output.strip() == "":
|
||||||
|
allure.attach(name="No response while running following command:", body=f"{command}")
|
||||||
|
raise Exception("No output from command, check test body!")
|
||||||
|
return output
|
||||||
|
|
||||||
|
for dut in get_test_library.dut_data:
|
||||||
|
get_test_library.pre_cleanup()
|
||||||
|
|
||||||
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_5g=1)[1].keys())[0]
|
||||||
|
security = "open"
|
||||||
|
station = 'sta_ecp'
|
||||||
|
desired_band = "5G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["open"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
|
|
||||||
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
|
|
||||||
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
|
ssid=ssid_name,
|
||||||
|
passkey="[BLANK]",
|
||||||
|
security="open",
|
||||||
|
mode="NAT-WAN",
|
||||||
|
radio=radio_port_name,
|
||||||
|
band="fiveg",
|
||||||
|
station_name=[station],
|
||||||
|
attach_port_info=False
|
||||||
|
)
|
||||||
|
|
||||||
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
|
dict_table_sta = {
|
||||||
|
"Key": list(sta_info["interface"].keys()),
|
||||||
|
"Value": list(sta_info["interface"].values())
|
||||||
|
}
|
||||||
|
data_table_sta = tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Stations Data ({station}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"Stations Data ({station})", body=str(data_table_sta))
|
||||||
|
|
||||||
|
if sta_got_ip is False:
|
||||||
|
logging.info("Station Failed to get IP")
|
||||||
|
pytest.fail("Station Failed to get IP")
|
||||||
|
|
||||||
|
logging.info("Connecting SSH connection...")
|
||||||
|
hostname = get_test_library.manager_ip
|
||||||
|
port = get_test_library.manager_ssh_port
|
||||||
|
username = 'root'
|
||||||
|
password = 'lanforge'
|
||||||
|
ping_host = "google.com"
|
||||||
|
ping_count = 10
|
||||||
|
ping_command = f"/home/lanforge/vrf_exec.bash {station} ping -c {ping_count} {ping_host}"
|
||||||
|
client = paramiko.SSHClient()
|
||||||
|
try:
|
||||||
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
client.connect(hostname, port=port, username=username, password=password)
|
||||||
|
|
||||||
|
logging.info("Making sure client not getting internet access before UAM authentication...")
|
||||||
|
ping_output_pre_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nBefore Captive Portal-UAM authentication:\n{ping_output_pre_authentication}\n")
|
||||||
|
allure.attach(name="Before Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_pre_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" not in ping_output_pre_authentication:
|
||||||
|
logging.info("Client already have internet access before UAM authentication!!!")
|
||||||
|
pytest.fail("Client already have internet access before UAM authentication")
|
||||||
|
logging.info("Client do not have internet access before UAM authentication.")
|
||||||
|
|
||||||
|
logging.info("Getting the inet ip address...")
|
||||||
|
logging.info(f"AP idx: {get_test_library.dut_data.index(dut)}")
|
||||||
|
cmd_output = get_target_object.get_dut_library_object().run_generic_command(
|
||||||
|
cmd="ifconfig up0v0",
|
||||||
|
idx=get_test_library.dut_data.index(dut),
|
||||||
|
attach_allure=False
|
||||||
|
)
|
||||||
|
ip_pattern = re.compile(r"inet addr:(\d+\.\d+\.\d+\.\d+)")
|
||||||
|
match = ip_pattern.search(cmd_output)
|
||||||
|
inet_ip_addr = match.group(1)
|
||||||
|
logging.info(f"inet ip addr: {inet_ip_addr}")
|
||||||
|
|
||||||
|
expected_location = f"/home/lanforge/vrf_exec.bash {station} curl -I http://{inet_ip_addr}/hotspot/"
|
||||||
|
expected_location_output = run_command_using_ssh(client, expected_location)
|
||||||
|
|
||||||
|
challenge_link = re.findall(r'^Location:\s+(.*?)\s*$', expected_location_output, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Redirection link: {challenge_link}")
|
||||||
|
|
||||||
|
url_info = {}
|
||||||
|
for field in challenge_link.split('?')[1].split('&'):
|
||||||
|
key_val_list = field.split('=')
|
||||||
|
if len(key_val_list) == 2 and len(key_val_list[1]) != 0:
|
||||||
|
url_info[key_val_list[0]] = key_val_list[1]
|
||||||
|
logging.info(f"url_info: {url_info}")
|
||||||
|
|
||||||
|
challenge = url_info['challenge']
|
||||||
|
nasid = url_info['nasid']
|
||||||
|
station_mac = url_info['mac']
|
||||||
|
uamport = url_info['uamport']
|
||||||
|
|
||||||
|
link = (
|
||||||
|
f"https://customer.hotspotsystem.com/customer/hotspotlogin.php?name=&email=&company=&address="
|
||||||
|
f"&city=&state=&country=&zip=&phone=&capture_custom_1=&capture_custom_2=&capture_custom_3="
|
||||||
|
f"&capture_custom_4=&capture_custom_5=&ssl-login=&chal={challenge}&uamip={inet_ip_addr}"
|
||||||
|
f"&uamport={uamport}&nasid={nasid}&mac={station_mac}&userurl=&login=login&skin_id="
|
||||||
|
f"&uid={station_mac}&pwd=password&operator={nasid}&location_id=1&lang=en&agree=1"
|
||||||
|
)
|
||||||
|
expected_302 = f'/home/lanforge/vrf_exec.bash {station} curl -I "{link}"'
|
||||||
|
response_302 = run_command_using_ssh(client, expected_302)
|
||||||
|
|
||||||
|
logging.info(f"\n{response_302}")
|
||||||
|
allure.attach(name="Expected 302 response: ", body=str(response_302),
|
||||||
|
attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|
||||||
|
link_to_hit = re.findall(r'^Location:\s+(.*?)\s*$', response_302, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Link to hit: {link_to_hit}")
|
||||||
|
|
||||||
|
cmd_to_authenticate = f'/home/lanforge/vrf_exec.bash {station} curl "{link_to_hit}"'
|
||||||
|
authentication_response = run_command_using_ssh(client, cmd_to_authenticate)
|
||||||
|
|
||||||
|
logging.info(f"\n{authentication_response}\n")
|
||||||
|
allure.attach(name="Response from captive portal: ",
|
||||||
|
body=authentication_response, attachment_type=allure.attachment_type.HTML)
|
||||||
|
|
||||||
|
if "<h1> Connected </h1>" not in authentication_response:
|
||||||
|
logging.info("Captive portal authentication Failed")
|
||||||
|
pytest.fail("Captive portal authentication Failed")
|
||||||
|
|
||||||
|
logging.info("Captive portal authentication successful! Checking if client got internet access...")
|
||||||
|
ping_output_post_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nAfter Captive Portal-UAM authentication:\n{ping_output_post_authentication}\n")
|
||||||
|
allure.attach(name="After Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_post_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" in ping_output_post_authentication:
|
||||||
|
logging.info("Client did not get internet access even after authentication!!!")
|
||||||
|
pytest.fail("Client did not get internet access even after authentication")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error occurred: {e}", exc_info=True)
|
||||||
|
pytest.fail(f"Error occurred: {e}")
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Click-to-continue mode with owe encryption 6 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_6g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
NAT Mode External Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and owe and sixg and nat and click_to_continue"
|
||||||
|
"""
|
||||||
|
get_test_library.check_band_ap(band="sixg")
|
||||||
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
|
output = ""
|
||||||
|
try_count = 1
|
||||||
|
while output.strip() == "" and try_count <= 10:
|
||||||
|
try:
|
||||||
|
try_count += 1
|
||||||
|
time.sleep(2)
|
||||||
|
logging.info(f"Executing command: {command}")
|
||||||
|
stdin, stdout, stderr = ssh_client.exec_command(command)
|
||||||
|
output = stdout.read().decode()
|
||||||
|
except Exception as exc:
|
||||||
|
logging.error(f"Handled Exception while running {command}: {exc}", exc_info=True)
|
||||||
|
|
||||||
|
if output.strip() == "":
|
||||||
|
allure.attach(name="No response while running following command:", body=f"{command}")
|
||||||
|
raise Exception("No output from command, check test body!")
|
||||||
|
return output
|
||||||
|
|
||||||
|
for dut in get_test_library.dut_data:
|
||||||
|
get_test_library.pre_cleanup()
|
||||||
|
|
||||||
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_6g=1).keys())[0]
|
||||||
|
station = 'sta_ecp'
|
||||||
|
desired_band = "6G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["owe"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
|
ssid=ssid_name,
|
||||||
|
passkey="[BLANK]",
|
||||||
|
security="owe",
|
||||||
|
mode="NAT-WAN",
|
||||||
|
radio=radio_port_name,
|
||||||
|
band="sixg",
|
||||||
|
station_name=[station],
|
||||||
|
attach_port_info=False, enable_owe = True,
|
||||||
|
is_bw320=is_bw320, is_ht160=is_ht160
|
||||||
|
)
|
||||||
|
|
||||||
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
|
dict_table_sta = {
|
||||||
|
"Key": list(sta_info["interface"].keys()),
|
||||||
|
"Value": list(sta_info["interface"].values())
|
||||||
|
}
|
||||||
|
data_table_sta = tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Stations Data ({station}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"Stations Data ({station})", body=str(data_table_sta))
|
||||||
|
|
||||||
|
if sta_got_ip is False:
|
||||||
|
logging.info("Station Failed to get IP")
|
||||||
|
pytest.fail("Station Failed to get IP")
|
||||||
|
|
||||||
|
logging.info("Connecting SSH connection...")
|
||||||
|
hostname = get_test_library.manager_ip
|
||||||
|
port = get_test_library.manager_ssh_port
|
||||||
|
username = 'root'
|
||||||
|
password = 'lanforge'
|
||||||
|
ping_host = "google.com"
|
||||||
|
ping_count = 10
|
||||||
|
ping_command = f"/home/lanforge/vrf_exec.bash {station} ping -c {ping_count} {ping_host}"
|
||||||
|
client = paramiko.SSHClient()
|
||||||
|
try:
|
||||||
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
client.connect(hostname, port=port, username=username, password=password)
|
||||||
|
|
||||||
|
logging.info("Making sure client not getting internet access before UAM authentication...")
|
||||||
|
ping_output_pre_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nBefore Captive Portal-UAM authentication:\n{ping_output_pre_authentication}\n")
|
||||||
|
allure.attach(name="Before Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_pre_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" not in ping_output_pre_authentication:
|
||||||
|
logging.info("Client already have internet access before UAM authentication!!!")
|
||||||
|
pytest.fail("Client already have internet access before UAM authentication")
|
||||||
|
logging.info("Client do not have internet access before UAM authentication.")
|
||||||
|
|
||||||
|
logging.info("Getting the inet ip address...")
|
||||||
|
logging.info(f"AP idx: {get_test_library.dut_data.index(dut)}")
|
||||||
|
cmd_output = get_target_object.get_dut_library_object().run_generic_command(
|
||||||
|
cmd="ifconfig up0v0",
|
||||||
|
idx=get_test_library.dut_data.index(dut),
|
||||||
|
attach_allure=False
|
||||||
|
)
|
||||||
|
ip_pattern = re.compile(r"inet addr:(\d+\.\d+\.\d+\.\d+)")
|
||||||
|
match = ip_pattern.search(cmd_output)
|
||||||
|
inet_ip_addr = match.group(1)
|
||||||
|
logging.info(f"inet ip addr: {inet_ip_addr}")
|
||||||
|
|
||||||
|
expected_location = f"/home/lanforge/vrf_exec.bash {station} curl -I http://{inet_ip_addr}/hotspot/"
|
||||||
|
expected_location_output = run_command_using_ssh(client, expected_location)
|
||||||
|
|
||||||
|
challenge_link = re.findall(r'^Location:\s+(.*?)\s*$', expected_location_output, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Redirection link: {challenge_link}")
|
||||||
|
|
||||||
|
url_info = {}
|
||||||
|
for field in challenge_link.split('?')[1].split('&'):
|
||||||
|
key_val_list = field.split('=')
|
||||||
|
if len(key_val_list) == 2 and len(key_val_list[1]) != 0:
|
||||||
|
url_info[key_val_list[0]] = key_val_list[1]
|
||||||
|
logging.info(f"url_info: {url_info}")
|
||||||
|
|
||||||
|
challenge = url_info['challenge']
|
||||||
|
nasid = url_info['nasid']
|
||||||
|
station_mac = url_info['mac']
|
||||||
|
uamport = url_info['uamport']
|
||||||
|
|
||||||
|
link = (
|
||||||
|
f"https://customer.hotspotsystem.com/customer/hotspotlogin.php?name=&email=&company=&address="
|
||||||
|
f"&city=&state=&country=&zip=&phone=&capture_custom_1=&capture_custom_2=&capture_custom_3="
|
||||||
|
f"&capture_custom_4=&capture_custom_5=&ssl-login=&chal={challenge}&uamip={inet_ip_addr}"
|
||||||
|
f"&uamport={uamport}&nasid={nasid}&mac={station_mac}&userurl=&login=login&skin_id="
|
||||||
|
f"&uid={station_mac}&pwd=password&operator={nasid}&location_id=1&lang=en&agree=1"
|
||||||
|
)
|
||||||
|
expected_302 = f'/home/lanforge/vrf_exec.bash {station} curl -I "{link}"'
|
||||||
|
response_302 = run_command_using_ssh(client, expected_302)
|
||||||
|
|
||||||
|
logging.info(f"\n{response_302}")
|
||||||
|
allure.attach(name="Expected 302 response: ", body=str(response_302),
|
||||||
|
attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|
||||||
|
link_to_hit = re.findall(r'^Location:\s+(.*?)\s*$', response_302, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Link to hit: {link_to_hit}")
|
||||||
|
|
||||||
|
cmd_to_authenticate = f'/home/lanforge/vrf_exec.bash {station} curl "{link_to_hit}"'
|
||||||
|
authentication_response = run_command_using_ssh(client, cmd_to_authenticate)
|
||||||
|
|
||||||
|
logging.info(f"\n{authentication_response}\n")
|
||||||
|
allure.attach(name="Response from captive portal: ",
|
||||||
|
body=authentication_response, attachment_type=allure.attachment_type.HTML)
|
||||||
|
|
||||||
|
if "<h1> Connected </h1>" not in authentication_response:
|
||||||
|
logging.info("Captive portal authentication Failed")
|
||||||
|
pytest.fail("Captive portal authentication Failed")
|
||||||
|
|
||||||
|
logging.info("Captive portal authentication successful! Checking if client got internet access...")
|
||||||
|
ping_output_post_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nAfter Captive Portal-UAM authentication:\n{ping_output_post_authentication}\n")
|
||||||
|
allure.attach(name="After Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_post_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" in ping_output_post_authentication:
|
||||||
|
logging.info("Client did not get internet access even after authentication!!!")
|
||||||
|
pytest.fail("Client did not get internet access even after authentication")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error occurred: {e}", exc_info=True)
|
||||||
|
pytest.fail(f"Error occurred: {e}")
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
pytest -m "external_captive_portal_tests and bridge"
|
pytest -m "external_captive_portal_tests and bridge"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
@@ -13,14 +14,10 @@ import pytest
|
|||||||
from tabulate import tabulate
|
from tabulate import tabulate
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
pytestmark = [pytest.mark.external_captive_portal_tests, pytest.mark.bridge, pytest.mark.advanced_captive_portal_tests]
|
pytestmark = [pytest.mark.external_captive_portal_tests, pytest.mark.bridge, pytest.mark.advanced_captive_portal_tests,
|
||||||
|
pytest.mark.local_user_and_pass]
|
||||||
|
|
||||||
setup_params_general = {
|
captive ={
|
||||||
"mode": "BRIDGE",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_ext_cap_portal_open_2g_id_p", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "uam",
|
"auth-mode": "uam",
|
||||||
"uam-port": 3990,
|
"uam-port": 3990,
|
||||||
"uam-secret": "hotsys123",
|
"uam-secret": "hotsys123",
|
||||||
@@ -36,24 +33,113 @@ setup_params_general = {
|
|||||||
"youtube.com"
|
"youtube.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_ext_cap_portal_open_2g_id_p", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_ext_cap_portal_open_5g_id_p", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "ext_cap_portal_2g_lup", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ext_cap_portal_6g_lup", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="External Captive Portal")
|
@allure.suite(suite_name="External Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestBridgeModeExternalCaptivePortal(object):
|
class TestBridgeModeExternalCaptivePortal(object):
|
||||||
"""
|
"""
|
||||||
External Captive Portal Test: BRIDGE Mode
|
External Captive Portal Test: BRIDGE Mode
|
||||||
@@ -62,17 +148,17 @@ class TestBridgeModeExternalCaptivePortal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.local_user_and_pass
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Local user/pass mode with open encryption 2.4 GHz Band Bridge mode")
|
@allure.title("Local user/pass mode with open encryption 2.4 GHz Band Bridge mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-13683", name="WIFI-13683")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-13683", name="WIFI-13683")
|
||||||
def test_bridge_open_2g_local_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
def test_bridge_open_2g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, check_connectivity, setup_configuration,
|
get_dut_logs_per_test_case,get_test_device_logs, check_connectivity,
|
||||||
get_testbed_details, get_target_object):
|
get_testbed_details, get_target_object):
|
||||||
"""
|
"""
|
||||||
BRIDGE Mode External Captive Portal Test with open encryption 2.4 GHz Band
|
BRIDGE Mode External Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and twog and bridge and local_user_and_pass"
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and twog and bridge and local_user_and_pass"
|
||||||
"""
|
"""
|
||||||
|
get_test_library.check_band_ap(band="twog")
|
||||||
def run_command_using_ssh(ssh_client, command: str):
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
output = ""
|
output = ""
|
||||||
try_count = 1
|
try_count = 1
|
||||||
@@ -97,9 +183,19 @@ class TestBridgeModeExternalCaptivePortal(object):
|
|||||||
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_2g=1)[0].keys())[0]
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_2g=1)[0].keys())[0]
|
||||||
security = "open"
|
security = "open"
|
||||||
station = 'sta_ecp'
|
station = 'sta_ecp'
|
||||||
|
desired_band = "2G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["open"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
sta_got_ip = get_test_library.client_connect_using_radio(
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
ssid=setup_params_general["ssid_modes"][security][0]["ssid_name"],
|
ssid=ssid_name,
|
||||||
passkey="[BLANK]",
|
passkey="[BLANK]",
|
||||||
security="open",
|
security="open",
|
||||||
mode=setup_params_general["mode"],
|
mode=setup_params_general["mode"],
|
||||||
@@ -251,3 +347,408 @@ class TestBridgeModeExternalCaptivePortal(object):
|
|||||||
logging.info("Throughput exceeded than set threshold")
|
logging.info("Throughput exceeded than set threshold")
|
||||||
pytest.fail("Throughput exceeded than set threshold")
|
pytest.fail("Throughput exceeded than set threshold")
|
||||||
logging.info("Throughput is within the set threshold")
|
logging.info("Throughput is within the set threshold")
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Local user/pass mode with open encryption 5 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_open_5g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode External Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and fiveg and bridge and local_user_and_pass"
|
||||||
|
"""
|
||||||
|
get_test_library.check_band_ap(band="fiveg")
|
||||||
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
|
output = ""
|
||||||
|
try_count = 1
|
||||||
|
while output.strip() == "" and try_count <= 10:
|
||||||
|
try:
|
||||||
|
try_count += 1
|
||||||
|
time.sleep(2)
|
||||||
|
logging.info(f"Executing command: {command}")
|
||||||
|
stdin, stdout, stderr = ssh_client.exec_command(command)
|
||||||
|
output = stdout.read().decode()
|
||||||
|
except Exception as exc:
|
||||||
|
logging.error(f"Handled Exception while running {command}: {exc}", exc_info=True)
|
||||||
|
|
||||||
|
if output.strip() == "":
|
||||||
|
allure.attach(name="No response while running following command:", body=f"{command}")
|
||||||
|
raise Exception("No output from command, check test body!")
|
||||||
|
return output
|
||||||
|
|
||||||
|
for dut in get_test_library.dut_data:
|
||||||
|
get_test_library.pre_cleanup()
|
||||||
|
|
||||||
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_5g=1)[1].keys())[0]
|
||||||
|
security = "open"
|
||||||
|
station = 'sta_ecp'
|
||||||
|
desired_band = "5G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["open"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
|
ssid=ssid_name,
|
||||||
|
passkey="[BLANK]",
|
||||||
|
security="open",
|
||||||
|
mode=setup_params_general["mode"],
|
||||||
|
radio=radio_port_name,
|
||||||
|
station_name=[station],
|
||||||
|
attach_port_info=False
|
||||||
|
)
|
||||||
|
|
||||||
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
|
dict_table_sta = {
|
||||||
|
"Key": list(sta_info["interface"].keys()),
|
||||||
|
"Value": list(sta_info["interface"].values())
|
||||||
|
}
|
||||||
|
data_table_sta = tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Stations Data ({station}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"Stations Data ({station})", body=str(data_table_sta))
|
||||||
|
|
||||||
|
if sta_got_ip is False:
|
||||||
|
logging.info("Station Failed to get IP")
|
||||||
|
pytest.fail("Station Failed to get IP")
|
||||||
|
|
||||||
|
logging.info("Connecting SSH connection...")
|
||||||
|
hostname = get_test_library.manager_ip
|
||||||
|
port = get_test_library.manager_ssh_port
|
||||||
|
username = 'root'
|
||||||
|
password = 'lanforge'
|
||||||
|
ping_host = "google.com"
|
||||||
|
ping_count = 10
|
||||||
|
ping_command = f"/home/lanforge/vrf_exec.bash {station} ping -c {ping_count} {ping_host}"
|
||||||
|
client = paramiko.SSHClient()
|
||||||
|
try:
|
||||||
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
client.connect(hostname, port=port, username=username, password=password)
|
||||||
|
|
||||||
|
logging.info("Making sure client not getting internet access before UAM authentication...")
|
||||||
|
ping_output_pre_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nBefore Captive Portal-UAM authentication:\n{ping_output_pre_authentication}\n")
|
||||||
|
allure.attach(name="Before Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_pre_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" not in ping_output_pre_authentication:
|
||||||
|
logging.info("Client already have internet access before UAM authentication!!!")
|
||||||
|
pytest.fail("Client already have internet access before UAM authentication")
|
||||||
|
logging.info("Client do not have internet access before UAM authentication.")
|
||||||
|
|
||||||
|
logging.info("Getting the inet ip address...")
|
||||||
|
logging.info(f"AP idx: {get_test_library.dut_data.index(dut)}")
|
||||||
|
cmd_output = get_target_object.get_dut_library_object().run_generic_command(
|
||||||
|
cmd="ifconfig up0v0",
|
||||||
|
idx=get_test_library.dut_data.index(dut),
|
||||||
|
attach_allure=False
|
||||||
|
)
|
||||||
|
ip_pattern = re.compile(r"inet addr:(\d+\.\d+\.\d+\.\d+)")
|
||||||
|
match = ip_pattern.search(cmd_output)
|
||||||
|
inet_ip_addr = match.group(1)
|
||||||
|
logging.info(f"inet ip addr: {inet_ip_addr}")
|
||||||
|
|
||||||
|
expected_location = f"/home/lanforge/vrf_exec.bash {station} curl -I http://{inet_ip_addr}/hotspot/"
|
||||||
|
expected_location_output = run_command_using_ssh(client, expected_location)
|
||||||
|
|
||||||
|
challenge_link = re.findall(r'^Location:\s+(.*?)\s*$', expected_location_output, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Redirection link: {challenge_link}")
|
||||||
|
|
||||||
|
url_info = {}
|
||||||
|
for field in challenge_link.split('?')[1].split('&'):
|
||||||
|
key_val_list = field.split('=')
|
||||||
|
if len(key_val_list) == 2 and len(key_val_list[1]) != 0:
|
||||||
|
url_info[key_val_list[0]] = key_val_list[1]
|
||||||
|
logging.info(f"url_info: {url_info}")
|
||||||
|
|
||||||
|
challenge = url_info['challenge']
|
||||||
|
nasid = url_info['nasid']
|
||||||
|
station_mac = url_info['mac']
|
||||||
|
uamport = url_info['uamport']
|
||||||
|
|
||||||
|
link = (f'https://customer.hotspotsystem.com/customer/hotspotlogin.php?ssl-login=&chal={challenge}'
|
||||||
|
f'&uamip={inet_ip_addr}&uamport={uamport}&nasid={nasid}&mac={station_mac}'
|
||||||
|
f'&userurl=ct522-7481%2F&login=login&skin_id=&uid=userr1&pwd=password1')
|
||||||
|
html_request = f'/home/lanforge/vrf_exec.bash {station} curl "{link}"'
|
||||||
|
html_response = run_command_using_ssh(client, html_request)
|
||||||
|
|
||||||
|
logging.info(f"HTML response containing authentication url:\n{html_response}")
|
||||||
|
allure.attach(name="HTML response containing authentication url:", body=str(html_response),
|
||||||
|
attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|
||||||
|
soup = BeautifulSoup(html_response, 'html.parser')
|
||||||
|
meta_tag = soup.find('meta', attrs={'http-equiv': 'refresh'})
|
||||||
|
content = meta_tag['content']
|
||||||
|
authentication_url = "=".join(content.split('=')[1:])
|
||||||
|
|
||||||
|
logging.info(f"Authentication URL extracted from HTML:\n{authentication_url}\n")
|
||||||
|
allure.attach(name="Authentication URL extracted from HTML:", body=str(authentication_url))
|
||||||
|
|
||||||
|
cmd_to_authenticate = f'/home/lanforge/vrf_exec.bash {station} curl "{authentication_url}"'
|
||||||
|
authentication_response = run_command_using_ssh(client, cmd_to_authenticate)
|
||||||
|
|
||||||
|
logging.info(f"\n{authentication_response}\n")
|
||||||
|
allure.attach(name="Response from captive portal: ",
|
||||||
|
body=authentication_response, attachment_type=allure.attachment_type.HTML)
|
||||||
|
|
||||||
|
if "<h1> Connected </h1>" not in authentication_response:
|
||||||
|
logging.info("Captive portal authentication Failed")
|
||||||
|
pytest.fail("Captive portal authentication Failed")
|
||||||
|
|
||||||
|
logging.info("Captive portal authentication successful! Checking if client got internet access...")
|
||||||
|
ping_output_post_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nAfter Captive Portal-UAM authentication:\n{ping_output_post_authentication}\n")
|
||||||
|
allure.attach(name="After Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_post_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" in ping_output_post_authentication:
|
||||||
|
logging.info("Client did not get internet access even after authentication!!!")
|
||||||
|
pytest.fail("Client did not get internet access even after authentication")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error occurred: {e}", exc_info=True)
|
||||||
|
pytest.fail(f"Error occurred: {e}")
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
logging.info("Checking throughput speed...")
|
||||||
|
wifi_capacity_obj_list = get_test_library.wifi_capacity(mode="BRIDGE",
|
||||||
|
download_rate="10Gbps",
|
||||||
|
upload_rate="56Kbps",
|
||||||
|
protocol="UDP-IPv4",
|
||||||
|
duration="60000",
|
||||||
|
batch_size="1",
|
||||||
|
stations=radio_port_name[:4] + station,
|
||||||
|
add_stations=False,
|
||||||
|
create_stations=False)
|
||||||
|
|
||||||
|
report = wifi_capacity_obj_list[0].report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + "/"
|
||||||
|
numeric_score = get_test_library.read_kpi_file(column_name=["numeric-score"], dir_name=report)
|
||||||
|
expected_throughput = 10
|
||||||
|
throughput = {
|
||||||
|
"download": [numeric_score[0][0]],
|
||||||
|
"upload": [numeric_score[1][0]],
|
||||||
|
"total": [numeric_score[2][0]],
|
||||||
|
"expected": [f"<= {expected_throughput}"],
|
||||||
|
"unit": ["Mbps"],
|
||||||
|
"PASS": [numeric_score[2][0] <= expected_throughput]
|
||||||
|
}
|
||||||
|
data_table = tabulate(throughput, headers='keys', tablefmt='fancy_grid')
|
||||||
|
allure.attach(name='Throughput Data', body=data_table)
|
||||||
|
logging.info(f"\n{data_table}")
|
||||||
|
|
||||||
|
if not throughput["PASS"][0]:
|
||||||
|
logging.info("Throughput exceeded than set threshold")
|
||||||
|
pytest.fail("Throughput exceeded than set threshold")
|
||||||
|
logging.info("Throughput is within the set threshold")
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Local user/pass mode with owe encryption 6 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_6g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode External Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and owe and sixg and bridge and local_user_and_pass"
|
||||||
|
"""
|
||||||
|
get_test_library.check_band_ap(band="sixg")
|
||||||
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
|
output = ""
|
||||||
|
try_count = 1
|
||||||
|
while output.strip() == "" and try_count <= 10:
|
||||||
|
try:
|
||||||
|
try_count += 1
|
||||||
|
time.sleep(2)
|
||||||
|
logging.info(f"Executing command: {command}")
|
||||||
|
stdin, stdout, stderr = ssh_client.exec_command(command)
|
||||||
|
output = stdout.read().decode()
|
||||||
|
except Exception as exc:
|
||||||
|
logging.error(f"Handled Exception while running {command}: {exc}", exc_info=True)
|
||||||
|
|
||||||
|
if output.strip() == "":
|
||||||
|
allure.attach(name="No response while running following command:", body=f"{command}")
|
||||||
|
raise Exception("No output from command, check test body!")
|
||||||
|
return output
|
||||||
|
|
||||||
|
for dut in get_test_library.dut_data:
|
||||||
|
get_test_library.pre_cleanup()
|
||||||
|
|
||||||
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_6g=1).keys())[0]
|
||||||
|
station = 'sta_ecp'
|
||||||
|
desired_band = "6G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["owe"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
|
ssid=ssid_name,
|
||||||
|
passkey="[BLANK]",
|
||||||
|
security="owe",
|
||||||
|
mode=setup_params_general["mode"],
|
||||||
|
radio=radio_port_name,
|
||||||
|
station_name=[station],
|
||||||
|
attach_port_info=False, enable_owe=True,
|
||||||
|
is_bw320=is_bw320, is_ht160=is_ht160
|
||||||
|
)
|
||||||
|
|
||||||
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
|
dict_table_sta = {
|
||||||
|
"Key": list(sta_info["interface"].keys()),
|
||||||
|
"Value": list(sta_info["interface"].values())
|
||||||
|
}
|
||||||
|
data_table_sta = tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Stations Data ({station}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"Stations Data ({station})", body=str(data_table_sta))
|
||||||
|
|
||||||
|
if sta_got_ip is False:
|
||||||
|
logging.info("Station Failed to get IP")
|
||||||
|
pytest.fail("Station Failed to get IP")
|
||||||
|
|
||||||
|
logging.info("Connecting SSH connection...")
|
||||||
|
hostname = get_test_library.manager_ip
|
||||||
|
port = get_test_library.manager_ssh_port
|
||||||
|
username = 'root'
|
||||||
|
password = 'lanforge'
|
||||||
|
ping_host = "google.com"
|
||||||
|
ping_count = 10
|
||||||
|
ping_command = f"/home/lanforge/vrf_exec.bash {station} ping -c {ping_count} {ping_host}"
|
||||||
|
client = paramiko.SSHClient()
|
||||||
|
try:
|
||||||
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
client.connect(hostname, port=port, username=username, password=password)
|
||||||
|
|
||||||
|
logging.info("Making sure client not getting internet access before UAM authentication...")
|
||||||
|
ping_output_pre_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nBefore Captive Portal-UAM authentication:\n{ping_output_pre_authentication}\n")
|
||||||
|
allure.attach(name="Before Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_pre_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" not in ping_output_pre_authentication:
|
||||||
|
logging.info("Client already have internet access before UAM authentication!!!")
|
||||||
|
pytest.fail("Client already have internet access before UAM authentication")
|
||||||
|
logging.info("Client do not have internet access before UAM authentication.")
|
||||||
|
|
||||||
|
logging.info("Getting the inet ip address...")
|
||||||
|
logging.info(f"AP idx: {get_test_library.dut_data.index(dut)}")
|
||||||
|
cmd_output = get_target_object.get_dut_library_object().run_generic_command(
|
||||||
|
cmd="ifconfig up0v0",
|
||||||
|
idx=get_test_library.dut_data.index(dut),
|
||||||
|
attach_allure=False
|
||||||
|
)
|
||||||
|
ip_pattern = re.compile(r"inet addr:(\d+\.\d+\.\d+\.\d+)")
|
||||||
|
match = ip_pattern.search(cmd_output)
|
||||||
|
inet_ip_addr = match.group(1)
|
||||||
|
logging.info(f"inet ip addr: {inet_ip_addr}")
|
||||||
|
|
||||||
|
expected_location = f"/home/lanforge/vrf_exec.bash {station} curl -I http://{inet_ip_addr}/hotspot/"
|
||||||
|
expected_location_output = run_command_using_ssh(client, expected_location)
|
||||||
|
|
||||||
|
challenge_link = re.findall(r'^Location:\s+(.*?)\s*$', expected_location_output, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Redirection link: {challenge_link}")
|
||||||
|
|
||||||
|
url_info = {}
|
||||||
|
for field in challenge_link.split('?')[1].split('&'):
|
||||||
|
key_val_list = field.split('=')
|
||||||
|
if len(key_val_list) == 2 and len(key_val_list[1]) != 0:
|
||||||
|
url_info[key_val_list[0]] = key_val_list[1]
|
||||||
|
logging.info(f"url_info: {url_info}")
|
||||||
|
|
||||||
|
challenge = url_info['challenge']
|
||||||
|
nasid = url_info['nasid']
|
||||||
|
station_mac = url_info['mac']
|
||||||
|
uamport = url_info['uamport']
|
||||||
|
|
||||||
|
link = (f'https://customer.hotspotsystem.com/customer/hotspotlogin.php?ssl-login=&chal={challenge}'
|
||||||
|
f'&uamip={inet_ip_addr}&uamport={uamport}&nasid={nasid}&mac={station_mac}'
|
||||||
|
f'&userurl=ct522-7481%2F&login=login&skin_id=&uid=userr1&pwd=password1')
|
||||||
|
html_request = f'/home/lanforge/vrf_exec.bash {station} curl "{link}"'
|
||||||
|
html_response = run_command_using_ssh(client, html_request)
|
||||||
|
|
||||||
|
logging.info(f"HTML response containing authentication url:\n{html_response}")
|
||||||
|
allure.attach(name="HTML response containing authentication url:", body=str(html_response),
|
||||||
|
attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|
||||||
|
soup = BeautifulSoup(html_response, 'html.parser')
|
||||||
|
meta_tag = soup.find('meta', attrs={'http-equiv': 'refresh'})
|
||||||
|
content = meta_tag['content']
|
||||||
|
authentication_url = "=".join(content.split('=')[1:])
|
||||||
|
|
||||||
|
logging.info(f"Authentication URL extracted from HTML:\n{authentication_url}\n")
|
||||||
|
allure.attach(name="Authentication URL extracted from HTML:", body=str(authentication_url))
|
||||||
|
|
||||||
|
cmd_to_authenticate = f'/home/lanforge/vrf_exec.bash {station} curl "{authentication_url}"'
|
||||||
|
authentication_response = run_command_using_ssh(client, cmd_to_authenticate)
|
||||||
|
|
||||||
|
logging.info(f"\n{authentication_response}\n")
|
||||||
|
allure.attach(name="Response from captive portal: ",
|
||||||
|
body=authentication_response, attachment_type=allure.attachment_type.HTML)
|
||||||
|
|
||||||
|
if "<h1> Connected </h1>" not in authentication_response:
|
||||||
|
logging.info("Captive portal authentication Failed")
|
||||||
|
pytest.fail("Captive portal authentication Failed")
|
||||||
|
|
||||||
|
logging.info("Captive portal authentication successful! Checking if client got internet access...")
|
||||||
|
ping_output_post_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nAfter Captive Portal-UAM authentication:\n{ping_output_post_authentication}\n")
|
||||||
|
allure.attach(name="After Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_post_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" in ping_output_post_authentication:
|
||||||
|
logging.info("Client did not get internet access even after authentication!!!")
|
||||||
|
pytest.fail("Client did not get internet access even after authentication")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error occurred: {e}", exc_info=True)
|
||||||
|
pytest.fail(f"Error occurred: {e}")
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
logging.info("Checking throughput speed...")
|
||||||
|
wifi_capacity_obj_list = get_test_library.wifi_capacity(mode="BRIDGE",
|
||||||
|
download_rate="10Gbps",
|
||||||
|
upload_rate="56Kbps",
|
||||||
|
protocol="UDP-IPv4",
|
||||||
|
duration="60000",
|
||||||
|
batch_size="1",
|
||||||
|
stations=radio_port_name[:4] + station,
|
||||||
|
add_stations=False,
|
||||||
|
create_stations=False)
|
||||||
|
|
||||||
|
report = wifi_capacity_obj_list[0].report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + "/"
|
||||||
|
numeric_score = get_test_library.read_kpi_file(column_name=["numeric-score"], dir_name=report)
|
||||||
|
expected_throughput = 10
|
||||||
|
throughput = {
|
||||||
|
"download": [numeric_score[0][0]],
|
||||||
|
"upload": [numeric_score[1][0]],
|
||||||
|
"total": [numeric_score[2][0]],
|
||||||
|
"expected": [f"<= {expected_throughput}"],
|
||||||
|
"unit": ["Mbps"],
|
||||||
|
"PASS": [numeric_score[2][0] <= expected_throughput]
|
||||||
|
}
|
||||||
|
data_table = tabulate(throughput, headers='keys', tablefmt='fancy_grid')
|
||||||
|
allure.attach(name='Throughput Data', body=data_table)
|
||||||
|
logging.info(f"\n{data_table}")
|
||||||
|
|
||||||
|
if not throughput["PASS"][0]:
|
||||||
|
logging.info("Throughput exceeded than set threshold")
|
||||||
|
pytest.fail("Throughput exceeded than set threshold")
|
||||||
|
logging.info("Throughput is within the set threshold")
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
pytest -m "external_captive_portal_tests and nat"
|
pytest -m "external_captive_portal_tests and nat"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
@@ -13,14 +14,10 @@ import pytest
|
|||||||
from tabulate import tabulate
|
from tabulate import tabulate
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
pytestmark = [pytest.mark.external_captive_portal_tests, pytest.mark.nat, pytest.mark.advanced_captive_portal_tests]
|
pytestmark = [pytest.mark.external_captive_portal_tests, pytest.mark.nat, pytest.mark.advanced_captive_portal_tests,
|
||||||
|
pytest.mark.local_user_and_pass]
|
||||||
|
|
||||||
setup_params_general = {
|
captive = {
|
||||||
"mode": "NAT",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_ext_cap_portal_open_2g_id_p", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "uam",
|
"auth-mode": "uam",
|
||||||
"uam-port": 3990,
|
"uam-port": 3990,
|
||||||
"uam-secret": "hotsys123",
|
"uam-secret": "hotsys123",
|
||||||
@@ -36,24 +33,113 @@ setup_params_general = {
|
|||||||
"youtube.com"
|
"youtube.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_ext_cap_portal_open_2g_id_p", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_ext_cap_portal_open_5g_id_p", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "ext_cap_portal_2g_lup", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ext_cap_portal_6g_lup", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="External Captive Portal")
|
@allure.suite(suite_name="External Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestNatModeExternalCaptivePortal(object):
|
class TestNatModeExternalCaptivePortal(object):
|
||||||
"""
|
"""
|
||||||
External Captive Portal Test: NAT Mode
|
External Captive Portal Test: NAT Mode
|
||||||
@@ -62,17 +148,17 @@ class TestNatModeExternalCaptivePortal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.local_user_and_pass
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Local user/pass mode with open encryption 2.4 GHz Band NAT mode")
|
@allure.title("Local user/pass mode with open encryption 2.4 GHz Band NAT mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14125", name="WIFI-14125")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14125", name="WIFI-14125")
|
||||||
def test_nat_open_2g_local_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
def test_nat_open_2g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, check_connectivity, setup_configuration,
|
get_dut_logs_per_test_case,get_test_device_logs, check_connectivity,
|
||||||
get_testbed_details, get_target_object):
|
get_testbed_details, get_target_object):
|
||||||
"""
|
"""
|
||||||
NAT Mode External Captive Portal Test with open encryption 2.4 GHz Band
|
NAT Mode External Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and twog and nat and local_user_and_pass"
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and twog and nat and local_user_and_pass"
|
||||||
"""
|
"""
|
||||||
|
get_test_library.check_band_ap(band="twog")
|
||||||
def run_command_using_ssh(ssh_client, command: str):
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
output = ""
|
output = ""
|
||||||
try_count = 1
|
try_count = 1
|
||||||
@@ -97,9 +183,19 @@ class TestNatModeExternalCaptivePortal(object):
|
|||||||
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_2g=1)[0].keys())[0]
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_2g=1)[0].keys())[0]
|
||||||
security = "open"
|
security = "open"
|
||||||
station = 'sta_ecp'
|
station = 'sta_ecp'
|
||||||
|
desired_band = "2G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["open"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
sta_got_ip = get_test_library.client_connect_using_radio(
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
ssid=setup_params_general["ssid_modes"][security][0]["ssid_name"],
|
ssid=ssid_name,
|
||||||
passkey="[BLANK]",
|
passkey="[BLANK]",
|
||||||
security="open",
|
security="open",
|
||||||
mode="NAT-WAN",
|
mode="NAT-WAN",
|
||||||
@@ -251,3 +347,408 @@ class TestNatModeExternalCaptivePortal(object):
|
|||||||
logging.info("Throughput exceeded than set threshold")
|
logging.info("Throughput exceeded than set threshold")
|
||||||
pytest.fail("Throughput exceeded than set threshold")
|
pytest.fail("Throughput exceeded than set threshold")
|
||||||
logging.info("Throughput is within the set threshold")
|
logging.info("Throughput is within the set threshold")
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Local user/pass mode with open encryption 5 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_open_5g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
NAT Mode External Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and open and fiveg and nat and local_user_and_pass"
|
||||||
|
"""
|
||||||
|
get_test_library.check_band_ap(band="fiveg")
|
||||||
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
|
output = ""
|
||||||
|
try_count = 1
|
||||||
|
while output.strip() == "" and try_count <= 10:
|
||||||
|
try:
|
||||||
|
try_count += 1
|
||||||
|
time.sleep(2)
|
||||||
|
logging.info(f"Executing command: {command}")
|
||||||
|
stdin, stdout, stderr = ssh_client.exec_command(command)
|
||||||
|
output = stdout.read().decode()
|
||||||
|
except Exception as exc:
|
||||||
|
logging.error(f"Handled Exception while running {command}: {exc}", exc_info=True)
|
||||||
|
|
||||||
|
if output.strip() == "":
|
||||||
|
allure.attach(name="No response while running following command:", body=f"{command}")
|
||||||
|
raise Exception("No output from command, check test body!")
|
||||||
|
return output
|
||||||
|
|
||||||
|
for dut in get_test_library.dut_data:
|
||||||
|
get_test_library.pre_cleanup()
|
||||||
|
|
||||||
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_5g=1)[1].keys())[0]
|
||||||
|
security = "open"
|
||||||
|
station = 'sta_ecp'
|
||||||
|
desired_band = "5G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["open"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
|
ssid=ssid_name,
|
||||||
|
passkey="[BLANK]",
|
||||||
|
security="open",
|
||||||
|
mode="NAT-WAN",
|
||||||
|
radio=radio_port_name,
|
||||||
|
station_name=[station],
|
||||||
|
attach_port_info=False
|
||||||
|
)
|
||||||
|
|
||||||
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
|
dict_table_sta = {
|
||||||
|
"Key": list(sta_info["interface"].keys()),
|
||||||
|
"Value": list(sta_info["interface"].values())
|
||||||
|
}
|
||||||
|
data_table_sta = tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Stations Data ({station}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"Stations Data ({station})", body=str(data_table_sta))
|
||||||
|
|
||||||
|
if sta_got_ip is False:
|
||||||
|
logging.info("Station Failed to get IP")
|
||||||
|
pytest.fail("Station Failed to get IP")
|
||||||
|
|
||||||
|
logging.info("Connecting SSH connection...")
|
||||||
|
hostname = get_test_library.manager_ip
|
||||||
|
port = get_test_library.manager_ssh_port
|
||||||
|
username = 'root'
|
||||||
|
password = 'lanforge'
|
||||||
|
ping_host = "google.com"
|
||||||
|
ping_count = 10
|
||||||
|
ping_command = f"/home/lanforge/vrf_exec.bash {station} ping -c {ping_count} {ping_host}"
|
||||||
|
client = paramiko.SSHClient()
|
||||||
|
try:
|
||||||
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
client.connect(hostname, port=port, username=username, password=password)
|
||||||
|
|
||||||
|
logging.info("Making sure client not getting internet access before UAM authentication...")
|
||||||
|
ping_output_pre_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nBefore Captive Portal-UAM authentication:\n{ping_output_pre_authentication}\n")
|
||||||
|
allure.attach(name="Before Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_pre_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" not in ping_output_pre_authentication:
|
||||||
|
logging.info("Client already have internet access before UAM authentication!!!")
|
||||||
|
pytest.fail("Client already have internet access before UAM authentication")
|
||||||
|
logging.info("Client do not have internet access before UAM authentication.")
|
||||||
|
|
||||||
|
logging.info("Getting the inet ip address...")
|
||||||
|
logging.info(f"AP idx: {get_test_library.dut_data.index(dut)}")
|
||||||
|
cmd_output = get_target_object.get_dut_library_object().run_generic_command(
|
||||||
|
cmd="ifconfig up0v0",
|
||||||
|
idx=get_test_library.dut_data.index(dut),
|
||||||
|
attach_allure=False
|
||||||
|
)
|
||||||
|
ip_pattern = re.compile(r"inet addr:(\d+\.\d+\.\d+\.\d+)")
|
||||||
|
match = ip_pattern.search(cmd_output)
|
||||||
|
inet_ip_addr = match.group(1)
|
||||||
|
logging.info(f"inet ip addr: {inet_ip_addr}")
|
||||||
|
|
||||||
|
expected_location = f"/home/lanforge/vrf_exec.bash {station} curl -I http://{inet_ip_addr}/hotspot/"
|
||||||
|
expected_location_output = run_command_using_ssh(client, expected_location)
|
||||||
|
|
||||||
|
challenge_link = re.findall(r'^Location:\s+(.*?)\s*$', expected_location_output, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Redirection link: {challenge_link}")
|
||||||
|
|
||||||
|
url_info = {}
|
||||||
|
for field in challenge_link.split('?')[1].split('&'):
|
||||||
|
key_val_list = field.split('=')
|
||||||
|
if len(key_val_list) == 2 and len(key_val_list[1]) != 0:
|
||||||
|
url_info[key_val_list[0]] = key_val_list[1]
|
||||||
|
logging.info(f"url_info: {url_info}")
|
||||||
|
|
||||||
|
challenge = url_info['challenge']
|
||||||
|
nasid = url_info['nasid']
|
||||||
|
station_mac = url_info['mac']
|
||||||
|
uamport = url_info['uamport']
|
||||||
|
|
||||||
|
link = (f'https://customer.hotspotsystem.com/customer/hotspotlogin.php?ssl-login=&chal={challenge}'
|
||||||
|
f'&uamip={inet_ip_addr}&uamport={uamport}&nasid={nasid}&mac={station_mac}'
|
||||||
|
f'&userurl=ct522-7481%2F&login=login&skin_id=&uid=userr1&pwd=password1')
|
||||||
|
html_request = f'/home/lanforge/vrf_exec.bash {station} curl "{link}"'
|
||||||
|
html_response = run_command_using_ssh(client, html_request)
|
||||||
|
|
||||||
|
logging.info(f"HTML response containing authentication url:\n{html_response}")
|
||||||
|
allure.attach(name="HTML response containing authentication url:", body=str(html_response),
|
||||||
|
attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|
||||||
|
soup = BeautifulSoup(html_response, 'html.parser')
|
||||||
|
meta_tag = soup.find('meta', attrs={'http-equiv': 'refresh'})
|
||||||
|
content = meta_tag['content']
|
||||||
|
authentication_url = "=".join(content.split('=')[1:])
|
||||||
|
|
||||||
|
logging.info(f"Authentication URL extracted from HTML:\n{authentication_url}\n")
|
||||||
|
allure.attach(name="Authentication URL extracted from HTML:", body=str(authentication_url))
|
||||||
|
|
||||||
|
cmd_to_authenticate = f'/home/lanforge/vrf_exec.bash {station} curl "{authentication_url}"'
|
||||||
|
authentication_response = run_command_using_ssh(client, cmd_to_authenticate)
|
||||||
|
|
||||||
|
logging.info(f"\n{authentication_response}\n")
|
||||||
|
allure.attach(name="Response from captive portal: ",
|
||||||
|
body=authentication_response, attachment_type=allure.attachment_type.HTML)
|
||||||
|
|
||||||
|
if "<h1> Connected </h1>" not in authentication_response:
|
||||||
|
logging.info("Captive portal authentication Failed")
|
||||||
|
pytest.fail("Captive portal authentication Failed")
|
||||||
|
|
||||||
|
logging.info("Captive portal authentication successful! Checking if client got internet access...")
|
||||||
|
ping_output_post_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nAfter Captive Portal-UAM authentication:\n{ping_output_post_authentication}\n")
|
||||||
|
allure.attach(name="After Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_post_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" in ping_output_post_authentication:
|
||||||
|
logging.info("Client did not get internet access even after authentication!!!")
|
||||||
|
pytest.fail("Client did not get internet access even after authentication")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error occurred: {e}", exc_info=True)
|
||||||
|
pytest.fail(f"Error occurred: {e}")
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
logging.info("Checking throughput speed...")
|
||||||
|
wifi_capacity_obj_list = get_test_library.wifi_capacity(mode="NAT-WAN",
|
||||||
|
download_rate="10Gbps",
|
||||||
|
upload_rate="56Kbps",
|
||||||
|
protocol="UDP-IPv4",
|
||||||
|
duration="60000",
|
||||||
|
batch_size="1",
|
||||||
|
stations=radio_port_name[:4] + station,
|
||||||
|
add_stations=False,
|
||||||
|
create_stations=False)
|
||||||
|
|
||||||
|
report = wifi_capacity_obj_list[0].report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + "/"
|
||||||
|
numeric_score = get_test_library.read_kpi_file(column_name=["numeric-score"], dir_name=report)
|
||||||
|
expected_throughput = 10
|
||||||
|
throughput = {
|
||||||
|
"download": [numeric_score[0][0]],
|
||||||
|
"upload": [numeric_score[1][0]],
|
||||||
|
"total": [numeric_score[2][0]],
|
||||||
|
"expected": [f"<= {expected_throughput}"],
|
||||||
|
"unit": ["Mbps"],
|
||||||
|
"PASS": [numeric_score[2][0] <= expected_throughput]
|
||||||
|
}
|
||||||
|
data_table = tabulate(throughput, headers='keys', tablefmt='fancy_grid')
|
||||||
|
allure.attach(name='Throughput Data', body=data_table)
|
||||||
|
logging.info(f"\n{data_table}")
|
||||||
|
|
||||||
|
if not throughput["PASS"][0]:
|
||||||
|
logging.info("Throughput exceeded than set threshold")
|
||||||
|
pytest.fail("Throughput exceeded than set threshold")
|
||||||
|
logging.info("Throughput is within the set threshold")
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Local user/pass mode with owe encryption 6 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_6g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
NAT Mode External Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and external_captive_portal_tests and owe and sixg and nat and local_user_and_pass"
|
||||||
|
"""
|
||||||
|
get_test_library.check_band_ap(band="sixg")
|
||||||
|
def run_command_using_ssh(ssh_client, command: str):
|
||||||
|
output = ""
|
||||||
|
try_count = 1
|
||||||
|
while output.strip() == "" and try_count <= 10:
|
||||||
|
try:
|
||||||
|
try_count += 1
|
||||||
|
time.sleep(2)
|
||||||
|
logging.info(f"Executing command: {command}")
|
||||||
|
stdin, stdout, stderr = ssh_client.exec_command(command)
|
||||||
|
output = stdout.read().decode()
|
||||||
|
except Exception as exc:
|
||||||
|
logging.error(f"Handled Exception while running {command}: {exc}", exc_info=True)
|
||||||
|
|
||||||
|
if output.strip() == "":
|
||||||
|
allure.attach(name="No response while running following command:", body=f"{command}")
|
||||||
|
raise Exception("No output from command, check test body!")
|
||||||
|
return output
|
||||||
|
|
||||||
|
for dut in get_test_library.dut_data:
|
||||||
|
get_test_library.pre_cleanup()
|
||||||
|
|
||||||
|
radio_port_name = list(get_test_library.get_radio_availabilities(num_stations_6g=1).keys())[0]
|
||||||
|
station = 'sta_ecp'
|
||||||
|
desired_band = "6G"
|
||||||
|
ssid_list = setup_params_general["ssid_modes"]["owe"]
|
||||||
|
ssid_name = None
|
||||||
|
for ssid_info in ssid_list:
|
||||||
|
if desired_band in ssid_info["appliedRadios"]:
|
||||||
|
ssid_name = ssid_info["ssid_name"]
|
||||||
|
break
|
||||||
|
logging.info(f"ssid_name:{ssid_name}")
|
||||||
|
if ssid_name is None:
|
||||||
|
raise Exception(f"No SSID found configured for {desired_band}")
|
||||||
|
logging.info(f"Creating a station on the configured ssid on {radio_port_name} radio...")
|
||||||
|
sta_got_ip = get_test_library.client_connect_using_radio(
|
||||||
|
ssid=ssid_name,
|
||||||
|
passkey="[BLANK]",
|
||||||
|
security="owe",
|
||||||
|
mode="NAT-WAN",
|
||||||
|
radio=radio_port_name,
|
||||||
|
station_name=[station],
|
||||||
|
attach_port_info=False, enable_owe=True,
|
||||||
|
is_bw320=is_bw320, is_ht160=is_ht160
|
||||||
|
)
|
||||||
|
|
||||||
|
sta_info = get_test_library.json_get(_req_url=f"port/1/1/{station}")
|
||||||
|
dict_table_sta = {
|
||||||
|
"Key": list(sta_info["interface"].keys()),
|
||||||
|
"Value": list(sta_info["interface"].values())
|
||||||
|
}
|
||||||
|
data_table_sta = tabulate(dict_table_sta, headers='keys', tablefmt='fancy_grid')
|
||||||
|
logging.info(f"Stations Data ({station}): \n{data_table_sta}\n")
|
||||||
|
allure.attach(name=f"Stations Data ({station})", body=str(data_table_sta))
|
||||||
|
|
||||||
|
if sta_got_ip is False:
|
||||||
|
logging.info("Station Failed to get IP")
|
||||||
|
pytest.fail("Station Failed to get IP")
|
||||||
|
|
||||||
|
logging.info("Connecting SSH connection...")
|
||||||
|
hostname = get_test_library.manager_ip
|
||||||
|
port = get_test_library.manager_ssh_port
|
||||||
|
username = 'root'
|
||||||
|
password = 'lanforge'
|
||||||
|
ping_host = "google.com"
|
||||||
|
ping_count = 10
|
||||||
|
ping_command = f"/home/lanforge/vrf_exec.bash {station} ping -c {ping_count} {ping_host}"
|
||||||
|
client = paramiko.SSHClient()
|
||||||
|
try:
|
||||||
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
client.connect(hostname, port=port, username=username, password=password)
|
||||||
|
|
||||||
|
logging.info("Making sure client not getting internet access before UAM authentication...")
|
||||||
|
ping_output_pre_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nBefore Captive Portal-UAM authentication:\n{ping_output_pre_authentication}\n")
|
||||||
|
allure.attach(name="Before Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_pre_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" not in ping_output_pre_authentication:
|
||||||
|
logging.info("Client already have internet access before UAM authentication!!!")
|
||||||
|
pytest.fail("Client already have internet access before UAM authentication")
|
||||||
|
logging.info("Client do not have internet access before UAM authentication.")
|
||||||
|
|
||||||
|
logging.info("Getting the inet ip address...")
|
||||||
|
logging.info(f"AP idx: {get_test_library.dut_data.index(dut)}")
|
||||||
|
cmd_output = get_target_object.get_dut_library_object().run_generic_command(
|
||||||
|
cmd="ifconfig up0v0",
|
||||||
|
idx=get_test_library.dut_data.index(dut),
|
||||||
|
attach_allure=False
|
||||||
|
)
|
||||||
|
ip_pattern = re.compile(r"inet addr:(\d+\.\d+\.\d+\.\d+)")
|
||||||
|
match = ip_pattern.search(cmd_output)
|
||||||
|
inet_ip_addr = match.group(1)
|
||||||
|
logging.info(f"inet ip addr: {inet_ip_addr}")
|
||||||
|
|
||||||
|
expected_location = f"/home/lanforge/vrf_exec.bash {station} curl -I http://{inet_ip_addr}/hotspot/"
|
||||||
|
expected_location_output = run_command_using_ssh(client, expected_location)
|
||||||
|
|
||||||
|
challenge_link = re.findall(r'^Location:\s+(.*?)\s*$', expected_location_output, re.MULTILINE)[0]
|
||||||
|
logging.info(f"Redirection link: {challenge_link}")
|
||||||
|
|
||||||
|
url_info = {}
|
||||||
|
for field in challenge_link.split('?')[1].split('&'):
|
||||||
|
key_val_list = field.split('=')
|
||||||
|
if len(key_val_list) == 2 and len(key_val_list[1]) != 0:
|
||||||
|
url_info[key_val_list[0]] = key_val_list[1]
|
||||||
|
logging.info(f"url_info: {url_info}")
|
||||||
|
|
||||||
|
challenge = url_info['challenge']
|
||||||
|
nasid = url_info['nasid']
|
||||||
|
station_mac = url_info['mac']
|
||||||
|
uamport = url_info['uamport']
|
||||||
|
|
||||||
|
link = (f'https://customer.hotspotsystem.com/customer/hotspotlogin.php?ssl-login=&chal={challenge}'
|
||||||
|
f'&uamip={inet_ip_addr}&uamport={uamport}&nasid={nasid}&mac={station_mac}'
|
||||||
|
f'&userurl=ct522-7481%2F&login=login&skin_id=&uid=userr1&pwd=password1')
|
||||||
|
html_request = f'/home/lanforge/vrf_exec.bash {station} curl "{link}"'
|
||||||
|
html_response = run_command_using_ssh(client, html_request)
|
||||||
|
|
||||||
|
logging.info(f"HTML response containing authentication url:\n{html_response}")
|
||||||
|
allure.attach(name="HTML response containing authentication url:", body=str(html_response),
|
||||||
|
attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|
||||||
|
soup = BeautifulSoup(html_response, 'html.parser')
|
||||||
|
meta_tag = soup.find('meta', attrs={'http-equiv': 'refresh'})
|
||||||
|
content = meta_tag['content']
|
||||||
|
authentication_url = "=".join(content.split('=')[1:])
|
||||||
|
|
||||||
|
logging.info(f"Authentication URL extracted from HTML:\n{authentication_url}\n")
|
||||||
|
allure.attach(name="Authentication URL extracted from HTML:", body=str(authentication_url))
|
||||||
|
|
||||||
|
cmd_to_authenticate = f'/home/lanforge/vrf_exec.bash {station} curl "{authentication_url}"'
|
||||||
|
authentication_response = run_command_using_ssh(client, cmd_to_authenticate)
|
||||||
|
|
||||||
|
logging.info(f"\n{authentication_response}\n")
|
||||||
|
allure.attach(name="Response from captive portal: ",
|
||||||
|
body=authentication_response, attachment_type=allure.attachment_type.HTML)
|
||||||
|
|
||||||
|
if "<h1> Connected </h1>" not in authentication_response:
|
||||||
|
logging.info("Captive portal authentication Failed")
|
||||||
|
pytest.fail("Captive portal authentication Failed")
|
||||||
|
|
||||||
|
logging.info("Captive portal authentication successful! Checking if client got internet access...")
|
||||||
|
ping_output_post_authentication = run_command_using_ssh(client, ping_command)
|
||||||
|
|
||||||
|
logging.info(f"\nAfter Captive Portal-UAM authentication:\n{ping_output_post_authentication}\n")
|
||||||
|
allure.attach(name="After Captive Portal-UAM authentication, station ping response (google.com)",
|
||||||
|
body=str(ping_output_post_authentication))
|
||||||
|
|
||||||
|
if "100% packet loss" in ping_output_post_authentication:
|
||||||
|
logging.info("Client did not get internet access even after authentication!!!")
|
||||||
|
pytest.fail("Client did not get internet access even after authentication")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error occurred: {e}", exc_info=True)
|
||||||
|
pytest.fail(f"Error occurred: {e}")
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
logging.info("Checking throughput speed...")
|
||||||
|
wifi_capacity_obj_list = get_test_library.wifi_capacity(mode="NAT-WAN",
|
||||||
|
download_rate="10Gbps",
|
||||||
|
upload_rate="56Kbps",
|
||||||
|
protocol="UDP-IPv4",
|
||||||
|
duration="60000",
|
||||||
|
batch_size="1",
|
||||||
|
stations=radio_port_name[:4] + station,
|
||||||
|
add_stations=False,
|
||||||
|
create_stations=False)
|
||||||
|
|
||||||
|
report = wifi_capacity_obj_list[0].report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + "/"
|
||||||
|
numeric_score = get_test_library.read_kpi_file(column_name=["numeric-score"], dir_name=report)
|
||||||
|
expected_throughput = 10
|
||||||
|
throughput = {
|
||||||
|
"download": [numeric_score[0][0]],
|
||||||
|
"upload": [numeric_score[1][0]],
|
||||||
|
"total": [numeric_score[2][0]],
|
||||||
|
"expected": [f"<= {expected_throughput}"],
|
||||||
|
"unit": ["Mbps"],
|
||||||
|
"PASS": [numeric_score[2][0] <= expected_throughput]
|
||||||
|
}
|
||||||
|
data_table = tabulate(throughput, headers='keys', tablefmt='fancy_grid')
|
||||||
|
allure.attach(name='Throughput Data', body=data_table)
|
||||||
|
logging.info(f"\n{data_table}")
|
||||||
|
|
||||||
|
if not throughput["PASS"][0]:
|
||||||
|
logging.info("Throughput exceeded than set threshold")
|
||||||
|
pytest.fail("Throughput exceeded than set threshold")
|
||||||
|
logging.info("Throughput is within the set threshold")
|
||||||
|
|||||||
@@ -4,43 +4,129 @@
|
|||||||
pytest -m "advanced_captive_portal_tests and bridge"
|
pytest -m "advanced_captive_portal_tests and bridge"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.bridge, pytest.mark.internal_captive_portal_tests]
|
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.bridge, pytest.mark.internal_captive_portal_tests,
|
||||||
|
pytest.mark.click_to_continue]
|
||||||
setup_params_general = {
|
captive = {
|
||||||
"mode": "BRIDGE",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "click-to-continue",
|
"auth-mode": "click-to-continue",
|
||||||
"walled-garden-fqdn": [
|
"walled-garden-fqdn": [
|
||||||
"*.google.com",
|
"*.google.com",
|
||||||
"telecominfraproject.com"
|
"telecominfraproject.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "int_cap_portal_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "int_cap_portal_6g_ctc", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="Internal Captive Portal")
|
@allure.suite(suite_name="Internal Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestBridgeModeadvancedcaptiveportal(object):
|
class TestBridgeModeadvancedcaptiveportal(object):
|
||||||
"""
|
"""
|
||||||
Advanced Captive Portal Test: BRIDGE Mode
|
Advanced Captive Portal Test: BRIDGE Mode
|
||||||
@@ -49,13 +135,12 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.click_to_continue
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Click-to-continue mode with open encryption 2.4 GHz Band Bridge mode")
|
@allure.title("Click-to-continue mode with open encryption 2.4 GHz Band Bridge mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10977", name="WIFI-10977")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10977", name="WIFI-10977")
|
||||||
def test_bridge_open_2g_click_to_continue(self, get_test_library, get_dut_logs_per_test_case,
|
def test_bridge_open_2g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, num_stations, check_connectivity,
|
get_dut_logs_per_test_case,get_test_device_logs, num_stations,
|
||||||
setup_configuration, get_testbed_details, get_target_object):
|
check_connectivity, get_testbed_details, get_target_object):
|
||||||
"""
|
"""
|
||||||
BRIDGE Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
BRIDGE Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and bridge and click_to_continue"
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and bridge and click_to_continue"
|
||||||
@@ -81,9 +166,90 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
|||||||
body="Click-to-continue mode: In this mode the client will be redirected to the page where "
|
body="Click-to-continue mode: In this mode the client will be redirected to the page where "
|
||||||
"the client needs to accept the terms of service before getting internet.")
|
"the client needs to accept the terms of service before getting internet.")
|
||||||
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=num_stations, json_post_data=json_post_data,
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
get_testbed_details=get_testbed_details,
|
get_testbed_details=get_testbed_details,
|
||||||
tip_2x_obj=get_target_object)
|
tip_2x_obj=get_target_object)
|
||||||
assert passes == "PASS", result
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Click-to-continue mode with open encryption 5 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_open_5g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
|
check_connectivity, get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode Advanced Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and fiveg and bridge and click_to_continue"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "click-to-continue",
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "open"
|
||||||
|
mode = "BRIDGE"
|
||||||
|
band = "fiveg"
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = 'action=click&accept_terms=clicked'
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Click-to-continue mode: In this mode the client will be redirected to the page where "
|
||||||
|
"the client needs to accept the terms of service before getting internet.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Click-to-continue mode with owe encryption 6 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_6g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
|
check_connectivity, get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode Advanced Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and owe and sixg and bridge and click_to_continue"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "int_cap_portal_6g_ctc", "appliedRadios": ["6G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "click-to-continue",
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "owe"
|
||||||
|
mode = "BRIDGE"
|
||||||
|
band = "sixg"
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = 'action=click&accept_terms=clicked'
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Click-to-continue mode: In this mode the client will be redirected to the page where "
|
||||||
|
"the client needs to accept the terms of service before getting internet.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object, enable_owe=True, is_bw320=is_bw320,is_ht160=is_ht160)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|||||||
@@ -4,43 +4,129 @@
|
|||||||
pytest -m "advanced_captive_portal_tests and nat"
|
pytest -m "advanced_captive_portal_tests and nat"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests]
|
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests,
|
||||||
|
pytest.mark.click_to_continue]
|
||||||
|
|
||||||
setup_params_general = {
|
captive = {
|
||||||
"mode": "NAT",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "click-to-continue",
|
"auth-mode": "click-to-continue",
|
||||||
"walled-garden-fqdn": [
|
"walled-garden-fqdn": [
|
||||||
"*.google.com",
|
"*.google.com",
|
||||||
"telecominfraproject.com"
|
"telecominfraproject.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "int_cap_portal_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "int_cap_portal_6g_ctc", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="Internal Captive Portal")
|
@allure.suite(suite_name="Internal Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestNatModeadvancedcaptiveportal(object):
|
class TestNatModeadvancedcaptiveportal(object):
|
||||||
"""
|
"""
|
||||||
Advanced Captive Portal Test: NAT Mode
|
Advanced Captive Portal Test: NAT Mode
|
||||||
@@ -49,13 +135,13 @@ class TestNatModeadvancedcaptiveportal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.click_to_continue
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Click-to-continue mode with open encryption 2.4 GHz Band NAT mode")
|
@allure.title("Click-to-continue mode with open encryption 2.4 GHz Band NAT mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14121", name="WIFI-14121")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14121", name="WIFI-14121")
|
||||||
def test_nat_open_2g_click_to_continue(self, get_test_library, get_dut_logs_per_test_case,
|
def test_nat_open_2g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, num_stations, check_connectivity,
|
get_dut_logs_per_test_case,get_test_device_logs,
|
||||||
setup_configuration, get_testbed_details, get_target_object):
|
num_stations, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
"""
|
"""
|
||||||
nat Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
nat Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and nat and click_to_continue"
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and nat and click_to_continue"
|
||||||
@@ -81,9 +167,92 @@ class TestNatModeadvancedcaptiveportal(object):
|
|||||||
body="Click-to-continue mode: In this mode the client will be redirected to the page where "
|
body="Click-to-continue mode: In this mode the client will be redirected to the page where "
|
||||||
"the client needs to accept the terms of service before getting internet.")
|
"the client needs to accept the terms of service before getting internet.")
|
||||||
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=num_stations, json_post_data=json_post_data,
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
get_testbed_details=get_testbed_details,
|
get_testbed_details=get_testbed_details,
|
||||||
tip_2x_obj=get_target_object)
|
tip_2x_obj=get_target_object)
|
||||||
assert passes == "PASS", result
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Click-to-continue mode with open encryption 5 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_open_5g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs,
|
||||||
|
num_stations, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
nat Mode Advanced Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and fiveg and nat and click_to_continue"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "click-to-continue",
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "open"
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
band = "fiveg"
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = 'action=click&accept_terms=clicked'
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Click-to-continue mode: In this mode the client will be redirected to the page where "
|
||||||
|
"the client needs to accept the terms of service before getting internet.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Click-to-continue mode with owe encryption 6 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_6g_click_to_continue(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs,
|
||||||
|
num_stations, check_connectivity,
|
||||||
|
get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
nat Mode Advanced Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and owe and sixg and nat and click_to_continue"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "int_cap_portal_6g_ctc", "appliedRadios": ["6G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "click-to-continue",
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "owe"
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
band = "sixg"
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = 'action=click&accept_terms=clicked'
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Click-to-continue mode: In this mode the client will be redirected to the page where "
|
||||||
|
"the client needs to accept the terms of service before getting internet.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object, enable_owe=True, is_bw320=is_bw320,is_ht160=is_ht160)
|
||||||
|
assert passes == "PASS", result
|
||||||
@@ -4,19 +4,16 @@
|
|||||||
pytest -m "advanced_captive_portal_tests and bridge"
|
pytest -m "advanced_captive_portal_tests and bridge"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.bridge, pytest.mark.internal_captive_portal_tests]
|
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.bridge, pytest.mark.internal_captive_portal_tests,
|
||||||
|
pytest.mark.local_user_and_pass]
|
||||||
|
|
||||||
setup_params_general = {
|
captive = {
|
||||||
"mode": "BRIDGE",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "credentials",
|
"auth-mode": "credentials",
|
||||||
"credentials": [
|
"credentials": [
|
||||||
{
|
{
|
||||||
@@ -29,24 +26,111 @@ setup_params_general = {
|
|||||||
"telecominfraproject.com"
|
"telecominfraproject.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "int_cap_portal_2g_lup", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "int_cap_portal_6g_lup", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="Internal Captive Portal")
|
@allure.suite(suite_name="Internal Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestBridgeModeadvancedcaptiveportal(object):
|
class TestBridgeModeadvancedcaptiveportal(object):
|
||||||
"""
|
"""
|
||||||
Advanced Captive Portal Test: BRIDGE Mode
|
Advanced Captive Portal Test: BRIDGE Mode
|
||||||
@@ -55,13 +139,12 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.local_user_and_pass
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Local user/pass mode with open encryption 2.4 GHz Band Bridge mode")
|
@allure.title("Local user/pass mode with open encryption 2.4 GHz Band Bridge mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10991", name="WIFI-10991")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10991", name="WIFI-10991")
|
||||||
def test_bridge_open_2g_local_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
def test_bridge_open_2g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, num_stations, check_connectivity,
|
get_dut_logs_per_test_case,get_test_device_logs,
|
||||||
setup_configuration, get_testbed_details, get_target_object):
|
num_stations,check_connectivity,get_testbed_details, get_target_object):
|
||||||
"""
|
"""
|
||||||
BRIDGE Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
BRIDGE Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and bridge and local_user_and_pass"
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and bridge and local_user_and_pass"
|
||||||
@@ -93,9 +176,106 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
|||||||
body="Local user/pass mode (Captive-Credentials): In this mode the client needs to "
|
body="Local user/pass mode (Captive-Credentials): In this mode the client needs to "
|
||||||
"enter the valid credentials that are configured in the AP to get the internet access.")
|
"enter the valid credentials that are configured in the AP to get the internet access.")
|
||||||
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=num_stations, json_post_data=json_post_data,
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
get_testbed_details=get_testbed_details,
|
get_testbed_details=get_testbed_details,
|
||||||
tip_2x_obj=get_target_object)
|
tip_2x_obj=get_target_object)
|
||||||
assert passes == "PASS", result
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Local user/pass mode with open encryption 5 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_open_5g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs,
|
||||||
|
num_stations, check_connectivity, get_testbed_details,
|
||||||
|
get_target_object):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode Advanced Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and fiveg and bridge and local_user_and_pass"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "credentials",
|
||||||
|
"credentials": [
|
||||||
|
{
|
||||||
|
"username": "abc",
|
||||||
|
"password": "def"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "open"
|
||||||
|
mode = "BRIDGE"
|
||||||
|
band = "fiveg"
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = 'username=abc&password=def&action=credentials'
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Local user/pass mode (Captive-Credentials): In this mode the client needs to "
|
||||||
|
"enter the valid credentials that are configured in the AP to get the internet access.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Local user/pass mode with owe encryption 6 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_6g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs,
|
||||||
|
num_stations, check_connectivity, get_testbed_details,
|
||||||
|
get_target_object):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode Advanced Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and owe and sixg and bridge and local_user_and_pass"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "int_cap_portal_6g_lup", "appliedRadios": ["6G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "credentials",
|
||||||
|
"credentials": [
|
||||||
|
{
|
||||||
|
"username": "abc",
|
||||||
|
"password": "def"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "owe"
|
||||||
|
mode = "BRIDGE"
|
||||||
|
band = "sixg"
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = 'username=abc&password=def&action=credentials'
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Local user/pass mode (Captive-Credentials): In this mode the client needs to "
|
||||||
|
"enter the valid credentials that are configured in the AP to get the internet access.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object, enable_owe=True, is_bw320=is_bw320,is_ht160=is_ht160)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,19 +4,15 @@
|
|||||||
pytest -m "advanced_captive_portal_tests and nat"
|
pytest -m "advanced_captive_portal_tests and nat"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests]
|
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests,
|
||||||
|
pytest.mark.local_user_and_pass]
|
||||||
setup_params_general = {
|
captive = {
|
||||||
"mode": "NAT",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "credentials",
|
"auth-mode": "credentials",
|
||||||
"credentials": [
|
"credentials": [
|
||||||
{
|
{
|
||||||
@@ -29,24 +25,111 @@ setup_params_general = {
|
|||||||
"telecominfraproject.com"
|
"telecominfraproject.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "int_cap_portal_2g_lup", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "int_cap_portal_6g_lup", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="Internal Captive Portal")
|
@allure.suite(suite_name="Internal Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestNatModeadvancedcaptiveportal(object):
|
class TestNatModeadvancedcaptiveportal(object):
|
||||||
"""
|
"""
|
||||||
Advanced Captive Portal Test: NAT Mode
|
Advanced Captive Portal Test: NAT Mode
|
||||||
@@ -55,13 +138,12 @@ class TestNatModeadvancedcaptiveportal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.local_user_and_pass
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Local user/pass mode with open encryption 2.4 GHz Band NAT mode")
|
@allure.title("Local user/pass mode with open encryption 2.4 GHz Band NAT mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14122", name="WIFI-14122")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14122", name="WIFI-14122")
|
||||||
def test_nat_open_2g_local_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
def test_nat_open_2g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, num_stations, check_connectivity,
|
get_dut_logs_per_test_case,get_test_device_logs, num_stations,
|
||||||
setup_configuration, get_testbed_details, get_target_object):
|
check_connectivity, get_testbed_details, get_target_object):
|
||||||
"""
|
"""
|
||||||
NAT Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
NAT Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and nat and local_user_and_pass"
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and nat and local_user_and_pass"
|
||||||
@@ -93,9 +175,102 @@ class TestNatModeadvancedcaptiveportal(object):
|
|||||||
body="Local user/pass mode (Captive-Credentials): In this mode the client needs to "
|
body="Local user/pass mode (Captive-Credentials): In this mode the client needs to "
|
||||||
"enter the valid credentials that are configured in the AP to get the internet access.")
|
"enter the valid credentials that are configured in the AP to get the internet access.")
|
||||||
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=num_stations, json_post_data=json_post_data,
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
get_testbed_details=get_testbed_details,
|
get_testbed_details=get_testbed_details,
|
||||||
tip_2x_obj=get_target_object)
|
tip_2x_obj=get_target_object)
|
||||||
assert passes == "PASS", result
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Local user/pass mode with open encryption 5 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_open_5g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
|
check_connectivity, get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
NAT Mode Advanced Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and fiveg and nat and local_user_and_pass"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "credentials",
|
||||||
|
"credentials": [
|
||||||
|
{
|
||||||
|
"username": "abc",
|
||||||
|
"password": "def"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "open"
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
band = "fiveg"
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = 'username=abc&password=def&action=credentials'
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Local user/pass mode (Captive-Credentials): In this mode the client needs to "
|
||||||
|
"enter the valid credentials that are configured in the AP to get the internet access.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Local user/pass mode with owe encryption 6 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_6g_local_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
|
check_connectivity, get_testbed_details, get_target_object):
|
||||||
|
"""
|
||||||
|
NAT Mode Advanced Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and owe and sixg and nat and local_user_and_pass"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "int_cap_portal_6g_lup", "appliedRadios": ["6G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "credentials",
|
||||||
|
"credentials": [
|
||||||
|
{
|
||||||
|
"username": "abc",
|
||||||
|
"password": "def"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "owe"
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
band = "sixg"
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = 'username=abc&password=def&action=credentials'
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Local user/pass mode (Captive-Credentials): In this mode the client needs to "
|
||||||
|
"enter the valid credentials that are configured in the AP to get the internet access.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object, enable_owe=True, is_bw320=is_bw320,is_ht160=is_ht160)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|||||||
@@ -4,19 +4,16 @@
|
|||||||
pytest -m "advanced_captive_portal_tests and bridge"
|
pytest -m "advanced_captive_portal_tests and bridge"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.bridge, pytest.mark.internal_captive_portal_tests]
|
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.bridge, pytest.mark.internal_captive_portal_tests,
|
||||||
|
pytest.mark.radius_user_and_pass]
|
||||||
|
|
||||||
setup_params_general = {
|
captive = {
|
||||||
"mode": "BRIDGE",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "radius",
|
"auth-mode": "radius",
|
||||||
"auth-server": "10.28.3.21",
|
"auth-server": "10.28.3.21",
|
||||||
"auth-port": 1812,
|
"auth-port": 1812,
|
||||||
@@ -26,24 +23,110 @@ setup_params_general = {
|
|||||||
"telecominfraproject.com"
|
"telecominfraproject.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "int_cap_portal_2g_rup", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "int_cap_portal_6g_rup", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="Internal Captive Portal")
|
@allure.suite(suite_name="Internal Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestBridgeModeadvancedcaptiveportal(object):
|
class TestBridgeModeadvancedcaptiveportal(object):
|
||||||
"""
|
"""
|
||||||
Advanced Captive Portal Test: BRIDGE Mode
|
Advanced Captive Portal Test: BRIDGE Mode
|
||||||
@@ -52,14 +135,12 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.radius_user_and_pass
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Radius user/pass mode with open encryption 2.4 GHz Band Bridge mode")
|
@allure.title("Radius user/pass mode with open encryption 2.4 GHz Band Bridge mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10996", name="WIFI-10996")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10996", name="WIFI-10996")
|
||||||
def test_bridge_open_2g_radius_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
def test_bridge_open_2g_radius_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, num_stations, check_connectivity,
|
get_dut_logs_per_test_case,get_test_device_logs, num_stations,
|
||||||
setup_configuration, get_testbed_details, get_target_object,
|
check_connectivity,get_testbed_details,get_target_object,radius_info):
|
||||||
radius_info):
|
|
||||||
"""
|
"""
|
||||||
BRIDGE Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
BRIDGE Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and bridge and radius_user_and_pass"
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and bridge and radius_user_and_pass"
|
||||||
@@ -92,9 +173,106 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
|||||||
" the valid credentials that are configured in the radius server being used to get "
|
" the valid credentials that are configured in the radius server being used to get "
|
||||||
"the internet access.")
|
"the internet access.")
|
||||||
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=num_stations, json_post_data=json_post_data,
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
get_testbed_details=get_testbed_details,
|
get_testbed_details=get_testbed_details,
|
||||||
tip_2x_obj=get_target_object)
|
tip_2x_obj=get_target_object)
|
||||||
assert passes == "PASS", result
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Radius user/pass mode with open encryption 5 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_open_5g_radius_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
|
check_connectivity, get_testbed_details, get_target_object,
|
||||||
|
radius_info):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode Advanced Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and fiveg and bridge and radius_user_and_pass"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "radius",
|
||||||
|
"auth-server": "10.28.3.21",
|
||||||
|
"auth-port": 1812,
|
||||||
|
"auth-secret": "testing123",
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "open"
|
||||||
|
mode = "BRIDGE"
|
||||||
|
band = "fiveg"
|
||||||
|
identity = radius_info['user']
|
||||||
|
passwd = radius_info["password"]
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = f"username={identity}&password={passwd}&action=radius"
|
||||||
|
print("json_post_data", json_post_data)
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Radius user/pass mode (Captive-Radius): In this mode the client needs to enter"
|
||||||
|
" the valid credentials that are configured in the radius server being used to get "
|
||||||
|
"the internet access.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Radius user/pass mode with owe encryption 6 GHz Band Bridge mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_bridge_6g_radius_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
|
check_connectivity, get_testbed_details, get_target_object,
|
||||||
|
radius_info):
|
||||||
|
"""
|
||||||
|
BRIDGE Mode Advanced Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and owe and sixg and bridge and radius_user_and_pass"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "int_cap_portal_6g_rup", "appliedRadios": ["6G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "radius",
|
||||||
|
"auth-server": "10.28.3.21",
|
||||||
|
"auth-port": 1812,
|
||||||
|
"auth-secret": "testing123",
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "owe"
|
||||||
|
mode = "BRIDGE"
|
||||||
|
band = "sixg"
|
||||||
|
identity = radius_info['user']
|
||||||
|
passwd = radius_info["password"]
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = f"username={identity}&password={passwd}&action=radius"
|
||||||
|
print("json_post_data", json_post_data)
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Radius user/pass mode (Captive-Radius): In this mode the client needs to enter"
|
||||||
|
" the valid credentials that are configured in the radius server being used to get "
|
||||||
|
"the internet access.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object, enable_owe=True, is_bw320=is_bw320,is_ht160=is_ht160)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|||||||
@@ -4,19 +4,15 @@
|
|||||||
pytest -m "advanced_captive_portal_tests and nat"
|
pytest -m "advanced_captive_portal_tests and nat"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests]
|
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests,
|
||||||
|
pytest.mark.radius_user_and_pass]
|
||||||
setup_params_general = {
|
captive = {
|
||||||
"mode": "NAT",
|
|
||||||
"ssid_modes": {
|
|
||||||
"open": [
|
|
||||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
|
||||||
"captive": {
|
|
||||||
"auth-mode": "radius",
|
"auth-mode": "radius",
|
||||||
"auth-server": "10.28.3.21",
|
"auth-server": "10.28.3.21",
|
||||||
"auth-port": 1812,
|
"auth-port": 1812,
|
||||||
@@ -26,24 +22,110 @@ setup_params_general = {
|
|||||||
"telecominfraproject.com"
|
"telecominfraproject.com"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"open": [
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owe": [
|
||||||
|
{"ssid_name": "int_cap_portal_2g_rup", "appliedRadios": ["2G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
|
},
|
||||||
|
{"ssid_name": "int_cap_portal_6g_rup", "appliedRadios": ["6G"], "security_key": "something",
|
||||||
|
"captive": captive
|
||||||
}
|
}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel": 6,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel": 36,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel": 33,
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
# Deep copy the original dictionary to avoid modifying it
|
||||||
|
setup_params_general_wifi7 = copy.deepcopy(setup_params_general)
|
||||||
|
|
||||||
|
# Update channel-mode to 'EHT' for all bands
|
||||||
|
for band in setup_params_general_wifi7["rf"]:
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-mode"] = "EHT"
|
||||||
|
if band == "6G":
|
||||||
|
setup_params_general_wifi7["rf"][band]["channel-width"] = 320
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
is_bw320 = False
|
||||||
|
is_ht160 = False
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
global is_bw320
|
||||||
|
global is_ht160
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
if ap_mode == "wifi7":
|
||||||
|
is_bw320 = True
|
||||||
|
if ap_mode == "wifi6e":
|
||||||
|
is_ht160 = True
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6" or ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general_wifi7
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Advanced Captive Portal Test")
|
@allure.feature("Advanced Captive Portal Test")
|
||||||
@allure.parent_suite("Advanced Captive Portal Tests")
|
@allure.parent_suite("Advanced Captive Portal Tests")
|
||||||
@allure.suite(suite_name="Internal Captive Portal")
|
@allure.suite(suite_name="Internal Captive Portal")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestNATModeadvancedcaptiveportal(object):
|
class TestNATModeadvancedcaptiveportal(object):
|
||||||
"""
|
"""
|
||||||
Advanced Captive Portal Test: NAT Mode
|
Advanced Captive Portal Test: NAT Mode
|
||||||
@@ -52,14 +134,12 @@ class TestNATModeadvancedcaptiveportal(object):
|
|||||||
|
|
||||||
@pytest.mark.open
|
@pytest.mark.open
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.radius_user_and_pass
|
|
||||||
@pytest.mark.ow_regression_lf
|
@pytest.mark.ow_regression_lf
|
||||||
@allure.title("Radius user/pass mode with open encryption 2.4 GHz Band NAT mode")
|
@allure.title("Radius user/pass mode with open encryption 2.4 GHz Band NAT mode")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14123", name="WIFI-14123")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14123", name="WIFI-14123")
|
||||||
def test_nat_open_2g_radius_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
def test_nat_open_2g_radius_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
get_test_device_logs, num_stations, check_connectivity,
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
setup_configuration, get_testbed_details, get_target_object,
|
check_connectivity, get_testbed_details, get_target_object, radius_info):
|
||||||
radius_info):
|
|
||||||
"""
|
"""
|
||||||
NAT Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
NAT Mode Advanced Captive Portal Test with open encryption 2.4 GHz Band
|
||||||
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and nat and radius_user_and_pass"
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and twog and nat and radius_user_and_pass"
|
||||||
@@ -92,9 +172,104 @@ class TestNATModeadvancedcaptiveportal(object):
|
|||||||
" the valid credentials that are configured in the radius server being used to get "
|
" the valid credentials that are configured in the radius server being used to get "
|
||||||
"the internet access.")
|
"the internet access.")
|
||||||
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=num_stations, json_post_data=json_post_data,
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
get_testbed_details=get_testbed_details,
|
get_testbed_details=get_testbed_details,
|
||||||
tip_2x_obj=get_target_object)
|
tip_2x_obj=get_target_object)
|
||||||
assert passes == "PASS", result
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.open
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Radius user/pass mode with open encryption 5 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_open_5g_radius_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
|
check_connectivity, get_testbed_details, get_target_object, radius_info):
|
||||||
|
"""
|
||||||
|
NAT Mode Advanced Captive Portal Test with open encryption 5 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and open and fiveg and nat and radius_user_and_pass"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_captive_portal_open_5g_br", "appliedRadios": ["5G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "radius",
|
||||||
|
"auth-server": "10.28.3.21",
|
||||||
|
"auth-port": 1812,
|
||||||
|
"auth-secret": "testing123",
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "open"
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
band = "twog"
|
||||||
|
identity = radius_info['user']
|
||||||
|
passwd = radius_info["password"]
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = f"username={identity}&password={passwd}&action=radius"
|
||||||
|
print("json_post_data", json_post_data)
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Radius user/pass mode (Captive-Radius): In this mode the client needs to enter"
|
||||||
|
" the valid credentials that are configured in the radius server being used to get "
|
||||||
|
"the internet access.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object)
|
||||||
|
assert passes == "PASS", result
|
||||||
|
|
||||||
|
@pytest.mark.owe
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
|
@allure.title("Radius user/pass mode with owe encryption 6 GHz Band NAT mode")
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14498", name="WIFI-14498")
|
||||||
|
def test_nat_6g_radius_user_and_pass(self, setup_initial_configuration, get_test_library,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, num_stations,
|
||||||
|
check_connectivity, get_testbed_details, get_target_object, radius_info):
|
||||||
|
"""
|
||||||
|
NAT Mode Advanced Captive Portal Test with owe encryption 6 GHz Band
|
||||||
|
pytest -m "advanced_captive_portal_tests and internal_captive_portal_tests and owe and sixg and nat and radius_user_and_pass"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "int_cap_portal_6g_rup", "appliedRadios": ["6G"],
|
||||||
|
"security_key": "something",
|
||||||
|
"captive": {
|
||||||
|
"auth-mode": "radius",
|
||||||
|
"auth-server": "10.28.3.21",
|
||||||
|
"auth-port": 1812,
|
||||||
|
"auth-secret": "testing123",
|
||||||
|
"walled-garden-fqdn": [
|
||||||
|
"*.google.com",
|
||||||
|
"telecominfraproject.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
security_key = "[BLANK]"
|
||||||
|
security = "owe"
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
band = "sixg"
|
||||||
|
identity = radius_info['user']
|
||||||
|
passwd = radius_info["password"]
|
||||||
|
# json post data for API
|
||||||
|
json_post_data = f"username={identity}&password={passwd}&action=radius"
|
||||||
|
print("json_post_data", json_post_data)
|
||||||
|
allure.attach(name="Definition",
|
||||||
|
body="Radius user/pass mode (Captive-Radius): In this mode the client needs to enter"
|
||||||
|
" the valid credentials that are configured in the radius server being used to get "
|
||||||
|
"the internet access.")
|
||||||
|
passes, result = get_test_library.advanced_captive_portal(ssid=ssid_name, security=security,
|
||||||
|
dut_data=dut_data,
|
||||||
|
passkey=security_key, mode=mode, band=band,
|
||||||
|
num_sta=num_stations, json_post_data=json_post_data,
|
||||||
|
get_testbed_details=get_testbed_details,
|
||||||
|
tip_2x_obj=get_target_object, enable_owe=True, is_bw320=is_bw320,is_ht160=is_ht160)
|
||||||
|
assert passes == "PASS", result
|
||||||
@@ -21,7 +21,6 @@ setup_params_general1 = {
|
|||||||
"band": "5G",
|
"band": "5G",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
"allow-dfs": True,
|
"allow-dfs": True,
|
||||||
"channel-mode": "VHT",
|
|
||||||
"channel-width": 80,
|
"channel-width": 80,
|
||||||
"channel": 52
|
"channel": 52
|
||||||
}
|
}
|
||||||
@@ -53,13 +52,15 @@ class TestDFSChannel52Bw80(object):
|
|||||||
To verify that a 5G client operating on channel 52 shifts to a non-DFS channel if radar is detected
|
To verify that a 5G client operating on channel 52 shifts to a non-DFS channel if radar is detected
|
||||||
Unique Marker: pytest -m "bandwidth_80MHz and ow_sanity_lf and dfs_channel_52_bw_80"
|
Unique Marker: pytest -m "bandwidth_80MHz and ow_sanity_lf and dfs_channel_52_bw_80"
|
||||||
"""
|
"""
|
||||||
|
channel = setup_params_general1["rf"]["5G"]["channel"]
|
||||||
profile_data = setup_params_general1["ssid_modes"]["wpa2_personal"][0]
|
profile_data = setup_params_general1["ssid_modes"]["wpa2_personal"][0]
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
security_key = profile_data["security_key"]
|
security_key = profile_data["security_key"]
|
||||||
security = "wpa2"
|
security = "wpa2"
|
||||||
band = "fiveg"
|
band = "fiveg"
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
get_test_library.dfs_test(ssid=ssid_name, security=security,
|
print("channel:",channel)
|
||||||
|
get_test_library.dfs_test(ssid=ssid_name, security=security, channel=channel,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
||||||
get_target_object.reboot()
|
get_target_object.reboot()
|
||||||
@@ -78,7 +79,6 @@ setup_params_general2 = {
|
|||||||
"band": "5G",
|
"band": "5G",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
"allow-dfs": True,
|
"allow-dfs": True,
|
||||||
"channel-mode": "VHT",
|
|
||||||
"channel-width": 80,
|
"channel-width": 80,
|
||||||
"channel": 100
|
"channel": 100
|
||||||
}
|
}
|
||||||
@@ -110,13 +110,14 @@ class TestDFSChannel100Bw80(object):
|
|||||||
To verify that a 5G client operating on channel 100 shifts to a non-DFS channel if radar is detected
|
To verify that a 5G client operating on channel 100 shifts to a non-DFS channel if radar is detected
|
||||||
Unique Marker: pytest -m "bandwidth_80MHz and ow_sanity_lf and dfs_channel_100_bw_80"
|
Unique Marker: pytest -m "bandwidth_80MHz and ow_sanity_lf and dfs_channel_100_bw_80"
|
||||||
"""
|
"""
|
||||||
|
channel = setup_params_general2["rf"]["5G"]["channel"]
|
||||||
profile_data = setup_params_general2["ssid_modes"]["wpa2_personal"][0]
|
profile_data = setup_params_general2["ssid_modes"]["wpa2_personal"][0]
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
security_key = profile_data["security_key"]
|
security_key = profile_data["security_key"]
|
||||||
security = "wpa2"
|
security = "wpa2"
|
||||||
band = "fiveg"
|
band = "fiveg"
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
get_test_library.dfs_test(ssid=ssid_name, security=security,
|
get_test_library.dfs_test(ssid=ssid_name, security=security, channel=channel,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
||||||
get_target_object.reboot()
|
get_target_object.reboot()
|
||||||
@@ -135,7 +136,6 @@ setup_params_general11 = {
|
|||||||
"band": "5G",
|
"band": "5G",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
"allow-dfs": True,
|
"allow-dfs": True,
|
||||||
"channel-mode": "VHT",
|
|
||||||
"channel-width": 80,
|
"channel-width": 80,
|
||||||
"channel": 132
|
"channel": 132
|
||||||
}
|
}
|
||||||
@@ -168,13 +168,14 @@ class TestDFSChannel132Bw80(object):
|
|||||||
Unique Marker: pytest -m "bandwidth_80MHz and ow_sanity_lf and dfs_channel_132_bw_80"
|
Unique Marker: pytest -m "bandwidth_80MHz and ow_sanity_lf and dfs_channel_132_bw_80"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
channel = setup_params_general11["rf"]["5G"]["channel"]
|
||||||
profile_data = setup_params_general11["ssid_modes"]["wpa2_personal"][0]
|
profile_data = setup_params_general11["ssid_modes"]["wpa2_personal"][0]
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
security_key = profile_data["security_key"]
|
security_key = profile_data["security_key"]
|
||||||
security = "wpa2"
|
security = "wpa2"
|
||||||
band = "fiveg"
|
band = "fiveg"
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
get_test_library.dfs_test(ssid=ssid_name, security=security,
|
get_test_library.dfs_test(ssid=ssid_name, security=security, channel=channel,
|
||||||
passkey=security_key, mode=mode, band=band,
|
passkey=security_key, mode=mode, band=band,
|
||||||
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
||||||
get_target_object.reboot()
|
get_target_object.reboot()
|
||||||
|
|||||||
@@ -14,10 +14,23 @@ setup_params_general_5G = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
"5G": {
|
"5G": {
|
||||||
"band": "5G",
|
"band": "5G",
|
||||||
"channel-width": 80,
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
"channel": 36
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
@@ -208,7 +221,20 @@ setup_params_general_2G = {
|
|||||||
"2G": {
|
"2G": {
|
||||||
"band": "2G",
|
"band": "2G",
|
||||||
"channel-width": 20,
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
"channel": 6
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
|
|||||||
@@ -14,10 +14,23 @@ setup_params_general_5G = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
"5G": {
|
"5G": {
|
||||||
"band": "5G",
|
"band": "5G",
|
||||||
"channel-width": 80,
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
"channel": 36
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
@@ -209,7 +222,20 @@ setup_params_general_2G = {
|
|||||||
"2G": {
|
"2G": {
|
||||||
"band": "2G",
|
"band": "2G",
|
||||||
"channel-width": 20,
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
"channel": 6
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
|
|||||||
@@ -0,0 +1,314 @@
|
|||||||
|
"""
|
||||||
|
Performance Test: BE Capacity Test : BRIDGE Mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and wpa2_personal and bridge"
|
||||||
|
"""
|
||||||
|
import pytest
|
||||||
|
import allure
|
||||||
|
|
||||||
|
pytestmark = [pytest.mark.bridge, pytest.mark.wifi_capacity_be_tests, pytest.mark.wpa2_personal]
|
||||||
|
setup_params_general_5G = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("BE Capacity Test")
|
||||||
|
@allure.suite("5 GHz Band")
|
||||||
|
@allure.sub_suite("BRIDGE Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_5G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
class TestWifiCapacityBRIDGEModeBE5G(object):
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.ow_sanity_lf
|
||||||
|
@allure.title("Single BE client TCP Download wifi capacity")
|
||||||
|
def test_client_wpa2_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in Bridge mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 5Ghz TCP Download traffic.
|
||||||
|
The 5Ghz station is configured for 80Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and bridge and fiveg and tcp_download
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_bridge_tcp_dl", dut_data=setup_configuration,
|
||||||
|
dut_mode=dut_mode, protocol="TCP", upload_rate="56Kbps",
|
||||||
|
download_rate="10Gbps", num_stations={"5G": 1}, mode="BRIDGE")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Download wifi capacity")
|
||||||
|
def test_client_wpa2_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in Bridge mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 5Ghz UDP Download traffic.
|
||||||
|
The 5Ghz station is configured for 80Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and bridge and fiveg and udp_download
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_bridge_udp_dl", dut_data=setup_configuration,
|
||||||
|
dut_mode=dut_mode, protocol="UDP", upload_rate="56Kbps",
|
||||||
|
download_rate="10Gbps", num_stations={"5G": 1}, mode="BRIDGE")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Upload wifi capacity")
|
||||||
|
def test_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in Bridge mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 5Ghz TCP Upload traffic.
|
||||||
|
The 5Ghz station is configured for 80Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and bridge and fiveg and tcp_upload
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_bridge_tcp_ul",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="TCP", upload_rate="10Gbps", download_rate="56Kbps",
|
||||||
|
num_stations={"5G": 1}, mode="BRIDGE")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Upload wifi capacity")
|
||||||
|
def test_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in Bridge mode.
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in Bridge mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 5Ghz UDP Upload traffic.
|
||||||
|
The 5Ghz station is configured for 80Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and bridge and fiveg and udp_upload
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_bridge_udp_ul",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="UDP", upload_rate="10Gbps", download_rate="56Kbps",
|
||||||
|
num_stations={"5G": 1}, mode="BRIDGE")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
|
||||||
|
setup_params_general_2G = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("BE Capacity Test")
|
||||||
|
@allure.suite("2.4 GHz Band")
|
||||||
|
@allure.sub_suite("BRIDGE Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_2G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.twog
|
||||||
|
class TestWifiCapacityBRIDGEModeBE2G(object):
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.ow_sanity_lf
|
||||||
|
@allure.title("Single BE client TCP Download wifi capacity")
|
||||||
|
def test_client_wpa2_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in Bridge mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 2.4Ghz TCP Download traffic.
|
||||||
|
The 2.4Ghz station is configured for 20Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and bridge and twog and tcp_download
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_bridge_tcp_dl",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="TCP", upload_rate="56Kbps", download_rate="10Gbps",
|
||||||
|
num_stations={"2G": 1}, mode="BRIDGE")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Download wifi capacity")
|
||||||
|
def test_client_wpa2_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in Bridge mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 2.4Ghz UDP Download traffic.
|
||||||
|
The 2.4Ghz station is configured for 20Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and bridge and twog and udp_download
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_bridge_udp_dl",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="UDP", upload_rate="56Kbps", download_rate="10Gbps",
|
||||||
|
num_stations={"2G": 1}, mode="BRIDGE")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Upload wifi capacity")
|
||||||
|
def test_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in Bridge mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 2.4Ghz TCP Upload traffic.
|
||||||
|
The 2.4Ghz station is configured for 20Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and bridge and twog and tcp_upload
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_bridge_tcp_ul",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="TCP", upload_rate="10Gbps", download_rate="56Kbps",
|
||||||
|
num_stations={"2G": 1}, mode="BRIDGE")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Upload wifi capacity")
|
||||||
|
def test_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a 2G-enabled DUT supporting BE clients in Bridge mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 2.4Ghz UDP Upload traffic.
|
||||||
|
The 2.4Ghz station is configured for 20Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and bridge and twog and udp_upload
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_bridge_udp_ul",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="UDP", upload_rate="10Gbps", download_rate="56Kbps",
|
||||||
|
num_stations={"2G": 1}, mode="BRIDGE")
|
||||||
|
assert True
|
||||||
@@ -0,0 +1,312 @@
|
|||||||
|
"""
|
||||||
|
Performance Test: BE Capacity Test : NAT Mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and wpa2_personal and nat"
|
||||||
|
"""
|
||||||
|
import pytest
|
||||||
|
import allure
|
||||||
|
|
||||||
|
pytestmark = [pytest.mark.nat, pytest.mark.wifi_capacity_be_tests, pytest.mark.wpa2_personal]
|
||||||
|
setup_params_general_5G = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("BE Capacity Test")
|
||||||
|
@allure.suite("5 GHz Band")
|
||||||
|
@allure.sub_suite("NAT Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_5G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
class TestWifiCapacityNATModeBE5G(object):
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6947", name="WIFI-6947")
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Download wifi capacity")
|
||||||
|
def test_client_wpa2_nat_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in NAT mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 5Ghz TCP Download traffic.
|
||||||
|
The 5Ghz station is configured for 80Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and nat and fiveg and tcp_download
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_nat_tcp_dl",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="TCP", upload_rate="56Kbps", download_rate="10Gbps",
|
||||||
|
num_stations={"5G": 1}, mode="NAT-WAN")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6950", name="WIFI-6950")
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Download wifi capacity")
|
||||||
|
def test_client_wpa2_nat_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in NAT mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 5Ghz UDP Download traffic.
|
||||||
|
The 5Ghz station is configured for 80Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and nat and fiveg and udp_download
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_nat_tcp_dl",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="UDP", upload_rate="56Kbps", download_rate="10Gbps",
|
||||||
|
num_stations={"5G": 1}, mode="NAT-WAN")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6948", name="WIFI-6948")
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Upload wifi capacity")
|
||||||
|
def test_client_wpa2_nat_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in NAT mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 5Ghz TCP Upload traffic.
|
||||||
|
The 5Ghz station is configured for 80Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and nat and fiveg and tcp_upload
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_nat_tcp_ul",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="TCP", upload_rate="10Gbps", download_rate="56Kbps",
|
||||||
|
num_stations={"5G": 1}, mode="NAT-WAN")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-6951", name="WIFI-6951")
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Upload wifi capacity")
|
||||||
|
def test_client_wpa2_nat_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in NAT mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 5Ghz UDP Upload traffic.
|
||||||
|
The 5Ghz station is configured for 80Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and nat and fiveg and udp_upload
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_nat_udp_ul",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="UDP", upload_rate="10Gbps", download_rate="56Kbps",
|
||||||
|
num_stations={"5G": 1}, mode="NAT-WAN")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
|
||||||
|
setup_params_general_2G = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("BE Capacity Test")
|
||||||
|
@allure.suite("2.4 GHz Band")
|
||||||
|
@allure.sub_suite("NAT Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_2G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.twog
|
||||||
|
class TestWifiCapacityNATModeBE2G(object):
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-13290", name="WIFI-13290")
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Download wifi capacity")
|
||||||
|
def test_client_wpa2_nat_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in NAT mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 2.4Ghz TCP Download traffic.
|
||||||
|
The 2.4Ghz station is configured for 20Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and nat and twog and tcp_download
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_nat_tcp_dl",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="TCP", upload_rate="56Kbps", download_rate="10Gbps",
|
||||||
|
num_stations={"2G": 1}, mode="NAT-WAN")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-13293", name="WIFI-13293")
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Download wifi capacity")
|
||||||
|
def test_client_wpa2_nat_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in NAT mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 2.4Ghz UDP Download traffic.
|
||||||
|
The 2.4Ghz station is configured for 20Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and nat and twog and udp_download
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_nat_udp_dl",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="UDP", upload_rate="56Kbps", download_rate="10Gbps",
|
||||||
|
num_stations={"2G": 1}, mode="NAT-WAN")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-13291", name="WIFI-13291")
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Upload wifi capacity")
|
||||||
|
def test_client_wpa2_nat_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in NAT mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 2.4Ghz TCP Upload traffic.
|
||||||
|
The 2.4Ghz station is configured for 20Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and nat and twog and tcp_upload
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_nat_tcp_ul",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="TCP", upload_rate="10Gbps", download_rate="56Kbps",
|
||||||
|
num_stations={"2G": 1}, mode="NAT-WAN")
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-13294", name="WIFI-13294")
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Upload wifi capacity")
|
||||||
|
def test_client_wpa2_nat_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
"""
|
||||||
|
Description:
|
||||||
|
The test case examines the maximum performance of a DUT supporting BE clients in NAT mode.
|
||||||
|
This test focuses on stressing the DUT's capacity under the influence of 2.4Ghz UDP Upload traffic.
|
||||||
|
The 2.4Ghz station is configured for 20Mhz bandwidth and two spatial streams.
|
||||||
|
|
||||||
|
Markers:
|
||||||
|
wifi_capacity_be_tests and wpa2_personal and nat and twog and udp_upload
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Please refer to the PDF report for detailed observations and analysis of the test results.
|
||||||
|
"""
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
|
||||||
|
get_test_library.be_capacity_test(instance_name="test_client_wpa2_nat_udp_ul",
|
||||||
|
dut_data=setup_configuration, dut_mode=dut_mode,
|
||||||
|
protocol="UDP", upload_rate="10Gbps", download_rate="56Kbps",
|
||||||
|
num_stations={"2G": 1}, mode="NAT-WAN")
|
||||||
|
assert True
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
"""
|
||||||
|
|
||||||
|
Performance Test: Single BE client Wifi capacity with Channel and Channel-width Test: Bridge Mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and bridge"
|
||||||
|
|
||||||
|
"""
|
||||||
|
import logging
|
||||||
|
|
||||||
|
import allure
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
pytestmark = [pytest.mark.wifi_capacity_be_tests, pytest.mark.bridge, pytest.mark.sixg,
|
||||||
|
pytest.mark.wpa3_personal]
|
||||||
|
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("BE Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("BRIDGE Mode")
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
class TestWifiCapacityBRIDGEModeBE6G(object):
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.ow_sanity_lf
|
||||||
|
@allure.title("Single BE client TCP Download wifi capacity 320Mhz Bw")
|
||||||
|
def test_be_client_wpa3_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
""" Single BE client Capacity Test BRIDGE mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and sixg and tcp_download and bridge"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_tcp_download", mode=mode,
|
||||||
|
download_rate="10Gbps", batch_size="1",
|
||||||
|
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": 1}, pass_fail_criteria=True , is_wifi7=True, is_bw320=True,
|
||||||
|
sets_=sets)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Download wifi capacity 320Mhz Bw")
|
||||||
|
def test_be_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
""" Single BE client Capacity Test BRIDGE mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and sixg and udp_download and bridge"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_udp_dl", mode=mode,
|
||||||
|
download_rate="10Gbps", batch_size="1",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": 1}, pass_fail_criteria=True, is_wifi7=True, is_bw320=True,
|
||||||
|
sets_=sets)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Upload wifi capacity 320Mhz Bw")
|
||||||
|
def test_be_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
""" Single BE client Capacity Test BRIDGE mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and sixg and tcp_upload and bridge"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
# val = [['modes: Auto'], ['bandw_options: 320Mhz']]
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_tcp_ul", mode=mode,
|
||||||
|
download_rate="56Kbps", batch_size="1",
|
||||||
|
upload_rate="10Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": 1}, pass_fail_criteria=True, is_wifi7=True, is_bw320=True,
|
||||||
|
sets_=sets)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Upload wifi capacity 320Mhz Bw")
|
||||||
|
def test_be_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
""" Single BE client Capacity Test BRIDGE mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and sixg and udp_upload and bridge"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_udp_ul", mode=mode,
|
||||||
|
download_rate="56Kbps", batch_size="1",
|
||||||
|
upload_rate="10Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": 1}, pass_fail_criteria=True, is_wifi7=True, is_bw320=True,
|
||||||
|
sets_=sets)
|
||||||
|
assert True
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
"""
|
||||||
|
|
||||||
|
Performance Test: Single BE client Wifi capacity with Channel and Channel-width Test: nat Mode
|
||||||
|
pytest -m "be_capacity_tests and nat"
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
import allure
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
pytestmark = [pytest.mark.wifi_capacity_be_tests, pytest.mark.nat, pytest.mark.sixg,
|
||||||
|
pytest.mark.wpa3_personal]
|
||||||
|
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("BE Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("NAT Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
class TestWifiCapacityNATMode6G(object):
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Download wifi capacity 320Mhz Bw")
|
||||||
|
def test_be_client_wpa3_nat_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
""" Single BE client Wifi Capacity Test nat mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and sixg and tcp_download and nat"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_tcp_download", mode=mode,
|
||||||
|
download_rate="10Gbps", batch_size="1",
|
||||||
|
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": 1}, pass_fail_criteria=True, is_wifi7=True, is_bw320=True,
|
||||||
|
sets_=sets)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Download wifi capacity 320Mhz Bw")
|
||||||
|
def test_be_client_wpa3_nat_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
""" Single client Wifi Capacity Test nat mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and sixg and udp_download and nat"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_udp_dl", mode=mode,
|
||||||
|
download_rate="10Gbps", batch_size="1",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": 1}, pass_fail_criteria=True, is_wifi7=True, is_bw320=True,
|
||||||
|
sets_=sets)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client TCP Upload wifi capacity 320Mhz Bw")
|
||||||
|
def test_be_client_wpa3_nat_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
""" Single BE client Wifi Capacity Test nat mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and sixg and tcp_upload and nat"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_tcp_ul", mode=mode,
|
||||||
|
download_rate="56Kbps", batch_size="1",
|
||||||
|
upload_rate="10Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": 1}, pass_fail_criteria=True, is_wifi7=True, is_bw320=True,
|
||||||
|
sets_=sets)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14446", name="WIFI-14446")
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
|
@allure.title("Single BE client UDP Upload wifi capacity 320Mhz Bw")
|
||||||
|
def test_be_client_wpa3_nat_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, get_lab_info, selected_testbed, check_connectivity):
|
||||||
|
""" Single client Wifi Capacity Test nat mode
|
||||||
|
pytest -m "wifi_capacity_be_tests and sixg and udp_upload and nat"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_udp_ul", mode=mode,
|
||||||
|
download_rate="56Kbps", batch_size="1",
|
||||||
|
upload_rate="10Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": 1}, pass_fail_criteria=True, is_wifi7=True, is_bw320=True,
|
||||||
|
sets_=sets)
|
||||||
|
assert True
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
Performance Test: Client Scale Test : BRIDGE Mode
|
Performance Test: AX Client Scale Test : BRIDGE Mode
|
||||||
pytest -m "client_scale_test and BRIDGE"
|
pytest -m "ax_client_scale_tests and BRIDGE"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.bridge, pytest.mark.client_scale_tests]
|
pytestmark = [pytest.mark.bridge, pytest.mark.ax_client_scale_tests]
|
||||||
|
|
||||||
setup_params_general_2G = {
|
setup_params_general_2G = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
@@ -22,8 +22,8 @@ setup_params_general_2G = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="Open Security")
|
@allure.suite(suite_name="Open Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -37,8 +37,8 @@ setup_params_general_2G = {
|
|||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.twog_band
|
@pytest.mark.twog_band
|
||||||
class TestWifiCapacityBRIDGEMode2G(object):
|
class TestWifiCapacityBRIDGEMode2G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and twog"
|
pytest -m "ax_client_scale_tests and bridge and open and twog"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3648", name="WIFI-3648")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3648", name="WIFI-3648")
|
||||||
@@ -47,8 +47,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.title("Test for TCP Download 2.4 GHz")
|
@allure.title("Test for TCP Download 2.4 GHz")
|
||||||
def test_client_open_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and twog and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and open and twog and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -66,8 +66,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.title("Test for UDP Download 2.4 GHz")
|
@allure.title("Test for UDP Download 2.4 GHz")
|
||||||
def test_client_open_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and twog and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and open and twog and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -86,8 +86,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_open_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and twog and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and open and twog and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -106,8 +106,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_open_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and twog and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and open and twog and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -125,8 +125,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_open_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and twog and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and open and twog and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -144,8 +144,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_open_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and twog and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and open and twog and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -170,8 +170,8 @@ setup_params_general_5G = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="Open Security")
|
@allure.suite(suite_name="Open Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -185,8 +185,8 @@ setup_params_general_5G = {
|
|||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@pytest.mark.fiveg_band
|
@pytest.mark.fiveg_band
|
||||||
class TestWifiCapacityBRIDGEMode5G(object):
|
class TestWifiCapacityBRIDGEMode5G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and fiveg"
|
pytest -m "ax_client_scale_tests and bridge and open and fiveg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3649", name="WIFI-3649")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3649", name="WIFI-3649")
|
||||||
@@ -196,8 +196,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_open_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and fiveg and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and open and fiveg and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -217,8 +217,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_open_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and fiveg and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and open and fiveg and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -237,8 +237,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_open_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and fiveg and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and open and fiveg and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -257,8 +257,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_open_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and fiveg and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and open and fiveg and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -276,8 +276,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_open_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and fiveg and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and open and fiveg and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -295,8 +295,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_open_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and open and fiveg and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and open and fiveg and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
Performance Test: Client Scale Test : NAT Mode
|
Performance Test: AX Client Scale Test : NAT Mode
|
||||||
pytest -m "client_scale_test and nat"
|
pytest -m "ax_client_scale_tests and nat"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.nat, pytest.mark.client_scale_tests]
|
pytestmark = [pytest.mark.nat, pytest.mark.ax_client_scale_tests]
|
||||||
|
|
||||||
setup_params_general_2G = {
|
setup_params_general_2G = {
|
||||||
"mode": "NAT",
|
"mode": "NAT",
|
||||||
@@ -22,8 +22,8 @@ setup_params_general_2G = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="Open Security")
|
@allure.suite(suite_name="Open Security")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -37,8 +37,8 @@ setup_params_general_2G = {
|
|||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.twog_band
|
@pytest.mark.twog_band
|
||||||
class TestWifiCapacityNATMode2G(object):
|
class TestWifiCapacityNATMode2G(object):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and twog"
|
pytest -m "ax_client_scale_tests and nat and open and twog"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3648", name="WIFI-3648")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3648", name="WIFI-3648")
|
||||||
@@ -47,8 +47,8 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
@allure.title("Test for TCP Download 2.4 GHz")
|
@allure.title("Test for TCP Download 2.4 GHz")
|
||||||
def test_client_open_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and twog and tcp_download"
|
pytest -m "ax_client_scale_tests and nat and open and twog and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -66,8 +66,8 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
@allure.title("Test for UDP Download 2.4 GHz")
|
@allure.title("Test for UDP Download 2.4 GHz")
|
||||||
def test_client_open_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and twog and udp_download"
|
pytest -m "ax_client_scale_tests and nat and open and twog and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -86,8 +86,8 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
def test_client_open_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and twog and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and open and twog and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -106,8 +106,8 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
def test_client_open_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and twog and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and open and twog and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -125,8 +125,8 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
def test_client_open_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and twog and tcp_upload"
|
pytest -m "ax_client_scale_tests and nat and open and twog and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -144,8 +144,8 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
def test_client_open_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and twog and udp_upload"
|
pytest -m "ax_client_scale_tests and nat and open and twog and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -170,8 +170,8 @@ setup_params_general_5G = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="Open Security")
|
@allure.suite(suite_name="Open Security")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -185,8 +185,8 @@ setup_params_general_5G = {
|
|||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@pytest.mark.fiveg_band
|
@pytest.mark.fiveg_band
|
||||||
class TestWifiCapacityNATMode5G(object):
|
class TestWifiCapacityNATMode5G(object):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and fiveg"
|
pytest -m "ax_client_scale_tests and nat and open and fiveg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3649", name="WIFI-3649")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3649", name="WIFI-3649")
|
||||||
@@ -196,8 +196,8 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
def test_client_open_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and fiveg and tcp_download"
|
pytest -m "ax_client_scale_tests and nat and open and fiveg and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -217,8 +217,8 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
def test_client_open_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and fiveg and udp_download"
|
pytest -m "ax_client_scale_tests and nat and open and fiveg and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -237,8 +237,8 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
def test_client_open_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and fiveg and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and open and fiveg and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -257,8 +257,8 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
def test_client_open_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and fiveg and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and open and fiveg and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -276,8 +276,8 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
def test_client_open_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and fiveg and udp_upload"
|
pytest -m "ax_client_scale_tests and nat and open and fiveg and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -295,8 +295,8 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
def test_client_open_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_open_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and open and fiveg and tcp_upload"
|
pytest -m "ax_client_scale_tests and nat and open and fiveg and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
Performance Test: Client Scale Test : BRIDGE Mode
|
Performance Test: AX Client Scale Test : BRIDGE Mode
|
||||||
pytest -m "client_scale_test and BRIDGE"
|
pytest -m "ax_client_scale_tests and BRIDGE"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.performance, pytest.mark.bridge, pytest.mark.client_scale_tests]
|
pytestmark = [pytest.mark.bridge, pytest.mark.ax_client_scale_tests]
|
||||||
|
|
||||||
setup_params_general_2G = {
|
setup_params_general_2G = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
@@ -17,13 +17,32 @@ setup_params_general_2G = {
|
|||||||
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA2 Personal Security")
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -37,18 +56,19 @@ setup_params_general_2G = {
|
|||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.twog_band
|
@pytest.mark.twog_band
|
||||||
class TestWifiCapacityBRIDGEMode2G(object):
|
class TestWifiCapacityBRIDGEMode2G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and twog"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3928", name="WIFI-3928")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3928", name="WIFI-3928")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_download
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Download 2.4 GHz")
|
@allure.title("Test for TCP Download 2.4 GHz")
|
||||||
def test_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and twog and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -63,11 +83,12 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3930", name="WIFI-3930")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3930", name="WIFI-3930")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Download 2.4 GHz")
|
@allure.title("Test for UDP Download 2.4 GHz")
|
||||||
def test_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and twog and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -86,8 +107,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_wpa2_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and twog and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -106,8 +127,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_wpa2_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and twog and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -122,12 +143,13 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7127", name="WIFI-7127")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7127", name="WIFI-7127")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Upload 2.4 GHz")
|
@allure.title("Test for TCP Upload 2.4 GHz")
|
||||||
def test_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and twog and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -142,12 +164,13 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7128", name="WIFI-7128")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7128", name="WIFI-7128")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Upload 2.4 GHz")
|
@allure.title("Test for UDP Upload 2.4 GHz")
|
||||||
def test_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and twog and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -167,13 +190,32 @@ setup_params_general_5G = {
|
|||||||
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA2 Personal Security")
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -187,19 +229,20 @@ setup_params_general_5G = {
|
|||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@pytest.mark.fiveg_band
|
@pytest.mark.fiveg_band
|
||||||
class TestWifiCapacityBRIDGEMode5G(object):
|
class TestWifiCapacityBRIDGEMode5G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and fiveg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3929", name="WIFI-3929")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3929", name="WIFI-3929")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_download
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Download 5 GHz")
|
@allure.title("Test for TCP Download 5 GHz")
|
||||||
def test_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and fiveg and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -215,12 +258,13 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3931", name="WIFI-3931")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3931", name="WIFI-3931")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Download 5 GHz")
|
@allure.title("Test for UDP Download 5 GHz")
|
||||||
def test_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and fiveg and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -239,8 +283,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa2_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and fiveg and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -259,8 +303,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa2_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and fiveg and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -274,12 +318,13 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
|
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Upload 5 GHz")
|
@allure.title("Test for UDP Upload 5 GHz")
|
||||||
def test_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and fiveg and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -293,12 +338,13 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
|
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Upload 5 GHz")
|
@allure.title("Test for TCP Upload 5 GHz")
|
||||||
def test_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and fiveg and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -318,13 +364,32 @@ setup_params_general_dual = {
|
|||||||
{"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA2 Personal Security")
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -340,18 +405,19 @@ setup_params_general_dual = {
|
|||||||
@pytest.mark.dual_band
|
@pytest.mark.dual_band
|
||||||
@pytest.mark.twog_band
|
@pytest.mark.twog_band
|
||||||
class TestWifiCapacityBRIDGEModeDual(object):
|
class TestWifiCapacityBRIDGEModeDual(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and dual_band"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3926", name="WIFI-3926")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3926", name="WIFI-3926")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_download
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Download 2.4 GHz and 5 GHz")
|
@allure.title("Test for TCP Download 2.4 GHz and 5 GHz")
|
||||||
def test_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and dual_band and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -366,11 +432,12 @@ class TestWifiCapacityBRIDGEModeDual(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3927", name="WIFI-3927")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3927", name="WIFI-3927")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Download 2.4 GHz and 5 GHz")
|
@allure.title("Test for UDP Download 2.4 GHz and 5 GHz")
|
||||||
def test_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and dual_band and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -389,8 +456,8 @@ class TestWifiCapacityBRIDGEModeDual(object):
|
|||||||
def test_client_wpa2_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and dual_band and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -409,8 +476,8 @@ class TestWifiCapacityBRIDGEModeDual(object):
|
|||||||
def test_client_wpa2_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and dual_band and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -425,12 +492,13 @@ class TestWifiCapacityBRIDGEModeDual(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7127", name="WIFI-7127")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7127", name="WIFI-7127")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Upload 2.4 GHz and 5 GHz")
|
@allure.title("Test for TCP Upload 2.4 GHz and 5 GHz")
|
||||||
def test_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and dual_band and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -445,12 +513,13 @@ class TestWifiCapacityBRIDGEModeDual(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7128", name="WIFI-7128")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7128", name="WIFI-7128")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Upload 2.4 GHz and 5 GHz")
|
@allure.title("Test for UDP Upload 2.4 GHz and 5 GHz")
|
||||||
def test_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa2_personal and dual_band and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
Performance Test: Client Scale Test : NAT Mode
|
Performance Test: AX Client Scale Test : NAT Mode
|
||||||
pytest -m "client_scale_test and nat"
|
pytest -m "ax_client_scale_tests and nat"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.performance, pytest.mark.nat, pytest.mark.client_scale_tests]
|
pytestmark = [pytest.mark.nat, pytest.mark.ax_client_scale_tests]
|
||||||
|
|
||||||
setup_params_general_2G = {
|
setup_params_general_2G = {
|
||||||
"mode": "NAT",
|
"mode": "NAT",
|
||||||
@@ -17,13 +17,32 @@ setup_params_general_2G = {
|
|||||||
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA2 Personal Security")
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -37,18 +56,19 @@ setup_params_general_2G = {
|
|||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.twog_band
|
@pytest.mark.twog_band
|
||||||
class TestWifiCapacityNATMode2G(object):
|
class TestWifiCapacityNATMode2G(object):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and twog"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3928", name="WIFI-3928")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3928", name="WIFI-3928")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_download
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Download 2.4 GHz")
|
@allure.title("Test for TCP Download 2.4 GHz")
|
||||||
def test_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and tcp_download"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and twog and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -63,11 +83,12 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3930", name="WIFI-3930")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3930", name="WIFI-3930")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Download 2.4 GHz")
|
@allure.title("Test for UDP Download 2.4 GHz")
|
||||||
def test_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and udp_download"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and twog and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -86,8 +107,8 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
def test_client_wpa2_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and twog and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -106,8 +127,8 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
def test_client_wpa2_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and twog and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -122,12 +143,13 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7127", name="WIFI-7127")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7127", name="WIFI-7127")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Upload 2.4 GHz")
|
@allure.title("Test for TCP Upload 2.4 GHz")
|
||||||
def test_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and tcp_upload"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and twog and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -142,12 +164,13 @@ class TestWifiCapacityNATMode2G(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7128", name="WIFI-7128")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7128", name="WIFI-7128")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Upload 2.4 GHz")
|
@allure.title("Test for UDP Upload 2.4 GHz")
|
||||||
def test_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and udp_upload"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and twog and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -167,13 +190,32 @@ setup_params_general_5G = {
|
|||||||
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA2 Personal Security")
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -187,19 +229,20 @@ setup_params_general_5G = {
|
|||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@pytest.mark.fiveg_band
|
@pytest.mark.fiveg_band
|
||||||
class TestWifiCapacityNATMode5G(object):
|
class TestWifiCapacityNATMode5G(object):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and fiveg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3929", name="WIFI-3929")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3929", name="WIFI-3929")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_download
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Download 5 GHz")
|
@allure.title("Test for TCP Download 5 GHz")
|
||||||
def test_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and tcp_download"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and fiveg and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -215,12 +258,13 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3931", name="WIFI-3931")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3931", name="WIFI-3931")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Download 5 GHz")
|
@allure.title("Test for UDP Download 5 GHz")
|
||||||
def test_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and udp_download"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and fiveg and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -239,8 +283,8 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
def test_client_wpa2_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and fiveg and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -259,8 +303,8 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
def test_client_wpa2_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and fiveg and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -274,12 +318,13 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
|
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Upload 5 GHz")
|
@allure.title("Test for UDP Upload 5 GHz")
|
||||||
def test_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and udp_upload"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and fiveg and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -293,12 +338,13 @@ class TestWifiCapacityNATMode5G(object):
|
|||||||
|
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Upload 5 GHz")
|
@allure.title("Test for TCP Upload 5 GHz")
|
||||||
def test_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and tcp_upload"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and fiveg and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -318,13 +364,32 @@ setup_params_general_dual = {
|
|||||||
{"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA2 Personal Security")
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -340,18 +405,19 @@ setup_params_general_dual = {
|
|||||||
@pytest.mark.dual_band
|
@pytest.mark.dual_band
|
||||||
@pytest.mark.twog_band
|
@pytest.mark.twog_band
|
||||||
class TestWifiCapacityNATModeDual(object):
|
class TestWifiCapacityNATModeDual(object):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and dual_band"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3926", name="WIFI-3926")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3926", name="WIFI-3926")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_download
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Download 2.4 GHz and 5 GHz")
|
@allure.title("Test for TCP Download 2.4 GHz and 5 GHz")
|
||||||
def test_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and tcp_download"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and dual_band and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -366,11 +432,12 @@ class TestWifiCapacityNATModeDual(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3927", name="WIFI-3927")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3927", name="WIFI-3927")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Download 2.4 GHz and 5 GHz")
|
@allure.title("Test for UDP Download 2.4 GHz and 5 GHz")
|
||||||
def test_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and udp_download"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and dual_band and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -389,8 +456,8 @@ class TestWifiCapacityNATModeDual(object):
|
|||||||
def test_client_wpa2_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and dual_band and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -409,8 +476,8 @@ class TestWifiCapacityNATModeDual(object):
|
|||||||
def test_client_wpa2_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and dual_band and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -425,12 +492,13 @@ class TestWifiCapacityNATModeDual(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7127", name="WIFI-7127")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7127", name="WIFI-7127")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Upload 2.4 GHz and 5 GHz")
|
@allure.title("Test for TCP Upload 2.4 GHz and 5 GHz")
|
||||||
def test_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and tcp_upload"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and dual_band and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -445,12 +513,13 @@ class TestWifiCapacityNATModeDual(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7128", name="WIFI-7128")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-7128", name="WIFI-7128")
|
||||||
@pytest.mark.wpa2_personal
|
@pytest.mark.wpa2_personal
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Upload 2.4 GHz and 5 GHz")
|
@allure.title("Test for UDP Upload 2.4 GHz and 5 GHz")
|
||||||
def test_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test NAT mode
|
""" AX Client Scale Test NAT mode
|
||||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and udp_upload"
|
pytest -m "ax_client_scale_tests and nat and wpa2_personal and dual_band and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
Performance Test: Client Scale Test : BRIDGE Mode
|
Performance Test: AX Client Scale Test : BRIDGE Mode
|
||||||
pytest -m "client_scale_tests and bridge"
|
pytest -m "ax_client_scale_tests and bridge"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
import allure
|
import allure
|
||||||
|
|
||||||
pytestmark = [pytest.mark.bridge, pytest.mark.client_scale_tests]
|
pytestmark = [pytest.mark.bridge, pytest.mark.ax_client_scale_tests]
|
||||||
|
|
||||||
setup_params_general_2G = {
|
setup_params_general_2G = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
@@ -22,8 +22,8 @@ setup_params_general_2G = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA3 Personal Security")
|
@allure.suite(suite_name="WPA3 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -37,8 +37,8 @@ setup_params_general_2G = {
|
|||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.twog_band
|
@pytest.mark.twog_band
|
||||||
class TestWifiCapacityBRIDGEMode2G(object):
|
class TestWifiCapacityBRIDGEMode2G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and twog"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3651", name="WIFI-3651")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3651", name="WIFI-3651")
|
||||||
@@ -47,8 +47,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.title("Test for TCP Download 2.4 GHz")
|
@allure.title("Test for TCP Download 2.4 GHz")
|
||||||
def test_client_wpa3_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and twog and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -65,8 +65,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.title("Test for TCP Upload 2.4 GHz")
|
@allure.title("Test for TCP Upload 2.4 GHz")
|
||||||
def test_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and twog and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -83,8 +83,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.title("Test for UDP Upload 2.4 GHz")
|
@allure.title("Test for UDP Upload 2.4 GHz")
|
||||||
def test_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and twog and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -102,8 +102,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.title("Test for UDP Download 2.4 GHz")
|
@allure.title("Test for UDP Download 2.4 GHz")
|
||||||
def test_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and twog and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -122,8 +122,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_wpa3_bridge_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and twog and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -142,8 +142,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_wpa3_bridge_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and twog and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -168,8 +168,8 @@ setup_params_general_5G = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA3 Personal Security")
|
@allure.suite(suite_name="WPA3 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -183,8 +183,8 @@ setup_params_general_5G = {
|
|||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@pytest.mark.fiveg_band
|
@pytest.mark.fiveg_band
|
||||||
class TestWifiCapacityBRIDGEMode5G(object):
|
class TestWifiCapacityBRIDGEMode5G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
client_scale_tests and bridge and wpa3_personal and fiveg"
|
ax_client_scale_tests and bridge and wpa3_personal and fiveg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3653", name="WIFI-3653")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3653", name="WIFI-3653")
|
||||||
@@ -193,8 +193,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
@allure.title("Test for TCP Download 5 GHz")
|
@allure.title("Test for TCP Download 5 GHz")
|
||||||
def test_client_wpa3_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and fiveg and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -212,8 +212,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
@allure.title("Test for UDP Download 5 GHz")
|
@allure.title("Test for UDP Download 5 GHz")
|
||||||
def test_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and fiveg and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -232,8 +232,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa3_bridge_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and fiveg and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -252,8 +252,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa3_bridge_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and fiveg and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -270,8 +270,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
@allure.title("Test for TCP Upload 5 GHz")
|
@allure.title("Test for TCP Upload 5 GHz")
|
||||||
def test_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and fiveg and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -288,8 +288,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
@allure.title("Test for UDP Upload 5 GHz")
|
@allure.title("Test for UDP Upload 5 GHz")
|
||||||
def test_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and fiveg and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -310,13 +310,32 @@ setup_params_general_6G = {
|
|||||||
{"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA3 Personal Security")
|
@allure.suite(suite_name="WPA3 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -328,20 +347,20 @@ setup_params_general_6G = {
|
|||||||
@pytest.mark.usefixtures("setup_configuration")
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
@pytest.mark.wpa3_personal
|
@pytest.mark.wpa3_personal
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.performance
|
|
||||||
class TestWifiCapacityBRIDGEMode6G(object):
|
class TestWifiCapacityBRIDGEMode6G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
client_scale_tests and bridge and wpa3_personal and sixg"
|
ax_client_scale_tests and bridge and wpa3_personal and sixg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@pytest.mark.wpa3_personal
|
@pytest.mark.wpa3_personal
|
||||||
@pytest.mark.tcp_download
|
@pytest.mark.tcp_download
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Download 6 GHz")
|
@allure.title("Test for TCP Download 6 GHz")
|
||||||
def test_client_wpa3_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and sixg and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -357,11 +376,12 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
|||||||
@pytest.mark.wpa3_personal
|
@pytest.mark.wpa3_personal
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Download 6 GHz")
|
@allure.title("Test for UDP Download 6 GHz")
|
||||||
def test_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and sixg and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -381,8 +401,8 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
|||||||
def test_client_wpa3_bridge_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and sixg and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -402,8 +422,8 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
|||||||
def test_client_wpa3_bridge_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and sixg and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -418,11 +438,12 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
|||||||
@pytest.mark.wpa3_personal
|
@pytest.mark.wpa3_personal
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for TCP Upload 6 GHz")
|
@allure.title("Test for TCP Upload 6 GHz")
|
||||||
def test_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and sixg and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -437,11 +458,12 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
|||||||
@pytest.mark.wpa3_personal
|
@pytest.mark.wpa3_personal
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@pytest.mark.performance
|
||||||
@allure.title("Test for UDP Upload 6 GHz")
|
@allure.title("Test for UDP Upload 6 GHz")
|
||||||
def test_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa3_personal and sixg and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
Performance Test: Client Scale Test : BRIDGE Mode
|
Performance Test: AX Client Scale Test : BRIDGE Mode
|
||||||
pytest -m "client_scale_test and BRIDGE"
|
pytest -m "ax_client_scale_tests and BRIDGE"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.bridge, pytest.mark.client_scale_tests]
|
pytestmark = [pytest.mark.bridge, pytest.mark.ax_client_scale_tests]
|
||||||
|
|
||||||
setup_params_general_2G = {
|
setup_params_general_2G = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
@@ -22,8 +22,8 @@ setup_params_general_2G = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="WPA Personal Security")
|
@allure.suite(suite_name="WPA Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -37,8 +37,8 @@ setup_params_general_2G = {
|
|||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.twog_band
|
@pytest.mark.twog_band
|
||||||
class TestWifiCapacityBRIDGEMode2G(object):
|
class TestWifiCapacityBRIDGEMode2G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and twog"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3650", name="WIFI-3650")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3650", name="WIFI-3650")
|
||||||
@@ -47,8 +47,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.title("Test for TCP Download 2.4 GHz")
|
@allure.title("Test for TCP Download 2.4 GHz")
|
||||||
def test_client_wpa_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and twog and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -66,8 +66,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
@allure.title("Test for UDP Download 2.4 GHz")
|
@allure.title("Test for UDP Download 2.4 GHz")
|
||||||
def test_client_wpa_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and twog and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -86,8 +86,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_wpa_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and twog and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -106,8 +106,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_wpa_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and twog and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -125,8 +125,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_wpa_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and twog and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -144,8 +144,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
|||||||
def test_client_wpa_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and twog and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -170,8 +170,8 @@ setup_params_general_5G = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@allure.feature("Client Scale Tests")
|
@allure.feature("AX Client Scale Tests")
|
||||||
@allure.parent_suite("Client Scale Tests")
|
@allure.parent_suite("AX Client Scale Tests")
|
||||||
@allure.suite(suite_name="wpa Personal Security")
|
@allure.suite(suite_name="wpa Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -185,8 +185,8 @@ setup_params_general_5G = {
|
|||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@pytest.mark.fiveg_band
|
@pytest.mark.fiveg_band
|
||||||
class TestWifiCapacityBRIDGEMode5G(object):
|
class TestWifiCapacityBRIDGEMode5G(object):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and fiveg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3652", name="WIFI-3652")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3652", name="WIFI-3652")
|
||||||
@@ -196,8 +196,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and tcp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and fiveg and tcp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -217,8 +217,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and udp_download"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and fiveg and udp_download"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -237,8 +237,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_BRIDGE_tcp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and tcp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and fiveg and tcp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -257,8 +257,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_BRIDGE_udp_bidirectional(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and udp_bidirectional"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and fiveg and udp_bidirectional"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -276,8 +276,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and udp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and fiveg and udp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -295,8 +295,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
|||||||
def test_client_wpa_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration,
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
max_stations):
|
max_stations):
|
||||||
""" Client Scale Test BRIDGE mode
|
""" AX Client Scale Test BRIDGE mode
|
||||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and tcp_upload"
|
pytest -m "ax_client_scale_tests and bridge and wpa_personal and fiveg and tcp_upload"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -0,0 +1,450 @@
|
|||||||
|
"""
|
||||||
|
|
||||||
|
Performance Test: BE Client Scale Test : BRIDGE Mode
|
||||||
|
pytest -m "be_client_scale_tests and BRIDGE"
|
||||||
|
|
||||||
|
"""
|
||||||
|
import logging
|
||||||
|
import allure
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
pytestmark = [pytest.mark.bridge, pytest.mark.be_client_scale_tests]
|
||||||
|
|
||||||
|
setup_params_general_2G = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("BE Client Scale Tests")
|
||||||
|
@allure.parent_suite("BE Client Scale Tests")
|
||||||
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_2G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.twog_band
|
||||||
|
@pytest.mark.performance
|
||||||
|
class TestWifiCapacityBRIDGEMode2G(object):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and twog"
|
||||||
|
"""
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@allure.title("Test for TCP Download 2.4 GHz")
|
||||||
|
def test_be_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case, get_lab_info,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and twog and tcp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_tcp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="0Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@allure.title("Test for UDP Download 2.4 GHz")
|
||||||
|
def test_be_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case, get_lab_info,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and twog and udp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_udp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@allure.title("Test for TCP Upload 2.4 GHz")
|
||||||
|
def test_be_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case, get_lab_info,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and twog and tcp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_tcp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@allure.title("Test for UDP Upload 2.4 GHz")
|
||||||
|
def test_be_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case, get_lab_info,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and twog and udp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_udp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
|
||||||
|
setup_params_general_5G = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("BE Client Scale Tests")
|
||||||
|
@allure.parent_suite("BE Client Scale Tests")
|
||||||
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_5G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.fiveg_band
|
||||||
|
@pytest.mark.performance
|
||||||
|
class TestWifiCapacityBRIDGEMode5G(object):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and fiveg"
|
||||||
|
"""
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@allure.title("Test for TCP Download 5 GHz")
|
||||||
|
def test_be_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and fiveg and tcp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_tcp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="0Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"5G": max_stations}, is_wifi7=True)
|
||||||
|
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@allure.title("Test for UDP Download 5 GHz")
|
||||||
|
def test_be_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and fiveg and udp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_udp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@allure.title("Test for UDP Upload 5 GHz")
|
||||||
|
def test_be_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and fiveg and udp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_udp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@allure.title("Test for TCP Upload 5 GHz")
|
||||||
|
def test_be_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and fiveg and tcp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_tcp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
|
||||||
|
setup_params_general_dual = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("BE Client Scale Tests")
|
||||||
|
@allure.parent_suite("BE Client Scale Tests")
|
||||||
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_dual],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.dual_band
|
||||||
|
@pytest.mark.twog_band
|
||||||
|
class TestWifiCapacityBRIDGEModeDual(object):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and dual_band"
|
||||||
|
"""
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@allure.title("Test for TCP Download 2.4 GHz and 5 GHz")
|
||||||
|
def test_be_client_wpa2_BRIDGE_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and dual_band and tcp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_tcp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="0Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations, "5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3927", name="WIFI-3927")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@allure.title("Test for UDP Download 2.4 GHz and 5 GHz")
|
||||||
|
def test_be_client_wpa2_BRIDGE_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and dual_band and udp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_udp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations, "5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@allure.title("Test for TCP Upload 2.4 GHz and 5 GHz")
|
||||||
|
def test_be_client_wpa2_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and dual_band and tcp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_tcp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations, "5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@allure.title("Test for UDP Upload 2.4 GHz and 5 GHz")
|
||||||
|
def test_be_client_wpa2_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa2_personal and dual_band and udp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_BRIDGE_udp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations, "5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
@@ -0,0 +1,450 @@
|
|||||||
|
"""
|
||||||
|
|
||||||
|
Performance Test: BE Client Scale Test : NAT Mode
|
||||||
|
pytest -m "be_client_scale_tests and nat"
|
||||||
|
|
||||||
|
"""
|
||||||
|
import logging
|
||||||
|
import allure
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
pytestmark = [pytest.mark.nat, pytest.mark.be_client_scale_tests]
|
||||||
|
|
||||||
|
setup_params_general_2G = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("BE Client Scale Tests")
|
||||||
|
@allure.parent_suite("BE Client Scale Tests")
|
||||||
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_2G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.twog_band
|
||||||
|
@pytest.mark.performance
|
||||||
|
class TestWifiCapacityNATMode2G(object):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and twog"
|
||||||
|
"""
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@allure.title("Test for TCP Download 2.4 GHz")
|
||||||
|
def test_BE_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and twog and tcp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_tcp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@allure.title("Test for UDP Download 2.4 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and twog and udp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_udp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@allure.title("Test for TCP Upload 2.4 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and twog and tcp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_tcp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@allure.title("Test for UDP Upload 2.4 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and twog and udp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["2G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_udp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
|
||||||
|
setup_params_general_5G = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("BE Client Scale Tests")
|
||||||
|
@allure.parent_suite("BE Client Scale Tests")
|
||||||
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_5G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.fiveg_band
|
||||||
|
@pytest.mark.performance
|
||||||
|
class TestWifiCapacityNATMode5G(object):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and fiveg"
|
||||||
|
"""
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@allure.title("Test for TCP Download 5 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and fiveg and tcp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_tcp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"5G": max_stations}, is_wifi7=True)
|
||||||
|
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@allure.title("Test for UDP Download 5 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and fiveg and udp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_udp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@allure.title("Test for UDP Upload 5 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and fiveg and udp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_udp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@allure.title("Test for TCP Upload 5 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and fiveg and tcp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_tcp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
|
||||||
|
setup_params_general_dual = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("BE Client Scale Tests")
|
||||||
|
@allure.parent_suite("BE Client Scale Tests")
|
||||||
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_dual],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.fiveg
|
||||||
|
@pytest.mark.dual_band
|
||||||
|
@pytest.mark.twog_band
|
||||||
|
class TestWifiCapacityNATModeDual(object):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and dual_band"
|
||||||
|
"""
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@allure.title("Test for TCP Download 2.4 GHz and 5 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and dual_band and tcp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_tcp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations, "5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@allure.title("Test for UDP Download 2.4 GHz and 5 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and dual_band and udp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_udp_dl", mode=mode,
|
||||||
|
download_rate="1Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations, "5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@allure.title("Test for TCP Upload 2.4 GHz and 5 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and dual_band and tcp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_tcp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations, "5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14447", name="WIFI-14447")
|
||||||
|
@pytest.mark.wpa2_personal
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@allure.title("Test for UDP Upload 2.4 GHz and 5 GHz")
|
||||||
|
def test_be_client_wpa2_NAT_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration,
|
||||||
|
max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test NAT mode
|
||||||
|
pytest -m "be_client_scale_tests and nat and wpa2_personal and dual_band and udp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa2_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "NAT-WAN"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa2_NAT_udp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="1Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"2G": max_stations, "5G": max_stations}, is_wifi7=True)
|
||||||
|
assert True
|
||||||
@@ -0,0 +1,156 @@
|
|||||||
|
"""
|
||||||
|
|
||||||
|
Performance Test: BE Client Scale Test : BRIDGE Mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge"
|
||||||
|
|
||||||
|
"""
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import pytest
|
||||||
|
import allure
|
||||||
|
|
||||||
|
pytestmark = [pytest.mark.bridge, pytest.mark.be_client_scale_tests]
|
||||||
|
|
||||||
|
setup_params_general_6G = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa3_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@allure.feature("BE Client Scale Tests")
|
||||||
|
@allure.parent_suite("BE Client Scale Tests")
|
||||||
|
@allure.suite(suite_name="WPA3 Personal Security")
|
||||||
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'setup_configuration',
|
||||||
|
[setup_params_general_6G],
|
||||||
|
indirect=True,
|
||||||
|
scope="class"
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.twog
|
||||||
|
@pytest.mark.performance
|
||||||
|
class TestWifiCapacityBRIDGEMode6G(object):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
be_client_scale_tests and bridge and wpa3_personal and sixg"
|
||||||
|
"""
|
||||||
|
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.tcp_download
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@allure.title("Test for TCP Download 6 GHz")
|
||||||
|
def test_be_client_wpa3_bridge_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa3_personal and sixg and tcp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa3_BRIDGE_tcp_dl", mode=mode,
|
||||||
|
download_rate="10Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="0Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": max_stations}, is_wifi7=True, is_bw320=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
# @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3659", name="WIFI-3659")
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.udp_download
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@allure.title("Test for UDP Download 6 GHz")
|
||||||
|
def test_be_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa3_personal and sixg and udp_download"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa3_BRIDGE_udp_dl", mode=mode,
|
||||||
|
download_rate="10Gbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": max_stations}, is_wifi7=True, is_bw320=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.tcp_upload
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@allure.title("Test for TCP Upload 6 GHz")
|
||||||
|
def test_be_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa3_personal and sixg and tcp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa3_BRIDGE_tcp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="10Gbps", protocol="TCP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": max_stations}, is_wifi7=True, is_bw320=True)
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@pytest.mark.wpa3_personal
|
||||||
|
@pytest.mark.udp_upload
|
||||||
|
@pytest.mark.sixg
|
||||||
|
@allure.title("Test for UDP Upload 6 GHz")
|
||||||
|
def test_be_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
get_test_device_logs, num_stations, setup_configuration, max_stations, get_lab_info, selected_testbed):
|
||||||
|
""" BE Client Scale Test BRIDGE mode
|
||||||
|
pytest -m "be_client_scale_tests and bridge and wpa3_personal and sixg and udp_upload"
|
||||||
|
"""
|
||||||
|
profile_data = {"ssid_name": "ssid_wpa3_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
|
mode = "BRIDGE"
|
||||||
|
dut_mode = get_lab_info.CONFIGURATION[selected_testbed]["device_under_tests"][0]["mode"]
|
||||||
|
if dut_mode.lower() == "wifi6":
|
||||||
|
logging.info("AP does not support BE mode, so skipping this test.")
|
||||||
|
pytest.skip("AP does not support BE mode, so skipping this test")
|
||||||
|
get_test_library.wifi_capacity(instance_name="test_be_client_wpa3_BRIDGE_udp_ul", mode=mode,
|
||||||
|
download_rate="100Kbps", batch_size="1,5,10,20,40,64,128,256",
|
||||||
|
upload_rate="10Gbps", protocol="UDP", duration="60000",
|
||||||
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
|
num_stations={"6G": max_stations}, is_wifi7=True, is_bw320=True)
|
||||||
|
assert True
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
pytest -m "dataplane_tests wpa2_personal security and bridge"
|
pytest -m "dataplane_tests wpa2_personal security and bridge"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
import allure
|
import allure
|
||||||
@@ -11,28 +12,146 @@ import allure
|
|||||||
pytestmark = [pytest.mark.dataplane_tests,
|
pytestmark = [pytest.mark.dataplane_tests,
|
||||||
pytest.mark.bridge, pytest.mark.wpa2_personal, pytest.mark.performance]
|
pytest.mark.bridge, pytest.mark.wpa2_personal, pytest.mark.performance]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general1 = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
"ssid_modes": {
|
"ssid_modes": {
|
||||||
"wpa2_personal": [
|
"wpa2_personal": [
|
||||||
{"ssid_name": "wpa2_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
{"ssid_name": "wpa2_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"}]},
|
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"}]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general2 = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general3 = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
setup_params_general = None
|
||||||
|
dut_data = {}
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def initialize_testbed(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6":
|
||||||
|
setup_params_general = setup_params_general1
|
||||||
|
elif ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general2
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general3
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
logging.info(f"get_marker result:{get_marker}")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Dataplane Tests")
|
@allure.feature("Dataplane Tests")
|
||||||
@allure.parent_suite("Dataplane Tests")
|
@allure.parent_suite("Dataplane Tests")
|
||||||
@allure.suite(suite_name="WPA2 Personal Security")
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestDataplaneThroughputBRIDGE(object):
|
class TestDataplaneThroughputBRIDGE(object):
|
||||||
"""Dataplane THroughput BRIDGE Mode
|
"""Dataplane THroughput BRIDGE Mode
|
||||||
pytest -m "dataplane_tests and wpa2_personal and bridge"
|
pytest -m "dataplane_tests and wpa2_personal and bridge"
|
||||||
@@ -45,7 +164,7 @@ class TestDataplaneThroughputBRIDGE(object):
|
|||||||
def test_tcp_upd_wpa2_personal_bridge_2g_band(self, get_test_library, get_dut_logs_per_test_case,
|
def test_tcp_upd_wpa2_personal_bridge_2g_band(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, client_type,
|
get_test_device_logs, client_type,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration):
|
num_stations, initialize_testbed):
|
||||||
"""Dataplane THroughput BRIDGE Mode.
|
"""Dataplane THroughput BRIDGE Mode.
|
||||||
pytest -m "dataplane_tests and bridge and wpa2_personal and twog"
|
pytest -m "dataplane_tests and bridge and wpa2_personal and twog"
|
||||||
"""
|
"""
|
||||||
@@ -55,14 +174,17 @@ class TestDataplaneThroughputBRIDGE(object):
|
|||||||
security = "wpa2"
|
security = "wpa2"
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
band = "twog"
|
band = "twog"
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
logging.info(f"ap_mode value:{ap_mode}")
|
||||||
influx_tags = "dataplane-tcp-udp-bridge-wpa2_personal-2.4G"
|
influx_tags = "dataplane-tcp-udp-bridge-wpa2_personal-2.4G"
|
||||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, passkey=security_key, security=security,
|
get_test_library.dataplane_throughput_test(ssid=ssid_name, passkey=security_key, security=security,
|
||||||
num_sta=1, mode=mode,
|
num_sta=1, mode=mode,
|
||||||
band=band,
|
band=band,
|
||||||
instance_name="TIP_DPT_DPT_WPA2_2G_BRIDGE",
|
instance_name="TIP_DPT_DPT_WPA2_2G_BRIDGE",
|
||||||
influx_tags=influx_tags, move_to_influx=False,
|
influx_tags=influx_tags, move_to_influx=False,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
client_type=client_type
|
client_type=client_type, duration="30s", path_loss=10,
|
||||||
|
download_rate="85%", upload_rate="0", ap_mode =ap_mode
|
||||||
)
|
)
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3674", name="WIFI-3674")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3674", name="WIFI-3674")
|
||||||
@@ -72,7 +194,7 @@ class TestDataplaneThroughputBRIDGE(object):
|
|||||||
def test_tcp_upd_wpa2_personal_bridge_5g_band(self, get_test_library, get_dut_logs_per_test_case,
|
def test_tcp_upd_wpa2_personal_bridge_5g_band(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, client_type,
|
get_test_device_logs, client_type,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration):
|
num_stations, initialize_testbed):
|
||||||
"""Dataplane THroughput BRIDGE Mode
|
"""Dataplane THroughput BRIDGE Mode
|
||||||
pytest -m "dataplane_tests and bridge and wpa2_personal and fiveg"
|
pytest -m "dataplane_tests and bridge and wpa2_personal and fiveg"
|
||||||
"""
|
"""
|
||||||
@@ -82,12 +204,15 @@ class TestDataplaneThroughputBRIDGE(object):
|
|||||||
security_key = profile_data["security_key"]
|
security_key = profile_data["security_key"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
band = "fiveg"
|
band = "fiveg"
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
logging.info(f"ap_mode value:{ap_mode}")
|
||||||
influx_tags = "dataplane-tcp-udp-bridge-wpa2_personal-5G"
|
influx_tags = "dataplane-tcp-udp-bridge-wpa2_personal-5G"
|
||||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, passkey=security_key, security=security,
|
get_test_library.dataplane_throughput_test(ssid=ssid_name, passkey=security_key, security=security,
|
||||||
num_sta=1, mode=mode,
|
num_sta=1, mode=mode,
|
||||||
band=band,
|
band=band,
|
||||||
instance_name="TIP_DPT_DPT_WPA2_5G_BRIDGE",
|
instance_name="TIP_DPT_DPT_WPA2_5G_BRIDGE",
|
||||||
influx_tags=influx_tags, move_to_influx=False,
|
influx_tags=influx_tags, move_to_influx=False,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
client_type=client_type
|
client_type=client_type, duration="30s", path_loss=10,
|
||||||
|
download_rate="85%", upload_rate="0", ap_mode =ap_mode
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
pytest -m "dataplane_tests wpa2_personal security and nat"
|
pytest -m "dataplane_tests wpa2_personal security and nat"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
import allure
|
import allure
|
||||||
@@ -11,28 +12,148 @@ import allure
|
|||||||
pytestmark = [pytest.mark.dataplane_tests,
|
pytestmark = [pytest.mark.dataplane_tests,
|
||||||
pytest.mark.nat, pytest.mark.wpa2_personal, pytest.mark.performance]
|
pytest.mark.nat, pytest.mark.wpa2_personal, pytest.mark.performance]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general1 = {
|
||||||
"mode": "NAT",
|
"mode": "NAT",
|
||||||
"ssid_modes": {
|
"ssid_modes": {
|
||||||
"wpa2_personal": [
|
"wpa2_personal": [
|
||||||
{"ssid_name": "wpa2_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
{"ssid_name": "wpa2_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"}]},
|
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||||
"rf": {},
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general2 = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general3 = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa2_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
setup_params_general = None
|
||||||
|
dut_data = {}
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def initialize_testbed(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6":
|
||||||
|
setup_params_general = setup_params_general1
|
||||||
|
elif ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general2
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general3
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Dataplane Tests")
|
@allure.feature("Dataplane Tests")
|
||||||
@allure.parent_suite("Dataplane Tests")
|
@allure.parent_suite("Dataplane Tests")
|
||||||
@allure.suite(suite_name="WPA2 Personal Security")
|
@allure.suite(suite_name="WPA2 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestDataplaneThroughputNAT(object):
|
class TestDataplaneThroughputNAT(object):
|
||||||
"""Dataplane THroughput NAT Mode
|
"""Dataplane THroughput NAT Mode
|
||||||
pytest -m "dataplane_tests and wpa2_personal and nat"
|
pytest -m "dataplane_tests and wpa2_personal and nat"
|
||||||
@@ -45,7 +166,7 @@ class TestDataplaneThroughputNAT(object):
|
|||||||
def test_tcp_upd_wpa2_personal_nat_2g_band(self, get_test_library, get_dut_logs_per_test_case,
|
def test_tcp_upd_wpa2_personal_nat_2g_band(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, client_type,
|
get_test_device_logs, client_type,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration):
|
num_stations, initialize_testbed):
|
||||||
"""Dataplane THroughput NAT Mode.
|
"""Dataplane THroughput NAT Mode.
|
||||||
pytest -m "dataplane_tests and nat and wpa2_personal and twog"
|
pytest -m "dataplane_tests and nat and wpa2_personal and twog"
|
||||||
"""
|
"""
|
||||||
@@ -55,14 +176,17 @@ class TestDataplaneThroughputNAT(object):
|
|||||||
security_key = profile_data["security_key"]
|
security_key = profile_data["security_key"]
|
||||||
mode = "NAT-WAN"
|
mode = "NAT-WAN"
|
||||||
band = "twog"
|
band = "twog"
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
logging.info(f"ap_mode value:{ap_mode}")
|
||||||
influx_tags = "dataplane-tcp-udp-nat-wpa2_personal-2.4G"
|
influx_tags = "dataplane-tcp-udp-nat-wpa2_personal-2.4G"
|
||||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
||||||
num_sta=1, mode=mode,
|
num_sta=1, mode=mode,
|
||||||
band=band,
|
band=band,
|
||||||
instance_name="TIP_DPT_DPT_WPA2_2G_NAT",
|
instance_name="TIP_DPT_DPT_WPA2_2G_NAT",
|
||||||
influx_tags=influx_tags, move_to_influx=False,
|
influx_tags=influx_tags, move_to_influx=False,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
client_type=client_type
|
client_type=client_type, duration="30s", path_loss=10,
|
||||||
|
download_rate="85%", upload_rate="0", ap_mode =ap_mode
|
||||||
)
|
)
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3674", name="WIFI-3674")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3674", name="WIFI-3674")
|
||||||
@@ -72,7 +196,7 @@ class TestDataplaneThroughputNAT(object):
|
|||||||
def test_tcp_upd_wpa2_personal_nat_5g_band(self, get_test_library, get_dut_logs_per_test_case,
|
def test_tcp_upd_wpa2_personal_nat_5g_band(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, client_type,
|
get_test_device_logs, client_type,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration):
|
num_stations, initialize_testbed):
|
||||||
"""Dataplane THroughput NAT Mode
|
"""Dataplane THroughput NAT Mode
|
||||||
pytest -m "dataplane_tests and nat and wpa2_personal and fiveg"
|
pytest -m "dataplane_tests and nat and wpa2_personal and fiveg"
|
||||||
"""
|
"""
|
||||||
@@ -82,12 +206,15 @@ class TestDataplaneThroughputNAT(object):
|
|||||||
security_key = profile_data["security_key"]
|
security_key = profile_data["security_key"]
|
||||||
mode = "NAT-WAN"
|
mode = "NAT-WAN"
|
||||||
band = "fiveg"
|
band = "fiveg"
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
logging.info(f"ap_mode value:{ap_mode}")
|
||||||
influx_tags = "dataplane-tcp-udp-nat-wpa2_personal-5G"
|
influx_tags = "dataplane-tcp-udp-nat-wpa2_personal-5G"
|
||||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
||||||
num_sta=1, mode=mode,
|
num_sta=1, mode=mode,
|
||||||
band=band,
|
band=band,
|
||||||
instance_name="TIP_DPT_DPT_WPA2_5G_NAT",
|
instance_name="TIP_DPT_DPT_WPA2_5G_NAT",
|
||||||
influx_tags=influx_tags, move_to_influx=False,
|
influx_tags=influx_tags, move_to_influx=False,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
client_type=client_type
|
client_type=client_type, duration="30s", path_loss=10,
|
||||||
|
download_rate="85%", upload_rate="0", ap_mode =ap_mode
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
pytest -m "dataplane_tests wpa3_personal security and bridge"
|
pytest -m "dataplane_tests wpa3_personal security and bridge"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
import allure
|
import allure
|
||||||
@@ -11,7 +12,7 @@ import allure
|
|||||||
pytestmark = [pytest.mark.dataplane_tests,
|
pytestmark = [pytest.mark.dataplane_tests,
|
||||||
pytest.mark.bridge, pytest.mark.wpa3_personal]
|
pytest.mark.bridge, pytest.mark.wpa3_personal]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general1 = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
"ssid_modes": {
|
"ssid_modes": {
|
||||||
"wpa3_personal": [
|
"wpa3_personal": [
|
||||||
@@ -19,22 +20,141 @@ setup_params_general = {
|
|||||||
{"ssid_name": "wpa3_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
{"ssid_name": "wpa3_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
{"ssid_name": "wpa3_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
{"ssid_name": "wpa3_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general2 = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general3 = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
setup_params_general = None
|
||||||
|
dut_data = {}
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def initialize_testbed(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6":
|
||||||
|
setup_params_general = setup_params_general1
|
||||||
|
elif ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general2
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general3
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Dataplane Tests")
|
@allure.feature("Dataplane Tests")
|
||||||
@allure.parent_suite("Dataplane Tests")
|
@allure.parent_suite("Dataplane Tests")
|
||||||
@allure.suite(suite_name="WPA3 Personal Security")
|
@allure.suite(suite_name="WPA3 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestDataplaneThroughputBRIDGE(object):
|
class TestDataplaneThroughputBRIDGE(object):
|
||||||
"""Dataplane THroughput BRIDGE Mode
|
"""Dataplane THroughput BRIDGE Mode
|
||||||
pytest -m "dataplane_tests and wpa3_personal and bridge"
|
pytest -m "dataplane_tests and wpa3_personal and bridge"
|
||||||
@@ -102,7 +222,7 @@ class TestDataplaneThroughputBRIDGE(object):
|
|||||||
def test_tcp_udp_wpa3_personal_bridge_6g_band(self, get_test_library, get_dut_logs_per_test_case,
|
def test_tcp_udp_wpa3_personal_bridge_6g_band(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, client_type,
|
get_test_device_logs, client_type,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration):
|
num_stations, initialize_testbed):
|
||||||
"""Dataplane THroughput BRIDGE Mode
|
"""Dataplane THroughput BRIDGE Mode
|
||||||
pytest -m "dataplane_tests and bridge and wpa3_personal and sixg"
|
pytest -m "dataplane_tests and bridge and wpa3_personal and sixg"
|
||||||
"""
|
"""
|
||||||
@@ -112,12 +232,15 @@ class TestDataplaneThroughputBRIDGE(object):
|
|||||||
security_key = profile_data["security_key"]
|
security_key = profile_data["security_key"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
band = "sixg"
|
band = "sixg"
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
logging.info(f"ap_mode value:{ap_mode}")
|
||||||
influx_tags = "dataplane-tcp-udp-bridge-wpa3_personal-6G"
|
influx_tags = "dataplane-tcp-udp-bridge-wpa3_personal-6G"
|
||||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
||||||
num_sta=num_stations, mode=mode,
|
num_sta=num_stations, mode=mode,
|
||||||
band=band,
|
band=band,
|
||||||
instance_name="TIP_DPT_DPT_WPA_6G_BRIDGE",
|
instance_name="TIP_DPT_DPT_WPA_6G_BRIDGE",
|
||||||
influx_tags=influx_tags, move_to_influx=False,
|
influx_tags=influx_tags, move_to_influx=False,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
client_type=client_type
|
client_type=client_type, duration="30s", path_loss=10,
|
||||||
|
download_rate="85%", upload_rate="0", ap_mode =ap_mode
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
pytest -m "dataplane_tests wpa3_personal security and nat"
|
pytest -m "dataplane_tests wpa3_personal security and nat"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
import allure
|
import allure
|
||||||
@@ -11,7 +12,7 @@ import allure
|
|||||||
pytestmark = [pytest.mark.dataplane_tests,
|
pytestmark = [pytest.mark.dataplane_tests,
|
||||||
pytest.mark.nat, pytest.mark.wpa3_personal]
|
pytest.mark.nat, pytest.mark.wpa3_personal]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general1 = {
|
||||||
"mode": "NAT",
|
"mode": "NAT",
|
||||||
"ssid_modes": {
|
"ssid_modes": {
|
||||||
"wpa3_personal": [
|
"wpa3_personal": [
|
||||||
@@ -19,22 +20,142 @@ setup_params_general = {
|
|||||||
{"ssid_name": "wpa3_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
{"ssid_name": "wpa3_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
{"ssid_name": "wpa3_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
{"ssid_name": "wpa3_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general2 = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general3 = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
||||||
|
{"ssid_name": "wpa3_personal_dataplane_6g", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
setup_params_general = None
|
||||||
|
dut_data = {}
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def initialize_testbed(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6":
|
||||||
|
setup_params_general = setup_params_general1
|
||||||
|
elif ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general2
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general3
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
@allure.feature("Dataplane Tests")
|
@allure.feature("Dataplane Tests")
|
||||||
@allure.parent_suite("Dataplane Tests")
|
@allure.parent_suite("Dataplane Tests")
|
||||||
@allure.suite(suite_name="WPA3 Personal Security")
|
@allure.suite(suite_name="WPA3 Personal Security")
|
||||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||||
@pytest.mark.parametrize(
|
|
||||||
'setup_configuration',
|
|
||||||
[setup_params_general],
|
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
|
||||||
class TestDataplaneThroughputNAT(object):
|
class TestDataplaneThroughputNAT(object):
|
||||||
"""Dataplane THroughput NAT Mode
|
"""Dataplane THroughput NAT Mode
|
||||||
pytest -m "dataplane_tests and wpa3_personal and nat"
|
pytest -m "dataplane_tests and wpa3_personal and nat"
|
||||||
@@ -102,7 +223,7 @@ class TestDataplaneThroughputNAT(object):
|
|||||||
def test_tcp_udp_wpa3_personal_nat_6g_band(self, get_test_library, get_dut_logs_per_test_case,
|
def test_tcp_udp_wpa3_personal_nat_6g_band(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, client_type,
|
get_test_device_logs, client_type,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration):
|
num_stations, initialize_testbed):
|
||||||
"""Dataplane THroughput NAT Mode
|
"""Dataplane THroughput NAT Mode
|
||||||
pytest -m "dataplane_tests and nat and wpa3_personal and sixg"
|
pytest -m "dataplane_tests and nat and wpa3_personal and sixg"
|
||||||
"""
|
"""
|
||||||
@@ -112,12 +233,15 @@ class TestDataplaneThroughputNAT(object):
|
|||||||
security_key = profile_data["security_key"]
|
security_key = profile_data["security_key"]
|
||||||
mode = "NAT-WAN"
|
mode = "NAT-WAN"
|
||||||
band = "sixg"
|
band = "sixg"
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
logging.info(f"ap_mode value:{ap_mode}")
|
||||||
influx_tags = "dataplane-tcp-udp-nat-wpa3_personal-6G"
|
influx_tags = "dataplane-tcp-udp-nat-wpa3_personal-6G"
|
||||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
||||||
num_sta=1, mode=mode,
|
num_sta=1, mode=mode,
|
||||||
band=band,
|
band=band,
|
||||||
instance_name="TIP_DPT_DPT_WPA3_PERSONAL_6G_NAT",
|
instance_name="TIP_DPT_DPT_WPA3_PERSONAL_6G_NAT",
|
||||||
influx_tags=influx_tags, move_to_influx=False,
|
influx_tags=influx_tags, move_to_influx=False,
|
||||||
dut_data=setup_configuration,
|
dut_data=dut_data,
|
||||||
client_type=client_type
|
client_type=client_type, duration="30s", path_loss=10,
|
||||||
|
download_rate="85%", upload_rate="0", ap_mode =ap_mode
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,65 +1,193 @@
|
|||||||
"""
|
"""
|
||||||
Dual Band Performance Test : BRIDGE Mode
|
Multi Band Performance Test : BRIDGE Mode
|
||||||
pytest -m "performance and dual_band_tests and bridge"
|
pytest -m "performance and multi_band_tests and bridge"
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import logging
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.dual_band_tests, pytest.mark.bridge,
|
pytestmark = [pytest.mark.performance, pytest.mark.multi_band_tests, pytest.mark.bridge]
|
||||||
pytest.mark.single_station_dual_band_throughput]
|
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general1 = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
"ssid_modes": {
|
"ssid_modes": {
|
||||||
"wpa3_personal": [
|
"wpa3_personal": [
|
||||||
{"ssid_name": "ssid_wpa3_personal_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa3_personal_multi_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general2 = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa3_personal_multi_band", "appliedRadios": ["2G", "5G", "6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general3 = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa3_personal_multi_band", "appliedRadios": ["2G", "5G", "6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
setup_params_general = None
|
||||||
|
dut_data = {}
|
||||||
|
|
||||||
@pytest.mark.dual_band_tests
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6":
|
||||||
|
setup_params_general = setup_params_general1
|
||||||
|
elif ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general2
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general3
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
|
@pytest.mark.multi_band_tests
|
||||||
@pytest.mark.wifi5
|
@pytest.mark.wifi5
|
||||||
@pytest.mark.wifi6
|
@pytest.mark.wifi6
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.wifi7
|
||||||
'setup_configuration',
|
@allure.parent_suite("Multi Band Tests")
|
||||||
[setup_params_general],
|
@allure.suite("Multi Band Tests: Bridge mode")
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@allure.parent_suite("Dual Band Tests")
|
|
||||||
@allure.suite("Dual Band Tests: Bridge mode")
|
|
||||||
@allure.sub_suite("wpa3_personal security")
|
@allure.sub_suite("wpa3_personal security")
|
||||||
@allure.feature("Dual band performance test")
|
@allure.feature("Multi band performance test")
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
class TestWpa3MultibandPerformanceBridge(object):
|
||||||
class TestWpa3DualbandPerformanceBridge(object):
|
|
||||||
"""
|
"""
|
||||||
pytest -m "performance and dual_band_tests and bridge and wpa3_personal and twog and fiveg"
|
pytest -m "performance and multi_band_tests and bridge and wpa3_personal and twog and fiveg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3728", name="WIFI-3728")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3728", name="WIFI-3728")
|
||||||
@pytest.mark.wpa3_personal
|
@pytest.mark.wpa3_personal
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@allure.title("Test Dual Band with ApAuto test of bridge mode")
|
@pytest.mark.sixg
|
||||||
def test_client_wpa3_personal_bridge(self, get_test_library, setup_configuration, check_connectivity):
|
@allure.title("Test Multi Band with ApAuto test of bridge mode")
|
||||||
|
def test_client_wpa3_personal_bridge(self, setup_initial_configuration, get_test_library, check_connectivity,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs):
|
||||||
"""
|
"""
|
||||||
Dual Band Test with wpa3_personal encryption
|
Multi Band Test with wpa3_personal encryption
|
||||||
pytest -m "dual_band_tests and wpa3_personal"
|
pytest -m "multi_band_tests and wpa3_personal"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
logging.info(f"setup_params_general data:{setup_params_general}")
|
||||||
profile_data = setup_params_general["ssid_modes"]["wpa3_personal"]
|
profile_data = setup_params_general["ssid_modes"]["wpa3_personal"]
|
||||||
|
logging.info(f"profile_data data:{profile_data}")
|
||||||
ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
|
ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
|
||||||
dut_name = list(setup_configuration.keys())[0]
|
dut_name = list(dut_data.keys())[0]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
vlan = 1
|
vlan = 1
|
||||||
dut_5g, dut_2g = "", ""
|
dut_5g, dut_2g = "", ""
|
||||||
|
|
||||||
|
if ap_mode == "wifi7" or ap_mode == "wifi6e":
|
||||||
|
dut_6g = ""
|
||||||
|
ssid_6G = profile_data[0]["ssid_name"]
|
||||||
|
|
||||||
influx_tags = "dual-band-bridge-wpa3"
|
influx_tags = "dual-band-bridge-wpa3"
|
||||||
for i in setup_configuration[dut_name]['ssid_data']:
|
for i in dut_data[dut_name]['ssid_data']:
|
||||||
get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
|
logging.info(f"get_test_library.dut_idx_mapping: {get_test_library.dut_idx_mapping}")
|
||||||
|
logging.info(f"get_test_library.dut_idx_mapping: {get_test_library.dut_idx_mapping}")
|
||||||
|
get_test_library.dut_idx_mapping[str(i)] = list(dut_data[dut_name]['ssid_data'][i].values())
|
||||||
if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
|
if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
|
||||||
dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
||||||
get_test_library.dut_idx_mapping[str(i)][4]
|
get_test_library.dut_idx_mapping[str(i)][4]
|
||||||
@@ -67,8 +195,25 @@ class TestWpa3DualbandPerformanceBridge(object):
|
|||||||
dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
||||||
get_test_library.dut_idx_mapping[str(i)][4]
|
get_test_library.dut_idx_mapping[str(i)][4]
|
||||||
|
|
||||||
get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
|
if get_test_library.dut_idx_mapping[str(i)][3] == "6G" and (ap_mode == "wifi7" or ap_mode == "wifi6e"):
|
||||||
|
dut_6g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
||||||
|
get_test_library.dut_idx_mapping[str(i)][4]
|
||||||
|
logging.info(f"dut_6g value:{dut_6g}")
|
||||||
|
|
||||||
|
logging.info(f"ap_mode value:{ap_mode}")
|
||||||
|
logging.info(f"setup_configuration value:{dut_data}")
|
||||||
|
|
||||||
|
if ap_mode == "wifi7" or ap_mode == "wifi6e":
|
||||||
|
logging.info("ap mode is not wifi6 , ready to call triband")
|
||||||
|
get_test_library.multi_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
|
||||||
|
ssid_6G=ssid_6G, vlan_id=vlan,
|
||||||
|
dut_5g=dut_5g, dut_2g=dut_2g, dut_6g=dut_6g,
|
||||||
|
influx_tags=influx_tags,
|
||||||
|
move_to_influx=False, dut_data=dut_data)
|
||||||
|
else:
|
||||||
|
logging.info("ap mode is wifi6 , ready to call dualband")
|
||||||
|
get_test_library.multi_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
|
||||||
dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
|
dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
|
||||||
move_to_influx=False, dut_data=setup_configuration)
|
move_to_influx=False, dut_data=dut_data)
|
||||||
|
|
||||||
assert True
|
assert True
|
||||||
|
|||||||
@@ -1,64 +1,192 @@
|
|||||||
"""
|
"""
|
||||||
Dual Band Performance Test : NAT Mode
|
Multi Band Performance Test : NAT Mode
|
||||||
pytest -m "performance and dual_band_tests and nat"
|
pytest -m "performance and multi_band_tests and nat"
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import logging
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.nat, pytest.mark.dual_band_tests]
|
pytestmark = [pytest.mark.performance, pytest.mark.nat, pytest.mark.muti_band_tests]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general1 = {
|
||||||
"mode": "NAT",
|
"mode": "NAT",
|
||||||
"ssid_modes": {
|
"ssid_modes": {
|
||||||
"wpa3_personal": [
|
"wpa3_personal": [
|
||||||
{"ssid_name": "ssid_wpa3_personal_dual_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa3_personal_multi_band", "appliedRadios": ["2G", "5G"], "security_key": "something"}
|
||||||
]},
|
]},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general2 = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa3_personal_multi_band", "appliedRadios": ["2G", "5G", "6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
},
|
||||||
|
setup_params_general3 = {
|
||||||
|
"mode": "NAT",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "ssid_wpa3_personal_multi_band", "appliedRadios": ["2G", "5G", "6G"], "security_key": "something"}
|
||||||
|
]},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 40,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.dual_band_tests
|
testbed_details_global = None
|
||||||
|
setup_params_general = None
|
||||||
|
dut_data = {}
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global testbed_details_global
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
selected_tb = request.getfixturevalue("selected_testbed")
|
||||||
|
print(f"Selected Testbed: {selected_tb}")
|
||||||
|
testbed_details_global = request.getfixturevalue("get_testbed_details")
|
||||||
|
assert testbed_details_global is not None, "Testbed details should not be None"
|
||||||
|
print(f"Initialized Testbed Details: {testbed_details_global}")
|
||||||
|
|
||||||
|
# Extract 'mode' from the first device in 'device_under_tests'
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
|
||||||
|
# Assign setup_params_general based on mode
|
||||||
|
if ap_mode == "wifi6":
|
||||||
|
setup_params_general = setup_params_general1
|
||||||
|
elif ap_mode == "wifi6e":
|
||||||
|
setup_params_general = setup_params_general2
|
||||||
|
elif ap_mode == "wifi7":
|
||||||
|
setup_params_general = setup_params_general3
|
||||||
|
else:
|
||||||
|
print(f"Unknown mode: {ap_mode}. Defaulting to None")
|
||||||
|
|
||||||
|
print(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
get_marker = request.getfixturevalue("get_markers")
|
||||||
|
requested_combination = []
|
||||||
|
for key in get_marker:
|
||||||
|
if get_marker[key]:
|
||||||
|
requested_combination.append(get_marker[key])
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
if isinstance(setup_params_general, tuple):
|
||||||
|
setup_params_general = setup_params_general[0]
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.multi_band_tests
|
||||||
@pytest.mark.wifi5
|
@pytest.mark.wifi5
|
||||||
@pytest.mark.wifi6
|
@pytest.mark.wifi6
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.wifi7
|
||||||
'setup_configuration',
|
@allure.parent_suite("Multi Band Tests")
|
||||||
[setup_params_general],
|
@allure.suite("Multi Band Tests: NAT mode")
|
||||||
indirect=True,
|
|
||||||
scope="class"
|
|
||||||
)
|
|
||||||
@allure.parent_suite("Dual Band Tests")
|
|
||||||
@allure.suite("Dual Band Tests: NAT mode")
|
|
||||||
@allure.sub_suite("wpa3_personal security")
|
@allure.sub_suite("wpa3_personal security")
|
||||||
@allure.feature("Dual band performance test")
|
@allure.feature("Multi band performance test")
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
class TestWpa3MultibandPerformanceNat(object):
|
||||||
class TestWpa3DualbandPerformanceNat(object):
|
|
||||||
"""
|
"""
|
||||||
pytest -m "performance and dual_band_tests and nat and wpa3_personal and twog and fiveg."
|
pytest -m "performance and multi_band_tests and nat and wpa3_personal and twog and fiveg."
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3728", name="WIFI-3728")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3728", name="WIFI-3728")
|
||||||
@pytest.mark.wpa3_personal
|
@pytest.mark.wpa3_personal
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@allure.title("Test Dual Band with ApAuto test of NAT mode")
|
@pytest.mark.sixg
|
||||||
def test_client_wpa3_personal_nat(self, get_test_library, setup_configuration, check_connectivity):
|
@allure.title("Test Multi Band with ApAuto test of NAT mode")
|
||||||
|
def test_client_wpa3_personal_nat(self, setup_initial_configuration, get_test_library, check_connectivity,
|
||||||
|
get_dut_logs_per_test_case, get_test_device_logs, get_target_object):
|
||||||
"""
|
"""
|
||||||
Dual Band Test with wpa3_personal encryption
|
Multi Band Test with wpa3_personal encryption
|
||||||
pytest -m "dual_band_tests and wpa3_personal"
|
pytest -m "multi_band_tests and wpa3_personal"
|
||||||
"""
|
"""
|
||||||
|
ap_mode = testbed_details_global["device_under_tests"][0].get("mode", "")
|
||||||
|
logging.info(f"setup_params_general data:{setup_params_general}")
|
||||||
profile_data = setup_params_general["ssid_modes"]["wpa3_personal"]
|
profile_data = setup_params_general["ssid_modes"]["wpa3_personal"]
|
||||||
|
logging.info(f"profile_data data:{profile_data}")
|
||||||
|
|
||||||
ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
|
ssid_2G, ssid_5G = profile_data[0]["ssid_name"], profile_data[0]["ssid_name"]
|
||||||
dut_name = list(setup_configuration.keys())[0]
|
dut_name = list(dut_data.keys())[0]
|
||||||
mode = "NAT-WAN"
|
mode = "NAT-WAN"
|
||||||
vlan = 1
|
vlan = 1
|
||||||
dut_5g, dut_2g = "", ""
|
dut_5g, dut_2g = "", ""
|
||||||
|
if ap_mode == "wifi7" or ap_mode == "wifi6e":
|
||||||
|
dut_6g = ""
|
||||||
|
ssid_6G = profile_data[0]["ssid_name"]
|
||||||
|
|
||||||
influx_tags = "dual-band-nat-wpa3"
|
influx_tags = "dual-band-nat-wpa3"
|
||||||
for i in setup_configuration[dut_name]['ssid_data']:
|
for i in dut_data[dut_name]['ssid_data']:
|
||||||
get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
|
get_test_library.dut_idx_mapping[str(i)] = list(dut_data[dut_name]['ssid_data'][i].values())
|
||||||
if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
|
if get_test_library.dut_idx_mapping[str(i)][3] == "5G":
|
||||||
dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
||||||
get_test_library.dut_idx_mapping[str(i)][4]
|
get_test_library.dut_idx_mapping[str(i)][4]
|
||||||
@@ -66,8 +194,22 @@ class TestWpa3DualbandPerformanceNat(object):
|
|||||||
dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
dut_2g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
||||||
get_test_library.dut_idx_mapping[str(i)][4]
|
get_test_library.dut_idx_mapping[str(i)][4]
|
||||||
|
|
||||||
get_test_library.dual_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
|
if get_test_library.dut_idx_mapping[str(i)][3] == "6G" and (ap_mode == "wifi7" or ap_mode == "wifi6e"):
|
||||||
|
dut_6g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
||||||
|
get_test_library.dut_idx_mapping[str(i)][4]
|
||||||
|
logging.info(f"dut_6g value:{dut_6g}")
|
||||||
|
|
||||||
|
if ap_mode == "wifi7" or ap_mode == "wifi6e":
|
||||||
|
logging.info("ap mode is not wifi6 , ready to call triband")
|
||||||
|
get_test_library.multi_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
|
||||||
|
ssid_6G=ssid_6G, vlan_id=vlan,
|
||||||
|
dut_5g=dut_5g, dut_2g=dut_2g, dut_6g=dut_6g,
|
||||||
|
influx_tags=influx_tags,
|
||||||
|
move_to_influx=False, dut_data=dut_data)
|
||||||
|
else:
|
||||||
|
logging.info("ap mode is wifi6 , ready to call dualband")
|
||||||
|
get_test_library.multi_band_performance_test(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G, vlan_id=vlan,
|
||||||
dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
|
dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
|
||||||
move_to_influx=False, dut_data=setup_configuration)
|
move_to_influx=False, dut_data=dut_data)
|
||||||
|
|
||||||
assert True
|
assert True
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import allure
|
|||||||
import pytest
|
import pytest
|
||||||
import time
|
import time
|
||||||
|
|
||||||
pytestmark = [pytest.mark.performance, pytest.mark.dual_band_tests, pytest.mark.bridge,
|
pytestmark = [pytest.mark.dual_band_tests, pytest.mark.bridge,
|
||||||
pytest.mark.single_station_dual_band_throughput]
|
pytest.mark.single_station_dual_band_throughput]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general = {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import os
|
|||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.performance, pytest.mark.dual_band_tests, pytest.mark.nat,
|
pytestmark = [pytest.mark.dual_band_tests, pytest.mark.nat,
|
||||||
pytest.mark.single_station_dual_band_throughput]
|
pytest.mark.single_station_dual_band_throughput]
|
||||||
setup_params_general = {
|
setup_params_general = {
|
||||||
"mode": "NAT",
|
"mode": "NAT",
|
||||||
|
|||||||
@@ -20,9 +20,24 @@ setup_params_general = {
|
|||||||
|
|
||||||
]},
|
]},
|
||||||
"rf": {
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
"6G": {
|
"6G": {
|
||||||
'band': '6G',
|
"band": "6G",
|
||||||
'channel-width': 160}
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
@@ -61,17 +76,23 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_tcp_download", mode=mode,
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_tcp_download", mode=mode,
|
||||||
download_rate="10Gbps", batch_size="1",
|
download_rate="10Gbps", batch_size="1",
|
||||||
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
num_stations={"6G": 1}, pass_fail_criteria=True)
|
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||||
assert True
|
assert True
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12395", name="WIFI-12395")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12395", name="WIFI-12395")
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("AX Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("BRIDGE Mode")
|
||||||
@pytest.mark.performance
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.wifi_capacity_ax_tests
|
||||||
@allure.title("Single client UDP Download wifi capacity 160Mhz Bw")
|
@allure.title("Single client UDP Download wifi capacity 160Mhz Bw")
|
||||||
def test_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration):
|
get_test_device_logs, num_stations, setup_configuration):
|
||||||
@@ -81,11 +102,12 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_udp_dl", mode=mode,
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_udp_dl", mode=mode,
|
||||||
download_rate="10Gbps", batch_size="1",
|
download_rate="10Gbps", batch_size="1",
|
||||||
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
num_stations={"6G": 1}, pass_fail_criteria=True)
|
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||||
assert True
|
assert True
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12397", name="WIFI-12397")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12397", name="WIFI-12397")
|
||||||
@@ -129,7 +151,12 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12393", name="WIFI-12393")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12393", name="WIFI-12393")
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("AX Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("BRIDGE Mode")
|
||||||
@pytest.mark.performance
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.wifi_capacity_ax_tests
|
||||||
@allure.title("Single client TCP Upload wifi capacity 160Mhz Bw")
|
@allure.title("Single client TCP Upload wifi capacity 160Mhz Bw")
|
||||||
def test_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration):
|
get_test_device_logs, num_stations, setup_configuration):
|
||||||
@@ -139,17 +166,23 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_tcp_ul", mode=mode,
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_tcp_ul", mode=mode,
|
||||||
download_rate="56Kbps", batch_size="1",
|
download_rate="56Kbps", batch_size="1",
|
||||||
upload_rate="10Gbps", protocol="TCP", duration="60000",
|
upload_rate="10Gbps", protocol="TCP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
num_stations={"6G": 1}, pass_fail_criteria=True)
|
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||||
assert True
|
assert True
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12392", name="WIFI-12392")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12392", name="WIFI-12392")
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("AX Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("BRIDGE Mode")
|
||||||
@pytest.mark.performance
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.wifi_capacity_ax_tests
|
||||||
@allure.title("Single client UDP Upload wifi capacity 160Mhz Bw")
|
@allure.title("Single client UDP Upload wifi capacity 160Mhz Bw")
|
||||||
def test_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_bridge_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration):
|
get_test_device_logs, num_stations, setup_configuration):
|
||||||
@@ -159,9 +192,10 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_udp_ul", mode=mode,
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_bridge_udp_ul", mode=mode,
|
||||||
download_rate="56Kbps", batch_size="1",
|
download_rate="56Kbps", batch_size="1",
|
||||||
upload_rate="10Gbps", protocol="UDP", duration="60000",
|
upload_rate="10Gbps", protocol="UDP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
num_stations={"6G": 1}, pass_fail_criteria=True)
|
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||||
assert True
|
assert True
|
||||||
|
|||||||
@@ -19,9 +19,24 @@ setup_params_general = {
|
|||||||
{"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
{"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
]},
|
]},
|
||||||
"rf": {
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 6
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
"6G": {
|
"6G": {
|
||||||
'band': '6G',
|
"band": "6G",
|
||||||
'channel-width': 160}
|
"channel-width": 160,
|
||||||
|
"channel-mode": "HE",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
@@ -45,7 +60,12 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12400", name="WIFI-12400")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12400", name="WIFI-12400")
|
||||||
@pytest.mark.tcp_download
|
@pytest.mark.tcp_download
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("AX Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("NAT Mode")
|
||||||
@pytest.mark.performance
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.wifi_capacity_ax_tests
|
||||||
@allure.title("Single client TCP Download wifi capacity 160Mhz Bw")
|
@allure.title("Single client TCP Download wifi capacity 160Mhz Bw")
|
||||||
def test_client_wpa3_nat_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_nat_tcp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration):
|
get_test_device_logs, num_stations, setup_configuration):
|
||||||
@@ -55,17 +75,23 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "NAT-WAN"
|
mode = "NAT-WAN"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_tcp_download", mode=mode,
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_tcp_download", mode=mode,
|
||||||
download_rate="10Gbps", batch_size="1",
|
download_rate="10Gbps", batch_size="1",
|
||||||
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
upload_rate="56Kbps", protocol="TCP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
num_stations={"6G": 1}, pass_fail_criteria=True)
|
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||||
assert True
|
assert True
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12401", name="WIFI-12401")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12401", name="WIFI-12401")
|
||||||
@pytest.mark.udp_download
|
@pytest.mark.udp_download
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("AX Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("NAT Mode")
|
||||||
@pytest.mark.performance
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.wifi_capacity_ax_tests
|
||||||
@allure.title("Single client UDP Download wifi capacity 160Mhz Bw")
|
@allure.title("Single client UDP Download wifi capacity 160Mhz Bw")
|
||||||
def test_client_wpa3_nat_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_nat_udp_dl(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration):
|
get_test_device_logs, num_stations, setup_configuration):
|
||||||
@@ -75,11 +101,12 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "NAT-WAN"
|
mode = "NAT-WAN"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_udp_dl", mode=mode,
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_udp_dl", mode=mode,
|
||||||
download_rate="10Gbps", batch_size="1",
|
download_rate="10Gbps", batch_size="1",
|
||||||
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
upload_rate="56Kbps", protocol="UDP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
num_stations={"6G": 1}, pass_fail_criteria=True)
|
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||||
assert True
|
assert True
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12403", name="WIFI-12403")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12403", name="WIFI-12403")
|
||||||
@@ -123,7 +150,12 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12399", name="WIFI-12399")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12399", name="WIFI-12399")
|
||||||
@pytest.mark.tcp_upload
|
@pytest.mark.tcp_upload
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("AX Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("NAT Mode")
|
||||||
@pytest.mark.performance
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.wifi_capacity_ax_tests
|
||||||
@allure.title("Single client TCP Upload wifi capacity 160Mhz Bw")
|
@allure.title("Single client TCP Upload wifi capacity 160Mhz Bw")
|
||||||
def test_client_wpa3_nat_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_nat_tcp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration):
|
get_test_device_logs, num_stations, setup_configuration):
|
||||||
@@ -133,17 +165,23 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "NAT-WAN"
|
mode = "NAT-WAN"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_tcp_ul", mode=mode,
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_tcp_ul", mode=mode,
|
||||||
download_rate="56Kbps", batch_size="1",
|
download_rate="56Kbps", batch_size="1",
|
||||||
upload_rate="10Gbps", protocol="TCP", duration="60000",
|
upload_rate="10Gbps", protocol="TCP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
num_stations={"6G": 1}, pass_fail_criteria=True)
|
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||||
assert True
|
assert True
|
||||||
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12398", name="WIFI-12398")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12398", name="WIFI-12398")
|
||||||
@pytest.mark.udp_upload
|
@pytest.mark.udp_upload
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
|
@allure.feature("Performance Test")
|
||||||
|
@allure.parent_suite("AX Capacity Test")
|
||||||
|
@allure.suite("6 GHz Band")
|
||||||
|
@allure.sub_suite("NAT Mode")
|
||||||
@pytest.mark.performance
|
@pytest.mark.performance
|
||||||
|
@pytest.mark.wifi_capacity_ax_tests
|
||||||
@allure.title("Single client UDP Upload wifi capacity 160Mhz Bw")
|
@allure.title("Single client UDP Upload wifi capacity 160Mhz Bw")
|
||||||
def test_client_wpa3_nat_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa3_nat_udp_ul(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs, num_stations, setup_configuration):
|
get_test_device_logs, num_stations, setup_configuration):
|
||||||
@@ -153,9 +191,10 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
|||||||
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
profile_data = {"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "NAT-WAN"
|
mode = "NAT-WAN"
|
||||||
|
sets = [["UDP-Burst", "1"], ["UDP-GRO", "1"], ["Multiple Endpoints:", "10"]]
|
||||||
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_udp_ul", mode=mode,
|
get_test_library.wifi_capacity(instance_name="test_client_wpa3_nat_udp_ul", mode=mode,
|
||||||
download_rate="56Kbps", batch_size="1",
|
download_rate="56Kbps", batch_size="1",
|
||||||
upload_rate="10Gbps", protocol="UDP", duration="60000",
|
upload_rate="10Gbps", protocol="UDP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
num_stations={"6G": 1}, pass_fail_criteria=True)
|
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||||
assert True
|
assert True
|
||||||
|
|||||||
@@ -377,9 +377,9 @@
|
|||||||
"TCP": 3000,
|
"TCP": 3000,
|
||||||
"UDP": 3000
|
"UDP": 3000
|
||||||
},
|
},
|
||||||
"6G 4x4 160MHz": {
|
"6G 2x2 160MHz": {
|
||||||
"TCP": null,
|
"TCP": 2000,
|
||||||
"UDP": null
|
"UDP": 2000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -478,9 +478,9 @@
|
|||||||
"TCP": 3000,
|
"TCP": 3000,
|
||||||
"UDP": 3000
|
"UDP": 3000
|
||||||
},
|
},
|
||||||
"6G 4x4 160MHz": {
|
"6G 2x2 160MHz": {
|
||||||
"TCP": null,
|
"TCP": 2000,
|
||||||
"UDP": null
|
"UDP": 2000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -548,9 +548,9 @@
|
|||||||
"TCP": 3000,
|
"TCP": 3000,
|
||||||
"UDP": 3000
|
"UDP": 3000
|
||||||
},
|
},
|
||||||
"6G 4x4 160MHz": {
|
"6G 2x2 160MHz": {
|
||||||
"TCP": null,
|
"TCP": 2000,
|
||||||
"UDP": null
|
"UDP": 2000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -643,6 +643,72 @@
|
|||||||
"UDP": null
|
"UDP": null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"edgecore_oap103":{
|
||||||
|
"AX":{
|
||||||
|
"2G 2x2 20MHz": {
|
||||||
|
"TCP": 200,
|
||||||
|
"UDP": 220
|
||||||
|
},
|
||||||
|
"5G 2x2 80MHz": {
|
||||||
|
"TCP": 800,
|
||||||
|
"UDP": 900
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"edgecore_eap112":{
|
||||||
|
"AX":{
|
||||||
|
"2G 2x2 20MHz": {
|
||||||
|
"TCP": 200,
|
||||||
|
"UDP": 220
|
||||||
|
},
|
||||||
|
"5G 2x2 80MHz": {
|
||||||
|
"TCP": 800,
|
||||||
|
"UDP": 900
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cig_wf189h":{
|
||||||
|
"AX":{
|
||||||
|
"2G 2x2 20MHz": {
|
||||||
|
"TCP": 200,
|
||||||
|
"UDP": 220
|
||||||
|
},
|
||||||
|
"2G 2x2 40MHz": {
|
||||||
|
"TCP": 400,
|
||||||
|
"UDP": 400
|
||||||
|
},
|
||||||
|
"5G 2x2 80MHz": {
|
||||||
|
"TCP": 800,
|
||||||
|
"UDP": 900
|
||||||
|
},
|
||||||
|
"6G 2x2 160MHz": {
|
||||||
|
"TCP": 1600,
|
||||||
|
"UDP": 1800
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"BE":{
|
||||||
|
"2G 2x2 20MHz": {
|
||||||
|
"TCP": 240,
|
||||||
|
"UDP": 240
|
||||||
|
},
|
||||||
|
"2G 2x2 40MHz": {
|
||||||
|
"TCP": 480,
|
||||||
|
"UDP": 480
|
||||||
|
},
|
||||||
|
"5G 2x2 80MHz": {
|
||||||
|
"TCP": 1000,
|
||||||
|
"UDP": 1000
|
||||||
|
},
|
||||||
|
"6G 2x2 160MHz": {
|
||||||
|
"TCP": 2000,
|
||||||
|
"UDP": 2000
|
||||||
|
},
|
||||||
|
"6G 2x2 320MHz": {
|
||||||
|
"TCP": 3000,
|
||||||
|
"UDP": 3000
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -15,8 +15,7 @@ setup_params_enterprise = {
|
|||||||
{"ssid_name": "tls_ssid_wpa2_eap_5g", "appliedRadios": ["5G"], "security_key": "something"}],
|
{"ssid_name": "tls_ssid_wpa2_eap_5g", "appliedRadios": ["5G"], "security_key": "something"}],
|
||||||
"wpa3_enterprise": [
|
"wpa3_enterprise": [
|
||||||
{"ssid_name": "tls_ssid_wpa3_eap_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
{"ssid_name": "tls_ssid_wpa3_eap_2g", "appliedRadios": ["2G"], "security_key": "something"},
|
||||||
{"ssid_name": "tls_ssid_wpa3_eap_5g", "appliedRadios": ["5G"], "security_key": "something"},
|
{"ssid_name": "tls_ssid_wpa3_eap_5g", "appliedRadios": ["5G"], "security_key": "something"}]},
|
||||||
{"ssid_name": "tls_ssid_wpa3_eap_6g", "appliedRadios": ["6G"], "security_key": "something"}]},
|
|
||||||
|
|
||||||
"rf": {},
|
"rf": {},
|
||||||
"radius": True
|
"radius": True
|
||||||
@@ -155,7 +154,7 @@ class TestBridgeModeEnterpriseTLSSuiteA(object):
|
|||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration, check_connectivity, radius_info):
|
num_stations, setup_configuration, check_connectivity, radius_info):
|
||||||
"""
|
"""
|
||||||
To verify that a client created on 5G radio connects to AP in Bridge mode with WAP2 enterprise TLS security
|
To verify that a client created on 5G radio connects to AP in Bridge mode with WPA2 enterprise TLS security
|
||||||
Unique Marker: pytest -m "client_connectivity_tests and enterprise and wpa2_enterprise and ow_sanity_lf and tls and bridge and fiveg"
|
Unique Marker: pytest -m "client_connectivity_tests and enterprise and wpa2_enterprise and ow_sanity_lf and tls and bridge and fiveg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -283,14 +282,14 @@ class TestBridgeModeEnterpriseTLSSuiteTwo(object):
|
|||||||
|
|
||||||
@pytest.mark.wpa_wpa2_enterprise_mixed
|
@pytest.mark.wpa_wpa2_enterprise_mixed
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@allure.title("Bridge Mode Client Connectivity Test with WAP-WPA2-Enterprise-TLS in 2.4GHz Band")
|
@allure.title("Bridge Mode Client Connectivity Test with WPA-WPA2-Enterprise-TLS in 2.4GHz Band")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10589", name="WIFI-10589")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10589", name="WIFI-10589")
|
||||||
def test_wpa_wpa2_enterprise_2g(self, get_test_library, get_dut_logs_per_test_case,
|
def test_wpa_wpa2_enterprise_2g(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs,
|
get_test_device_logs,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration, check_connectivity, radius_info):
|
num_stations, setup_configuration, check_connectivity, radius_info):
|
||||||
"""
|
"""
|
||||||
To verify that a client created on 2G radio connects to AP in Bridge mode with WAP-WPA2-Enterprise TLS security
|
To verify that a client created on 2G radio connects to AP in Bridge mode with WPA-WPA2-Enterprise TLS security
|
||||||
Unique Marker: pytest -m "client_connectivity_tests and wpa_wpa2_enterprise_mixed and enterprise and ow_sanity_lf and tls and bridge and twog"
|
Unique Marker: pytest -m "client_connectivity_tests and wpa_wpa2_enterprise_mixed and enterprise and ow_sanity_lf and tls and bridge and twog"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "tls_ssid_wpa_wpa2_eap_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "tls_ssid_wpa_wpa2_eap_2g", "appliedRadios": ["2G"]}
|
||||||
@@ -314,14 +313,14 @@ class TestBridgeModeEnterpriseTLSSuiteTwo(object):
|
|||||||
|
|
||||||
@pytest.mark.wpa_wpa2_enterprise_mixed
|
@pytest.mark.wpa_wpa2_enterprise_mixed
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@allure.title("Bridge Mode Client Connectivity Test with WAP-WPA2-Enterprise-TLS in 5GHz Band")
|
@allure.title("Bridge Mode Client Connectivity Test with WPA-WPA2-Enterprise-TLS in 5GHz Band")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10590", name="WIFI-10590")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10590", name="WIFI-10590")
|
||||||
def test_wpa_wpa2_enterprise_5g(self, get_test_library, get_dut_logs_per_test_case,
|
def test_wpa_wpa2_enterprise_5g(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs,
|
get_test_device_logs,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration, check_connectivity, radius_info):
|
num_stations, setup_configuration, check_connectivity, radius_info):
|
||||||
"""
|
"""
|
||||||
To verify that a client created on 5G radio connects to AP in Bridge mode with WAP-WPA2-Enterprise TLS security
|
To verify that a client created on 5G radio connects to AP in Bridge mode with WPA-WPA2-Enterprise TLS security
|
||||||
Unique Marker: pytest -m "client_connectivity_tests and wpa_wpa2_enterprise_mixed and enterprise and ow_sanity_lf and tls and bridge and fiveg"
|
Unique Marker: pytest -m "client_connectivity_tests and wpa_wpa2_enterprise_mixed and enterprise and ow_sanity_lf and tls and bridge and fiveg"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "tls_ssid_wpa_wpa2_eap_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "tls_ssid_wpa_wpa2_eap_5g", "appliedRadios": ["5G"]}
|
||||||
@@ -345,14 +344,14 @@ class TestBridgeModeEnterpriseTLSSuiteTwo(object):
|
|||||||
|
|
||||||
@pytest.mark.wpa3_enterprise_mixed
|
@pytest.mark.wpa3_enterprise_mixed
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@allure.title("Bridge Mode Client Connectivity Test with WAP3-Enterprise-Mixed-TLS in 2.4GHz Band")
|
@allure.title("Bridge Mode Client Connectivity Test with WPA3-Enterprise-Mixed-TLS in 2.4GHz Band")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10591", name="WIFI-10591")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10591", name="WIFI-10591")
|
||||||
def test_wpa3_enterprise_mixed_2g(self, get_test_library, get_dut_logs_per_test_case,
|
def test_wpa3_enterprise_mixed_2g(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs,
|
get_test_device_logs,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration, check_connectivity, radius_info):
|
num_stations, setup_configuration, check_connectivity, radius_info):
|
||||||
"""
|
"""
|
||||||
To verify that a client created on 2G radio connects to AP in Bridge mode with WAP3-Enterprise-Mixed TLS security
|
To verify that a client created on 2G radio connects to AP in Bridge mode with WPA3-Enterprise-Mixed TLS security
|
||||||
Unique Marker: pytest -m "client_connectivity_tests and wpa3_enterprise_mixed and enterprise and ow_sanity_lf and tls and bridge and twog"
|
Unique Marker: pytest -m "client_connectivity_tests and wpa3_enterprise_mixed and enterprise and ow_sanity_lf and tls and bridge and twog"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "tls_ssid_wpa3_mixed_eap_2g", "appliedRadios": ["2G"]}
|
profile_data = {"ssid_name": "tls_ssid_wpa3_mixed_eap_2g", "appliedRadios": ["2G"]}
|
||||||
@@ -374,14 +373,14 @@ class TestBridgeModeEnterpriseTLSSuiteTwo(object):
|
|||||||
|
|
||||||
@pytest.mark.wpa3_enterprise_mixed
|
@pytest.mark.wpa3_enterprise_mixed
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@allure.title("Bridge Mode Client Connectivity Test with WAP3-Enterprise-Mixed-TLS in 5GHz Band")
|
@allure.title("Bridge Mode Client Connectivity Test with WPA3-Enterprise-Mixed-TLS in 5GHz Band")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10592", name="WIFI-10592")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10592", name="WIFI-10592")
|
||||||
def test_wpa3_enterprise_mixed_5g(self, get_test_library, get_dut_logs_per_test_case,
|
def test_wpa3_enterprise_mixed_5g(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs,
|
get_test_device_logs,
|
||||||
get_target_object,
|
get_target_object,
|
||||||
num_stations, setup_configuration, check_connectivity, radius_info):
|
num_stations, setup_configuration, check_connectivity, radius_info):
|
||||||
"""
|
"""
|
||||||
To verify that a client created on 5G radio connects to AP in Bridge mode with WAP3-Enterprise-Mixed TLS security
|
To verify that a client created on 5G radio connects to AP in Bridge mode with WPA3-Enterprise-Mixed TLS security
|
||||||
Unique Marker: pytest -m "client_connectivity_tests and wpa3_enterprise_mixed and enterprise and ow_sanity_lf and tls and bridge and fiveg"
|
Unique Marker: pytest -m "client_connectivity_tests and wpa3_enterprise_mixed and enterprise and ow_sanity_lf and tls and bridge and fiveg"
|
||||||
"""
|
"""
|
||||||
profile_data = {"ssid_name": "tls_ssid_wpa3_mixed_eap_5g", "appliedRadios": ["5G"]}
|
profile_data = {"ssid_name": "tls_ssid_wpa3_mixed_eap_5g", "appliedRadios": ["5G"]}
|
||||||
|
|||||||
@@ -4,15 +4,19 @@
|
|||||||
pytest -m "multipsk and wpa2_personal and twog" -s -vvv --skip-testrail --testbed=basic-03 --alluredir=../allure_reports
|
pytest -m "multipsk and wpa2_personal and twog" -s -vvv --skip-testrail --testbed=basic-03 --alluredir=../allure_reports
|
||||||
wifi-3493
|
wifi-3493
|
||||||
"""
|
"""
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
from datetime import time
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
import requests
|
||||||
|
|
||||||
pytestmark = [pytest.mark.multi_psk_tests,
|
pytestmark = [pytest.mark.multi_psk_tests,
|
||||||
pytest.mark.ow_regression_lf,
|
|
||||||
pytest.mark.bridge,
|
pytest.mark.bridge,
|
||||||
pytest.mark.wpa2_personal,
|
pytest.mark.wpa2_personal,
|
||||||
pytest.mark.ow_sanity_lf,
|
pytest.mark.twog,
|
||||||
pytest.mark.twog]
|
pytest.mark.ow_sanity_lf]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general = {
|
||||||
"mode": "BRIDGE",
|
"mode": "BRIDGE",
|
||||||
@@ -48,11 +52,11 @@ setup_params_general = {
|
|||||||
@allure.parent_suite("MultiPsk Test")
|
@allure.parent_suite("MultiPsk Test")
|
||||||
@allure.suite("BRIDGE Mode")
|
@allure.suite("BRIDGE Mode")
|
||||||
@allure.sub_suite("WPA2 Security")
|
@allure.sub_suite("WPA2 Security")
|
||||||
|
@pytest.mark.ow_regression_lf
|
||||||
@pytest.mark.usefixtures("setup_configuration")
|
@pytest.mark.usefixtures("setup_configuration")
|
||||||
class TestMultipskBridgeWPA2(object):
|
class TestMultipskBridgeWPA2(object):
|
||||||
|
|
||||||
@pytest.mark.vlan1
|
@pytest.mark.vlan1
|
||||||
@pytest.mark.ow_sanity_lf
|
|
||||||
@pytest.mark.wpa2
|
@pytest.mark.wpa2
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3493", name="WIFI-3493")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3493", name="WIFI-3493")
|
||||||
@allure.title("Test for Client Connect with 1 VLAN")
|
@allure.title("Test for Client Connect with 1 VLAN")
|
||||||
@@ -91,7 +95,6 @@ class TestMultipskBridgeWPA2(object):
|
|||||||
assert True
|
assert True
|
||||||
|
|
||||||
@pytest.mark.vlan2
|
@pytest.mark.vlan2
|
||||||
@pytest.mark.ow_sanity_lf
|
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10657", name="WIFI-10657")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10657", name="WIFI-10657")
|
||||||
@allure.title("Test for Client Connect with 2 VLAN's")
|
@allure.title("Test for Client Connect with 2 VLAN's")
|
||||||
def test_client_wpa2_2g_vlan2(self, get_test_library, get_dut_logs_per_test_case,
|
def test_client_wpa2_2g_vlan2(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
@@ -127,3 +130,124 @@ class TestMultipskBridgeWPA2(object):
|
|||||||
passkey=security_key,
|
passkey=security_key,
|
||||||
encryption=security, mode=mode, num_sta=1, dut_data=setup_configuration)
|
encryption=security, mode=mode, num_sta=1, dut_data=setup_configuration)
|
||||||
assert True
|
assert True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
setup_params_general = {
|
||||||
|
"mode": "BRIDGE",
|
||||||
|
"ssid_modes": {
|
||||||
|
"wpa2_personal": [
|
||||||
|
{"ssid_name": "OpenWifi-roam",
|
||||||
|
"appliedRadios": ["2G", "5G"],
|
||||||
|
"security": "psk2",
|
||||||
|
"security_key": "OpenWifi",
|
||||||
|
"multi-psk": [
|
||||||
|
{"key": "aaaaaaaa"},
|
||||||
|
{"key": "bbbbbbbb"}
|
||||||
|
],
|
||||||
|
"roaming": True,
|
||||||
|
"rrm": {
|
||||||
|
"reduced-neighbor-reporting": True
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"wpa3_personal": [
|
||||||
|
{"ssid_name": "OpenWifi-roam",
|
||||||
|
"appliedRadios": ["6G"],
|
||||||
|
"security": "sae",
|
||||||
|
"security_key": "OpenWifi",
|
||||||
|
"roaming": True,
|
||||||
|
"rrm": {
|
||||||
|
"reduced-neighbor-reporting": True
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rf": {
|
||||||
|
"2G": {
|
||||||
|
"band": "2G",
|
||||||
|
"channel-width": 20,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": "auto"
|
||||||
|
},
|
||||||
|
"5G": {
|
||||||
|
"band": "5G",
|
||||||
|
"channel-width": 80,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 36
|
||||||
|
},
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-width": 320,
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel": 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"radius": False
|
||||||
|
}
|
||||||
|
|
||||||
|
testbed_details_global = None
|
||||||
|
dut_data = {}
|
||||||
|
|
||||||
|
@pytest.fixture(scope="class")
|
||||||
|
def setup_initial_configuration(request):
|
||||||
|
"""Calls setup_testbed automatically before tests"""
|
||||||
|
global setup_params_general
|
||||||
|
global dut_data
|
||||||
|
logging.info(f"Setup Params Assigned: {setup_params_general}")
|
||||||
|
|
||||||
|
requested_combination = [['2G', 'wpa2_personal'], ['5G', 'wpa2_personal'], ['6G', 'wpa3_personal']]
|
||||||
|
|
||||||
|
logging.info(f"requested_combination:::{requested_combination}")
|
||||||
|
get_target_obj = request.getfixturevalue("get_target_object")
|
||||||
|
logging.info("ready to start setup_basic_configuration")
|
||||||
|
logging.info(f"setup_params_general value before start:{setup_params_general}")
|
||||||
|
dut_data = get_target_obj.setup_basic_configuration(configuration=setup_params_general,
|
||||||
|
requested_combination=requested_combination)
|
||||||
|
|
||||||
|
logging.info(f"setup_basic_configuration dut data:{dut_data}")
|
||||||
|
|
||||||
|
@allure.feature("MultiPsk Test")
|
||||||
|
@allure.parent_suite("MultiPsk Test")
|
||||||
|
@allure.suite("BRIDGE Mode")
|
||||||
|
@allure.sub_suite("WPA2 Security")
|
||||||
|
class TestEmpsk6GBridgeWPA2(object):
|
||||||
|
|
||||||
|
# @pytest.mark.wpa3_personal
|
||||||
|
# @pytest.mark.wpa2_personal
|
||||||
|
# @pytest.mark.sixg
|
||||||
|
# @pytest.mark.twog
|
||||||
|
# @pytest.mark.fiveg
|
||||||
|
@pytest.mark.empsk
|
||||||
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14423", name="WIFI-14423")
|
||||||
|
@allure.title("Test E-MPSK with WPA2 to WPA3 on 6GHz")
|
||||||
|
def test_client_wpa2_wpa3_6g_empsk(self, setup_initial_configuration, get_test_library,get_target_object,
|
||||||
|
check_connectivity, get_testbed_details):
|
||||||
|
"""
|
||||||
|
Verify E-MPSK working in BRIDGE mode:
|
||||||
|
- Client connects on 2.4/5GHz (WPA2 and WPA3)
|
||||||
|
- Encryption is changed from WPA2 to WPA3 (disable WPA2)
|
||||||
|
- Verify client successfully get an IP and associate to AP
|
||||||
|
"""
|
||||||
|
profile_data = {
|
||||||
|
"ssid_name": "OpenWifi-roam",
|
||||||
|
"appliedRadios": ["2G"],
|
||||||
|
"security": "psk2",
|
||||||
|
"security_key": "OpenWifi",
|
||||||
|
"multi-psk": [
|
||||||
|
{"key": "aaaaaaaa"},
|
||||||
|
{"key": "bbbbbbbb"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
ssid = profile_data["ssid_name"]
|
||||||
|
security = "wpa2"
|
||||||
|
mode = "BRIDGE"
|
||||||
|
band = "twog"
|
||||||
|
num_sta = 1
|
||||||
|
security_key = profile_data["multi-psk"][0]["key"]
|
||||||
|
sta_data = get_test_library.empsk_test(ssid=ssid, passkey=security_key, security=security, is_bw320=True,
|
||||||
|
mode=mode, band=band, pre_cleanup=True, num_sta=num_sta,
|
||||||
|
scan_ssid=True, dut_data=dut_data, extra_securities = ["wpa3"],
|
||||||
|
allure_attach=True)
|
||||||
|
|
||||||
|
logging.info(f"sta_data{sta_data}")
|
||||||
@@ -820,6 +820,7 @@ class TestRateLimitingBridgeSixg(object):
|
|||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
@pytest.mark.upload_download
|
@pytest.mark.upload_download
|
||||||
@pytest.mark.batch_size_125
|
@pytest.mark.batch_size_125
|
||||||
|
@pytest.mark.ow_sanity_lf
|
||||||
@pytest.mark.rate_limiting_tests
|
@pytest.mark.rate_limiting_tests
|
||||||
@pytest.mark.bridge
|
@pytest.mark.bridge
|
||||||
@allure.testcase(name="WIFI-14364",
|
@allure.testcase(name="WIFI-14364",
|
||||||
|
|||||||
@@ -36,8 +36,8 @@ setup_params_general = {
|
|||||||
"appliedRadios": ["2G"],
|
"appliedRadios": ["2G"],
|
||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 20,
|
||||||
"egress-rate": 10
|
"egress-rate": 20
|
||||||
},
|
},
|
||||||
"radius_auth_data": RATE_LIMITING_RADIUS_SERVER_DATA,
|
"radius_auth_data": RATE_LIMITING_RADIUS_SERVER_DATA,
|
||||||
"radius_acc_data": RATE_LIMITING_RADIUS_ACCOUNTING_DATA
|
"radius_acc_data": RATE_LIMITING_RADIUS_ACCOUNTING_DATA
|
||||||
@@ -47,8 +47,8 @@ setup_params_general = {
|
|||||||
"appliedRadios": ["5G"],
|
"appliedRadios": ["5G"],
|
||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 20,
|
||||||
"egress-rate": 10
|
"egress-rate": 20
|
||||||
},
|
},
|
||||||
"radius_auth_data": RATE_LIMITING_RADIUS_SERVER_DATA,
|
"radius_auth_data": RATE_LIMITING_RADIUS_SERVER_DATA,
|
||||||
"radius_acc_data": RATE_LIMITING_RADIUS_ACCOUNTING_DATA
|
"radius_acc_data": RATE_LIMITING_RADIUS_ACCOUNTING_DATA
|
||||||
@@ -75,7 +75,6 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
|
|
||||||
@pytest.mark.wpa2_enterprise
|
@pytest.mark.wpa2_enterprise
|
||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.ow_sanity_lf
|
|
||||||
@pytest.mark.twog_upload_per_ssid
|
@pytest.mark.twog_upload_per_ssid
|
||||||
@allure.title("Test for Upload per SSID 2.4 GHz")
|
@allure.title("Test for Upload per SSID 2.4 GHz")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-5849", name="WIFI-5849")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-5849", name="WIFI-5849")
|
||||||
@@ -130,7 +129,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
@pytest.mark.twog
|
@pytest.mark.twog
|
||||||
@pytest.mark.twog_download_perssid_persta
|
@pytest.mark.twog_download_perssid_persta
|
||||||
@pytest.mark.ow_sanity_lf
|
@pytest.mark.ow_sanity_lf
|
||||||
@allure.title("Test for Download per SSID per Station 2.4GHz")
|
@allure.title("Test for TCP Download per SSID per Station 2.4GHz")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-5850", name="WIFI-5850")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-5850", name="WIFI-5850")
|
||||||
def test_radius_server_2g_download_perssid_persta(self, get_test_library, get_dut_logs_per_test_case,
|
def test_radius_server_2g_download_perssid_persta(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs,
|
get_test_device_logs,
|
||||||
@@ -314,7 +313,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
@pytest.mark.wpa2_enterprise
|
@pytest.mark.wpa2_enterprise
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@pytest.mark.fiveg_upload_per_ssid
|
@pytest.mark.fiveg_upload_per_ssid
|
||||||
@allure.title("Test for Upload per SSID 5 GHz")
|
@pytest.mark.ow_sanity_lf
|
||||||
|
@allure.title("Test for UDP Upload per SSID 5 GHz")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-5854", name="WIFI-5854")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-5854", name="WIFI-5854")
|
||||||
def test_radius_server_fiveg_per_ssid_upload(self, get_test_library, get_dut_logs_per_test_case,
|
def test_radius_server_fiveg_per_ssid_upload(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
get_test_device_logs,
|
get_test_device_logs,
|
||||||
@@ -334,7 +334,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
band = "fiveg"
|
band = "fiveg"
|
||||||
eap = "TTLS"
|
eap = "TTLS"
|
||||||
ttls_passwd = "password"
|
ttls_passwd = "password"
|
||||||
identity = "bandwidth10m"
|
identity = "user"
|
||||||
|
configured = 5
|
||||||
allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"]))
|
allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"]))
|
||||||
get_test_library.pre_cleanup()
|
get_test_library.pre_cleanup()
|
||||||
passes, result = get_test_library.enterprise_client_connectivity_test(ssid=ssid_name, security=security,
|
passes, result = get_test_library.enterprise_client_connectivity_test(ssid=ssid_name, security=security,
|
||||||
@@ -347,13 +348,19 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
assert passes == "PASS", result
|
assert passes == "PASS", result
|
||||||
if passes == "PASS":
|
if passes == "PASS":
|
||||||
raw_lines = [["dl_rate_sel: Total Download Rate:"], ["ul_rate_sel: Per-Station Download Rate:"]]
|
raw_lines = [["dl_rate_sel: Total Download Rate:"], ["ul_rate_sel: Per-Station Download Rate:"]]
|
||||||
get_test_library.wifi_capacity(instance_name="Test_Radius_5g_up_per_ssid", mode=mode,
|
obj = get_test_library.wifi_capacity(instance_name="Test_Radius_5g_up_per_ssid", mode=mode,
|
||||||
download_rate="0Gbps", batch_size="1",
|
download_rate="0Gbps", batch_size="1",
|
||||||
upload_rate="1Gbps", protocol="TCP", duration="60000",
|
upload_rate="1Gbps", protocol="UDP", duration="60000",
|
||||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||||
add_stations=False, raw_lines=raw_lines)
|
add_stations=False, raw_lines=raw_lines)
|
||||||
|
report_name = obj[0].report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1] + "/"
|
||||||
|
kpi_data = get_test_library.read_kpi_file(column_name=["numeric-score"], dir_name=report_name)
|
||||||
|
achieved = float("{:.2f}".format(kpi_data[1][0]))
|
||||||
|
if achieved <= configured:
|
||||||
assert True
|
assert True
|
||||||
|
else:
|
||||||
|
assert False, f"Expected Throughput should be less than {configured} Mbps"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.wpa2_enterprise
|
@pytest.mark.wpa2_enterprise
|
||||||
@pytest.mark.fiveg
|
@pytest.mark.fiveg
|
||||||
@@ -797,8 +804,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
"appliedRadios": ["2G"],
|
"appliedRadios": ["2G"],
|
||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 20,
|
||||||
"egress-rate": 10
|
"egress-rate": 30
|
||||||
}}
|
}}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
@@ -860,8 +867,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
"appliedRadios": ["2G"],
|
"appliedRadios": ["2G"],
|
||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 60,
|
||||||
"egress-rate": 10
|
"egress-rate": 50
|
||||||
}}
|
}}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
@@ -923,8 +930,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
"appliedRadios": ["2G"],
|
"appliedRadios": ["2G"],
|
||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 60,
|
||||||
"egress-rate": 10
|
"egress-rate": 50
|
||||||
}}
|
}}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
@@ -986,7 +993,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
"appliedRadios": ["2G"],
|
"appliedRadios": ["2G"],
|
||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 50,
|
||||||
"egress-rate": 10
|
"egress-rate": 10
|
||||||
}}
|
}}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -1048,7 +1055,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
"appliedRadios": ["2G"],
|
"appliedRadios": ["2G"],
|
||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 50,
|
||||||
"egress-rate": 10
|
"egress-rate": 10
|
||||||
}}
|
}}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
@@ -1112,7 +1119,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 10,
|
||||||
"egress-rate": 10
|
"egress-rate": 50
|
||||||
}}
|
}}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
@@ -1175,7 +1182,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
|||||||
"security_key": "something",
|
"security_key": "something",
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"ingress-rate": 10,
|
"ingress-rate": 10,
|
||||||
"egress-rate": 10
|
"egress-rate": 50
|
||||||
}}
|
}}
|
||||||
ssid_name = profile_data["ssid_name"]
|
ssid_name = profile_data["ssid_name"]
|
||||||
mode = "BRIDGE"
|
mode = "BRIDGE"
|
||||||
@@ -1274,6 +1281,7 @@ class TestRateLimitingWithRadiusBridgeSixg(object):
|
|||||||
@pytest.mark.wpa3_enterprise
|
@pytest.mark.wpa3_enterprise
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
@pytest.mark.sixg_upload_per_ssid
|
@pytest.mark.sixg_upload_per_ssid
|
||||||
|
@pytest.mark.ow_sanity_lf
|
||||||
@allure.title("Test for UDP Upload per SSID 6 GHz")
|
@allure.title("Test for UDP Upload per SSID 6 GHz")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14366", name="WIFI-14366")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14366", name="WIFI-14366")
|
||||||
def test_radius_server_6g_upload_per_ssid(self, get_test_library, get_dut_logs_per_test_case,
|
def test_radius_server_6g_upload_per_ssid(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
@@ -1326,6 +1334,7 @@ class TestRateLimitingWithRadiusBridgeSixg(object):
|
|||||||
@pytest.mark.wpa3_enterprise
|
@pytest.mark.wpa3_enterprise
|
||||||
@pytest.mark.sixg
|
@pytest.mark.sixg
|
||||||
@pytest.mark.sixg_download_perssid_persta
|
@pytest.mark.sixg_download_perssid_persta
|
||||||
|
@pytest.mark.ow_sanity_lf
|
||||||
@allure.title("Test for TCP Download per Station 6GHz")
|
@allure.title("Test for TCP Download per Station 6GHz")
|
||||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14365", name="WIFI-14365")
|
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-14365", name="WIFI-14365")
|
||||||
def test_radius_server_6g_download_persta(self, get_test_library, get_dut_logs_per_test_case,
|
def test_radius_server_6g_download_persta(self, get_test_library, get_dut_logs_per_test_case,
|
||||||
|
|||||||
@@ -21,8 +21,7 @@ setup_params_enterprise = {
|
|||||||
{"ssid_name": "ssid_wpa2_eap_5g", "appliedRadios": ["5G"]}],
|
{"ssid_name": "ssid_wpa2_eap_5g", "appliedRadios": ["5G"]}],
|
||||||
"wpa3_enterprise": [
|
"wpa3_enterprise": [
|
||||||
{"ssid_name": "ssid_wpa3_eap_2g", "appliedRadios": ["2G"]},
|
{"ssid_name": "ssid_wpa3_eap_2g", "appliedRadios": ["2G"]},
|
||||||
{"ssid_name": "ssid_wpa3_eap_5g", "appliedRadios": ["5G"]},
|
{"ssid_name": "ssid_wpa3_eap_5g", "appliedRadios": ["5G"]}]},
|
||||||
{"ssid_name": "ttls_ssid_wpa3_eap_6g", "appliedRadios": ["6G"]}]},
|
|
||||||
|
|
||||||
"rf": {},
|
"rf": {},
|
||||||
"radius": True
|
"radius": True
|
||||||
|
|||||||
@@ -232,7 +232,13 @@ setup_params_general_two_vlan = {
|
|||||||
{"ssid_name": "ssid_wpa_wpa2_p_m_5g_vlan", "appliedRadios": ["5G"], "security_key": "something",
|
{"ssid_name": "ssid_wpa_wpa2_p_m_5g_vlan", "appliedRadios": ["5G"], "security_key": "something",
|
||||||
"vlan": 100}]
|
"vlan": 100}]
|
||||||
},
|
},
|
||||||
"rf": {},
|
"rf": {
|
||||||
|
"6G": {
|
||||||
|
"band": "6G",
|
||||||
|
"channel-mode": "EHT",
|
||||||
|
"channel-width": 80,
|
||||||
|
}
|
||||||
|
},
|
||||||
"radius": False
|
"radius": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ DYNAMIC_VLAN_RADIUS_SERVER_DATA = lf_library.DYNAMIC_VLAN_RADIUS_SERVER_DATA
|
|||||||
DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA = lf_library.DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA
|
DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA = lf_library.DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA
|
||||||
|
|
||||||
pytestmark = [pytest.mark.dynamic_vlan_tests,
|
pytestmark = [pytest.mark.dynamic_vlan_tests,
|
||||||
pytest.mark.vlan]
|
pytest.mark.vlan, pytest.mark.ow_sanity_lf]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general = {
|
||||||
"mode": "VLAN",
|
"mode": "VLAN",
|
||||||
@@ -71,8 +71,11 @@ class TestDynamicVlanOverSsid6GWpa3(object):
|
|||||||
pytest -m "dynamic_precedence_over_ssid and wpa3_enterprise and vlan and sixg"
|
pytest -m "dynamic_precedence_over_ssid and wpa3_enterprise and vlan and sixg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
profile_data = setup_params_general["ssid_modes"]["wpa3_enterprise"]
|
profile_data = {"ssid_name": "ssid_wpa3e_6g", "appliedRadios": ["6G"],
|
||||||
ssid_name = profile_data[1]["ssid_name"]
|
"security_key": "something",
|
||||||
|
"vlan": 100
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
security = "wpa3"
|
security = "wpa3"
|
||||||
extra_secu = []
|
extra_secu = []
|
||||||
mode = "VLAN"
|
mode = "VLAN"
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ DYNAMIC_VLAN_RADIUS_SERVER_DATA = lf_library.DYNAMIC_VLAN_RADIUS_SERVER_DATA
|
|||||||
DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA = lf_library.DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA
|
DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA = lf_library.DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA
|
||||||
|
|
||||||
pytestmark = [pytest.mark.dynamic_vlan_tests,
|
pytestmark = [pytest.mark.dynamic_vlan_tests,
|
||||||
pytest.mark.vlan]
|
pytest.mark.vlan, pytest.mark.ow_sanity_lf]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general = {
|
||||||
"mode": "VLAN",
|
"mode": "VLAN",
|
||||||
@@ -72,8 +72,11 @@ class TestDynamicVlan6GWpa3(object):
|
|||||||
pytest -m "absence_of_radius_vlan_identifier and wpa3_enterprise and vlan and sixg"
|
pytest -m "absence_of_radius_vlan_identifier and wpa3_enterprise and vlan and sixg"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
profile_data = setup_params_general["ssid_modes"]["wpa3_enterprise"]
|
profile_data = {"ssid_name": "ssid_wpa3e_6g", "appliedRadios": ["6G"],
|
||||||
ssid_name = profile_data[1]["ssid_name"]
|
"security_key": "something",
|
||||||
|
"vlan": 100
|
||||||
|
}
|
||||||
|
ssid_name = profile_data["ssid_name"]
|
||||||
security = "wpa3"
|
security = "wpa3"
|
||||||
extra_secu = []
|
extra_secu = []
|
||||||
band = "sixg"
|
band = "sixg"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.multi_vlan_tests, pytest.mark.sixg]
|
pytestmark = [pytest.mark.multi_vlan_tests, pytest.mark.sixg, pytest.mark.ow_sanity_lf]
|
||||||
|
|
||||||
setup_params_general = {
|
setup_params_general = {
|
||||||
"mode": "VLAN",
|
"mode": "VLAN",
|
||||||
|
|||||||
Reference in New Issue
Block a user