Example #1
0
class TestCase196ElectricVerifyTheDisplayLine(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_page3 = StatisticFormPage3(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.assert_text = AssertText()
        self.form_page = FormPage(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_196_electric_verify_the_display_line(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(
            ))
        self.statistical_form_page.click_electric_form_button()
        self.statistical_form_page.switch_to_electricity_report_frame()
        # 点击展示列
        self.form_page.click_display_line_button_electric()
        # 获取有多少个展示列
        display_line_number = self.form_page.get_display_line_number_electric()
        self.form_page.click_display_line_button_electric()
        for n in range(display_line_number):
            # 获取每一个展示列是否被勾选
            self.form_page.click_display_line_button_electric()
            display_style = self.form_page.get_per_display_style_electric(n)
            display_style_list = []
            for n1 in range(display_line_number):
                display_styles = self.form_page.get_per_display_style_electric(
                    n1)
                if display_styles == True:
                    display_style_list.append(display_styles)
            display_line_name = self.form_page.get_per_display_name_electric(n)
            # 点击
            self.form_page.click_per_display_input_button_electric(n)
            # 点击展示列
            self.form_page.click_display_line_button_electric()
            # 获取展示列数量
            display_line_name_list = []
            display_line_name_number = self.form_page.get_display_line_name_number_electric(
            )
            for m in range(display_line_name_number):
                display_name = self.form_page.get_per_display_name_on_line_electric(
                    m)
                display_line_name_list.append(display_name)
            if len(display_style_list) == 1:
                self.assertIn(display_line_name, display_line_name_list)
            else:
                if display_style == True:
                    self.assertNotIn(display_line_name, display_line_name_list)
                elif display_style == False:
                    self.assertIn(display_line_name, display_line_name_list)

        self.driver.default_frame()
Example #2
0
class TestCase175SportStatisticalMileReportForm(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.statistical_form_page3 = StatisticFormPage3(
            self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.seasrch_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.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_mile_report_form(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.statistical_form_page.click_mileage_form_buttons()
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_mile_form(),
            self.statistical_form_page.
            actual_text_after_click_mileage_form_buttons())

        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'milage_report_search_datas.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],
                'type': row[1],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }
            self.statistical_form_page.add_datas_to_search_mileage_form(
                search_data)
            self.statistical_form_page.switch_to_mile_report_form_frame()
            all_dev = self.seasrch_sql.search_current_account_equipment(
                search_data['search_user'])
            imeis = self.statistical_form_page3.change_dev_imei_format(all_dev)
            begin_time = self.statistical_form_page3.get_mile_report_form_begin_time(
            )
            end_time = self.statistical_form_page3.get_mile_report_form_end_time(
            )
            if search_data['type'] == 'mile':
                # 获取页面总共得到的总页数
                sleep(4)
                total_page = self.statistical_form_page3.get_total_page_in_mile_report_form(
                )
                print(total_page)

                if total_page == 0:
                    # 连接数据库
                    all_dev = self.seasrch_sql.search_current_account_equipment(
                        search_data['search_user'])
                    imeis = self.statistical_form_page3.change_dev_imei_format(
                        all_dev)
                    req_type = ''
                    if search_data['type'] == 'mile':
                        req_type = 'segment'
                    elif search_data['type'] == 'day':
                        req_type = 'day'
                    begin_time = self.statistical_form_page3.get_mile_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_mile_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getMileage',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0
                    }
                    res = requests.post(request_url, data=request_params)
                    sleep(30)
                    response = res.json()
                    print(response)
                    self.assertEqual(400, response['code'])
                    self.assertEqual('没有找到数据', response['msg'])

                elif total_page == 1:
                    # 获取这一个页有多少条记录
                    total_number_per_page = self.statistical_form_page3.get_total_number_per_page_in_mile_report_form(
                    )
                    web_data = []
                    for n in range(total_number_per_page):
                        web_data.append({
                            'imei':
                            self.statistical_form_page3.
                            get_imei_in_mile_report_form(n),
                            'distance':
                            self.statistical_form_page3.
                            get_distance_in_mile_report_form(n),
                            'startTime':
                            self.statistical_form_page3.
                            get_start_time_in_mile_report_form(n),
                            'endTime':
                            self.statistical_form_page3.
                            get_end_time_in_mile_report_form(n),
                        })
                    print(web_data)
                    # 连接数据库
                    all_dev = self.seasrch_sql.search_current_account_equipment(
                        search_data['search_user'])
                    imeis = self.statistical_form_page3.change_dev_imei_format(
                        all_dev)
                    req_type = ''
                    if search_data['type'] == 'mile':
                        req_type = 'segment'
                    elif search_data['type'] == 'day':
                        req_type = 'day'
                    begin_time = self.statistical_form_page3.get_mile_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_mile_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getMileage',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                    }
                    res = requests.post(request_url, data=request_params)
                    sleep(30)
                    response = res.json()
                    res_data = response['data']
                    for data in res_data:
                        del data['avgSpeed'], data['startLat'], data[
                            'startLng'], data['endLat'], data['endLng'], data[
                                'runTimeSecond']
                    for data in res_data:
                        data['distance'] = float('%.3f' %
                                                 (data['distance'] / 1000))
                    print(res_data)
                    self.assertEqual(web_data, res_data)
                else:
                    web_data = []
                    for i in range(total_page):
                        # 循环点击每一页
                        self.statistical_form_page3.click_per_page_in_mile_report_form(
                            i)
                        total_number_per_page = self.statistical_form_page3.get_total_number_per_page_in_mile_report_form(
                        )
                        for n in range(total_number_per_page):
                            web_data.append({
                                'imei':
                                self.statistical_form_page3.
                                get_imei_in_mile_report_form(n),
                                'distance':
                                self.statistical_form_page3.
                                get_distance_in_mile_report_form(n),
                                'startTime':
                                self.statistical_form_page3.
                                get_start_time_in_mile_report_form(n),
                                'endTime':
                                self.statistical_form_page3.
                                get_end_time_in_mile_report_form(n),
                            })
                    print(web_data)
                    # 连接数据库
                    all_dev = self.seasrch_sql.search_current_account_equipment(
                        search_data['search_user'])
                    imeis = self.statistical_form_page3.change_dev_imei_format(
                        all_dev)
                    req_type = ''
                    if search_data['type'] == 'mile':
                        req_type = 'segment'
                    elif search_data['type'] == 'day':
                        req_type = 'day'
                    begin_time = self.statistical_form_page3.get_mile_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_mile_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getMileage',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0
                    }
                    res = requests.post(request_url, data=request_params)
                    sleep(30)
                    response = res.json()
                    res_data = response['data']
                    for data in res_data:
                        del data['avgSpeed'], data['startLat'], data[
                            'startLng'], data['endLat'], data['endLng'], data[
                                'runTimeSecond']
                    for data in res_data:
                        data['distance'] = float('%.3f' %
                                                 (data['distance'] / 1000))
                    print(res_data)
                    self.assertEqual(web_data, res_data)

            elif search_data['type'] == 'day':
                # 获取页面总共得到的总页数
                sleep(4)
                total_page = self.statistical_form_page3.get_total_page_in_mile_report_form_with_day(
                )
                print(total_page)

                if total_page == 0:
                    # 连接数据库
                    all_dev = self.seasrch_sql.search_current_account_equipment(
                        search_data['search_user'])
                    imeis = self.statistical_form_page3.change_dev_imei_format(
                        all_dev)
                    req_type = ''
                    if search_data['type'] == 'mile':
                        req_type = 'segment'
                    elif search_data['type'] == 'day':
                        req_type = 'day'
                    begin_time = self.statistical_form_page3.get_mile_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_mile_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getMileage',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0,
                    }
                    res = requests.post(request_url, data=request_params)
                    sleep(30)
                    response = res.json()
                    print(response)
                    self.assertEqual(400, response['code'])
                    self.assertEqual('没有找到数据', response['msg'])

                elif total_page == 1:
                    # 获取这一个页有多少条记录
                    total_number_per_page = self.statistical_form_page3.get_total_number_per_page_in_mile_report_form_with_day(
                    )
                    web_data = []
                    for n in range(total_number_per_page):
                        web_data.append({
                            'imei':
                            self.statistical_form_page3.
                            get_imei_in_mile_report_form_with_day(n),
                            'distance':
                            self.statistical_form_page3.
                            get_distance_in_mile_report_form_with_day(n),
                            'atDay':
                            self.statistical_form_page3.
                            get_at_day_time_in_mile_report_form_with_day(n)
                        })
                    print(web_data)
                    # 连接数据库
                    all_dev = self.seasrch_sql.search_current_account_equipment(
                        search_data['search_user'])
                    imeis = self.statistical_form_page3.change_dev_imei_format(
                        all_dev)
                    req_type = ''
                    if search_data['type'] == 'mile':
                        req_type = 'segment'
                    elif search_data['type'] == 'day':
                        req_type = 'day'
                    begin_time = self.statistical_form_page3.get_mile_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_mile_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getMileage',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0
                    }
                    res = requests.post(request_url, data=request_params)
                    sleep(30)
                    response = res.json()
                    res_data = response['data']
                    for data in res_data:
                        del data['avgSpeed'], data['startLat'], data[
                            'startLng'], data['endLat'], data['endLng'], data[
                                'runTimeSecond']
                    for data in res_data:
                        data['distance'] = float('%.3f' %
                                                 (data['distance'] / 1000))
                    for data in res_data:
                        data['atDay'] = data['atDay'].split(' ')[0]
                    print(res_data)
                    self.assertEqual(web_data, res_data)
                else:
                    web_data = []
                    for i in range(total_page):
                        # 循环点击每一页
                        self.statistical_form_page3.click_per_page_in_mile_report_form(
                            i)
                        total_number_per_page = self.statistical_form_page3.get_total_number_per_page_in_mile_report_form_with_day(
                        )
                        for n in range(total_number_per_page):
                            web_data.append({
                                'imei':
                                self.statistical_form_page3.
                                get_imei_in_mile_report_form_with_day(n),
                                'distance':
                                self.statistical_form_page3.
                                get_distance_in_mile_report_form_with_day(n),
                                'atDay':
                                self.statistical_form_page3.
                                get_at_day_time_in_mile_report_form_with_day(n)
                            })
                    print(web_data)
                    # 连接数据库
                    all_dev = self.seasrch_sql.search_current_account_equipment(
                        search_data['search_user'])
                    imeis = self.statistical_form_page3.change_dev_imei_format(
                        all_dev)
                    req_type = ''
                    if search_data['type'] == 'mile':
                        req_type = 'segment'
                    elif search_data['type'] == 'day':
                        req_type = 'day'
                    begin_time = self.statistical_form_page3.get_mile_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_mile_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getMileage',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0,
                    }
                    res = requests.post(request_url, data=request_params)
                    sleep(30)
                    response = res.json()
                    res_data = response['data']
                    for data in res_data:
                        del data['avgSpeed'], data['startLat'], data[
                            'startLng'], data['endLat'], data['endLng'], data[
                                'runTimeSecond']
                    for data in res_data:
                        data['distance'] = float('%.3f' %
                                                 (data['distance'] / 1000))
                    for data in res_data:
                        data['atDay'] = data['atDay'].split(' ')[0]
                    print(res_data)
                    self.assertEqual(web_data, res_data)

            # 请求行程报表总计 - 总里程
            request_url = request_base_url()
            req_data = {
                '_method_': 'getMileage',
                'imeis': imeis,
                'startTime': begin_time,
                'endTime': end_time,
            }
            res = requests.post(request_url, data=req_data)
            response_data = res.json()
            if response_data['code'] == 0:
                data_total = '%.3f' % response_data['data'][0]['totalDistiance']
                web_total = ''
                if search_data['type'] == 'mile':
                    web_total = self.statistical_form_page3.get_web_total_in_mile_form_with_search_mile(
                    )
                elif search_data['type'] == 'day':
                    web_total = self.statistical_form_page3.get_web_total_in_mile_form_with_search_day(
                    )
                self.assertEqual(data_total, web_total)
            self.driver.default_frame()
        csv_file.close()
