mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-10-29 10:02:26 +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"
|
||||
ap_models:
|
||||
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"
|
||||
ap_version:
|
||||
required: true
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf189,edgecore_eap105,edgecore_eap111' }}"
|
||||
fi
|
||||
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
|
||||
|
||||
echo "List of AP models to test - $AP_MODELS"
|
||||
@@ -1208,11 +1208,277 @@ jobs:
|
||||
if: failure()
|
||||
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
|
||||
report:
|
||||
if: "!cancelled()"
|
||||
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:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -1263,7 +1529,7 @@ jobs:
|
||||
|
||||
# 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
|
||||
if: always()
|
||||
steps:
|
||||
|
||||
1014
.github/workflows/regression.yml
vendored
1014
.github/workflows/regression.yml
vendored
File diff suppressed because it is too large
Load Diff
@@ -462,9 +462,21 @@ class APLIBS:
|
||||
logging.info("Status count: " + str(status_count_1))
|
||||
if status_count_1 == 1:
|
||||
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:
|
||||
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && ls && echo 1 > dfs_simulate_radar'
|
||||
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:
|
||||
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && ls && echo 1 > dfs_simulate_radar'
|
||||
elif type_.lower() == "wifi7":
|
||||
cmd1 = '[ -f /sys/kernel/debug/ieee80211/phy0/ath12k_hw1/dfs_simulate_radar ] && echo "True" || echo "False"'
|
||||
output = self.run_generic_command(cmd=cmd1, idx=idx,
|
||||
@@ -478,7 +490,7 @@ class APLIBS:
|
||||
if status_count == 1:
|
||||
cmd = "cd && cd /sys/kernel/debug/ieee80211/phy0/ && cd ath12k_hw1 && echo 1 > dfs_simulate_radar"
|
||||
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,
|
||||
print_log=print_log,
|
||||
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'
|
||||
else:
|
||||
#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,
|
||||
print_log=print_log,
|
||||
attach_allure=attach_allure,
|
||||
@@ -534,9 +546,21 @@ class APLIBS:
|
||||
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/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'
|
||||
# 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:
|
||||
cmd = f'cd && cd /sys/kernel/debug/ath11k/ && cd ipq* && cd mac0 && logread | grep DFS'
|
||||
elif type_.lower() == "wifi7":
|
||||
cmd1 = '[ -f /sys/kernel/debug/ieee80211/phy0/ath12k_hw1/dfs_simulate_radar ] && echo "True" || echo "False"'
|
||||
output = self.run_generic_command(cmd=cmd1, idx=idx,
|
||||
@@ -545,9 +569,9 @@ class APLIBS:
|
||||
expected_attachment_type=allure.attachment_type.JSON)
|
||||
logging.info("DFS logread output: " + str(output))
|
||||
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:
|
||||
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:
|
||||
output = self.run_generic_command(cmd=cmd, idx=idx,
|
||||
@@ -692,4 +716,4 @@ if __name__ == '__main__':
|
||||
# a = obj.get_active_config()
|
||||
# if a == l:
|
||||
# print("a = l")
|
||||
# print(obj.get_ap_version())
|
||||
# print(obj.get_ap_version())
|
||||
@@ -2611,7 +2611,7 @@ class UProfileUtility:
|
||||
ssid_info.append(temp)
|
||||
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:
|
||||
base_radio_config_2g = {
|
||||
"band": "2G",
|
||||
@@ -2627,6 +2627,13 @@ class UProfileUtility:
|
||||
"channel-width": 80,
|
||||
"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:
|
||||
if band == "2G" and radio_config[band] is not None:
|
||||
@@ -2641,22 +2648,33 @@ class UProfileUtility:
|
||||
base_radio_config_2g = {
|
||||
"band": "2G",
|
||||
"country": "US",
|
||||
"channel-mode": "HE",
|
||||
"channel-mode": "EHT",
|
||||
"channel": "auto"
|
||||
}
|
||||
base_radio_config_5g = {
|
||||
"band": "5G",
|
||||
"country": "US",
|
||||
"allow-dfs": False,
|
||||
"channel-mode": "HE",
|
||||
"channel-mode": "EHT",
|
||||
"channel": "auto"
|
||||
}
|
||||
base_radio_config_6g = {
|
||||
"band": "6G",
|
||||
"country": "US",
|
||||
"channel-mode": "HE",
|
||||
"channel-mode": "EHT",
|
||||
"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:
|
||||
if band == "2G" and radio_config[band] is not None:
|
||||
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_5g)
|
||||
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_ids = []
|
||||
|
||||
|
||||
@@ -64,7 +64,8 @@ class tip_2x:
|
||||
"wpa3_enterprise",
|
||||
"wpa_wpa2_enterprise_mixed",
|
||||
"wpa3_enterprise_mixed",
|
||||
"wpa3_enterprise_192"
|
||||
"wpa3_enterprise_192",
|
||||
"owe"
|
||||
]
|
||||
tip_2x_specific_encryption_translation = {"open": "none",
|
||||
"wpa": "psk",
|
||||
@@ -77,7 +78,8 @@ class tip_2x:
|
||||
"wpa3_enterprise": "wpa3",
|
||||
"wpa_wpa2_enterprise_mixed": "wpa-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,
|
||||
@@ -231,6 +233,12 @@ class tip_2x:
|
||||
requested_combination=None, open_roaming=False):
|
||||
f_conf = self.setup_configuration_data(configuration=configuration,
|
||||
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:
|
||||
logging.info("Selected Configuration of open roaming: " + str(json.dumps(f_conf, indent=2)))
|
||||
final_configuration = f_conf.copy()
|
||||
@@ -243,10 +251,11 @@ class tip_2x:
|
||||
|
||||
# Setup Radio Scenario
|
||||
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:
|
||||
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_data in final_configuration["ssid_modes"][ssid]:
|
||||
if final_configuration["radius"]:
|
||||
@@ -276,10 +285,10 @@ class tip_2x:
|
||||
|
||||
# Setup Radio Scenario
|
||||
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:
|
||||
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_data in final_configuration["ssid_modes"][ssid]:
|
||||
if final_configuration["radius"]:
|
||||
@@ -393,8 +402,8 @@ class tip_2x:
|
||||
logging.info("resp: " + str(resp))
|
||||
uuid = resp["details"]["uuid"]
|
||||
logging.info("uuid from resp: " + str(uuid))
|
||||
logging.info("Waiting for 30 sec after config push")
|
||||
time.sleep(30)
|
||||
logging.info("Waiting for 45 sec after config push")
|
||||
time.sleep(45)
|
||||
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"]
|
||||
active_uuid_after_apply = r_data["active"]
|
||||
@@ -425,9 +434,9 @@ class tip_2x:
|
||||
pytest.fail("Config is not Properly Applied on AP")
|
||||
|
||||
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
|
||||
time.sleep(30)
|
||||
time.sleep(45)
|
||||
|
||||
# x = 0
|
||||
# while uuid_before_apply == uuid_after_apply:
|
||||
@@ -502,15 +511,30 @@ class tip_2x:
|
||||
n = len(temp_data[dut])
|
||||
lst = list(range(0, n))
|
||||
ret_val[dut]["ssid_data"] = dict.fromkeys(lst)
|
||||
fields = ["SSID", "Encryption", "Password", "Band", "BSSID"]
|
||||
for j in ret_val[dut]["ssid_data"]:
|
||||
a = temp_data[dut][j].copy()
|
||||
a = dict.fromkeys(["ssid", "encryption", "password", "band", "bssid"])
|
||||
a["ssid"] = temp_data[dut][j][0]
|
||||
a["encryption"] = temp_data[dut][j][1]
|
||||
a["password"] = temp_data[dut][j][2]
|
||||
a["band"] = temp_data[dut][j][3]
|
||||
a["bssid"] = temp_data[dut][j][4]
|
||||
ret_val[dut]["ssid_data"][j] = a
|
||||
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 = dict.fromkeys(["ssid", "encryption", "password", "band", "bssid"])
|
||||
a["ssid"] = temp_data[dut][j][0]
|
||||
a["encryption"] = temp_data[dut][j][1]
|
||||
a["password"] = temp_data[dut][j][2]
|
||||
a["band"] = temp_data[dut][j][3]
|
||||
a["bssid"] = temp_data[dut][j][4]
|
||||
ret_val[dut]["ssid_data"][j] = a
|
||||
temp = ret_val[dut]["radio_data"].copy()
|
||||
logging.info(f"temp:{temp}")
|
||||
for j in temp:
|
||||
@@ -660,14 +684,19 @@ class tip_2x:
|
||||
band = "2G"
|
||||
elif o[i + 9].__contains__("5."):
|
||||
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:
|
||||
band = "6G"
|
||||
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 q in ssid_info_sdk:
|
||||
if iwinfo_bssid_data[p][0] == q[0] and iwinfo_bssid_data[p][2] == q[3]:
|
||||
q.append(iwinfo_bssid_data[p][1])
|
||||
ssid_info_sdk.append(channel_info)
|
||||
logging.info(f"ssid_info_sdk:{ssid_info_sdk}")
|
||||
return ssid_info_sdk
|
||||
|
||||
def get_dut_version(self):
|
||||
|
||||
@@ -252,7 +252,7 @@ def get_security_flags():
|
||||
security = ["open", "wpa", "wep", "wpa2_personal", "wpa3_personal", "wpa3_personal_mixed",
|
||||
"wpa_wpa2_enterprise_mixed", "wpa2_eap", "wpa2_only_eap",
|
||||
"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
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
pytest -m "external_captive_portal_tests and bridge"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
import re
|
||||
import time
|
||||
@@ -12,47 +13,127 @@ import paramiko
|
||||
import pytest
|
||||
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]
|
||||
|
||||
|
||||
captive = {
|
||||
"auth-mode": "uam",
|
||||
"uam-port": 3990,
|
||||
"uam-secret": "hotsys123",
|
||||
"uam-server": "https://customer.hotspotsystem.com/customer/hotspotlogin.php",
|
||||
"nasid": "AlmondLabs",
|
||||
"auth-server": "radius.hotspotsystem.com",
|
||||
"auth-port": 1812,
|
||||
"auth-secret": "hotsys123",
|
||||
"walled-garden-fqdn": ["*.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": {
|
||||
"auth-mode": "uam",
|
||||
"uam-port": 3990,
|
||||
"uam-secret": "hotsys123",
|
||||
"uam-server": "https://customer.hotspotsystem.com/customer/hotspotlogin.php",
|
||||
"nasid": "AlmondLabs",
|
||||
"auth-server": "radius.hotspotsystem.com",
|
||||
"auth-port": 1812,
|
||||
"auth-secret": "hotsys123",
|
||||
"walled-garden-fqdn": [
|
||||
"*.google.com",
|
||||
"telecominfraproject.com",
|
||||
"customer.hotspotsystem.com",
|
||||
"youtube.com"
|
||||
]
|
||||
"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
|
||||
}
|
||||
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="External Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
External Captive Portal Test: BRIDGE Mode
|
||||
@@ -61,17 +142,17 @@ class TestBridgeModeExternalCaptivePortal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.click_to_continue
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_bridge_open_2g_click_to_continue(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, check_connectivity, setup_configuration,
|
||||
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,
|
||||
get_testbed_details, get_target_object):
|
||||
"""
|
||||
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"
|
||||
"""
|
||||
get_test_library.check_band_ap(band="twog")
|
||||
def run_command_using_ssh(ssh_client, command: str):
|
||||
output = ""
|
||||
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]
|
||||
security = "open"
|
||||
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...")
|
||||
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]",
|
||||
security="open",
|
||||
mode=setup_params_general["mode"],
|
||||
@@ -106,6 +371,178 @@ class TestBridgeModeExternalCaptivePortal(object):
|
||||
station_name=[station],
|
||||
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}")
|
||||
dict_table_sta = {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
pytest -m "external_captive_portal_tests and NAT"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
import re
|
||||
import time
|
||||
@@ -12,14 +13,9 @@ import paramiko
|
||||
import pytest
|
||||
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 = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_ext_cap_portal_open_2g_ctc", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
captive = {
|
||||
"auth-mode": "uam",
|
||||
"uam-port": 3990,
|
||||
"uam-secret": "hotsys123",
|
||||
@@ -35,43 +31,132 @@ setup_params_general = {
|
||||
"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
|
||||
}
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="External Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
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.twog
|
||||
@pytest.mark.click_to_continue
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_nat_open_2g_click_to_continue(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, check_connectivity, setup_configuration,
|
||||
get_testbed_details, get_target_object):
|
||||
def test_nat_open_2g_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 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):
|
||||
output = ""
|
||||
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]
|
||||
security = "open"
|
||||
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...")
|
||||
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="NAT-WAN",
|
||||
radio=radio_port_name,
|
||||
band="twog",
|
||||
station_name=[station],
|
||||
attach_port_info=False
|
||||
)
|
||||
@@ -218,3 +314,348 @@ class TestNatModeExternalCaptivePortal(object):
|
||||
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 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"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
import re
|
||||
import time
|
||||
@@ -13,14 +14,10 @@ import pytest
|
||||
from tabulate import tabulate
|
||||
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 = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_ext_cap_portal_open_2g_id_p", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
captive ={
|
||||
"auth-mode": "uam",
|
||||
"uam-port": 3990,
|
||||
"uam-secret": "hotsys123",
|
||||
@@ -36,24 +33,113 @@ setup_params_general = {
|
||||
"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
|
||||
}
|
||||
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="External Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
External Captive Portal Test: BRIDGE Mode
|
||||
@@ -62,17 +148,17 @@ class TestBridgeModeExternalCaptivePortal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.local_user_and_pass
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_bridge_open_2g_local_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, check_connectivity, setup_configuration,
|
||||
def test_bridge_open_2g_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 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"
|
||||
"""
|
||||
get_test_library.check_band_ap(band="twog")
|
||||
def run_command_using_ssh(ssh_client, command: str):
|
||||
output = ""
|
||||
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]
|
||||
security = "open"
|
||||
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...")
|
||||
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"],
|
||||
@@ -251,3 +347,408 @@ class TestBridgeModeExternalCaptivePortal(object):
|
||||
logging.info("Throughput exceeded than set threshold")
|
||||
pytest.fail("Throughput exceeded than 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"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
import re
|
||||
import time
|
||||
@@ -13,14 +14,10 @@ import pytest
|
||||
from tabulate import tabulate
|
||||
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 = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_ext_cap_portal_open_2g_id_p", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
captive = {
|
||||
"auth-mode": "uam",
|
||||
"uam-port": 3990,
|
||||
"uam-secret": "hotsys123",
|
||||
@@ -36,24 +33,113 @@ setup_params_general = {
|
||||
"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
|
||||
}
|
||||
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="External Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
External Captive Portal Test: NAT Mode
|
||||
@@ -62,17 +148,17 @@ class TestNatModeExternalCaptivePortal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.local_user_and_pass
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_nat_open_2g_local_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, check_connectivity, setup_configuration,
|
||||
get_testbed_details, get_target_object):
|
||||
def test_nat_open_2g_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 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"
|
||||
"""
|
||||
get_test_library.check_band_ap(band="twog")
|
||||
def run_command_using_ssh(ssh_client, command: str):
|
||||
output = ""
|
||||
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]
|
||||
security = "open"
|
||||
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...")
|
||||
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="NAT-WAN",
|
||||
@@ -251,3 +347,408 @@ class TestNatModeExternalCaptivePortal(object):
|
||||
logging.info("Throughput exceeded than set threshold")
|
||||
pytest.fail("Throughput exceeded than 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"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.bridge, pytest.mark.internal_captive_portal_tests]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.bridge, pytest.mark.internal_captive_portal_tests,
|
||||
pytest.mark.click_to_continue]
|
||||
captive = {
|
||||
"auth-mode": "click-to-continue",
|
||||
"walled-garden-fqdn": [
|
||||
"*.google.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
|
||||
}
|
||||
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="Internal Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
Advanced Captive Portal Test: BRIDGE Mode
|
||||
@@ -49,13 +135,12 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.click_to_continue
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_bridge_open_2g_click_to_continue(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, num_stations, check_connectivity,
|
||||
setup_configuration, get_testbed_details, get_target_object):
|
||||
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, num_stations,
|
||||
check_connectivity, get_testbed_details, get_target_object):
|
||||
"""
|
||||
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"
|
||||
@@ -81,9 +166,90 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
||||
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=setup_configuration,
|
||||
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.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"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
captive = {
|
||||
"auth-mode": "click-to-continue",
|
||||
"walled-garden-fqdn": [
|
||||
"*.google.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
|
||||
}
|
||||
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="Internal Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
Advanced Captive Portal Test: NAT Mode
|
||||
@@ -49,13 +135,13 @@ class TestNatModeadvancedcaptiveportal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.click_to_continue
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_nat_open_2g_click_to_continue(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, num_stations, check_connectivity,
|
||||
setup_configuration, get_testbed_details, get_target_object):
|
||||
def test_nat_open_2g_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 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"
|
||||
@@ -81,9 +167,92 @@ class TestNatModeadvancedcaptiveportal(object):
|
||||
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=setup_configuration,
|
||||
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.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"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
captive = {
|
||||
"auth-mode": "credentials",
|
||||
"credentials": [
|
||||
{
|
||||
@@ -29,24 +26,111 @@ setup_params_general = {
|
||||
"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
|
||||
}
|
||||
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="Internal Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
Advanced Captive Portal Test: BRIDGE Mode
|
||||
@@ -55,13 +139,12 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.local_user_and_pass
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_bridge_open_2g_local_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, num_stations, check_connectivity,
|
||||
setup_configuration, get_testbed_details, get_target_object):
|
||||
def test_bridge_open_2g_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 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"
|
||||
@@ -93,9 +176,106 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
||||
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=setup_configuration,
|
||||
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.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"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests,
|
||||
pytest.mark.local_user_and_pass]
|
||||
captive = {
|
||||
"auth-mode": "credentials",
|
||||
"credentials": [
|
||||
{
|
||||
@@ -29,24 +25,111 @@ setup_params_general = {
|
||||
"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
|
||||
}
|
||||
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="Internal Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
Advanced Captive Portal Test: NAT Mode
|
||||
@@ -55,13 +138,12 @@ class TestNatModeadvancedcaptiveportal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.local_user_and_pass
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_nat_open_2g_local_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, num_stations, check_connectivity,
|
||||
setup_configuration, get_testbed_details, get_target_object):
|
||||
def test_nat_open_2g_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 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"
|
||||
@@ -93,9 +175,102 @@ class TestNatModeadvancedcaptiveportal(object):
|
||||
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=setup_configuration,
|
||||
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.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"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
captive = {
|
||||
"auth-mode": "radius",
|
||||
"auth-server": "10.28.3.21",
|
||||
"auth-port": 1812,
|
||||
@@ -26,24 +23,110 @@ setup_params_general = {
|
||||
"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
|
||||
}
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="Internal Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
Advanced Captive Portal Test: BRIDGE Mode
|
||||
@@ -52,14 +135,12 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.radius_user_and_pass
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_bridge_open_2g_radius_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, num_stations, check_connectivity,
|
||||
setup_configuration, get_testbed_details, get_target_object,
|
||||
radius_info):
|
||||
def test_bridge_open_2g_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 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"
|
||||
@@ -92,9 +173,106 @@ class TestBridgeModeadvancedcaptiveportal(object):
|
||||
" 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=setup_configuration,
|
||||
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.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"
|
||||
|
||||
"""
|
||||
import copy
|
||||
import logging
|
||||
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"open": [
|
||||
{"ssid_name": "ssid_captive_portal_open_2g_br", "appliedRadios": ["2G"], "security_key": "something",
|
||||
"captive": {
|
||||
pytestmark = [pytest.mark.advanced_captive_portal_tests, pytest.mark.nat, pytest.mark.internal_captive_portal_tests,
|
||||
pytest.mark.radius_user_and_pass]
|
||||
captive = {
|
||||
"auth-mode": "radius",
|
||||
"auth-server": "10.28.3.21",
|
||||
"auth-port": 1812,
|
||||
@@ -26,24 +22,110 @@ setup_params_general = {
|
||||
"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
|
||||
}
|
||||
# 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.parent_suite("Advanced Captive Portal Tests")
|
||||
@allure.suite(suite_name="Internal Captive Portal")
|
||||
@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):
|
||||
"""
|
||||
Advanced Captive Portal Test: NAT Mode
|
||||
@@ -52,14 +134,12 @@ class TestNATModeadvancedcaptiveportal(object):
|
||||
|
||||
@pytest.mark.open
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.radius_user_and_pass
|
||||
@pytest.mark.ow_regression_lf
|
||||
@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")
|
||||
def test_nat_open_2g_radius_user_and_pass(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs, num_stations, check_connectivity,
|
||||
setup_configuration, get_testbed_details, get_target_object,
|
||||
radius_info):
|
||||
def test_nat_open_2g_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 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"
|
||||
@@ -92,9 +172,104 @@ class TestNATModeadvancedcaptiveportal(object):
|
||||
" 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=setup_configuration,
|
||||
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.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",
|
||||
"country": "US",
|
||||
"allow-dfs": True,
|
||||
"channel-mode": "VHT",
|
||||
"channel-width": 80,
|
||||
"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
|
||||
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]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
band = "fiveg"
|
||||
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,
|
||||
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
||||
get_target_object.reboot()
|
||||
@@ -78,7 +79,6 @@ setup_params_general2 = {
|
||||
"band": "5G",
|
||||
"country": "US",
|
||||
"allow-dfs": True,
|
||||
"channel-mode": "VHT",
|
||||
"channel-width": 80,
|
||||
"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
|
||||
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]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
band = "fiveg"
|
||||
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,
|
||||
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
||||
get_target_object.reboot()
|
||||
@@ -135,7 +136,6 @@ setup_params_general11 = {
|
||||
"band": "5G",
|
||||
"country": "US",
|
||||
"allow-dfs": True,
|
||||
"channel-mode": "VHT",
|
||||
"channel-width": 80,
|
||||
"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"
|
||||
|
||||
"""
|
||||
channel = setup_params_general11["rf"]["5G"]["channel"]
|
||||
profile_data = setup_params_general11["ssid_modes"]["wpa2_personal"][0]
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security_key = profile_data["security_key"]
|
||||
security = "wpa2"
|
||||
band = "fiveg"
|
||||
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,
|
||||
num_sta=1, dut_data=setup_configuration, tip_2x_obj=get_target_object)
|
||||
get_target_object.reboot()
|
||||
|
||||
@@ -14,10 +14,23 @@ setup_params_general_5G = {
|
||||
]
|
||||
},
|
||||
"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
|
||||
@@ -208,7 +221,20 @@ setup_params_general_2G = {
|
||||
"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
|
||||
|
||||
@@ -14,10 +14,23 @@ setup_params_general_5G = {
|
||||
]
|
||||
},
|
||||
"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
|
||||
@@ -209,7 +222,20 @@ setup_params_general_2G = {
|
||||
"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
|
||||
|
||||
@@ -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
|
||||
pytest -m "client_scale_test and BRIDGE"
|
||||
Performance Test: AX Client Scale Test : BRIDGE Mode
|
||||
pytest -m "ax_client_scale_tests and BRIDGE"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "BRIDGE",
|
||||
@@ -22,8 +22,8 @@ setup_params_general_2G = {
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="Open Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -37,8 +37,8 @@ setup_params_general_2G = {
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.twog_band
|
||||
class TestWifiCapacityBRIDGEMode2G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and twog"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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")
|
||||
@@ -47,8 +47,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and twog and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and twog and tcp_download"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -66,8 +66,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and twog and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and twog and udp_download"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and twog and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and twog and tcp_bidirectional"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and twog and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and twog and udp_bidirectional"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and twog and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and twog and tcp_upload"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and twog and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and twog and udp_upload"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -170,8 +170,8 @@ setup_params_general_5G = {
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="Open Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -185,8 +185,8 @@ setup_params_general_5G = {
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.fiveg_band
|
||||
class TestWifiCapacityBRIDGEMode5G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and fiveg"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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")
|
||||
@@ -196,8 +196,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
||||
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):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and fiveg and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and fiveg and tcp_download"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and fiveg and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and fiveg and udp_download"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and fiveg and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and fiveg and tcp_bidirectional"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and fiveg and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and fiveg and udp_bidirectional"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and fiveg and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and fiveg and udp_upload"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and open and fiveg and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
pytest -m "ax_client_scale_tests and bridge and open and fiveg and tcp_upload"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -1,14 +1,14 @@
|
||||
"""
|
||||
|
||||
Performance Test: Client Scale Test : NAT Mode
|
||||
pytest -m "client_scale_test and nat"
|
||||
Performance Test: AX Client Scale Test : NAT Mode
|
||||
pytest -m "ax_client_scale_tests and nat"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "NAT",
|
||||
@@ -22,8 +22,8 @@ setup_params_general_2G = {
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="Open Security")
|
||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -37,8 +37,8 @@ setup_params_general_2G = {
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.twog_band
|
||||
class TestWifiCapacityNATMode2G(object):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and twog"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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")
|
||||
@@ -47,8 +47,8 @@ class TestWifiCapacityNATMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and twog and tcp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and twog and tcp_download"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -66,8 +66,8 @@ class TestWifiCapacityNATMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and twog and udp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and twog and udp_download"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and twog and tcp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and twog and tcp_bidirectional"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and twog and udp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and twog and udp_bidirectional"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and twog and tcp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and twog and tcp_upload"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and twog and udp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and twog and udp_upload"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_2g", "appliedRadios": ["2G"]}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -170,8 +170,8 @@ setup_params_general_5G = {
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="Open Security")
|
||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -185,8 +185,8 @@ setup_params_general_5G = {
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.fiveg_band
|
||||
class TestWifiCapacityNATMode5G(object):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and fiveg"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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")
|
||||
@@ -196,8 +196,8 @@ class TestWifiCapacityNATMode5G(object):
|
||||
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):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and fiveg and tcp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and fiveg and tcp_download"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and fiveg and udp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and fiveg and udp_download"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and fiveg and tcp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and fiveg and tcp_bidirectional"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and fiveg and udp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and fiveg and udp_bidirectional"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and fiveg and udp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and fiveg and udp_upload"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and open and fiveg and tcp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
pytest -m "ax_client_scale_tests and nat and open and fiveg and tcp_upload"
|
||||
"""
|
||||
profile_data = {"ssid_name": "ssid_open_5g", "appliedRadios": ["5G"]}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -306,4 +306,4 @@ class TestWifiCapacityNATMode5G(object):
|
||||
upload_rate="1Gbps", protocol="TCP", duration="60000",
|
||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||
num_stations={"5G": max_stations})
|
||||
assert True
|
||||
assert True
|
||||
@@ -1,14 +1,14 @@
|
||||
"""
|
||||
|
||||
Performance Test: Client Scale Test : BRIDGE Mode
|
||||
pytest -m "client_scale_test and BRIDGE"
|
||||
Performance Test: AX Client Scale Test : BRIDGE Mode
|
||||
pytest -m "ax_client_scale_tests and BRIDGE"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "BRIDGE",
|
||||
@@ -17,13 +17,32 @@ setup_params_general_2G = {
|
||||
{"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
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA2 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -37,18 +56,19 @@ setup_params_general_2G = {
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.twog_band
|
||||
class TestWifiCapacityBRIDGEMode2G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_upload
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_upload
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and twog and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -167,13 +190,32 @@ setup_params_general_5G = {
|
||||
{"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
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA2 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -187,19 +229,20 @@ setup_params_general_5G = {
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.fiveg_band
|
||||
class TestWifiCapacityBRIDGEMode5G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -274,12 +318,13 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
||||
|
||||
@pytest.mark.udp_upload
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -293,12 +338,13 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
||||
|
||||
@pytest.mark.tcp_upload
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and fiveg and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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"}
|
||||
]
|
||||
},
|
||||
"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
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA2 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -340,18 +405,19 @@ setup_params_general_dual = {
|
||||
@pytest.mark.dual_band
|
||||
@pytest.mark.twog_band
|
||||
class TestWifiCapacityBRIDGEModeDual(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_upload
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_upload
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa2_personal and dual_band and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -460,4 +529,4 @@ class TestWifiCapacityBRIDGEModeDual(object):
|
||||
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})
|
||||
assert True
|
||||
assert True
|
||||
@@ -1,14 +1,14 @@
|
||||
"""
|
||||
|
||||
Performance Test: Client Scale Test : NAT Mode
|
||||
pytest -m "client_scale_test and nat"
|
||||
Performance Test: AX Client Scale Test : NAT Mode
|
||||
pytest -m "ax_client_scale_tests and nat"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "NAT",
|
||||
@@ -17,13 +17,32 @@ setup_params_general_2G = {
|
||||
{"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
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA2 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -37,18 +56,19 @@ setup_params_general_2G = {
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.twog_band
|
||||
class TestWifiCapacityNATMode2G(object):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and tcp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and udp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and tcp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and udp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_upload
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and tcp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_upload
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and twog and udp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -167,13 +190,32 @@ setup_params_general_5G = {
|
||||
{"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
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA2 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -187,19 +229,20 @@ setup_params_general_5G = {
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.fiveg_band
|
||||
class TestWifiCapacityNATMode5G(object):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and tcp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and udp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and tcp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and udp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -274,12 +318,13 @@ class TestWifiCapacityNATMode5G(object):
|
||||
|
||||
@pytest.mark.udp_upload
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and udp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -293,12 +338,13 @@ class TestWifiCapacityNATMode5G(object):
|
||||
|
||||
@pytest.mark.tcp_upload
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and fiveg and tcp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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"}
|
||||
]
|
||||
},
|
||||
"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
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA2 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="NAT Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -340,18 +405,19 @@ setup_params_general_dual = {
|
||||
@pytest.mark.dual_band
|
||||
@pytest.mark.twog_band
|
||||
class TestWifiCapacityNATModeDual(object):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and tcp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_download
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and udp_download"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and tcp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and udp_bidirectional"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.tcp_upload
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and tcp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
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")
|
||||
@pytest.mark.wpa2_personal
|
||||
@pytest.mark.udp_upload
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test NAT mode
|
||||
pytest -m "client_scale_tests and nat and wpa2_personal and dual_band and udp_upload"
|
||||
""" AX Client Scale Test NAT mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -460,4 +529,4 @@ class TestWifiCapacityNATModeDual(object):
|
||||
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})
|
||||
assert True
|
||||
assert True
|
||||
@@ -1,14 +1,14 @@
|
||||
"""
|
||||
|
||||
Performance Test: Client Scale Test : BRIDGE Mode
|
||||
pytest -m "client_scale_tests and bridge"
|
||||
Performance Test: AX Client Scale Test : BRIDGE Mode
|
||||
pytest -m "ax_client_scale_tests and bridge"
|
||||
|
||||
"""
|
||||
import os
|
||||
import pytest
|
||||
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 = {
|
||||
"mode": "BRIDGE",
|
||||
@@ -22,8 +22,8 @@ setup_params_general_2G = {
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA3 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -37,8 +37,8 @@ setup_params_general_2G = {
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.twog_band
|
||||
class TestWifiCapacityBRIDGEMode2G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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")
|
||||
@@ -47,8 +47,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -65,8 +65,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -83,8 +83,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -102,8 +102,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and twog and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -168,8 +168,8 @@ setup_params_general_5G = {
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA3 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -183,8 +183,8 @@ setup_params_general_5G = {
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.fiveg_band
|
||||
class TestWifiCapacityBRIDGEMode5G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
client_scale_tests and bridge and wpa3_personal and fiveg"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
ax_client_scale_tests and bridge and wpa3_personal and fiveg"
|
||||
"""
|
||||
|
||||
@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")
|
||||
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):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -212,8 +212,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -270,8 +270,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -288,8 +288,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and fiveg and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -310,13 +310,32 @@ setup_params_general_6G = {
|
||||
{"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
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA3 Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -328,20 +347,20 @@ setup_params_general_6G = {
|
||||
@pytest.mark.usefixtures("setup_configuration")
|
||||
@pytest.mark.wpa3_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.performance
|
||||
class TestWifiCapacityBRIDGEMode6G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
client_scale_tests and bridge and wpa3_personal and sixg"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
ax_client_scale_tests and bridge and wpa3_personal and sixg"
|
||||
"""
|
||||
|
||||
@pytest.mark.wpa3_personal
|
||||
@pytest.mark.tcp_download
|
||||
@pytest.mark.sixg
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -357,11 +376,12 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
||||
@pytest.mark.wpa3_personal
|
||||
@pytest.mark.udp_download
|
||||
@pytest.mark.sixg
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -418,11 +438,12 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
||||
@pytest.mark.wpa3_personal
|
||||
@pytest.mark.tcp_upload
|
||||
@pytest.mark.sixg
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -437,11 +458,12 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
||||
@pytest.mark.wpa3_personal
|
||||
@pytest.mark.udp_upload
|
||||
@pytest.mark.sixg
|
||||
@pytest.mark.performance
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa3_personal and sixg and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -451,4 +473,4 @@ class TestWifiCapacityBRIDGEMode6G(object):
|
||||
upload_rate="1Gbps", protocol="UDP", duration="60000",
|
||||
move_to_influx=False, dut_data=setup_configuration, ssid_name=ssid_name,
|
||||
num_stations={"6G": max_stations})
|
||||
assert True
|
||||
assert True
|
||||
@@ -1,14 +1,14 @@
|
||||
"""
|
||||
|
||||
Performance Test: Client Scale Test : BRIDGE Mode
|
||||
pytest -m "client_scale_test and BRIDGE"
|
||||
Performance Test: AX Client Scale Test : BRIDGE Mode
|
||||
pytest -m "ax_client_scale_tests and BRIDGE"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "BRIDGE",
|
||||
@@ -22,8 +22,8 @@ setup_params_general_2G = {
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="WPA Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -37,8 +37,8 @@ setup_params_general_2G = {
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.twog_band
|
||||
class TestWifiCapacityBRIDGEMode2G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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")
|
||||
@@ -47,8 +47,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -66,8 +66,8 @@ class TestWifiCapacityBRIDGEMode2G(object):
|
||||
@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,
|
||||
get_test_device_logs, num_stations, setup_configuration, max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and twog and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -170,8 +170,8 @@ setup_params_general_5G = {
|
||||
}
|
||||
|
||||
|
||||
@allure.feature("Client Scale Tests")
|
||||
@allure.parent_suite("Client Scale Tests")
|
||||
@allure.feature("AX Client Scale Tests")
|
||||
@allure.parent_suite("AX Client Scale Tests")
|
||||
@allure.suite(suite_name="wpa Personal Security")
|
||||
@allure.sub_suite(sub_suite_name="BRIDGE Mode")
|
||||
@pytest.mark.parametrize(
|
||||
@@ -185,8 +185,8 @@ setup_params_general_5G = {
|
||||
@pytest.mark.fiveg
|
||||
@pytest.mark.fiveg_band
|
||||
class TestWifiCapacityBRIDGEMode5G(object):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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")
|
||||
@@ -196,8 +196,8 @@ class TestWifiCapacityBRIDGEMode5G(object):
|
||||
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):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and tcp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and udp_download"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and tcp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and udp_bidirectional"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and udp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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,
|
||||
get_test_device_logs, num_stations, setup_configuration,
|
||||
max_stations):
|
||||
""" Client Scale Test BRIDGE mode
|
||||
pytest -m "client_scale_tests and bridge and wpa_personal and fiveg and tcp_upload"
|
||||
""" AX Client Scale Test BRIDGE mode
|
||||
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"}
|
||||
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"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import os
|
||||
import pytest
|
||||
import allure
|
||||
@@ -11,28 +12,146 @@ import allure
|
||||
pytestmark = [pytest.mark.dataplane_tests,
|
||||
pytest.mark.bridge, pytest.mark.wpa2_personal, pytest.mark.performance]
|
||||
|
||||
setup_params_general = {
|
||||
setup_params_general1 = {
|
||||
"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"}]},
|
||||
"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
|
||||
}
|
||||
|
||||
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.parent_suite("Dataplane Tests")
|
||||
@allure.suite(suite_name="WPA2 Personal Security")
|
||||
@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):
|
||||
"""Dataplane THroughput BRIDGE Mode
|
||||
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,
|
||||
get_test_device_logs, client_type,
|
||||
get_target_object,
|
||||
num_stations, setup_configuration):
|
||||
num_stations, initialize_testbed):
|
||||
"""Dataplane THroughput BRIDGE Mode.
|
||||
pytest -m "dataplane_tests and bridge and wpa2_personal and twog"
|
||||
"""
|
||||
@@ -55,14 +174,17 @@ class TestDataplaneThroughputBRIDGE(object):
|
||||
security = "wpa2"
|
||||
mode = "BRIDGE"
|
||||
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"
|
||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, passkey=security_key, security=security,
|
||||
num_sta=1, mode=mode,
|
||||
band=band,
|
||||
instance_name="TIP_DPT_DPT_WPA2_2G_BRIDGE",
|
||||
influx_tags=influx_tags, move_to_influx=False,
|
||||
dut_data=setup_configuration,
|
||||
client_type=client_type
|
||||
dut_data=dut_data,
|
||||
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")
|
||||
@@ -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,
|
||||
get_test_device_logs, client_type,
|
||||
get_target_object,
|
||||
num_stations, setup_configuration):
|
||||
num_stations, initialize_testbed):
|
||||
"""Dataplane THroughput BRIDGE Mode
|
||||
pytest -m "dataplane_tests and bridge and wpa2_personal and fiveg"
|
||||
"""
|
||||
@@ -82,12 +204,15 @@ class TestDataplaneThroughputBRIDGE(object):
|
||||
security_key = profile_data["security_key"]
|
||||
mode = "BRIDGE"
|
||||
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"
|
||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, passkey=security_key, security=security,
|
||||
num_sta=1, mode=mode,
|
||||
band=band,
|
||||
instance_name="TIP_DPT_DPT_WPA2_5G_BRIDGE",
|
||||
influx_tags=influx_tags, move_to_influx=False,
|
||||
dut_data=setup_configuration,
|
||||
client_type=client_type
|
||||
dut_data=dut_data,
|
||||
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"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import os
|
||||
import pytest
|
||||
import allure
|
||||
@@ -11,28 +12,148 @@ import allure
|
||||
pytestmark = [pytest.mark.dataplane_tests,
|
||||
pytest.mark.nat, pytest.mark.wpa2_personal, pytest.mark.performance]
|
||||
|
||||
setup_params_general = {
|
||||
setup_params_general1 = {
|
||||
"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"}]},
|
||||
"rf": {},
|
||||
{"ssid_name": "wpa2_personal_dataplane_5g", "appliedRadios": ["5G"], "security_key": "something"}
|
||||
]},
|
||||
"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
|
||||
}
|
||||
|
||||
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.parent_suite("Dataplane Tests")
|
||||
@allure.suite(suite_name="WPA2 Personal Security")
|
||||
@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):
|
||||
"""Dataplane THroughput NAT Mode
|
||||
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,
|
||||
get_test_device_logs, client_type,
|
||||
get_target_object,
|
||||
num_stations, setup_configuration):
|
||||
num_stations, initialize_testbed):
|
||||
"""Dataplane THroughput NAT Mode.
|
||||
pytest -m "dataplane_tests and nat and wpa2_personal and twog"
|
||||
"""
|
||||
@@ -55,14 +176,17 @@ class TestDataplaneThroughputNAT(object):
|
||||
security_key = profile_data["security_key"]
|
||||
mode = "NAT-WAN"
|
||||
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"
|
||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
||||
num_sta=1, mode=mode,
|
||||
band=band,
|
||||
instance_name="TIP_DPT_DPT_WPA2_2G_NAT",
|
||||
influx_tags=influx_tags, move_to_influx=False,
|
||||
dut_data=setup_configuration,
|
||||
client_type=client_type
|
||||
dut_data=dut_data,
|
||||
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")
|
||||
@@ -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,
|
||||
get_test_device_logs, client_type,
|
||||
get_target_object,
|
||||
num_stations, setup_configuration):
|
||||
num_stations, initialize_testbed):
|
||||
"""Dataplane THroughput NAT Mode
|
||||
pytest -m "dataplane_tests and nat and wpa2_personal and fiveg"
|
||||
"""
|
||||
@@ -82,12 +206,15 @@ class TestDataplaneThroughputNAT(object):
|
||||
security_key = profile_data["security_key"]
|
||||
mode = "NAT-WAN"
|
||||
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"
|
||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
||||
num_sta=1, mode=mode,
|
||||
band=band,
|
||||
instance_name="TIP_DPT_DPT_WPA2_5G_NAT",
|
||||
influx_tags=influx_tags, move_to_influx=False,
|
||||
dut_data=setup_configuration,
|
||||
client_type=client_type
|
||||
dut_data=dut_data,
|
||||
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"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import os
|
||||
import pytest
|
||||
import allure
|
||||
@@ -11,7 +12,7 @@ import allure
|
||||
pytestmark = [pytest.mark.dataplane_tests,
|
||||
pytest.mark.bridge, pytest.mark.wpa3_personal]
|
||||
|
||||
setup_params_general = {
|
||||
setup_params_general1 = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"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_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
|
||||
}
|
||||
|
||||
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.parent_suite("Dataplane Tests")
|
||||
@allure.suite(suite_name="WPA3 Personal Security")
|
||||
@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):
|
||||
"""Dataplane THroughput BRIDGE Mode
|
||||
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,
|
||||
get_test_device_logs, client_type,
|
||||
get_target_object,
|
||||
num_stations, setup_configuration):
|
||||
num_stations, initialize_testbed):
|
||||
"""Dataplane THroughput BRIDGE Mode
|
||||
pytest -m "dataplane_tests and bridge and wpa3_personal and sixg"
|
||||
"""
|
||||
@@ -112,12 +232,15 @@ class TestDataplaneThroughputBRIDGE(object):
|
||||
security_key = profile_data["security_key"]
|
||||
mode = "BRIDGE"
|
||||
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"
|
||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
||||
num_sta=num_stations, mode=mode,
|
||||
band=band,
|
||||
instance_name="TIP_DPT_DPT_WPA_6G_BRIDGE",
|
||||
influx_tags=influx_tags, move_to_influx=False,
|
||||
dut_data=setup_configuration,
|
||||
client_type=client_type
|
||||
dut_data=dut_data,
|
||||
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"
|
||||
|
||||
"""
|
||||
import logging
|
||||
import os
|
||||
import pytest
|
||||
import allure
|
||||
@@ -11,7 +12,7 @@ import allure
|
||||
pytestmark = [pytest.mark.dataplane_tests,
|
||||
pytest.mark.nat, pytest.mark.wpa3_personal]
|
||||
|
||||
setup_params_general = {
|
||||
setup_params_general1 = {
|
||||
"mode": "NAT",
|
||||
"ssid_modes": {
|
||||
"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_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
|
||||
}
|
||||
|
||||
|
||||
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.parent_suite("Dataplane Tests")
|
||||
@allure.suite(suite_name="WPA3 Personal Security")
|
||||
@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):
|
||||
"""Dataplane THroughput NAT Mode
|
||||
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,
|
||||
get_test_device_logs, client_type,
|
||||
get_target_object,
|
||||
num_stations, setup_configuration):
|
||||
num_stations, initialize_testbed):
|
||||
"""Dataplane THroughput NAT Mode
|
||||
pytest -m "dataplane_tests and nat and wpa3_personal and sixg"
|
||||
"""
|
||||
@@ -112,12 +233,15 @@ class TestDataplaneThroughputNAT(object):
|
||||
security_key = profile_data["security_key"]
|
||||
mode = "NAT-WAN"
|
||||
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"
|
||||
get_test_library.dataplane_throughput_test(ssid=ssid_name, security=security, passkey=security_key,
|
||||
num_sta=1, mode=mode,
|
||||
band=band,
|
||||
instance_name="TIP_DPT_DPT_WPA3_PERSONAL_6G_NAT",
|
||||
influx_tags=influx_tags, move_to_influx=False,
|
||||
dut_data=setup_configuration,
|
||||
client_type=client_type
|
||||
dut_data=dut_data,
|
||||
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
|
||||
pytest -m "performance and dual_band_tests and bridge"
|
||||
Multi Band Performance Test : BRIDGE Mode
|
||||
pytest -m "performance and multi_band_tests and bridge"
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import logging
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
pytestmark = [pytest.mark.dual_band_tests, pytest.mark.bridge,
|
||||
pytest.mark.single_station_dual_band_throughput]
|
||||
pytestmark = [pytest.mark.performance, pytest.mark.multi_band_tests, pytest.mark.bridge]
|
||||
|
||||
setup_params_general = {
|
||||
setup_params_general1 = {
|
||||
"mode": "BRIDGE",
|
||||
"ssid_modes": {
|
||||
"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
|
||||
}
|
||||
|
||||
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.wifi6
|
||||
@pytest.mark.parametrize(
|
||||
'setup_configuration',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
@allure.parent_suite("Dual Band Tests")
|
||||
@allure.suite("Dual Band Tests: Bridge mode")
|
||||
@pytest.mark.wifi7
|
||||
@allure.parent_suite("Multi Band Tests")
|
||||
@allure.suite("Multi Band Tests: Bridge mode")
|
||||
@allure.sub_suite("wpa3_personal security")
|
||||
@allure.feature("Dual band performance test")
|
||||
@pytest.mark.usefixtures("setup_configuration")
|
||||
class TestWpa3DualbandPerformanceBridge(object):
|
||||
@allure.feature("Multi band performance test")
|
||||
class TestWpa3MultibandPerformanceBridge(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")
|
||||
@pytest.mark.wpa3_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.fiveg
|
||||
@allure.title("Test Dual Band with ApAuto test of bridge mode")
|
||||
def test_client_wpa3_personal_bridge(self, get_test_library, setup_configuration, check_connectivity):
|
||||
@pytest.mark.sixg
|
||||
@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
|
||||
pytest -m "dual_band_tests and wpa3_personal"
|
||||
Multi Band Test with wpa3_personal encryption
|
||||
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"]
|
||||
logging.info(f"profile_data data:{profile_data}")
|
||||
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"
|
||||
vlan = 1
|
||||
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"
|
||||
for i in setup_configuration[dut_name]['ssid_data']:
|
||||
get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
|
||||
for i in dut_data[dut_name]['ssid_data']:
|
||||
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":
|
||||
dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
||||
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] + ' ' + \
|
||||
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,
|
||||
dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
|
||||
move_to_influx=False, dut_data=setup_configuration)
|
||||
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,
|
||||
move_to_influx=False, dut_data=dut_data)
|
||||
|
||||
assert True
|
||||
|
||||
@@ -1,64 +1,192 @@
|
||||
"""
|
||||
Dual Band Performance Test : NAT Mode
|
||||
pytest -m "performance and dual_band_tests and nat"
|
||||
Multi Band Performance Test : NAT Mode
|
||||
pytest -m "performance and multi_band_tests and nat"
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import logging
|
||||
import allure
|
||||
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",
|
||||
"ssid_modes": {
|
||||
"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
|
||||
}
|
||||
|
||||
|
||||
@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.wifi6
|
||||
@pytest.mark.parametrize(
|
||||
'setup_configuration',
|
||||
[setup_params_general],
|
||||
indirect=True,
|
||||
scope="class"
|
||||
)
|
||||
@allure.parent_suite("Dual Band Tests")
|
||||
@allure.suite("Dual Band Tests: NAT mode")
|
||||
@pytest.mark.wifi7
|
||||
@allure.parent_suite("Multi Band Tests")
|
||||
@allure.suite("Multi Band Tests: NAT mode")
|
||||
@allure.sub_suite("wpa3_personal security")
|
||||
@allure.feature("Dual band performance test")
|
||||
@pytest.mark.usefixtures("setup_configuration")
|
||||
class TestWpa3DualbandPerformanceNat(object):
|
||||
@allure.feature("Multi band performance test")
|
||||
class TestWpa3MultibandPerformanceNat(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")
|
||||
@pytest.mark.wpa3_personal
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.fiveg
|
||||
@allure.title("Test Dual Band with ApAuto test of NAT mode")
|
||||
def test_client_wpa3_personal_nat(self, get_test_library, setup_configuration, check_connectivity):
|
||||
@pytest.mark.sixg
|
||||
@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
|
||||
pytest -m "dual_band_tests and wpa3_personal"
|
||||
Multi Band Test with wpa3_personal encryption
|
||||
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"]
|
||||
logging.info(f"profile_data data:{profile_data}")
|
||||
|
||||
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"
|
||||
vlan = 1
|
||||
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"
|
||||
for i in setup_configuration[dut_name]['ssid_data']:
|
||||
get_test_library.dut_idx_mapping[str(i)] = list(setup_configuration[dut_name]['ssid_data'][i].values())
|
||||
for i in dut_data[dut_name]['ssid_data']:
|
||||
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":
|
||||
dut_5g = dut_name + ' ' + get_test_library.dut_idx_mapping[str(i)][0] + ' ' + \
|
||||
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] + ' ' + \
|
||||
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,
|
||||
dut_5g=dut_5g, dut_2g=dut_2g, influx_tags=influx_tags,
|
||||
move_to_influx=False, dut_data=setup_configuration)
|
||||
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,
|
||||
move_to_influx=False, dut_data=dut_data)
|
||||
|
||||
assert True
|
||||
|
||||
@@ -9,7 +9,7 @@ import allure
|
||||
import pytest
|
||||
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]
|
||||
|
||||
setup_params_general = {
|
||||
|
||||
@@ -9,7 +9,7 @@ import os
|
||||
import allure
|
||||
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]
|
||||
setup_params_general = {
|
||||
"mode": "NAT",
|
||||
|
||||
@@ -20,9 +20,24 @@ setup_params_general = {
|
||||
|
||||
]},
|
||||
"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}
|
||||
"band": "6G",
|
||||
"channel-width": 160,
|
||||
"channel-mode": "HE",
|
||||
"channel": 33
|
||||
}
|
||||
},
|
||||
"radius": False
|
||||
}
|
||||
@@ -61,17 +76,23 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
||||
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)
|
||||
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||
assert True
|
||||
|
||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12395", name="WIFI-12395")
|
||||
@pytest.mark.udp_download
|
||||
@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.wifi_capacity_ax_tests
|
||||
@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,
|
||||
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"}
|
||||
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)
|
||||
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||
assert True
|
||||
|
||||
@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")
|
||||
@pytest.mark.tcp_upload
|
||||
@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.wifi_capacity_ax_tests
|
||||
@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,
|
||||
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"}
|
||||
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_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)
|
||||
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||
assert True
|
||||
|
||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12392", name="WIFI-12392")
|
||||
@pytest.mark.udp_upload
|
||||
@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.wifi_capacity_ax_tests
|
||||
@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,
|
||||
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"}
|
||||
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)
|
||||
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||
assert True
|
||||
|
||||
@@ -19,9 +19,24 @@ setup_params_general = {
|
||||
{"ssid_name": "ssid_wpa3_6g_channel_auto", "appliedRadios": ["6G"], "security_key": "something"}
|
||||
]},
|
||||
"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}
|
||||
"band": "6G",
|
||||
"channel-width": 160,
|
||||
"channel-mode": "HE",
|
||||
"channel": 33
|
||||
}
|
||||
},
|
||||
"radius": False
|
||||
}
|
||||
@@ -45,7 +60,12 @@ class Test160Mhz6GChannelautoPeakThroughput(object):
|
||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12400", name="WIFI-12400")
|
||||
@pytest.mark.tcp_download
|
||||
@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.wifi_capacity_ax_tests
|
||||
@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,
|
||||
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"}
|
||||
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)
|
||||
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||
assert True
|
||||
|
||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12401", name="WIFI-12401")
|
||||
@pytest.mark.udp_download
|
||||
@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.wifi_capacity_ax_tests
|
||||
@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,
|
||||
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"}
|
||||
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)
|
||||
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||
assert True
|
||||
|
||||
@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")
|
||||
@pytest.mark.tcp_upload
|
||||
@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.wifi_capacity_ax_tests
|
||||
@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,
|
||||
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"}
|
||||
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)
|
||||
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||
assert True
|
||||
|
||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12398", name="WIFI-12398")
|
||||
@pytest.mark.udp_upload
|
||||
@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.wifi_capacity_ax_tests
|
||||
@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,
|
||||
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"}
|
||||
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)
|
||||
num_stations={"6G": 1}, pass_fail_criteria=True, sets_=sets)
|
||||
assert True
|
||||
|
||||
@@ -377,9 +377,9 @@
|
||||
"TCP": 3000,
|
||||
"UDP": 3000
|
||||
},
|
||||
"6G 4x4 160MHz": {
|
||||
"TCP": null,
|
||||
"UDP": null
|
||||
"6G 2x2 160MHz": {
|
||||
"TCP": 2000,
|
||||
"UDP": 2000
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -478,9 +478,9 @@
|
||||
"TCP": 3000,
|
||||
"UDP": 3000
|
||||
},
|
||||
"6G 4x4 160MHz": {
|
||||
"TCP": null,
|
||||
"UDP": null
|
||||
"6G 2x2 160MHz": {
|
||||
"TCP": 2000,
|
||||
"UDP": 2000
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -548,9 +548,9 @@
|
||||
"TCP": 3000,
|
||||
"UDP": 3000
|
||||
},
|
||||
"6G 4x4 160MHz": {
|
||||
"TCP": null,
|
||||
"UDP": null
|
||||
"6G 2x2 160MHz": {
|
||||
"TCP": 2000,
|
||||
"UDP": 2000
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -643,6 +643,72 @@
|
||||
"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"}],
|
||||
"wpa3_enterprise": [
|
||||
{"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_6g", "appliedRadios": ["6G"], "security_key": "something"}]},
|
||||
{"ssid_name": "tls_ssid_wpa3_eap_5g", "appliedRadios": ["5G"], "security_key": "something"}]},
|
||||
|
||||
"rf": {},
|
||||
"radius": True
|
||||
@@ -155,7 +154,7 @@ class TestBridgeModeEnterpriseTLSSuiteA(object):
|
||||
get_target_object,
|
||||
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"
|
||||
"""
|
||||
|
||||
@@ -283,14 +282,14 @@ class TestBridgeModeEnterpriseTLSSuiteTwo(object):
|
||||
|
||||
@pytest.mark.wpa_wpa2_enterprise_mixed
|
||||
@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")
|
||||
def test_wpa_wpa2_enterprise_2g(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs,
|
||||
get_target_object,
|
||||
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"
|
||||
"""
|
||||
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.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")
|
||||
def test_wpa_wpa2_enterprise_5g(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs,
|
||||
get_target_object,
|
||||
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"
|
||||
"""
|
||||
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.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")
|
||||
def test_wpa3_enterprise_mixed_2g(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs,
|
||||
get_target_object,
|
||||
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"
|
||||
"""
|
||||
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.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")
|
||||
def test_wpa3_enterprise_mixed_5g(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs,
|
||||
get_target_object,
|
||||
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"
|
||||
"""
|
||||
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
|
||||
wifi-3493
|
||||
"""
|
||||
import json
|
||||
import logging
|
||||
from datetime import time
|
||||
|
||||
import allure
|
||||
import pytest
|
||||
import requests
|
||||
|
||||
pytestmark = [pytest.mark.multi_psk_tests,
|
||||
pytest.mark.ow_regression_lf,
|
||||
pytest.mark.bridge,
|
||||
pytest.mark.wpa2_personal,
|
||||
pytest.mark.ow_sanity_lf,
|
||||
pytest.mark.twog]
|
||||
pytest.mark.twog,
|
||||
pytest.mark.ow_sanity_lf]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "BRIDGE",
|
||||
@@ -48,11 +52,11 @@ setup_params_general = {
|
||||
@allure.parent_suite("MultiPsk Test")
|
||||
@allure.suite("BRIDGE Mode")
|
||||
@allure.sub_suite("WPA2 Security")
|
||||
@pytest.mark.ow_regression_lf
|
||||
@pytest.mark.usefixtures("setup_configuration")
|
||||
class TestMultipskBridgeWPA2(object):
|
||||
|
||||
@pytest.mark.vlan1
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@pytest.mark.wpa2
|
||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-3493", name="WIFI-3493")
|
||||
@allure.title("Test for Client Connect with 1 VLAN")
|
||||
@@ -91,7 +95,6 @@ class TestMultipskBridgeWPA2(object):
|
||||
assert True
|
||||
|
||||
@pytest.mark.vlan2
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10657", name="WIFI-10657")
|
||||
@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,
|
||||
@@ -126,4 +129,125 @@ class TestMultipskBridgeWPA2(object):
|
||||
get_test_library.multi_psk_test(band=band, mpsk_data=mpsk_data, ssid=ssid, bssid="['BLANK']",
|
||||
passkey=security_key,
|
||||
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.upload_download
|
||||
@pytest.mark.batch_size_125
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@pytest.mark.rate_limiting_tests
|
||||
@pytest.mark.bridge
|
||||
@allure.testcase(name="WIFI-14364",
|
||||
|
||||
@@ -36,8 +36,8 @@ setup_params_general = {
|
||||
"appliedRadios": ["2G"],
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"egress-rate": 10
|
||||
"ingress-rate": 20,
|
||||
"egress-rate": 20
|
||||
},
|
||||
"radius_auth_data": RATE_LIMITING_RADIUS_SERVER_DATA,
|
||||
"radius_acc_data": RATE_LIMITING_RADIUS_ACCOUNTING_DATA
|
||||
@@ -47,8 +47,8 @@ setup_params_general = {
|
||||
"appliedRadios": ["5G"],
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"egress-rate": 10
|
||||
"ingress-rate": 20,
|
||||
"egress-rate": 20
|
||||
},
|
||||
"radius_auth_data": RATE_LIMITING_RADIUS_SERVER_DATA,
|
||||
"radius_acc_data": RATE_LIMITING_RADIUS_ACCOUNTING_DATA
|
||||
@@ -75,7 +75,6 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
|
||||
@pytest.mark.wpa2_enterprise
|
||||
@pytest.mark.twog
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@pytest.mark.twog_upload_per_ssid
|
||||
@allure.title("Test for Upload per SSID 2.4 GHz")
|
||||
@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_download_perssid_persta
|
||||
@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")
|
||||
def test_radius_server_2g_download_perssid_persta(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs,
|
||||
@@ -314,7 +313,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
@pytest.mark.wpa2_enterprise
|
||||
@pytest.mark.fiveg
|
||||
@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")
|
||||
def test_radius_server_fiveg_per_ssid_upload(self, get_test_library, get_dut_logs_per_test_case,
|
||||
get_test_device_logs,
|
||||
@@ -334,7 +334,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
band = "fiveg"
|
||||
eap = "TTLS"
|
||||
ttls_passwd = "password"
|
||||
identity = "bandwidth10m"
|
||||
identity = "user"
|
||||
configured = 5
|
||||
allure.attach(name="ssid-rates", body=str(profile_data["rate-limit"]))
|
||||
get_test_library.pre_cleanup()
|
||||
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
|
||||
if passes == "PASS":
|
||||
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",
|
||||
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,
|
||||
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
|
||||
else:
|
||||
assert False, f"Expected Throughput should be less than {configured} Mbps"
|
||||
|
||||
assert True
|
||||
|
||||
@pytest.mark.wpa2_enterprise
|
||||
@pytest.mark.fiveg
|
||||
@@ -797,8 +804,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
"appliedRadios": ["2G"],
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"egress-rate": 10
|
||||
"ingress-rate": 20,
|
||||
"egress-rate": 30
|
||||
}}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
mode = "BRIDGE"
|
||||
@@ -860,8 +867,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
"appliedRadios": ["2G"],
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"egress-rate": 10
|
||||
"ingress-rate": 60,
|
||||
"egress-rate": 50
|
||||
}}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
mode = "BRIDGE"
|
||||
@@ -923,8 +930,8 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
"appliedRadios": ["2G"],
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"egress-rate": 10
|
||||
"ingress-rate": 60,
|
||||
"egress-rate": 50
|
||||
}}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
mode = "BRIDGE"
|
||||
@@ -986,7 +993,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
"appliedRadios": ["2G"],
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"ingress-rate": 50,
|
||||
"egress-rate": 10
|
||||
}}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -1048,7 +1055,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
"appliedRadios": ["2G"],
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"ingress-rate": 50,
|
||||
"egress-rate": 10
|
||||
}}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
@@ -1112,7 +1119,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"egress-rate": 10
|
||||
"egress-rate": 50
|
||||
}}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
mode = "BRIDGE"
|
||||
@@ -1175,7 +1182,7 @@ class TestRateLimitingWithRadiusBridge(object):
|
||||
"security_key": "something",
|
||||
"rate-limit": {
|
||||
"ingress-rate": 10,
|
||||
"egress-rate": 10
|
||||
"egress-rate": 50
|
||||
}}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
mode = "BRIDGE"
|
||||
@@ -1274,6 +1281,7 @@ class TestRateLimitingWithRadiusBridgeSixg(object):
|
||||
@pytest.mark.wpa3_enterprise
|
||||
@pytest.mark.sixg
|
||||
@pytest.mark.sixg_upload_per_ssid
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@allure.title("Test for UDP Upload per SSID 6 GHz")
|
||||
@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,
|
||||
@@ -1326,6 +1334,7 @@ class TestRateLimitingWithRadiusBridgeSixg(object):
|
||||
@pytest.mark.wpa3_enterprise
|
||||
@pytest.mark.sixg
|
||||
@pytest.mark.sixg_download_perssid_persta
|
||||
@pytest.mark.ow_sanity_lf
|
||||
@allure.title("Test for TCP Download per Station 6GHz")
|
||||
@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,
|
||||
|
||||
@@ -21,8 +21,7 @@ setup_params_enterprise = {
|
||||
{"ssid_name": "ssid_wpa2_eap_5g", "appliedRadios": ["5G"]}],
|
||||
"wpa3_enterprise": [
|
||||
{"ssid_name": "ssid_wpa3_eap_2g", "appliedRadios": ["2G"]},
|
||||
{"ssid_name": "ssid_wpa3_eap_5g", "appliedRadios": ["5G"]},
|
||||
{"ssid_name": "ttls_ssid_wpa3_eap_6g", "appliedRadios": ["6G"]}]},
|
||||
{"ssid_name": "ssid_wpa3_eap_5g", "appliedRadios": ["5G"]}]},
|
||||
|
||||
"rf": {},
|
||||
"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",
|
||||
"vlan": 100}]
|
||||
},
|
||||
"rf": {},
|
||||
"rf": {
|
||||
"6G": {
|
||||
"band": "6G",
|
||||
"channel-mode": "EHT",
|
||||
"channel-width": 80,
|
||||
}
|
||||
},
|
||||
"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
|
||||
|
||||
pytestmark = [pytest.mark.dynamic_vlan_tests,
|
||||
pytest.mark.vlan]
|
||||
pytest.mark.vlan, pytest.mark.ow_sanity_lf]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "VLAN",
|
||||
@@ -71,8 +71,11 @@ class TestDynamicVlanOverSsid6GWpa3(object):
|
||||
pytest -m "dynamic_precedence_over_ssid and wpa3_enterprise and vlan and sixg"
|
||||
"""
|
||||
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa3_enterprise"]
|
||||
ssid_name = profile_data[1]["ssid_name"]
|
||||
profile_data = {"ssid_name": "ssid_wpa3e_6g", "appliedRadios": ["6G"],
|
||||
"security_key": "something",
|
||||
"vlan": 100
|
||||
}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security = "wpa3"
|
||||
extra_secu = []
|
||||
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
|
||||
|
||||
pytestmark = [pytest.mark.dynamic_vlan_tests,
|
||||
pytest.mark.vlan]
|
||||
pytest.mark.vlan, pytest.mark.ow_sanity_lf]
|
||||
|
||||
setup_params_general = {
|
||||
"mode": "VLAN",
|
||||
@@ -72,8 +72,11 @@ class TestDynamicVlan6GWpa3(object):
|
||||
pytest -m "absence_of_radius_vlan_identifier and wpa3_enterprise and vlan and sixg"
|
||||
"""
|
||||
|
||||
profile_data = setup_params_general["ssid_modes"]["wpa3_enterprise"]
|
||||
ssid_name = profile_data[1]["ssid_name"]
|
||||
profile_data = {"ssid_name": "ssid_wpa3e_6g", "appliedRadios": ["6G"],
|
||||
"security_key": "something",
|
||||
"vlan": 100
|
||||
}
|
||||
ssid_name = profile_data["ssid_name"]
|
||||
security = "wpa3"
|
||||
extra_secu = []
|
||||
band = "sixg"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import allure
|
||||
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 = {
|
||||
"mode": "VLAN",
|
||||
|
||||
Reference in New Issue
Block a user