Пример #1
0
    def __init__(self, controllers):
        TelephonyBaseTest.__init__(self, controllers)

        self.stress_test_number = self.get_stress_test_number()

        self.attens = {}
        for atten in self.attenuators:
            self.attens[atten.path] = atten
        attentuator_name_list = [
            ATTEN_NAME_FOR_WIFI_2G, ATTEN_NAME_FOR_WIFI_5G,
            ATTEN_NAME_FOR_CELL_3G, ATTEN_NAME_FOR_CELL_4G
        ]
        for atten_name in attentuator_name_list:
            set_rssi(self.log, self.attens[atten_name], 0,
                     MAX_RSSI_RESERVED_VALUE)
    def setup_class(self):
        super().setup_class()

        self.stress_test_number = self.get_stress_test_number()

        self.attens = {}
        for atten in self.attenuators:
            self.attens[atten.path] = atten
        attentuator_name_list = [
            ATTEN_NAME_FOR_WIFI_2G, ATTEN_NAME_FOR_WIFI_5G,
            ATTEN_NAME_FOR_CELL_3G, ATTEN_NAME_FOR_CELL_4G
        ]
        for atten_name in attentuator_name_list:
            set_rssi(self.log, self.attens[atten_name], 0,
                     MAX_RSSI_RESERVED_VALUE)
Пример #3
0
 def _atten_setup_wifi_cell(self):
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI_2G], 0,
              MAX_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI_5G], 0,
              MAX_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_3G], 0,
              MAX_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_4G], 0,
              MAX_RSSI_RESERVED_VALUE)
Пример #4
0
 def _atten_setup_no_service(self):
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI_2G], 0,
              MIN_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI_5G], 0,
              MIN_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_3G], 0,
              MIN_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_4G], 0,
              MIN_RSSI_RESERVED_VALUE)
Пример #5
0
 def teardown_test(self):
     super().teardown_test()
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI_2G], 0,
              MAX_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI_5G], 0,
              MAX_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_3G], 0,
              MAX_RSSI_RESERVED_VALUE)
     set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_4G], 0,
              MAX_RSSI_RESERVED_VALUE)
     return True
    def test_wifi_cell_switching_stress(self):
        """Test for data switch between WiFi and Cell. DUT go in and out WiFi
        coverage for multiple times.

        Steps:
        1. Set WiFi and Cellular signal to good (attenuation value to MIN).
        2. Make sure DUT get Cell data coverage (LTE) and WiFi connected.
        3. Set WiFi RSSI to MAX (WiFi attenuator value to MIN).
        4. Verify DUT report WiFi connected and Internet access OK.
        5. Set WiFi RSSI to MIN (WiFi attenuator value to MAX).
        6. Verify DUT report Cellular Data connected and Internet access OK.
        7. Repeat Step 3~6 for stress number.

        Expected Results:
        4. DUT report WiFi connected and Internet access OK.
        6. DUT report Cellular Data connected and Internet access OK.
        7. Stress test should pass.

        Returns:
        True if Pass. False if fail.
        """
        WIFI_RSSI_CHANGE_STEP_SIZE = 2
        WIFI_RSSI_CHANGE_DELAY_PER_STEP = 1
        # Set Attenuator Value for WiFi and Cell to 0.
        set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI], 0,
                 MAX_RSSI_RESERVED_VALUE)
        set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL], 0,
                 MAX_RSSI_RESERVED_VALUE)

        # Make sure DUT get Cell Data coverage (LTE).
        toggle_airplane_mode(self.log, self.android_devices[0], False)
        if not ensure_network_generation(self.log, self.android_devices[0],
                                         GEN_4G, NETWORK_SERVICE_DATA):
            return False

        # Make sure DUT WiFi is connected.
        if not ensure_wifi_connected(self.log, self.android_devices[0],
                                     self.live_network_ssid,
                                     self.live_network_pwd):
            self.log.error("{} connect WiFI failed".format(
                self.android_devices[0].serial))
            return False

        total_iteration = self.stress_test_number
        self.log.info("Stress test. Total iteration = {}.".format(
            total_iteration))
        current_iteration = 1
        while (current_iteration <= total_iteration):
            self.log.info(">----Current iteration = {}/{}----<".format(
                current_iteration, total_iteration))

            # Set WiFi RSSI to MAX.
            set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI], 0,
                     MAX_RSSI_RESERVED_VALUE, WIFI_RSSI_CHANGE_STEP_SIZE,
                     WIFI_RSSI_CHANGE_DELAY_PER_STEP)
            # Wait for DUT report WiFi connected and Internet access OK.
            if (not wait_for_wifi_data_connection(
                    self.log, self.android_devices[0], True) or
                    not verify_http_connection(self.log,
                                               self.android_devices[0])):
                self.log.error("Data not on WiFi")
                break

            # Set WiFi RSSI to MIN (DUT lose WiFi coverage).
            set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI], 0,
                     MIN_RSSI_RESERVED_VALUE, WIFI_RSSI_CHANGE_STEP_SIZE,
                     WIFI_RSSI_CHANGE_DELAY_PER_STEP)
            # Wait for DUT report Cellular Data connected and Internet access OK.
            if (not wait_for_cell_data_connection(
                    self.log, self.android_devices[0], True) or
                    not verify_http_connection(self.log,
                                               self.android_devices[0])):
                self.log.error("Data not on Cell")
                break

            self.log.info(">----Iteration : {}/{} succeed.----<".format(
                current_iteration, total_iteration))
            current_iteration += 1
        if current_iteration <= total_iteration:
            self.log.info(">----Iteration : {}/{} failed.----<".format(
                current_iteration, total_iteration))
            return False
        else:
            return True
Пример #7
0
    def environment_change_4g_3g(self):
        #block wifi 2G and 5G
        set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI_2G], 0,
                 MIN_RSSI_RESERVED_VALUE)
        set_rssi(self.log, self.attens[ATTEN_NAME_FOR_WIFI_5G], 0,
                 MIN_RSSI_RESERVED_VALUE)
        while time.time() < self.finishing_time:
            #set strong cell 4G and 3G
            set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_4G], 0,
                     MAX_RSSI_RESERVED_VALUE)
            set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_3G], 0,
                     MAX_RSSI_RESERVED_VALUE)
            #gratually decrease cell 4G
            set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_4G],
                     self.cell_rssi_with_no_atten, MIN_RSSI_RESERVED_VALUE,
                     self.signal_change_step, self.signal_change_interval)
            #gradtually increase cell 4G
            set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_4G],
                     MIN_RSSI_RESERVED_VALUE, MAX_RSSI_RESERVED_VALUE,
                     self.signal_change_step, self.signal_change_interval)
            #gratually decrease cell 3G
            set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_3G],
                     self.cell_rssi_with_no_atten, MIN_RSSI_RESERVED_VALUE,
                     self.signal_change_step, self.signal_change_interval)
            #gradtually increase cell 3G
            set_rssi(self.log, self.attens[ATTEN_NAME_FOR_CELL_3G],
                     MIN_RSSI_RESERVED_VALUE, MAX_RSSI_RESERVED_VALUE,
                     self.signal_change_step, self.signal_change_interval)

        return ""