class TestCase174SportStatisticalOverview(unittest.TestCase):
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.statistical_form_page3 = StatisticFormPage3(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.assert_text = AssertText()
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in_jimitest()

        # 登录之后点击控制台,然后点击设置
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)

    def tearDown(self):
        # 退出浏览器
        self.driver.quit_browser()

    def test_case_sport_statistical_sport_overview(self):
        # 断言url
        expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(
            expect_url_after_click_statistical_form,
            self.statistical_form_page.actual_url_after_statistical_form())
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_sport_overview_form(),
            self.statistical_form_page.actual_text_after_click_sport_overview(
            ))
        # 读数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'sport_statistical_sport_overview_search_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {
                'search_user': row[0],
                'choose_date': row[1],
                'begin_time': row[2],
                'end_time': row[3]
            }
            self.statistical_form_page.add_data_to_search_sport_overview(
                search_data)

            # 处理搜索出来的数据
            web_total_number = self.statistical_form_page3.get_web_search_total_number_sport_overview(
            )
            data_web = []
            for n in range(web_total_number):
                data_web.append({
                    'imei':
                    self.statistical_form_page3.get_imei_in_sport_overview(n),
                    'mileage':
                    self.statistical_form_page3.get_mileage_in_sport_overview(
                        n),
                    'overSpeedTimes':
                    self.statistical_form_page3.
                    get_over_speed_times_in_sport_overview(n),
                    'stopTimes':
                    self.statistical_form_page3.
                    get_stop_times_in_sport_overview(n)
                })
            print('web', data_web)
            # 连接数据库
            all_dev = self.search_sql.search_current_account_equipment(
                search_data['search_user'])
            imeis = self.statistical_form_page3.change_dev_imei_format(all_dev)
            print(imeis)
            begin_time = self.statistical_form_page3.get_sport_overview_form_begin_time(
            )
            end_time = self.statistical_form_page3.get_sport_overview_form_end_time(
            )
            get_current_userid = self.search_sql.search_current_account_user_id(
                search_data['search_user'])
            # 连接接口
            request_url = request_base_url()
            request_params = {
                '_method_': 'getRunSummary',
                'imeis': imeis,
                'startTime': begin_time,
                'endTime': end_time,
                'userIds': get_current_userid
            }
            res = requests.post(request_url, data=request_params)
            sleep(30)
            response = res.json()
            res_data = response['data']
            for data in res_data:
                # if data['stopTimes'] != 0 or data['mileage'] != 0 or data['overSpeedTimes'] != 0:
                try:
                    del data['atDay']
                except:
                    pass
            print('res', res_data)
            self.assertEqual(len(data_web), len(res_data))

            for datas in data_web:
                self.assertIn(datas, res_data)
            for datas2 in res_data:
                self.assertIn(datas2, data_web)
            self.driver.default_frame()
        csv_file.close()