Example #3
0
class TestCase509FormSearchObdTravelSearch(unittest.TestCase):
    # 测试报表搜索 OBD报表 行程 搜索
    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.obd_form_page = ObdFormPage(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.assert_text = AssertText()

        current_handle = self.driver.get_current_window_handle()
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)
        self.base_page.change_windows_handle(current_handle)

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

    def test_case_obd_travel_search(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())

        # 点击obd报表里面的行程报表
        self.obd_form_page.click_obd_form_tracel_statistical_button()
        # 切换到行程报表的frame
        self.obd_form_page.switch_to_obd_tracel_statistical_frame()

        csv_file = self.statistical_form_page_read_csv.read_csv(
            'obd_milage_report_search_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            data = {
                'user_name': row[0],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }
            self.obd_form_page.add_data_to_search_obd_tracel_statistical_form(
                data)
            # 获取页面上设备的信息
            dev_name = self.obd_form_page.get_dev_name_in_obd_tracel_statistical_form(
            )
            dev_total_mile = self.obd_form_page.get_dev_total_mile_obd_tracel_statistical_form(
            )
            dev_avg_oil = self.obd_form_page.get_dev_avg_oil_obd_tracel_statistical_form(
            )
            dev_avg_speed = self.obd_form_page.get_avg_oil_obd_tracel_statistical_form(
            )
            dev_total_oil = self.obd_form_page.get_dev_total_oil_obd_tracel_statistical_form(
            )

            # 查询设备的名称
            sql_check_dev_name = self.obd_form_page.get_dev_name_in_sql(
                self.obd_form_page.search_imei())
            # 查询数据库的条数
            get_sql_total_number = self.obd_form_page.get_sql_total_number_in_tracel_form(
            )
            get_web_total_number = self.obd_form_page.get_web_total_number_in_tracel_form(
            )
            self.assertEqual(len(get_sql_total_number),
                             get_web_total_number[1])

            # 获取查询出来的 页数
            # if get_web_total_number[0] != 0 and get_web_total_number[0] != 1:
            #   self.obd_form_page.click_first_page()
            total_page = get_web_total_number[0]
            if total_page == 0:
                self.assertEqual('0', dev_total_mile)
                self.assertEqual('0', dev_avg_oil)
                self.assertEqual('0', dev_avg_speed)
                self.assertEqual('0', dev_total_oil)

            elif total_page == 1:
                # 断言平均油耗
                # 查询设备的名称
                self.assertEqual(dev_name, sql_check_dev_name)
                count_avg_oil = '%.2f' % (
                    (float(dev_total_oil) / float(dev_total_mile)) * 100)
                self.assertEqual(count_avg_oil, dev_avg_oil)
                # 获取页面上的里程和耗油
                mile_and_oil_list = []
                per_page_total_number = self.obd_form_page.get_per_page_total_number(
                )
                for n in range(per_page_total_number):
                    mile_and_oil_list.append({
                        'startTime':
                        self.obd_form_page.get_start_time_in_tracel_form(n),
                        'endTime':
                        self.obd_form_page.get_end_time_in_tracel_form(n),
                        'tripTime':
                        self.obd_form_page.get_trip_time_in_tracel_form(n),
                        'mileage':
                        float(
                            self.obd_form_page.get_mileage_in_tracel_form(n)),
                        'totalFuelConsumption':
                        float(
                            self.obd_form_page.
                            get_total_fuel_consumption_in_tracel_form(n)),
                        'avgFuelConsumption':
                        float(
                            self.obd_form_page.
                            get_avg_fuel_consumption_in_tracel_form(n)),
                    })
                '''print(mile_and_oil_list)
                total_mile = 0
                total_oil = 0
                for data in mile_and_oil_list:
                    total_mile += data['mile']
                    total_oil += data['oil']
                self.assertAlmostEqual(float(dev_total_mile), total_mile)
                self.assertAlmostEqual(float(dev_total_oil), total_oil)'''
                self.assertEqual(mile_and_oil_list, get_sql_total_number)

            else:
                # 断言平均油耗
                self.assertEqual(dev_name, sql_check_dev_name)
                count_avg_oil = '%.2f' % (
                    (float(dev_total_oil) / float(dev_total_mile)) * 100)
                self.assertEqual(count_avg_oil, dev_avg_oil)
                mile_and_oil_list = []
                for i in range(total_page):
                    # 循环点击每一页
                    self.obd_form_page.click_per_page(i)
                    # 获取页面上的里程和耗油
                    per_page_total_number = self.obd_form_page.get_per_page_total_number(
                    )
                    for n in range(per_page_total_number):
                        mile_and_oil_list.append({
                            'startTime':
                            self.obd_form_page.get_start_time_in_tracel_form(
                                n),
                            'endTime':
                            self.obd_form_page.get_end_time_in_tracel_form(n),
                            'tripTime':
                            self.obd_form_page.get_trip_time_in_tracel_form(n),
                            'mileage':
                            float(
                                self.obd_form_page.get_mileage_in_tracel_form(
                                    n)),
                            'totalFuelConsumption':
                            float(
                                self.obd_form_page.
                                get_total_fuel_consumption_in_tracel_form(n)),
                            'avgFuelConsumption':
                            float(
                                self.obd_form_page.
                                get_avg_fuel_consumption_in_tracel_form(n)),
                        })
                '''total_mile = 0
                total_oil = 0
                for data in mile_and_oil_list:
                    total_mile += data['mile']
                    total_oil += data['oil']
                self.assertAlmostEqual(float(dev_total_mile), total_mile)
                self.assertAlmostEqual(float(dev_total_oil), total_oil)'''
                self.assertEqual(mile_and_oil_list, get_sql_total_number)
        csv_file.close()
        self.driver.default_frame()