Exemplo n.º 2
0
class TestCase148SportStatisticalOverview(unittest.TestCase):
    '''
    运动统计,运动总览
    author:zhangAo
    '''
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.assert_text = AssertText()
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in_jimitest()

        # 登录之后点击控制台,然后点击设置
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)

    def tearDown(self):
        # 退出浏览器
        self.driver.quit_browser()

    def test_case_sport_statistical_sport_overview(self):
        # 断言url
        expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(
            expect_url_after_click_statistical_form,
            self.statistical_form_page.actual_url_after_statistical_form())
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_sport_overview_form(),
            self.statistical_form_page.actual_text_after_click_sport_overview(
            ))
        # 读数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'sport_statistical_sport_overview_search_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {
                'search_user': row[0],
                'choose_date': row[1],
                'begin_time': row[2],
                'end_time': row[3]
            }
            self.statistical_form_page.add_data_to_search_sport_overview(
                search_data)

            # 连接数据库
            all_dev = self.search_sql.search_current_account_equipment(
                search_data['search_user'])

            # 连接另一个数据库
            connect_02 = self.connect_sql.connect_tuqiang_form()
            # 创建游标
            cursor_02 = connect_02.cursor()
            # 判断查询的条件
            get_total_sql = self.search_sql.search_sport_overview_sql(
                all_dev, search_data)
            get_sum_total = self.search_sql.search_sum_sport_overview_sql(
                all_dev, search_data)
            print(get_sum_total)
            # 计算多少条数据
            cursor_02.execute(get_total_sql)
            get_total = cursor_02.fetchall()
            total_list = []
            for range1 in get_total:
                for range2 in range1:
                    total_list.append(range2)
            total = len(total_list)

            # 计算总里程,超速,停留次数
            cursor_02.execute(get_sum_total)
            get_sum_total = cursor_02.fetchall()
            data_list = []
            for range1 in get_sum_total:
                for range2 in range1:
                    data_list.append(range2)
            # 拆分列表
            sum_mlie_list = []
            sum_over_speed_list = []
            sum_stay_list = []
            for n in range(len(data_list)):
                if n % 3 == 0:
                    sum_mlie_list.append(data_list[n])
                elif n % 3 == 1:
                    sum_over_speed_list.append(data_list[n])
                elif n % 3 == 2:
                    sum_stay_list.append(data_list[n])
            # sql的总里程数
            total_mlie = sum(sum_mlie_list)

            new_over_speed_list = []
            for n in range(len(sum_over_speed_list)):
                if sum_over_speed_list[n] == None:
                    pass
                else:
                    new_over_speed_list.append(sum_over_speed_list[n])
            # sql的总超速数
            total_over_speed = sum(new_over_speed_list)
            # sql的总停留次数
            total_stay = sum(sum_stay_list)

            # 断言的部分
            # 断言查询条数
            web_total = self.statistical_form_page.get_total_search_sport_overview(
            )
            # self.assertEqual(total, web_total)

            # 断言总里程数
            web_mlie_total = self.statistical_form_page.get_total_search_mile_total(
            )
            #  self.assertAlmostEqual(total_mlie / 1000, float(web_mlie_total))

            # 断言总的超速数
            web_over_speed_total = self.statistical_form_page.get_total_search_over_speed_total(
            )
            # self.assertEqual(str(total_over_speed), web_over_speed_total)

            # 断言总的停留次数
            web_stay_total = self.statistical_form_page.get_total_search_stay_total(
            )
            # self.assertEqual(str(total_stay), web_stay_total)
            # 导出
            self.driver.default_frame()
            cursor_02.close()
            connect_02.close()
        csv_file.close()
Exemplo n.º 3
0
class TestCase148SportStatisticalOverview(unittest.TestCase):
    '''
    运动统计,运动总览
    author:zhangAo
    '''
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.assert_text = AssertText()
        self.page = Page(self.driver, self.base_url)
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in_jimitest()

        # 登录之后点击控制台,然后点击设置
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)

    def tearDown(self):
        # 退出浏览器
        self.driver.quit_browser()

    def test_case_sport_statistical_sport_overview(self):
        # 断言url
        expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(
            expect_url_after_click_statistical_form,
            self.statistical_form_page.actual_url_after_statistical_form())
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_sport_overview_form(),
            self.statistical_form_page.actual_text_after_click_sport_overview(
            ))
        # 读数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'sport_statistical_sport_overview_search_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            search_data = {
                'search_user': row[0],
                'choose_date': row[1],
                'begin_time': row[2],
                'end_time': row[3]
            }
            self.statistical_form_page.add_data_to_search_sport_overview(
                search_data)
            # 点击导出
            self.page.click_expect_button()
            # 查找刚刚导出的文件
            file = self.page.find_expect_file_after_click_expect_button()
            print(file)
            # 读excel文件
            excel_data = self.page.read_excel_file_by_index(file,
                                                            col_name_index=1)
            del excel_data[0]
            print(len(excel_data))
            number = self.page.get_number_in_sport_overview_form()
            web_data = []
            for n in range(number):
                web_data.append({
                    '序号': self.page.get_xuhao(n),
                    '型号': self.page.get_dev_type(n),
                    '停留(次)': self.page.get_stay_times(n),
                    '总里程(KM)': self.page.get_total_mile(n),
                    '超速(次)': self.page.get_over_speed_times(n),
                    '设备IMEI': self.page.get_imei(n),
                    '设备名称': self.page.get_dev_name(n)
                })
            self.assertEqual(web_data, excel_data)
            self.driver.default_frame()
            break
        csv_file.close()