Example #4
0
class TestCase701FormExportSportOverviewExport(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.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.form_page = FormPage(self.driver, self.base_url)
        self.page = Page(self.driver, self.base_url)
        self.form_export_page = FormExportPage(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()

        # 登录之后点击控制台,然后点击设置
        current_handle = self.driver.get_current_window_handle()
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)
        self.base_page.change_windows_handle(current_handle)

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

    def test_case_sport_overview_export(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(
            ))

        # 切换到运动总览的frame
        self.statistical_form_page.switch_to_sport_overview_form_frame()
        # 点击搜索按钮
        self.form_export_page.click_search_button_in_sport_overview()

        # 让其展示所有列
        # 点击展示列
        self.form_page.click_display_line_button_sport_overview()
        # 获取有多少个展示列
        display_line_number = self.form_page.get_display_line_number_sport_overview(
        )
        for n in range(display_line_number):
            # 获取每一个展示列是否被勾选
            display_style = self.form_page.get_per_display_style_sport_overview(
                n)
            if display_style == False:
                self.form_page.click_per_display_input_button(n)
        self.form_page.click_display_line_button_sport_overview()

        # 获取页面中的数据
        data_total_number = self.form_export_page.get_data_total_number_in_sport_overview(
        )
        web_data = []
        for i in range(data_total_number):
            web_data.append(self.form_export_page.get_per_line_data(i))

        print('web', web_data)

        l_data = [[
            '序号', '所属账号', '客户名称', '设备名称', 'imei', '型号', '设备分组', '总里程(KM)',
            '超速(次)', '停留(次)', '司机名称', '电话', '车牌号', '身份证号', '车架号', '电动机/发动机号'
        ]]
        for m in web_data:
            l_data.append([
                m['序号'], m['所属账号'], m['客户名称'], m['设备名称'], m['IMEI'], m['型号'],
                m['设备分组'], m['总里程(KM)'], m['超速(次)'], m['停留(次)'], m['司机名称'],
                m['电话'], m['车牌号'], m['身份证号'], m['车架号'], m['电动机/发动机号']
            ])
        print(l_data)
        write_excel('add', l_data)

        self.driver.default_frame()
Example #5
0
class TestCase702FormExportMileageFormExport(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.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.statistical_form_page3 = StatisticFormPage3(
            self.driver, self.base_url)
        self.assert_text = AssertText()
        self.form_page = FormPage(self.driver, self.base_url)
        self.page = Page(self.driver, self.base_url)
        self.form_export_page = FormExportPage(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()

        current_handle = self.driver.get_current_window_handle()
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)
        self.base_page.change_windows_handle(current_handle)

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

    def test_case_mileage_form_export(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(
            ))

        # 切换到里程报表的frame
        self.statistical_form_page.click_mileage_form_buttons()
        self.statistical_form_page.switch_to_mile_report_form_frame()
        # 搜索数据
        self.form_export_page.search_mileage_data()

        # 让其展示所有列
        # 点击展示列
        self.form_page.click_display_line_button_mileage()
        # 获取有多少个展示列
        display_line_number = self.form_page.get_display_line_number_mileage()
        for n in range(display_line_number):
            # 获取每一个展示列是否被勾选
            display_style = self.form_page.get_per_display_style_mileage(n)
            if display_style == False:
                self.form_page.click_per_display_input_button_mileage(n)
        self.form_page.click_display_line_button_mileage()

        # 获取页面中的数据
        web_data = []
        total_page = self.statistical_form_page3.get_total_page_in_mile_report_form(
        )
        if total_page == 0:
            pass
        else:
            if total_page == 1:
                total_number_per_page = self.statistical_form_page3.get_total_number_per_page_in_mile_report_form(
                )
                for a in range(total_number_per_page):
                    web_data.append(
                        self.form_export_page.get_per_line_data_mileage(a))

            else:
                for x in range(total_page):
                    self.statistical_form_page3.click_per_page_in_mile_report_form(
                        x)
                    total_number_per_page = self.statistical_form_page3.get_total_number_per_page_in_mile_report_form(
                    )
                    for a in range(total_number_per_page):
                        web_data.append(
                            self.form_export_page.get_per_line_data_mileage(a))

            # 点击导出所有列
            self.form_export_page.click_export_button_in_mileage()
            # 判断有多少个div的标签
            export_div_number = self.form_export_page.get_sport_overview_export_div_number(
            )
            for m in range(export_div_number - 2):
                # 获取基本信息和客户信息是否被勾选
                input_style = self.form_export_page.get_input_style_select_in_sport_overview_export(
                    m)
                if input_style == False:
                    self.form_export_page.click_per_in_sport_overview_export(m)
            # 点击生成任务按钮
            self.form_export_page.click_create_task_button_in_sport_overview_export(
            )
            # 查找刚刚导出的文件
            file = self.form_export_page.find_expect_file()
            print(file)
            # 读excel文件
            excel_data = self.form_export_page.read_excel_file_by_index(
                file, col_name_index=1)
            del excel_data[0]
            print('excel', excel_data)
            print('web', web_data)

            self.assertEqual(web_data, excel_data)

        self.driver.default_frame()
Example #6
0
class TestCase141SportStatisticalMileReportForm(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.seasrch_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.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_mile_report_form(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.statistical_form_page.click_mileage_form_buttons()
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_mile_form(),
            self.statistical_form_page.
            actual_text_after_click_mileage_form_buttons())

        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'milage_report_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],
                'type': row[1],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }
            self.statistical_form_page.add_datas_to_search_mileage_form(
                search_data)
            self.statistical_form_page.switch_to_mile_report_form_frame()

            # 连接数据库
            # 连接数据库
            all_dev = self.seasrch_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_01 = self.seasrch_sql.search_sport_mile_report_sql_01(
                all_dev, search_data)
            get_total_sql_02 = self.seasrch_sql.search_sport_mile_report_sql_02(
                all_dev, search_data)
            get_total_sql_03 = self.seasrch_sql.search_sport_mile_report_sql_03(
                all_dev, search_data)
            get_total_sql_04 = self.seasrch_sql.search_sport_mile_report_sql_04(
                all_dev, search_data)
            get_total_sql_05 = self.seasrch_sql.search_sport_mile_report_sql_05(
                all_dev, search_data)
            get_total_sql_06 = self.seasrch_sql.search_sport_mile_report_sql_06(
                all_dev, search_data)
            get_total_sql_07 = self.seasrch_sql.search_sport_mile_report_sql_07(
                all_dev, search_data)
            get_total_sql_08 = self.seasrch_sql.search_sport_mile_report_sql_08(
                all_dev, search_data)
            get_total_sql_09 = self.seasrch_sql.search_sport_mile_report_sql_09(
                all_dev, search_data)
            get_total_sql_10 = self.seasrch_sql.search_sport_mile_report_sql_10(
                all_dev, search_data)
            get_total_sql_11 = self.seasrch_sql.search_sport_mile_report_sql_11(
                all_dev, search_data)
            get_total_sql_12 = self.seasrch_sql.search_sport_mile_report_sql_12(
                all_dev, search_data)
            get_total_01 = self.seasrch_sql.search_sport_mile_report_sql_get_total_01(
                all_dev, search_data)
            get_total_02 = self.seasrch_sql.search_sport_mile_report_sql_get_total_02(
                all_dev, search_data)
            get_total_03 = self.seasrch_sql.search_sport_mile_report_sql_get_total_03(
                all_dev, search_data)
            get_total_04 = self.seasrch_sql.search_sport_mile_report_sql_get_total_04(
                all_dev, search_data)
            get_total_05 = self.seasrch_sql.search_sport_mile_report_sql_get_total_05(
                all_dev, search_data)
            get_total_06 = self.seasrch_sql.search_sport_mile_report_sql_get_total_06(
                all_dev, search_data)
            get_total_07 = self.seasrch_sql.search_sport_mile_report_sql_get_total_07(
                all_dev, search_data)
            get_total_08 = self.seasrch_sql.search_sport_mile_report_sql_get_total_08(
                all_dev, search_data)
            get_total_09 = self.seasrch_sql.search_sport_mile_report_sql_get_total_09(
                all_dev, search_data)
            get_total_10 = self.seasrch_sql.search_sport_mile_report_sql_get_total_10(
                all_dev, search_data)
            get_total_11 = self.seasrch_sql.search_sport_mile_report_sql_get_total_11(
                all_dev, search_data)
            get_total_12 = self.seasrch_sql.search_sport_mile_report_sql_get_total_12(
                all_dev, search_data)
            print(get_total_sql_01)
            print(get_total_01)

            # 判断查询的条件
            if search_data['type'] == 'mile':
                # 查询的选择里程
                cursor_02.execute(get_total_sql_01)
                get_all_mlie_and_time_01 = cursor_02.fetchall()
                get_all_mlie_and_time_list_01 = []
                for range1 in get_all_mlie_and_time_01:
                    for range2 in range1:
                        get_all_mlie_and_time_list_01.append(range2)

                cursor_02.execute(get_total_sql_02)
                get_all_mlie_and_time_02 = cursor_02.fetchall()
                get_all_mlie_and_time_list_02 = []
                for range1 in get_all_mlie_and_time_02:
                    for range2 in range1:
                        get_all_mlie_and_time_list_02.append(range2)

                cursor_02.execute(get_total_sql_03)
                get_all_mlie_and_time_03 = cursor_02.fetchall()
                get_all_mlie_and_time_list_03 = []
                for range1 in get_all_mlie_and_time_03:
                    for range2 in range1:
                        get_all_mlie_and_time_list_03.append(range2)

                cursor_02.execute(get_total_sql_04)
                get_all_mlie_and_time_04 = cursor_02.fetchall()
                get_all_mlie_and_time_list_04 = []
                for range1 in get_all_mlie_and_time_04:
                    for range2 in range1:
                        get_all_mlie_and_time_list_04.append(range2)

                cursor_02.execute(get_total_sql_05)
                get_all_mlie_and_time_05 = cursor_02.fetchall()
                get_all_mlie_and_time_list_05 = []
                for range1 in get_all_mlie_and_time_05:
                    for range2 in range1:
                        get_all_mlie_and_time_list_05.append(range2)

                cursor_02.execute(get_total_sql_06)
                get_all_mlie_and_time_06 = cursor_02.fetchall()
                get_all_mlie_and_time_list_06 = []
                for range1 in get_all_mlie_and_time_06:
                    for range2 in range1:
                        get_all_mlie_and_time_list_06.append(range2)

                cursor_02.execute(get_total_sql_07)
                get_all_mlie_and_time_07 = cursor_02.fetchall()
                get_all_mlie_and_time_list_07 = []
                for range1 in get_all_mlie_and_time_07:
                    for range2 in range1:
                        get_all_mlie_and_time_list_07.append(range2)

                cursor_02.execute(get_total_sql_08)
                get_all_mlie_and_time_08 = cursor_02.fetchall()
                get_all_mlie_and_time_list_08 = []
                for range1 in get_all_mlie_and_time_08:
                    for range2 in range1:
                        get_all_mlie_and_time_list_08.append(range2)

                cursor_02.execute(get_total_sql_09)
                get_all_mlie_and_time_09 = cursor_02.fetchall()
                get_all_mlie_and_time_list_09 = []
                for range1 in get_all_mlie_and_time_09:
                    for range2 in range1:
                        get_all_mlie_and_time_list_09.append(range2)

                cursor_02.execute(get_total_sql_10)
                get_all_mlie_and_time_10 = cursor_02.fetchall()
                get_all_mlie_and_time_list_10 = []
                for range1 in get_all_mlie_and_time_10:
                    for range2 in range1:
                        get_all_mlie_and_time_list_10.append(range2)

                cursor_02.execute(get_total_sql_11)
                get_all_mlie_and_time_11 = cursor_02.fetchall()
                get_all_mlie_and_time_list_11 = []
                for range1 in get_all_mlie_and_time_11:
                    for range2 in range1:
                        get_all_mlie_and_time_list_11.append(range2)

                cursor_02.execute(get_total_sql_12)
                get_all_mlie_and_time_12 = cursor_02.fetchall()
                get_all_mlie_and_time_list_12 = []
                for range1 in get_all_mlie_and_time_12:
                    for range2 in range1:
                        get_all_mlie_and_time_list_12.append(range2)

                cursor_02.execute(get_total_01)
                total_number_01 = cursor_02.fetchall()
                total_number_list_01 = []
                for range1 in total_number_01:
                    for range2 in range1:
                        total_number_list_01.append(range2)

                cursor_02.execute(get_total_02)
                total_number_02 = cursor_02.fetchall()
                total_number_list_02 = []
                for range1 in total_number_02:
                    for range2 in range1:
                        total_number_list_02.append(range2)

                cursor_02.execute(get_total_03)
                total_number_03 = cursor_02.fetchall()
                total_number_list_03 = []
                for range1 in total_number_03:
                    for range2 in range1:
                        total_number_list_03.append(range2)

                cursor_02.execute(get_total_04)
                total_number_04 = cursor_02.fetchall()
                total_number_list_04 = []
                for range1 in total_number_04:
                    for range2 in range1:
                        total_number_list_04.append(range2)

                cursor_02.execute(get_total_05)
                total_number_05 = cursor_02.fetchall()
                total_number_list_05 = []
                for range1 in total_number_05:
                    for range2 in range1:
                        total_number_list_05.append(range2)

                cursor_02.execute(get_total_06)
                total_number_06 = cursor_02.fetchall()
                total_number_list_06 = []
                for range1 in total_number_06:
                    for range2 in range1:
                        total_number_list_06.append(range2)

                cursor_02.execute(get_total_07)
                total_number_07 = cursor_02.fetchall()
                total_number_list_07 = []
                for range1 in total_number_07:
                    for range2 in range1:
                        total_number_list_07.append(range2)

                cursor_02.execute(get_total_08)
                total_number_08 = cursor_02.fetchall()
                total_number_list_08 = []
                for range1 in total_number_08:
                    for range2 in range1:
                        total_number_list_08.append(range2)

                cursor_02.execute(get_total_09)
                total_number_09 = cursor_02.fetchall()
                total_number_list_09 = []
                for range1 in total_number_09:
                    for range2 in range1:
                        total_number_list_09.append(range2)

                cursor_02.execute(get_total_10)
                total_number_10 = cursor_02.fetchall()
                total_number_list_10 = []
                for range1 in total_number_10:
                    for range2 in range1:
                        total_number_list_10.append(range2)

                cursor_02.execute(get_total_11)
                total_number_11 = cursor_02.fetchall()
                total_number_list_11 = []
                for range1 in total_number_11:
                    for range2 in range1:
                        total_number_list_11.append(range2)

                cursor_02.execute(get_total_12)
                total_number_12 = cursor_02.fetchall()
                total_number_list_12 = []
                for range1 in total_number_12:
                    for range2 in range1:
                        total_number_list_12.append(range2)

                total = len(total_number_list_01) + len(
                    total_number_list_02) + len(total_number_list_03) + len(
                        total_number_list_04
                    ) + len(total_number_list_05) + len(
                        total_number_list_06
                    ) + len(total_number_list_07) + len(
                        total_number_list_08
                    ) + len(total_number_list_09) + len(
                        total_number_list_10) + len(
                            total_number_list_11) + len(total_number_list_12)
                web_total = self.statistical_form_page.get_total_search_mileage_forms(
                )
                self.assertEqual(total, web_total)
                # 计算总里程 和 总时间
                total_mile = sum(get_all_mlie_and_time_list_01) + sum(
                    get_all_mlie_and_time_list_02
                ) + sum(get_all_mlie_and_time_list_03) + sum(
                    get_all_mlie_and_time_list_04
                ) + sum(get_all_mlie_and_time_list_05) + sum(
                    get_all_mlie_and_time_list_06) + sum(
                        get_all_mlie_and_time_list_07) + sum(
                            get_all_mlie_and_time_list_08) + sum(
                                get_all_mlie_and_time_list_09) + sum(
                                    get_all_mlie_and_time_list_10) + sum(
                                        get_all_mlie_and_time_list_11) + sum(
                                            get_all_mlie_and_time_list_12)
                # 断言总时间和总里程,总油耗
                # 计算总油耗
                if total_mile == 0:
                    self.assertEqual(
                        '0',
                        self.statistical_form_page.get_mileage_total_oil())
                else:
                    if self.statistical_form_page.get_mileage_total_oil(
                    ) == '0':
                        pass
                    else:
                        get_total_oil = total_mile / 1000 / 100 * 8
                        total_oil = '%.2f' % get_total_oil
                        self.assertEqual(
                            str(total_oil),
                            self.statistical_form_page.get_mileage_total_oil())

            elif search_data['type'] == 'day':
                # 如果选择天
                cursor_02.execute(get_total_sql_01)
                get_all_mile_data = cursor_02.fetchall()
                get_all_mile_list = []
                for range1 in get_all_mile_data:
                    for range2 in range1:
                        get_all_mile_list.append(range2)
                total = len(get_all_mile_list)
                web_total = self.statistical_form_page.get_total_search_mileage_form_with_day(
                )
                self.assertEqual(total, web_total)

                total_mile_with_day = sum(get_all_mile_list)
                # 断言
                self.assertAlmostEqual(
                    total_mile_with_day / 1000,
                    float(self.statistical_form_page.
                          get_mileage_with_day_total_mile()))

            # 点击导出
            self.driver.default_frame()
            cursor_02.close()
            connect_02.close()
        csv_file.close()
Example #7
0
class TestCase153OilReportOperation(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.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(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.assert_text = AssertText()

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

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

    def test_case_oil_report_operation(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.statistical_form_page.click_oil_reoport()
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_oil_form(),
            self.statistical_form_page.
            actual_text_after_click_oil_report_button())
        self.statistical_form_page.switch_to_oil_report()
        for n in range(5):
            self.statistical_form_page.click_customer_in_oil_form(n)
            # 点击搜索设备按钮
            self.statistical_form_page.click_search_dev_button_in_oil_report()
            # 获取有多少组
            number = self.statistical_form_page.get_group_number_in_oil_form()
            if number == 0:
                pass
            else:
                for m in range(number):
                    # 收起默认组
                    self.statistical_form_page.click_defalut_group_in_oil_form(
                    )
                    # 获取每个组设备的数量
                    dev_number = self.statistical_form_page.get_dev_number_in_oil_form(
                        m)
                    # 点开每一个分组
                    self.statistical_form_page.click_per_group_in_oil_form(m)
                    dev_number_list = self.statistical_form_page.get_dev_number_list_in_oil_form(
                        m)
                    self.assertEqual(str(dev_number_list), dev_number)
Example #8
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()
class TestCase150OilReport(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.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.log_in_base.log_in_jimitest()
        self.assert_text = AssertText()

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

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

    def test_case_oil_report(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.statistical_form_page.click_oil_reoport()
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_oil_form(),
            self.statistical_form_page.
            actual_text_after_click_oil_report_button())

        # # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'oil_report_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.switch_to_oil_report()
            self.statistical_form_page.add_data_to_search_oil_report(
                search_data)
            self.driver.default_frame()
        csv_file.close()
        '''self.statistical_form_page.switch_to_oil_report()
Example #10
0
class TestCase157ObdTroubleForm(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.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.obd_form_page = ObdFormPage(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.assert_text = AssertText()

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

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

    def test_case_obd_trouble_form(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())

        # 点击obd统计的里程报表
        self.obd_form_page.click_obd_trouble_form_button()
        # 切换到odb里程统计的frame里面
        self.obd_form_page.switch_to_obd_trouble_form_frame()

        csv_file = self.statistical_form_page_read_csv.read_csv('obd_milage_report_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 = {
                'user_name': row[0],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }
            self.obd_form_page.add_data_to_search_obd_trouble_form(search_data)

            # 获取页面上设备的信息
            dev_name = self.obd_form_page.get_dev_name_in_obd_vehicle_condition_form()
            dev_total_mile = self.obd_form_page.get_dev_total_mile_obd_vehicle_condition_form()
            dev_avg_oil = self.obd_form_page.get_dev_avg_oil_obd_vehicle_condition_form()
            dev_avg_speed = self.obd_form_page.get_avg_oil_obd_vehicle_condition_form()
            dev_total_oil = self.obd_form_page.get_dev_total_oil_obd_vehicle_condition_form()

            # 查询设备的名称
            sql_check_dev_name = self.obd_form_page.get_dev_name_in_sql(self.obd_form_page.search_imei())
            # 查询数据库的条数
            get_sql_total_number = self.obd_form_page.get_sql_total_number_in_obd_trouble_form()
            get_web_total_number = self.obd_form_page.get_web_total_number_in_vehicel_condition_form()
            self.assertEqual(len(get_sql_total_number), get_web_total_number[1])

            # 获取查询出来的 页数
            if get_web_total_number[0] != 0 and get_web_total_number[0] != 1:
                self.obd_form_page.click_first_page()
            total_page = self.obd_form_page.get_obd_list_total_page_number()
            if total_page == 0:
                self.assertEqual('0', dev_total_mile)
                self.assertEqual('0', dev_avg_oil)
                self.assertEqual('0', dev_avg_speed)
                self.assertEqual('0', dev_total_oil)

            elif total_page == 1:
                # 断言平均油耗
                # 查询设备的名称
                self.assertEqual(dev_name, sql_check_dev_name)
                count_avg_oil = '%.2f' % ((float(dev_total_oil) / float(dev_total_mile)) * 100)
                self.assertEqual(count_avg_oil, dev_avg_oil)
                # 获取页面上的里程和耗油
                mile_and_oil_list = []
                per_page_total_number = self.obd_form_page.get_per_page_total_number()
                for n in range(per_page_total_number):
                    mile_and_oil_list.append({
                        'begin_time': self.obd_form_page.get_begin_time_in_trouble_form(n),
                        'lot': float(self.obd_form_page.get_lot_in_trouble_form(n)),
                        'lat': float(self.obd_form_page.get_lat_in_trouble_form(n)),
                        'error_code': self.obd_form_page.get_error_code_in_trouble_form(n)
                    })
                '''total_mile = 0
                total_oil = 0
                for data in mile_and_oil_list:
                    total_mile += data['mile']
                    total_oil += data['oil']
                self.assertAlmostEqual(float(dev_total_mile), total_mile)
                self.assertAlmostEqual(float(dev_total_oil), total_oil)'''
                self.assertEqual(get_sql_total_number, mile_and_oil_list)

            else:
                # 断言平均油耗
                self.assertEqual(dev_name, sql_check_dev_name)
                count_avg_oil = '%.2f' % ((float(dev_total_oil) / float(dev_total_mile)) * 100)
                self.assertEqual(count_avg_oil, dev_avg_oil)
                mile_and_oil_list = []
                for i in range(total_page):
                    # 循环点击每一页
                    self.obd_form_page.click_per_page(i)
                    # 获取页面上的里程和耗油
                    per_page_total_number = self.obd_form_page.get_per_page_total_number()
                    for n in range(per_page_total_number):
                        mile_and_oil_list.append({
                            'begin_time': self.obd_form_page.get_begin_time_in_trouble_form(n),
                            'lot': float(self.obd_form_page.get_lot_in_trouble_form(n)),
                            'lat': float(self.obd_form_page.get_lat_in_trouble_form(n)),
                            'error_code': self.obd_form_page.get_error_code_in_trouble_form(n)
                        })
                '''total_mile = 0
                total_oil = 0
                for data in mile_and_oil_list:
                    total_mile += data['mile']
                    total_oil += data['oil']
                self.assertAlmostEqual(float(dev_total_mile), total_mile)
                self.assertAlmostEqual(float(dev_total_oil), total_oil)'''
                self.assertEqual(get_sql_total_number, mile_and_oil_list)
        csv_file.close()
        self.driver.default_frame()
Example #11
0
class TestCase144SportStatisticalSpeedForm(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.base_page.open_page()
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        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_speed_form(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.statistical_form_page.click_over_speed_button()
        # 断言

        self.assertEqual(self.assert_text.statistical_form_over_speed_form(),
                         self.statistical_form_page.actual_text_after_click_over_speed_button())

        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv('sport_statistical_over_speed_search_dara.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],
                'speed': row[1],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }
            self.statistical_form_page.add_data_to_search_over_speed(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_over_speed_sql(all_dev, search_data)
            print(get_total_sql)

            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)
            web_total = self.statistical_form_page.get_total_search_over_speed_number()
            self.assertEqual(total, web_total)

            # 点击导出
            self.driver.default_frame()
            cursor_02.close()
            connect_02.close()
        csv_file.close()
Example #12
0
class TestCase505FormSearchParkingNotShutDownSearch(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.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.search_sql = SearchSql(self.driver, self.base_url)
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.log_in_base.log_in_jimitest()

        current_handle = self.driver.get_current_window_handle()
        self.statistical_form_page.click_control_after_click_statistical_form_page()
        sleep(3)
        self.base_page.change_windows_handle(current_handle)

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

    def test_case_parking_not_shut_down_search(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.statistical_form_page.click_paking_not_shut_down_form_button()
        # 断言
        self.assertEqual(self.assert_text.statistical_form_stay_not_shut_down(),
                         self.statistical_form_page.actual_text_after_click_paking_not_shut_down_button())
        # 读数据
        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'sport_statistical_paking_not_shut_down_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_paking_not_shut_down_form(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_stay_not_shut_down_sql(all_dev, search_data)
            get_total_sql_01 = self.search_sql.search_sport_stay_not_shut_down_sql_01(all_dev, search_data)
            get_total_sql_02 = self.search_sql.search_sport_stay_not_shut_down_sql_02(all_dev, search_data)
            get_total_sql_03 = self.search_sql.search_sport_stay_not_shut_down_sql_03(all_dev, search_data)
            get_total_sql_04 = self.search_sql.search_sport_stay_not_shut_down_sql_04(all_dev, search_data)
            get_total_sql_05 = self.search_sql.search_sport_stay_not_shut_down_sql_05(all_dev, search_data)
            get_total_sql_06 = self.search_sql.search_sport_stay_not_shut_down_sql_06(all_dev, search_data)
            get_total_sql_07 = self.search_sql.search_sport_stay_not_shut_down_sql_07(all_dev, search_data)
            get_total_sql_08 = self.search_sql.search_sport_stay_not_shut_down_sql_08(all_dev, search_data)
            get_total_sql_09 = self.search_sql.search_sport_stay_not_shut_down_sql_09(all_dev, search_data)
            get_total_sql_10 = self.search_sql.search_sport_stay_not_shut_down_sql_10(all_dev, search_data)
            get_total_sql_11 = self.search_sql.search_sport_stay_not_shut_down_sql_11(all_dev, search_data)
            get_total_sql_12 = self.search_sql.search_sport_stay_not_shut_down_sql_12(all_dev, search_data)
            print(get_total_sql_01)

            cursor_02.execute(get_total_sql_01)
            get_total_01 = cursor_02.fetchall()
            total_list_01 = []
            for range1 in get_total_01:
                for range2 in range1:
                    total_list_01.append(range2)
            # 拆分列表
            total_number_list_01 = []
            total_time_list_01 = []
            for n in range(len(total_list_01)):
                if n % 2 == 0:
                    total_number_list_01.append(total_list_01[n])
                elif n % 2 == 1:
                    total_time_list_01.append(total_list_01[n])

            cursor_02.execute(get_total_sql_02)
            get_total_02 = cursor_02.fetchall()
            total_list_02 = []
            for range1 in get_total_02:
                for range2 in range1:
                    total_list_02.append(range2)
            # 拆分列表
            total_number_list_02 = []
            total_time_list_02 = []
            for n in range(len(total_list_02)):
                if n % 2 == 0:
                    total_number_list_02.append(total_list_02[n])
                elif n % 2 == 1:
                    total_time_list_02.append(total_list_02[n])

            cursor_02.execute(get_total_sql_03)
            get_total_03 = cursor_02.fetchall()
            total_list_03 = []
            for range1 in get_total_03:
                for range2 in range1:
                    total_list_03.append(range2)
            # 拆分列表
            total_number_list_03 = []
            total_time_list_03 = []
            for n in range(len(total_list_03)):
                if n % 2 == 0:
                    total_number_list_03.append(total_list_03[n])
                elif n % 2 == 1:
                    total_time_list_03.append(total_list_03[n])

            cursor_02.execute(get_total_sql_04)
            get_total_04 = cursor_02.fetchall()
            total_list_04 = []
            for range1 in get_total_04:
                for range2 in range1:
                    total_list_04.append(range2)
            # 拆分列表
            total_number_list_04 = []
            total_time_list_04 = []
            for n in range(len(total_list_04)):
                if n % 2 == 0:
                    total_number_list_04.append(total_list_04[n])
                elif n % 2 == 1:
                    total_time_list_04.append(total_list_04[n])

            cursor_02.execute(get_total_sql_05)
            get_total_05 = cursor_02.fetchall()
            total_list_05 = []
            for range1 in get_total_05:
                for range2 in range1:
                    total_list_05.append(range2)
            # 拆分列表
            total_number_list_05 = []
            total_time_list_05 = []
            for n in range(len(total_list_05)):
                if n % 2 == 0:
                    total_number_list_05.append(total_list_05[n])
                elif n % 2 == 1:
                    total_time_list_05.append(total_list_05[n])

            cursor_02.execute(get_total_sql_06)
            get_total_06 = cursor_02.fetchall()
            total_list_06 = []
            for range1 in get_total_06:
                for range2 in range1:
                    total_list_06.append(range2)
            # 拆分列表
            total_number_list_06 = []
            total_time_list_06 = []
            for n in range(len(total_list_06)):
                if n % 2 == 0:
                    total_number_list_06.append(total_list_06[n])
                elif n % 2 == 1:
                    total_time_list_06.append(total_list_06[n])

            cursor_02.execute(get_total_sql_07)
            get_total_07 = cursor_02.fetchall()
            total_list_07 = []
            for range1 in get_total_07:
                for range2 in range1:
                    total_list_07.append(range2)
            # 拆分列表
            total_number_list_07 = []
            total_time_list_07 = []
            for n in range(len(total_list_07)):
                if n % 2 == 0:
                    total_number_list_07.append(total_list_07[n])
                elif n % 2 == 1:
                    total_time_list_07.append(total_list_07[n])

            cursor_02.execute(get_total_sql_08)
            get_total_08 = cursor_02.fetchall()
            total_list_08 = []
            for range1 in get_total_08:
                for range2 in range1:
                    total_list_08.append(range2)
            # 拆分列表
            total_number_list_08 = []
            total_time_list_08 = []
            for n in range(len(total_list_08)):
                if n % 2 == 0:
                    total_number_list_08.append(total_list_08[n])
                elif n % 2 == 1:
                    total_time_list_08.append(total_list_08[n])

            cursor_02.execute(get_total_sql_09)
            get_total_09 = cursor_02.fetchall()
            total_list_09 = []
            for range1 in get_total_09:
                for range2 in range1:
                    total_list_09.append(range2)
            # 拆分列表
            total_number_list_09 = []
            total_time_list_09 = []
            for n in range(len(total_list_09)):
                if n % 2 == 0:
                    total_number_list_09.append(total_list_09[n])
                elif n % 2 == 1:
                    total_time_list_09.append(total_list_09[n])

            cursor_02.execute(get_total_sql_10)
            get_total_10 = cursor_02.fetchall()
            total_list_10 = []
            for range1 in get_total_10:
                for range2 in range1:
                    total_list_10.append(range2)
            # 拆分列表
            total_number_list_10 = []
            total_time_list_10 = []
            for n in range(len(total_list_10)):
                if n % 2 == 0:
                    total_number_list_10.append(total_list_10[n])
                elif n % 2 == 1:
                    total_time_list_10.append(total_list_10[n])

            cursor_02.execute(get_total_sql_11)
            get_total_11 = cursor_02.fetchall()
            total_list_11 = []
            for range1 in get_total_11:
                for range2 in range1:
                    total_list_11.append(range2)
            # 拆分列表
            total_number_list_11 = []
            total_time_list_11 = []
            for n in range(len(total_list_11)):
                if n % 2 == 0:
                    total_number_list_11.append(total_list_11[n])
                elif n % 2 == 1:
                    total_time_list_11.append(total_list_11[n])

            cursor_02.execute(get_total_sql_12)
            get_total_12 = cursor_02.fetchall()
            total_list_12 = []
            for range1 in get_total_12:
                for range2 in range1:
                    total_list_12.append(range2)
            # 拆分列表
            total_number_list_12 = []
            total_time_list_12 = []
            for n in range(len(total_list_12)):
                if n % 2 == 0:
                    total_number_list_12.append(total_list_12[n])
                elif n % 2 == 1:
                    total_time_list_12.append(total_list_12[n])

            # 断言查询的条数
            total = len(total_number_list_01) + len(total_number_list_02) + len(
                total_number_list_03) + len(total_number_list_04) + len(total_number_list_05) + len(
                total_number_list_06) + len(total_number_list_07) + len(total_number_list_08) + len(
                total_number_list_09) + len(total_number_list_10) + len(total_number_list_11) + len(
                total_number_list_12)
            self.statistical_form_page.switch_to_parking_report_form_frame()
            web_total = self.statistical_form_page.get_total_search_paking_not_shut_down_number()
            self.assertEqual(total, web_total)

            # 断言查询的总的停留时间
            total_time = sum(total_time_list_01) + sum(total_time_list_02) + sum(
                total_time_list_03) + sum(total_time_list_04) + sum(total_time_list_05) + sum(total_time_list_06) + sum(
                total_time_list_07) + sum(total_time_list_08) + sum(total_time_list_09) + sum(total_time_list_10) + sum(
                total_time_list_11) + sum(total_time_list_12)
            chang_total_time_type = self.statistical_form_page.change_sec_time(total_time)
            web_total_time = self.statistical_form_page.get_total_stay_form_time_with_acc_on()
            self.assertEqual(chang_total_time_type, web_total_time)

            # 点击导出
            self.driver.default_frame()
            cursor_02.close()
            connect_02.close()
        csv_file.close()
Example #13
0
class TestCase512FormSearchClockInSearch(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.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.obd_form_page = ObdFormPage(self.driver, self.base_url)
        self.clock_in_page = ClockInPage(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.assert_text = AssertText()

        current_handle = self.driver.get_current_window_handle()
        self.statistical_form_page.click_control_after_click_statistical_form_page()
        sleep(3)
        self.base_page.change_windows_handle(current_handle)

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

    def test_case_clock_in_search(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.clock_in_page.click_clock_in_form_button()
        # 切换到打开记录的frame里面
        self.clock_in_page.switch_to_click_in_form_frame()

        csv_file = self.statistical_form_page_read_csv.read_csv('clock_in_form_data.csv')
        csv_data = csv.reader(csv_file)
        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            data = {
                'date_type': row[0],
                'begin_time': row[1],
                'end_time': row[2],
                'dev_type': row[3],
                'dev_imei': row[4],
                'clock_in_type': row[5]
            }
            self.clock_in_page.add_data_to_search_click_in_form(data)
            get_sql_data = self.clock_in_page.get_sql_data_in_clock_in_form(data)
            print(get_sql_data)
            web_list = []
            # 获取查询的页数
            number = self.clock_in_page.get_page_number_after_search_clock_in_form()
            if number == 0:
                text = self.clock_in_page.get_no_data_text_in_clock_form()
                self.assertIn(self.assert_text.account_center_page_no_data_text(), text)

            elif number == 1:
                # 获取每一页的条数
                per_page_number = self.clock_in_page.get_per_page_number_in_clock_in_form()
                for n in range(per_page_number):
                    web_list.append({
                        'imei': self.clock_in_page.get_imei_in_clock_in_form(n),
                        'time': self.clock_in_page.get_time_in_clock_form(n),
                        'on_off': self.clock_in_page.get_on_off_in_clock_form(n)
                    })
                print(web_list)
                self.assertEqual(get_sql_data, web_list)
            else:
                # 循环点击每一页
                for n in range(number):
                    self.clock_in_page.click_per_page(n)
                    per_page_number = self.clock_in_page.get_per_page_number_in_clock_in_form()
                    for n in range(per_page_number):
                        web_list.append({
                            'imei': self.clock_in_page.get_imei_in_clock_in_form(n),
                            'time': self.clock_in_page.get_time_in_clock_form(n),
                            'on_off': self.clock_in_page.get_on_off_in_clock_form(n)
                        })
                print(web_list)
                self.assertEqual(get_sql_data, web_list)
        self.driver.default_frame()
class TestCase605FormPortSearchObdMileageSearch(unittest.TestCase):
    # 测试 报表 接口搜索 obd里程报表
    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.obd_form_page = ObdFormPage(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.assert_text = AssertText()

        current_handle = self.driver.get_current_window_handle()
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)
        self.base_page.change_windows_handle(current_handle)

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

    def test_case_obd_mileage_search_port(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())

        # 点击obd统计的里程报表
        self.obd_form_page.click_obd_form_mileage_statistical_button()
        # 切换到odb里程统计的frame里面
        self.obd_form_page.switch_to_obd_mileage_statistical_frame()

        csv_file = self.statistical_form_page_read_csv.read_csv(
            'obd_milage_report_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 = {
                'user_name': row[0],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }
            self.obd_form_page.add_data_to_search_obd_mileage_statistical_form(
                search_data)

            # 获取页面上设备的信息
            dev_total_mile = self.obd_form_page.get_dev_total_mile_obd_mileage_statistical_form(
            )
            dev_avg_oil = self.obd_form_page.get_dev_avg_oil_obd_mileage_statistical_form(
            )
            dev_avg_speed = self.obd_form_page.get_avg_oil_obd_mileage_statistical_form(
            )
            dev_total_oil = self.obd_form_page.get_dev_total_oil_obd_mileage_statistical_form(
            )
            begin_time = self.obd_form_page.get_begin_times()
            end_time = self.obd_form_page.get_end_times()

            # 请求里程报表统计
            request_url = request_base_url()
            header = {
                '_method_': 'getObdTotalInfo',
                'imeis': self.obd_form_page.search_imei(),
                'startTime': begin_time,
                'endTime': end_time
            }
            print(header)
            req_json = requests.post(request_url, data=header).json()
            print(req_json)
            # 断言
            try:
                self.assertEqual(float(dev_total_mile),
                                 req_json['data'][0]['totalMileage'])
                self.assertEqual(
                    float(dev_avg_oil),
                    req_json['data'][0]['totalAvgFuelConsumption'])
                self.assertEqual(float(dev_avg_speed),
                                 req_json['data'][0]['totalAvgSpeed'])
                self.assertEqual(float(dev_total_oil),
                                 req_json['data'][0]['totalFuelConsumption'])
            except:
                self.assertEqual([None], req_json['data'])

            request_url = request_base_url()
            header = {
                '_method_': 'getObdTrip',
                'imeis': self.obd_form_page.search_imei(),
                'startTime': begin_time,
                'endTime': end_time,
                'type': 'day'
            }
            sleep(10)
            res_json = requests.post(request_url, data=header).json()

            total_page = self.obd_form_page.get_obd_list_total_page_number()
            if total_page == 0:
                self.assertEqual('0', dev_total_mile)
                self.assertEqual('0', dev_avg_oil)
                self.assertEqual('0', dev_avg_speed)
                self.assertEqual('0', dev_total_oil)

            elif total_page == 1:
                # 获取页面上的里程和耗油
                mile_and_oil_list = []
                per_page_total_number = self.obd_form_page.get_per_page_total_number(
                )
                for n in range(per_page_total_number):
                    mile_and_oil_list.append({
                        'atDay':
                        self.obd_form_page.get_at_day_in_odb_mileage_form(n),
                        'mileage':
                        float(
                            self.obd_form_page.
                            get_per_mile_in_obd_mileage_form(n)),
                        'totalFuelConsumption':
                        float(
                            self.obd_form_page.get_per_oil_in_obd_mileage_form(
                                n)),
                        'avgFuelConsumption':
                        float(
                            self.obd_form_page.
                            get_avg_fuel_consumption_in_obd_mileage_form(n))
                    })

                res_data = res_json['data']
                for data in res_data:
                    del data['endLat'], data['endLng'], data['imei'], data[
                        'maxSpeed'], data['rapidAcceleration'], data[
                            'rapidDeceleration'], data['startLat'], data[
                                'startLng'], data['tripTime'], data['avgSpeed']
                self.assertEqual(mile_and_oil_list, res_data)
            else:
                mile_and_oil_list = []
                for i in range(total_page):
                    # 循环点击每一页
                    self.obd_form_page.click_per_page(i)
                    # 获取页面上的里程和耗油
                    per_page_total_number = self.obd_form_page.get_per_page_total_number(
                    )
                    for n in range(per_page_total_number):
                        mile_and_oil_list.append({
                            'atDay':
                            self.obd_form_page.get_at_day_in_odb_mileage_form(
                                n),
                            'mileage':
                            float(
                                self.obd_form_page.
                                get_per_mile_in_obd_mileage_form(n)),
                            'totalFuelConsumption':
                            float(
                                self.obd_form_page.
                                get_per_oil_in_obd_mileage_form(n)),
                            'avgFuelConsumption':
                            float(
                                self.obd_form_page.
                                get_avg_fuel_consumption_in_obd_mileage_form(
                                    n))
                        })

                res_data = res_json['data']
                for data in res_data:
                    del data['endLat'], data['endLng'], data['imei'], data[
                        'maxSpeed'], data['rapidAcceleration'], data[
                            'rapidDeceleration'], data['startLat'], data[
                                'startLng'], data['tripTime'], data['avgSpeed']
                self.assertEqual(mile_and_oil_list, res_data)
        csv_file.close()
        self.driver.default_frame()
Example #15
0
class TestCase204SportOverviewExport(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.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.form_page = FormPage(self.driver, self.base_url)
        self.page = Page(self.driver, self.base_url)
        self.form_export_page = FormExportPage(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_204_sport_overview_export(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())

        # 切换到运动总览的frame
        self.statistical_form_page.switch_to_sport_overview_form_frame()
        # 点击搜索按钮
        self.form_export_page.click_search_button_in_sport_overview()

        # 让其展示所有列
        # 点击展示列
        self.form_page.click_display_line_button_sport_overview()
        # 获取有多少个展示列
        display_line_number = self.form_page.get_display_line_number_sport_overview()
        for n in range(display_line_number):
            # 获取每一个展示列是否被勾选
            display_style = self.form_page.get_per_display_style_sport_overview(n)
            if display_style == False:
                self.form_page.click_per_display_input_button(n)
        self.form_page.click_display_line_button_sport_overview()

        # 获取页面中的数据
        data_total_number = self.form_export_page.get_data_total_number_in_sport_overview()
        web_data = []
        for i in range(data_total_number):
            web_data.append(self.form_export_page.get_per_line_data(i))

        print('web', web_data)

        # 点击导出所有列
        self.form_export_page.click_export_button_in_sport_overview()
        # 判断有多少个div的标签
        export_div_number = self.form_export_page.get_sport_overview_export_div_number()
        for m in range(export_div_number - 2):
            # 获取基本信息和客户信息是否被勾选
            input_style = self.form_export_page.get_input_style_select_in_sport_overview_export(m)
            if input_style == False:
                self.form_export_page.click_per_in_sport_overview_export(m)
        # 点击生成任务按钮
        self.form_export_page.click_create_task_button_in_sport_overview_export()
        # 查找刚刚导出的文件
        file = self.form_export_page.find_expect_file()
        print(file)
        # 读excel文件
        excel_data = self.form_export_page.read_excel_file_by_index(file, col_name_index=1)
        del excel_data[0]
        print('excel', excel_data)

        self.assertEqual(web_data, excel_data)

        self.driver.default_frame()
Example #16
0
class TestCase177SportStatisticalSpeedForm(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.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.seasrch_sql = SearchSql(self.driver, self.base_url)
        self.statistical_form_page3 = StatisticFormPage3(
            self.driver, self.base_url)
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        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_speed_form(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.statistical_form_page.click_over_speed_button()
        # 断言

        self.assertEqual(
            self.assert_text.statistical_form_over_speed_form(),
            self.statistical_form_page.
            actual_text_after_click_over_speed_button())

        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'sport_statistical_over_speed_search_dara.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],
                'speed': row[1],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }
            self.statistical_form_page.add_data_to_search_over_speed(
                search_data)
            sleep(4)
            total_page = self.statistical_form_page3.get_total_page_in_over_speed_form(
            )
            print(total_page)
            begin_time = self.statistical_form_page3.get_over_speed_report_form_begin_time(
            )
            end_time = self.statistical_form_page3.get_over_speed_report_form_end_time(
            )
            all_dev = self.seasrch_sql.search_current_account_equipment(
                search_data['search_user'])
            imeis = self.statistical_form_page3.change_dev_imei_format(all_dev)
            get_current_userid = self.seasrch_sql.search_current_account_user_id(
                search_data['search_user'])

            if total_page == 0:
                # 连接接口
                request_url = request_base_url()
                request_params = {
                    '_method_': 'getOverSpeed',
                    'imeis': imeis,
                    'startTime': begin_time,
                    'endTime': end_time,
                    'speed': int(search_data['speed']),
                    'userIds': get_current_userid
                }
                res = requests.post(request_url, data=request_params)
                sleep(30)
                response = res.json()
                print(response)
                self.assertEqual(400, response['code'])
                self.assertEqual('没有找到数据', response['msg'])

            elif total_page == 1:
                total_number_per_page = self.statistical_form_page3.get_total_number_per_page_in_over_speed_form(
                )
                web_data = []
                for n in range(total_number_per_page):
                    web_data.append({
                        'imei':
                        self.statistical_form_page3.
                        get_imei_in_over_speed_form(n),
                        'speed':
                        self.statistical_form_page3.
                        get_speed_in_over_speed_form(n),
                        # 'addr': self.statistical_form_page3.get_addr_in_over_speed_form(n),
                        'time':
                        self.statistical_form_page3.
                        get_time_in_over_speed_form(n),
                        'lat':
                        self.statistical_form_page3.get_lat_in_over_speed_form(
                            n),
                        'lng':
                        self.statistical_form_page3.get_lng_in_over_speed_form(
                            n)
                    })
                print(web_data)
                # 连接接口
                request_url = request_base_url()
                request_params = {
                    '_method_': 'getOverSpeed',
                    'imeis': imeis,
                    'startTime': begin_time,
                    'endTime': end_time,
                    'speed': int(search_data['speed']),
                    'userIds': get_current_userid
                }
                res = requests.post(request_url, data=request_params)
                sleep(30)
                response = res.json()
                res_datas = response['data']
                for data in res_datas:
                    del data['status'], data['times'], data['addr']
                print(res_datas)
                self.assertEqual(web_data, res_datas)
            else:
                web_data = []
                for i in range(total_page):
                    # 循环点击每一页
                    self.statistical_form_page3.click_per_page_in_mile_report_form(
                        i)
                    total_number_per_page = self.statistical_form_page3.get_total_number_per_page_in_over_speed_form(
                    )
                    for n in range(total_number_per_page):
                        web_data.append({
                            'imei':
                            self.statistical_form_page3.
                            get_imei_in_over_speed_form(n),
                            'speed':
                            self.statistical_form_page3.
                            get_speed_in_over_speed_form(n),
                            # 'addr': self.statistical_form_page3.get_addr_in_over_speed_form(n),
                            'time':
                            self.statistical_form_page3.
                            get_time_in_over_speed_form(n),
                            'lat':
                            self.statistical_form_page3.
                            get_lat_in_over_speed_form(n),
                            'lng':
                            self.statistical_form_page3.
                            get_lng_in_over_speed_form(n)
                        })
                print(web_data)
                # 连接接口
                request_url = request_base_url()
                request_params = {
                    '_method_': 'getOverSpeed',
                    'imeis': imeis,
                    'startTime': begin_time,
                    'endTime': end_time,
                    'speed': int(search_data['speed']),
                    'userIds': get_current_userid
                }
                res = requests.post(request_url, data=request_params)
                sleep(30)
                response = res.json()
                res_datas = response['data']
                for data in res_datas:
                    del data['status'], data['times'], data['addr']
                print(res_datas)
                self.assertEqual(web_data, res_datas)
            self.driver.default_frame()
        csv_file.close()