Exemple #1
0
class TestCase152GuideManchineReportSearchUser(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.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_guide_manchine_report_search_user(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_guide_manchine_report_button()

        # 循环点击用户
        self.statistical_form_page.switch_to_guide_manchine_report_frame()
        for n in range(5):
            self.statistical_form_page.click_search_user_button_in_guide_manchine_report(
            )
            get_user_name = self.statistical_form_page.get_user_name_in_guide_manchine_report(
                n + 1)
            self.statistical_form_page.click_per_user_in_guide_manchine_report(
                n + 1)
            user_name = self.statistical_form_page.user_name_in_guide_manchine_report(
            )
            self.assertEqual(get_user_name, user_name)
        self.driver.default_frame()
Exemple #2
0
class TestCase97DevManageEditAccount(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.dev_manage_page = DevManagePages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.dev_manage_page_read_csv = DevManagePageReadCsv()
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_dev_manage_edit_account(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()

        # 点击下级用户
        self.dev_manage_page.click_next_user_in_dev_page()

        # 点击编辑用户
        self.dev_manage_page.click_edit_account_button()
        self.dev_manage_page.click_close_edit_button()
        self.dev_manage_page.click_edit_account_button()

        self.dev_manage_page.switch_to_dev_edit_frame()
        # 搜索用户
        self.dev_manage_page.search_account_in_edit_user()
        get_user_name_after_search = self.dev_manage_page.get_user_name_after_search_in_edit_user(
        )
        up_user = self.dev_manage_page.get_up_user_edit_user_in_dev_page()
        self.assertIn(up_user, get_user_name_after_search)

        # 循环点击
        for n in range(5):
            self.dev_manage_page.click_user_to_search_up_user_in_edit_user(n)
            up_user = self.dev_manage_page.get_up_user_edit_user_in_dev_page()
            get_user_name_after_search = self.dev_manage_page.get_user_name_after_search_in_edit_user(
            )
            self.assertIn(up_user, get_user_name_after_search)

        self.driver.default_frame()
class TestCase172StatusStatistical(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.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_172_status_statistical(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_status_statistical_form_button()
        # 切换到状态统计的frame里面
        self.statistical_form_page.switch_to_status_statistical_frame()
        # 点击选择所有状态
        self.statistical_form_page.select_all_status_in_status_statistical_form(
        )
        # 点击搜索
        self.statistical_form_page.click_search_button_in_status_statistical_form(
        )
        self.driver.default_frame()
class TestCase154ObdMileageForm(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_mileage_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_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_name = self.obd_form_page.get_dev_name_in_obd_mileage_statistical_form(
            )
            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(
            )

            # 查询设备的名称
            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()
            get_web_total_number = self.obd_form_page.get_web_total_number()
            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({
                        'mile':
                        float(
                            self.obd_form_page.
                            get_per_mile_in_obd_mileage_form(n)),
                        'oil':
                        float(
                            self.obd_form_page.get_per_oil_in_obd_mileage_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)

                # 计算总时间 然后断言平均速度
                total_time = sum(get_sql_total_number)
                print(total_time)
                avg_speed = '%.2f' % ((float(dev_total_mile)) / float(
                    (float(total_time) / 3600)))
                self.assertEqual(avg_speed, dev_avg_speed)

            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({
                            'mile':
                            float(
                                self.obd_form_page.
                                get_per_mile_in_obd_mileage_form(n)),
                            'oil':
                            float(
                                self.obd_form_page.
                                get_per_oil_in_obd_mileage_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)

                # 计算总时间 然后断言平均速度
                total_time = sum(get_sql_total_number)
                avg_speed = '%.2f' % ((float(dev_total_mile)) / float(
                    (float(total_time) / 3600)))
                self.assertEqual(avg_speed, dev_avg_speed)
        csv_file.close()
        self.driver.default_frame()
class TestCase100GlobAccountSearch(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.global_dev_search_page = GlobalDevSearchPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_global_account_search(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        current_account = self.log_in_base.get_log_in_account()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)

        self.global_dev_search_page.click_easy_search()
        # self.global_dev_search_page.click_account_search()

        # 度数据
        csv_file = self.global_search_page_read_csv.read_csv('global_search_account_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 = {
                'account_info': row[0]
            }
            self.global_dev_search_page.swith_to_search_frame()
            self.global_dev_search_page.account_easy_search(search_data)

            connect = self.connect_sql.connect_tuqiang_sql()
            # 创建数据库游标
            cur = connect.cursor()

            # 执行sql脚本查询当前登录账号的userId,fullParent
            get_id_sql = "select o.account,o.userId,o.fullParentId from user_info o where o.account = '" + current_account + "' ;"
            cur.execute(get_id_sql)
            # 读取数据
            user_relation = cur.fetchall()
            # 遍历数据
            for row in user_relation:
                user_relation_id = {
                    "account": row[0],
                    "userId": row[1],
                    "fullParent": row[2]
                }

                # 执行sql脚本,根据当前登录账号的userId,fullParent查询出当前账户的所有下级账户
                get_lower_account_sql = "select userId from user_info where fullParentId like" + \
                                        "'" + user_relation_id["fullParent"] + user_relation_id["userId"] + "%'" + ";"
                cur.execute(get_lower_account_sql)
                # 读取数据
                lower_account = cur.fetchall()
                lower_account_list = [user_relation_id["userId"]]
                for range1 in lower_account:
                    for range2 in range1:
                        lower_account_list.append(range2)
                lower_account_tuple = tuple(lower_account_list)

                get_total_sql = self.search_sql.search_account_sqls(lower_account_tuple, search_data)
                print(get_total_sql)
                cur.execute(get_total_sql)
                # 读取数据
                total_data = cur.fetchall()
                # 从数据tuple中获取最终查询记录统计条数
                total_list = []
                for range1 in total_data:
                    for range2 in range1:
                        total_list.append(range2)
                total = len(total_list)
                print('本次查询数据库的条数为:%s' % total)
                web_total = self.global_account_search_page.easy_search_results()
                print('本次查询页面的条数是:%s' % web_total)
                self.assertEqual(total, web_total)
                self.driver.default_frame()
            cur.close()
            connect.close()

        csv_file.close()
        self.global_dev_search_page.close_search()
Exemple #6
0
class TestCase502FormSearchMileSearch(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.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()

        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_mile_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_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()
class TestCase602FormPortSearchTravelSearch(unittest.TestCase):
    # 测试 报表 接口搜索 行程
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.statistical_form_page3 = StatisticFormPage3(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.seasrch_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_travel_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())
        # 点击里程报表
        self.statistical_form_page.click_mileage_form_button()
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_tracl_form(),
            self.statistical_form_page.
            actual_text_after_click_mileage_form_button())
        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'sport_statistical_milage_form_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_data_to_search_mileage_form(
                search_data)
            self.statistical_form_page.switch_to_tracel_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_tracel_report_form_begin_time(
            )
            end_time = self.statistical_form_page3.get_tracel_report_form_end_time(
            )

            if search_data['type'] == 'mile':
                # 获取页面总共得到的总页数
                sleep(4)
                total_page = self.statistical_form_page3.get_total_page_in_tracel_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_tracel_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_tracel_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getTrackSegment',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0,
                        'status': 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_tracel_form(
                    )
                    web_data = []
                    for n in range(total_number_per_page):
                        web_data.append({
                            'imei':
                            self.statistical_form_page3.
                            get_imei_in_tracel_form(n),
                            'distance':
                            self.statistical_form_page3.
                            get_distance_in_tracel_form(n),
                            'startTime':
                            self.statistical_form_page3.
                            get_start_time_in_tracel_form(n),
                            'endTime':
                            self.statistical_form_page3.
                            get_end_time_in_tracel_form(n),
                            'avgSpeed':
                            self.statistical_form_page3.
                            get_avg_speed_in_tracel_form(n),
                            'runTimeSecond':
                            self.statistical_form_page3.
                            get_run_time_second_in_tracel_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_tracel_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_tracel_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getTrackSegment',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0,
                        'status': 0
                    }
                    res = requests.post(request_url, data=request_params)
                    sleep(30)
                    response = res.json()
                    res_data = response['data']
                    print(res_data)
                    for data in res_data:
                        del data['endLat'], data['avgFuel'], data[
                            'startLat'], data['fuel'], data['endLng'], data[
                                'startLng'], data['status']
                    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_tracel_form(
                        )
                        for n in range(total_number_per_page):
                            web_data.append({
                                'imei':
                                self.statistical_form_page3.
                                get_imei_in_tracel_form(n),
                                'distance':
                                self.statistical_form_page3.
                                get_distance_in_tracel_form(n),
                                'startTime':
                                self.statistical_form_page3.
                                get_start_time_in_tracel_form(n),
                                'endTime':
                                self.statistical_form_page3.
                                get_end_time_in_tracel_form(n),
                                'avgSpeed':
                                self.statistical_form_page3.
                                get_avg_speed_in_tracel_form(n),
                                'runTimeSecond':
                                self.statistical_form_page3.
                                get_run_time_second_in_tracel_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_tracel_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_tracel_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getTrackSegment',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0,
                        'status': 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['endLat'], data['avgFuel'], data[
                            'startLat'], data['fuel'], data['endLng'], data[
                                'startLng'], data['status']
                    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_tracel_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_tracel_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_tracel_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getTrackSegment',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0,
                        'status': 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_tracel_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_tracel_form_with_day(n),
                            'distance':
                            self.statistical_form_page3.
                            get_distance_in_tracel_report_form_with_day(n),
                            'atDay':
                            self.statistical_form_page3.
                            get_at_day_time_in_tracel_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_tracel_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_tracel_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getTrackSegment',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0,
                        'status': 0
                    }
                    res = requests.post(request_url, data=request_params)
                    sleep(30)
                    response = res.json()
                    res_data = response['data']
                    print(res_data)
                    for data in res_data:
                        del data['startTime'], data['runTimeSecond'], data['avgFuel'], data['startLng'], data['fuel'], \
                            data[
                                'endLat'], data['avgSpeed'], data['status'], data['endTime'], data[
                            'startLat'], data['endLng']
                    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_tracel_report_form_with_day(
                        )
                        for n in range(total_number_per_page):
                            web_data.append({
                                'imei':
                                self.statistical_form_page3.
                                get_imei_in_tracel_form_with_day(n),
                                'distance':
                                self.statistical_form_page3.
                                get_distance_in_tracel_report_form_with_day(n),
                                'atDay':
                                self.statistical_form_page3.
                                get_at_day_time_in_tracel_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_tracel_report_form_begin_time(
                    )
                    end_time = self.statistical_form_page3.get_tracel_report_form_end_time(
                    )

                    # 连接接口
                    request_url = request_base_url()
                    request_params = {
                        '_method_': 'getTrackSegment',
                        'imeis': imeis,
                        'type': req_type,
                        'startTime': begin_time,
                        'endTime': end_time,
                        'startRow': 0,
                        'status': 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['startTime'], data['runTimeSecond'], data['avgFuel'], data['startLng'], data['fuel'], \
                            data[
                                'endLat'], data['avgSpeed'], data['status'], data['endTime'], data[
                            'startLat'], data['endLng']
                    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_': 'getTrackSegmentSum',
                '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 = 0
                data_total_time = 0
                response_datas = response_data['data']
                for data_01 in response_datas:
                    data_total += data_01['totalDistiance']
                    data_total_time += data_01['totalTime']
                data_totals = '%.3f' % (data_total / 1000)
                web_total = ''
                if search_data['type'] == 'mile':
                    web_total = self.statistical_form_page3.get_web_total_in_tracel_form_with_search_mile(
                    )
                    web_total_time = self.statistical_form_page3.get_web_total_time_in_tracel_form_with_search_mile(
                    )
                    web_total_times = self.statistical_form_page3.change_time_format(
                        web_total_time)
                    self.assertEqual(data_total_time, web_total_times)
                elif search_data['type'] == 'day':
                    web_total = self.statistical_form_page3.get_web_total_in_tracel_form_with_search_day(
                    )
                    # self.assertEqual(data_totals, web_total)
            self.driver.default_frame()
        csv_file.close()
Exemple #8
0
class TestCase184ObdTracelForm(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_tracel_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_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_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(
            )
            begin_time = self.obd_form_page.get_begin_time()
            end_time = self.obd_form_page.get_end_time()

            # 请求里程报表统计
            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
            }
            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({
                        '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)),
                        "rapidAcceleration":
                        int(
                            self.obd_form_page.
                            get_rapid_acceleration_in_tracel_form(n)),
                        "rapidDeceleration":
                        int(
                            self.obd_form_page.
                            get_rapid_deceleration_in_tracel_form(n)),
                    })

                res_data = res_json['data']
                for data in res_data:
                    del data['endAddr'], data['endLat'], data['endLng'], data[
                        'imei'], data['maxSpeed'], data['startAddr'], data[
                            'startLat'], data['startLng'], data['avgSpeed']

                for data in res_data:
                    data['tripTime'] = self.obd_form_page.chang_time_formeat(
                        data['tripTime'])
                print(mile_and_oil_list)
                print(res_data)
                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({
                            '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)),
                            "rapidAcceleration":
                            int(
                                self.obd_form_page.
                                get_rapid_acceleration_in_tracel_form(n)),
                            "rapidDeceleration":
                            int(
                                self.obd_form_page.
                                get_rapid_deceleration_in_tracel_form(n)),
                        })
                sleep(5)
                res_data = res_json['data']
                print(res_data)
                for data in res_data:
                    del data['startLng'], data['endLat'], data['endLng'], data[
                        'imei'], data['maxSpeed'], data['startAddr'], data[
                            'startLat'], data['endAddr'], data['avgSpeed']
                for data in res_data:
                    data['tripTime'] = self.obd_form_page.chang_time_formeat(
                        data['tripTime'])
                print(mile_and_oil_list)
                print(res_data)
                self.assertEqual(mile_and_oil_list, res_data)
        csv_file.close()
        self.driver.default_frame()
class TestCase145SportStatisticalStayForm(unittest.TestCase):
    '''
    运动统计,停留报表
    author : zhangAo
    '''

    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.assert_text = AssertText()
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.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_stay_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_stay_form_button()
        # 断言
        self.assertEqual(self.assert_text.statistical_form_stay_form(),
                         self.statistical_form_page.actual_text_after_click_stay_form_button())
        # 读数据
        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv('sport_statistical_stay_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_stay_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_sql(all_dev, search_data)
            get_total_sql_01 = self.search_sql.search_sport_stay_sql_01(all_dev, search_data)
            get_total_sql_02 = self.search_sql.search_sport_stay_sql_02(all_dev, search_data)
            get_total_sql_03 = self.search_sql.search_sport_stay_sql_03(all_dev, search_data)
            get_total_sql_04 = self.search_sql.search_sport_stay_sql_04(all_dev, search_data)
            get_total_sql_05 = self.search_sql.search_sport_stay_sql_05(all_dev, search_data)
            get_total_sql_06 = self.search_sql.search_sport_stay_sql_06(all_dev, search_data)
            get_total_sql_07 = self.search_sql.search_sport_stay_sql_07(all_dev, search_data)
            get_total_sql_08 = self.search_sql.search_sport_stay_sql_08(all_dev, search_data)
            get_total_sql_09 = self.search_sql.search_sport_stay_sql_09(all_dev, search_data)
            get_total_sql_10 = self.search_sql.search_sport_stay_sql_10(all_dev, search_data)
            get_total_sql_11 = self.search_sql.search_sport_stay_sql_11(all_dev, search_data)
            get_total_sql_12 = self.search_sql.search_sport_stay_sql_12(all_dev, search_data)

            print(get_total_sql_01)

            '''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_number_list = []
            total_time_list = []
            for n in range(len(total_list)):
                if n % 2 == 0:
                    total_number_list.append(total_list[n])
                elif n % 2 == 1:
                    total_time_list.append(total_list[n])'''

            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)
            sleep(3)
            self.statistical_form_page.switch_to_stay_report_form_frame()
            web_total = self.statistical_form_page.get_total_search_stay_form_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()
            print(web_total_time)
            self.assertEqual(chang_total_time_type, web_total_time)

            # 点击导出停留报表
            self.driver.default_frame()
            cursor_02.close()
            connect_02.close()
        csv_file.close()
Exemple #10
0
class TestCase603FormPortSearchStaySearch(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.seasrch_sql = SearchSql(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.statistical_form_page3 = StatisticFormPage3(
            self.driver, self.base_url)
        self.statistical_form_page4 = StatisticFormPage4(
            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()

        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_stay_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())

        # 点击停留报表
        self.statistical_form_page.click_stay_form_button()
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_stay_form(),
            self.statistical_form_page.
            actual_text_after_click_stay_form_button())

        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'sport_statistical_stay_search_data2.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_stay_form(
                search_data)
            self.statistical_form_page.switch_to_stay_report_form_frame()
            total_page = self.statistical_form_page4.get_total_page_in_over_stay_form(
            )
            begin_time = self.statistical_form_page4.get_over_stay_report_form_begin_time(
            )
            end_time = self.statistical_form_page4.get_over_stay_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)
            total_saty_time = self.statistical_form_page4.get_total_stay_time_in_over_stay_form(
            )

            print(begin_time)
            print(end_time)
            print("总计", total_saty_time)
            print(type(total_saty_time))

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

            elif total_page == 1:
                total_number_per_page = self.statistical_form_page4.get_total_number_per_page_in_over_stay_form(
                )
                web_data = []
                for n in range(total_number_per_page):
                    web_data.append({
                        # 'addr': self.statistical_form_page4.get_addr_in_over_stay_form(n),
                        'endTime':
                        self.statistical_form_page4.
                        get_end_time_in_over_stay_form(n),
                        'imei':
                        self.statistical_form_page4.get_imei_in_over_stay_form(
                            n),
                        'lat':
                        self.statistical_form_page4.get_lat_in_over_stay_form(
                            n),
                        'lng':
                        self.statistical_form_page4.get_lng_in_over_stay_form(
                            n),
                        'startTime':
                        self.statistical_form_page4.
                        get_start_time_in_over_stay_form(n),
                    })
                print("页面数据", web_data)
                # 连接接口
                request_url = request_base_url()
                request_params = {
                    '_method_': 'getStopSegment',
                    'imeis': imeis,
                    'startTime': begin_time,
                    'endTime': end_time,
                    'acc': "off"
                }
                res = requests.post(request_url, data=request_params)
                sleep(30)
                response = res.json()
                res_data = response['data']
                for data in res_data:
                    del data['acc'], data['durSecond']
                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_page4.get_total_number_per_page_in_over_stay_form(
                    )
                    for n in range(total_number_per_page):
                        web_data.append({
                            # 'addr': self.statistical_form_page4.get_addr_in_over_stay_form(n),
                            'endTime':
                            self.statistical_form_page4.
                            get_end_time_in_over_stay_form(n),
                            'imei':
                            self.statistical_form_page4.
                            get_imei_in_over_stay_form(n),
                            'lat':
                            self.statistical_form_page4.
                            get_lat_in_over_stay_form(n),
                            'lng':
                            self.statistical_form_page4.
                            get_lng_in_over_stay_form(n),
                            'startTime':
                            self.statistical_form_page4.
                            get_start_time_in_over_stay_form(n),
                        })
                print("页面数据", web_data)
                print(len(web_data))
                # 连接接口
                request_url = request_base_url()
                request_params = {
                    '_method_': 'getStopSegment',
                    'imeis': imeis,
                    'startTime': begin_time,
                    'endTime': end_time,
                    'acc': "off"
                }
                res = requests.post(request_url, data=request_params)
                sleep(30)
                response = res.json()
                res_data = response['data']
                for data in res_data:
                    del data['acc'], data['durSecond']
                print("接口数据", res_data)
                print(len(res_data))
                self.assertEqual(web_data, res_data)

            # 总计停留时间
            # 连接接口
            request_url = request_base_url()
            request_params = {
                '_method_': 'getStopSegmentSum',
                'imeis': imeis,
                'startTime': begin_time,
                'endTime': end_time,
                'acc': "off"
            }
            res = requests.post(request_url, data=request_params)
            sleep(20)
            response = res.json()
            res_data = response['data']

            if total_saty_time == "0":
                self.assertEqual(int(total_saty_time), res_data)
            else:
                time = total_saty_time.split("小时")
                print(time[0])
                time2 = time[1].split("分")
                print(time2[0])
                sec = time2[1].split("秒")[0]
                print(sec)

                web_total_time = (int(time[0]) * 60 * 60) + (int(time2[0]) *
                                                             60) + int(sec)
                print(web_total_time)
                self.assertEqual(web_total_time, res_data)

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

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

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

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

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

            for datas in data_web:
                self.assertIn(datas, res_data)
            for datas2 in res_data:
                self.assertIn(datas2, data_web)
            self.driver.default_frame()
        csv_file.close()
class TestCase102GlobComplexSearchByAllCondi(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.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.global_complex_search_page = GlobalComplexSearchPage(
            self.driver, self.base_url)
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_glob_complex_search_complex_search(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        # 点击全局搜索栏-高级搜素按钮
        # 关闭
        self.global_dev_search_page.click_easy_search()
        self.global_dev_search_page.close_search()
        sleep(2)

        self.global_dev_search_page.click_easy_search()
        # self.global_dev_search_page.click_dev_searchs()
        self.global_dev_search_page.click_senior_search_button()

        csv_file = self.global_search_page_read_csv.read_csv(
            'complex_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 = {
                'account': row[0],
                'base_info': row[1],
                'info': row[2],
                'date_type': row[3],
                'date': row[4],
                'is_date': row[5],
                'arrearage': row[6],
                'no_active': row[7]
            }
            self.global_dev_search_page.swith_to_search_frame()
            self.global_dev_search_page.add_data_to_search_complex(search_data)
            connect = self.connect_sql.connect_tuqiang_sql()
            # 创建数据库游标
            cur = connect.cursor()

            # 执行sql脚本查询当前登录账号的userId,fullParent
            get_id_sql = "select o.account,o.userId,o.fullParentId from user_info o where o.account = '" + search_data[
                'account'] + "' ;"
            cur.execute(get_id_sql)
            # 读取数据
            user_relation = cur.fetchall()
            # 遍历数据
            for row in user_relation:
                user_relation_id = {
                    "account": row[0],
                    "userId": row[1],
                    "fullParent": row[2]
                }
                get_total_sql = self.search_sql.search_complex_sql(
                    user_relation_id['userId'], search_data)
                print(get_total_sql)
                cur.execute(get_total_sql)
                # 读取数据
                total_data = cur.fetchall()
                # 从数据tuple中获取最终查询记录统计条数
                total_list = []
                for range1 in total_data:
                    for range2 in range1:
                        total_list.append(range2)
                total = len(total_list)
                print('本次查询数据库的条数为:%s' % total)
                web_total = self.global_dev_search_page.easy_search_result()
                print('本次查询页面的条数是:%s' % web_total)
                self.assertEqual(total, web_total)
                self.driver.default_frame()
            cur.close()
            connect.close()

        csv_file.close()
Exemple #13
0
class TestCase172MovingOverviewTest(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.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_moving_overview_statistical(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_alarm_overview_list()
        self.statistical_form_page.switch_to_alarm_overview_form_frame()
        self.statistical_form_page.get_this_month_and_current_account_alarms()

        # 获取查询出来存在告警的设备imei
        current_dev = []
        get_number_in_search = self.statistical_form_page.get_total_number_in_search(
        )
        for n in range(get_number_in_search):
            dev_imei = self.statistical_form_page.get_per_dev_imei_in_list(n)
            current_dev.append(dev_imei)
        print(current_dev)

        # 搜索下级用户
        self.statistical_form_page.search_next_account_in_alarm_overview()
        # 添加下级的设备
        self.statistical_form_page.add_next_dev_imei_in_alarm_overview()

        # 获取查询出来存在告警的设备imei
        current_dev_again = []
        get_number_in_search = self.statistical_form_page.get_total_number_in_search(
        )
        for n in range(get_number_in_search):
            dev_imei = self.statistical_form_page.get_per_dev_imei_in_list(n)
            current_dev_again.append(dev_imei)
        print(current_dev_again)
        for i in range(len(current_dev)):
            self.assertIn(current_dev[i], current_dev_again)
        self.driver.default_frame()
Exemple #14
0
class TestCase187ClockInForm(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()

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

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

    def test_case_clock_in_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.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)
            begin_time = self.clock_in_page.get_begin_time_in_clock_in_form()
            end_time = self.clock_in_page.get_end_time_in_clock_in_form()

            request_url = request_base_url()
            if data['clock_in_type'] != 'all':
                header = {
                    '_method_': 'getClock',
                    'imeis': self.clock_in_page.get_dev_imei(),
                    'startTime': begin_time,
                    'endTime': end_time,
                    'clockType': data['clock_in_type']
                }
            else:
                header = {
                    '_method_': 'getClock',
                    'imeis': self.clock_in_page.get_dev_imei(),
                    'startTime': begin_time,
                    'endTime': end_time
                }
            sleep(10)
            res_json = requests.post(request_url, data=header).json()

            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),
                        'gpsTime':
                        self.clock_in_page.get_time_in_clock_form(n),
                        'clockType':
                        self.clock_in_page.get_on_off_in_clock_form(n),
                        'addr':
                        self.clock_in_page.get_addr_in_clock_form(n)
                    })
                res_data = res_json['data']
                for data in res_data:
                    del data['lat'], data['lng'], data['posMode']
                print(res_data)
                print(web_list)
                self.assertEqual(res_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),
                            'gpsTime':
                            self.clock_in_page.get_time_in_clock_form(n),
                            'clockType':
                            self.clock_in_page.get_on_off_in_clock_form(n),
                            'addr':
                            self.clock_in_page.get_addr_in_clock_form(n)
                        })
                res_data = res_json['data']
                for data in res_data:
                    del data['lat'], data['lng'], data['posMode']
                print(res_data)
                print(web_list)
                self.assertEqual(res_data, web_list)
        self.driver.default_frame()
class TestCase106GlobSearchAppDetailOperation(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.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_global_search_app_detail_operation(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in_jimitest()
        self.log_in_base.click_account_center_button()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)

        self.global_dev_search_page.click_easy_search()
        self.global_dev_search_page.swith_to_search_frame()
        self.global_dev_search_page.select_search_app_user()

        # 点击搜索
        # self.global_dev_search_page.click_search_button()
        # 点击详情
        self.global_dev_search_page.click_detail_in_app_user_search()

        # 点击控制台
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_console_button_in_app_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)

                self.assertEqual(self.base_url + '/console',
                                 self.driver.get_current_url())
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 重置密码
        # 点击重置密码
        self.global_dev_search_page.swith_to_search_frame()
        self.global_dev_search_page.click_reset_password_button_in_app_detail()
        # 点击关闭
        self.global_dev_search_page.close_button()

        # 点击重置密码
        self.global_dev_search_page.click_reset_password_button_in_app_detail()
        # 点击关闭
        self.global_dev_search_page.cancel_button()

        # 点击重置密码
        self.global_dev_search_page.click_reset_password_button_in_app_detail()
        # 点击关闭
        self.global_dev_search_page.ensure_button()

        get_text = self.global_dev_search_page.get_text_after_succeed()
        self.assertEqual(self.assert_text.account_center_page_operation_done(),
                         get_text)

        # 获取app用户详情页面绑定的设备信息
        get_dev_name = self.global_dev_search_page.get_dev_name_in_app_detail()
        get_dev_imei = self.global_dev_search_page.get_dev_imei_in_app_detail()
        get_dev_type = self.global_dev_search_page.get_dev_type_in_app_detail()
        get_dev_active_time = self.global_dev_search_page.get_dev_active_time_in_app_detail(
        )
        get_dev_expire_time = self.global_dev_search_page.get_dev_expire_time_in_app_detail(
        )
        get_dev_bound_user = self.global_dev_search_page.get_dev_bound_user_in_app_detail(
        )
        self.driver.default_frame()
        # 点击设备的操作
        # 详情
        self.global_dev_search_page.click_dev_operation_detail_in_app_detail()

        # 获取点击设备详情后页面的数据
        dev_name = self.global_dev_search_page.get_dev_name_in_dev_detail()
        self.assertEqual(get_dev_name, dev_name)

        dev_imei = self.global_dev_search_page.get_dev_imei_in_dev_detail()
        self.assertEqual(get_dev_imei, dev_imei)

        dev_type = self.global_dev_search_page.get_dev_type_in_dev_detail()
        self.assertEqual(get_dev_type, dev_type)

        dev_active_time = self.global_dev_search_page.get_dev_active_time_in_dev_detail(
        )
        self.assertEqual(get_dev_active_time, dev_active_time)

        dev_expire_time = self.global_dev_search_page.get_dev_expire_time_in_dev_detail(
        )
        self.assertEqual(get_dev_expire_time, dev_expire_time)

        dev_bound_user = self.global_dev_search_page.get_dev_bound_user_in_dev_detail(
        )
        self.assertEqual(get_dev_bound_user, dev_bound_user)

        # 点击设备的轨迹回放、实时跟踪、查看告警
        self.global_dev_search_page.return_app_user_detail_list()

        # 点击轨迹回放
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_track_replay_button_in_app_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)
                self.assertEqual(
                    self.base_url + '/trackreplay/locus?imei=%s' % dev_imei,
                    self.driver.get_current_url())
                # 断言点击轨迹回放后的设备名称和 imei
                get_imei_in_replay = self.global_dev_search_page.get_imei_in_replay(
                )
                self.assertEqual(dev_imei, get_imei_in_replay)
                get_dev_name_in_replay = self.global_dev_search_page.get_dev_name_in_replay(
                )
                self.assertEqual(dev_name, get_dev_name_in_replay)
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 点击实时跟踪
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_track_preset_button_in_app_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)
                self.assertEqual(
                    self.base_url +
                    '/trackpreset/tracking/%s?isTracking=0' % dev_imei,
                    self.driver.get_current_url())
                # 断言点击轨迹回放后的设备名称和 imei
                get_imei_in_track_preset = self.global_dev_search_page.get_imei_in_track_preset(
                )
                self.assertEqual(dev_imei, get_imei_in_track_preset)
                get_dev_name_in_track_preset = self.global_dev_search_page.get_dev_name_in_track_preset(
                )
                self.assertIn(dev_name, get_dev_name_in_track_preset)
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)

        # 点击查看告警
        current_handle = self.driver.get_current_window_handle()
        self.global_dev_search_page.click_alarm_detail_button_in_app_detail()
        all_handles = self.driver.get_all_window_handles()
        for handle in all_handles:
            if handle != current_handle:
                self.driver.switch_to_window(handle)
                self.assertEqual(
                    self.base_url + '/deviceReport/statisticalReport',
                    self.driver.get_current_url())
                # 断言
                text = self.global_dev_search_page.get_text_after_click_alarm_detail(
                )
                self.assertEqual(
                    self.assert_text.account_center_page_alarm_details_text(),
                    text)
                self.driver.close_current_page()
                sleep(2)
                self.driver.switch_to_window(current_handle)
Exemple #16
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)

        # 点击导出所有列
        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()
Exemple #17
0
class TestCase186ObdTroubleForm(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_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()
            begin_time = self.obd_form_page.get_begin_time()
            end_time = self.obd_form_page.get_end_time()

            request_url = request_base_url()
            header = {
                '_method_': 'getObdVehicleCondition',
                'imeis': self.obd_form_page.search_imei(),
                'startTime': begin_time,
                'endTime': end_time,
                'type': 'carfault'
            }
            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({
                        'gpsTime': self.obd_form_page.get_gps_time_in_vehicle_condition_form(n),
                        'lng': float(self.obd_form_page.get_lot_in_trouble_form(n)),
                        'lat': float(self.obd_form_page.get_lat_in_trouble_form(n)),
                        'errorCode': self.obd_form_page.get_error_code_in_trouble_form(n)
                    })

                res_data = res_json['data']
                for data in res_data:
                    del data['acc'], data['addr'], data['batteryVoltage'], data['direction'], data[
                        'engineLoad'], data['fuelConsumption1'], data['fuelConsumption2'], data['gpsInfo'], data[
                        'gpsSpeed'], data['heatingTime'], \
                        data['idleTime'], data['imei'], data[
                        'maxSpeed'], data['oilPer'], data['rapidAcceleration'], data['rapidDeceleration'], data[
                        'rotatingSpeed'], data[
                        'speed'], data['throttlePosition'], data['totalMileage'], data['waterTemperature']
                print(mile_and_oil_list)
                print(res_data)
                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({
                            'gpsTime': self.obd_form_page.get_gps_time_in_vehicle_condition_form(n),
                            'lng': float(self.obd_form_page.get_lot_in_trouble_form(n)),
                            'lat': float(self.obd_form_page.get_lat_in_trouble_form(n)),
                            'errorCode': self.obd_form_page.get_error_code_in_trouble_form(n)
                        })

                res_data = res_json['data']
                for data in res_data:
                    del data['acc'], data['addr'], data['batteryVoltage'], data['direction'], data[
                        'engineLoad'], data['fuelConsumption1'], data['fuelConsumption2'], data['gpsInfo'], data[
                        'gpsSpeed'], data['heatingTime'], \
                        data['idleTime'], data['imei'], data[
                        'maxSpeed'], data['oilPer'], data['rapidAcceleration'], data['rapidDeceleration'], data[
                        'rotatingSpeed'], data[
                        'speed'], data['throttlePosition'], data['totalMileage'], data['waterTemperature']
                print(mile_and_oil_list)
                print(res_data)
                self.assertEqual(mile_and_oil_list, res_data)
        csv_file.close()
        self.driver.default_frame()
Exemple #18
0
class TestCase173MovingDetailTest(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.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_moving_detail_test(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_alarm_detail_list()
        self.statistical_form_page.switch_to_alarm_detail_frame()
        # 查询当前用户全部设备的告警信息
        self.statistical_form_page.search_current_account_alarms_in_alarm_detail(
        )

        # 获取查询结果的所有imei
        # 获取查询总共有多少页
        page_number = self.statistical_form_page.get_total_page_after_search()
        dev_list = []
        if page_number == 0:
            pass
        elif page_number == 1:
            # 获取本页总共有多少条记录
            number = self.statistical_form_page.get_page_number_data_in_alarm_detail(
            )
            for n in range(number):
                dev_imei = self.statistical_form_page.get_per_dev_imei_in_dev_alarm_detail(
                    n)
                dev_list.append(dev_imei)
        else:
            for m in range(page_number):
                self.statistical_form_page.cilck_per_page_in_alarm_detail(m)
                number = self.statistical_form_page.get_page_number_data_in_alarm_detail(
                )
                for n in range(number):
                    dev_imei = self.statistical_form_page.get_per_dev_imei_in_dev_alarm_detail(
                        n)
                    dev_list.append(dev_imei)
        print(dev_list)
        dev_lists = list(set(dev_list))
        dev_lists.sort(key=dev_list.index)
        print(dev_lists)
        # 搜索当前用户的下级,并搜索
        self.statistical_form_page.search_next_account_in_alarm_detail()
        self.statistical_form_page.search_current_account_alarms_in_alarm_detail(
        )

        page_numbers = self.statistical_form_page.get_total_page_after_search()
        dev_list_again = []
        if page_numbers == 0:
            pass
        elif page_numbers == 1:
            # 获取本页总共有多少条记录
            number = self.statistical_form_page.get_page_number_data_in_alarm_detail(
            )
            for n in range(number):
                dev_imei = self.statistical_form_page.get_per_dev_imei_in_dev_alarm_detail(
                    n)
                dev_list_again.append(dev_imei)
        else:
            for m in range(page_numbers):
                self.statistical_form_page.cilck_per_page_in_alarm_detail(m)
                number = self.statistical_form_page.get_page_number_data_in_alarm_detail(
                )
                for n in range(number):
                    dev_imei = self.statistical_form_page.get_per_dev_imei_in_dev_alarm_detail(
                        n)
                    dev_list_again.append(dev_imei)
        print(dev_list_again)
        dev_lists_again = list(set(dev_list_again))
        dev_lists_again.sort(key=dev_list_again.index)
        print(dev_lists_again)
        # for i in range(len(dev_lists)):
        #     self.assertIn(dev_lists[i], dev_lists_again)
        for dev in dev_list:
            self.assertIn(dev, dev_lists_again)
        self.driver.default_frame()
Exemple #19
0
class TestCase180SportStatisticalAccForm(unittest.TestCase):
    '''
    运动报表,acc报表 接口与页面数据对比
    '''

    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.statistical_form_page4 = StatisticFormPage4(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()

        # 登录之后点击控制台,然后点击设置
        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_acc_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_acc_form_button()
        # 断言
        self.assertEqual(self.assert_text.statistical_form_acc_form(),
                         self.statistical_form_page.actual_text_after_click_acc_button())
        # 读数据
        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv('sport_statistical_acc_search_data2.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],
                'status': row[1],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }
            # 搜素数据+
            self.statistical_form_page.add_data_to_search_acc_form(search_data)
            self.statistical_form_page.switch_to_acc_report_form_frame()

            total_page = self.statistical_form_page4.get_total_page_in_over_acc_form()
            begin_time = self.statistical_form_page4.get_over_acc_report_form_begin_time()
            end_time = self.statistical_form_page4.get_over_acc_report_form_end_time()
            acc_state = self.statistical_form_page4.get_over_acc_report_form_acc_state()
            all_dev = self.search_sql.search_current_account_equipment(search_data['search_user'])
            imeis = self.statistical_form_page3.change_dev_imei_format(all_dev)
            total_time = self.statistical_form_page4.get_total_time_in_over_acc_form()
            open_count = self.statistical_form_page4.get_total_time_in_open_count_acc_form()
            close_count = self.statistical_form_page4.get_total_time_in_close_count_acc_form()

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

            elif total_page == 1:
                total_number_per_page = self.statistical_form_page4.get_total_number_per_page_in_over_acc_form()
                web_data = []
                for n in range(total_number_per_page):
                    web_data.append({
                        'start': self.statistical_form_page4.get_start_time_in_over_acc_form(n),
                        'end': self.statistical_form_page4.get_end_time_in_over_acc_form(n),
                        'imei': self.statistical_form_page4.get_imei_in_over_acc_form(n),
                        'acc': int(self.statistical_form_page4.get_state_in_over_acc_form(n)),
                    })
                print("页面数据", web_data)
                print(len(web_data))
                # 连接接口
                request_url = request_base_url()
                request_params = {
                    '_method_': 'getAccSegment',
                    'imeis': imeis,
                    'startTime': begin_time,
                    'endTime': end_time,
                    'acc': acc_state,
                }
                res = requests.post(request_url, data=request_params)
                sleep(30)
                response = res.json()
                res_data = response['data']
                for data in res_data:
                    del data['duration']
                print("接口数据", res_data)
                print(len(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_page4.get_total_number_per_page_in_over_acc_form()
                    for n in range(total_number_per_page):
                        web_data.append({
                            'start': self.statistical_form_page4.get_start_time_in_over_acc_form(n),
                            'end': self.statistical_form_page4.get_end_time_in_over_acc_form(n),
                            'imei': self.statistical_form_page4.get_imei_in_over_acc_form(n),
                            'acc': int(self.statistical_form_page4.get_state_in_over_acc_form(n)),
                        })
                print("页面数据", web_data)
                print(len(web_data))
                # 连接接口
                request_url = request_base_url()
                request_params = {
                    '_method_': 'getAccSegment',
                    'imeis': imeis,
                    'startTime': begin_time,
                    'endTime': end_time,
                    'acc': acc_state,

                }
                res = requests.post(request_url, data=request_params)
                sleep(30)
                response = res.json()
                res_data = response['data']
                for data in res_data:
                    del data['duration']
                print("接口数据", res_data)
                print(len(res_data))
                self.assertEqual(web_data, res_data)

            # 总用时
            # 连接接口
            request_url = request_base_url()
            request_params = {
                '_method_': 'getAccSegmentSum',
                'imeis': imeis,
                'startTime': begin_time,
                'endTime': end_time,
                'acc': acc_state,
            }
            res = requests.post(request_url, data=request_params)
            sleep(20)
            response = res.json()
            print(response)
            try:
                res_data = response['data']
            except:
                print("无数据")

            if total_time == "0":
                pass
            else:
                time = total_time.split("小时")
                print(time[0])
                time2 = time[1].split("分")
                print(time2[0])
                sec = time2[1].split("秒")[0]
                print(sec)

                web_total_time = (int(time[0]) * 60 * 60) + (int(time2[0]) * 60) + int(sec)
                print(web_total_time)
                self.assertEqual(web_total_time, res_data["duration"])
                self.assertEqual(int(open_count), res_data["accOn"])
                self.assertEqual(int(close_count), res_data["accOff"])

            self.driver.default_frame()
        csv_file.close()
Exemple #20
0
class TestCase506FormSearchAccSearch(unittest.TestCase):
    # 测试 报表 acc报表搜索功能

    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_acc_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_acc_form_button()
        # 断言
        self.assertEqual(
            self.assert_text.statistical_form_acc_form(),
            self.statistical_form_page.actual_text_after_click_acc_button())
        # 读数据
        # 读取查询数据
        csv_file = self.statistical_form_page_read_csv.read_csv(
            'sport_statistical_acc_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],
                'status': row[1],
                'choose_date': row[2],
                'begin_time': row[3],
                'end_time': row[4]
            }

            self.statistical_form_page.add_data_to_search_acc_form(search_data)
            self.statistical_form_page.switch_to_acc_report_form_frame()
            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_acc_sql(all_dev, search_data)
            get_total_sql_01 = self.search_sql.search_acc_sql_01(
                all_dev, search_data)
            get_total_sql_02 = self.search_sql.search_acc_sql_02(
                all_dev, search_data)
            get_total_sql_03 = self.search_sql.search_acc_sql_03(
                all_dev, search_data)
            get_total_sql_04 = self.search_sql.search_acc_sql_04(
                all_dev, search_data)
            get_total_sql_05 = self.search_sql.search_acc_sql_05(
                all_dev, search_data)
            get_total_sql_06 = self.search_sql.search_acc_sql_06(
                all_dev, search_data)
            get_total_sql_07 = self.search_sql.search_acc_sql_07(
                all_dev, search_data)
            get_total_sql_08 = self.search_sql.search_acc_sql_08(
                all_dev, search_data)
            get_total_sql_09 = self.search_sql.search_acc_sql_09(
                all_dev, search_data)
            get_total_sql_10 = self.search_sql.search_acc_sql_10(
                all_dev, search_data)
            get_total_sql_11 = self.search_sql.search_acc_sql_11(
                all_dev, search_data)
            get_total_sql_12 = self.search_sql.search_acc_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)
            get_total_list_01 = []
            acc_open_list_01 = []
            acc_close_list_01 = []
            all_time_list_01 = []
            for n in range(len(total_list_01)):
                if n % 3 == 0:
                    get_total_list_01.append(total_list_01[n])
                elif n % 3 == 1:
                    if total_list_01[n] == 1:
                        acc_open_list_01.append(total_list_01[n])
                    elif total_list_01[n] == 0:
                        acc_close_list_01.append(total_list_01[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_02 = []
            acc_open_list_02 = []
            acc_close_list_02 = []
            all_time_list_02 = []
            for n in range(len(total_list_02)):
                if n % 3 == 0:
                    get_total_list_02.append(total_list_02[n])
                elif n % 3 == 1:
                    if total_list_02[n] == 1:
                        acc_open_list_02.append(total_list_02[n])
                    elif total_list_02[n] == 0:
                        acc_close_list_02.append(total_list_02[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_03 = []
            acc_open_list_03 = []
            acc_close_list_03 = []
            all_time_list_03 = []
            for n in range(len(total_list_03)):
                if n % 3 == 0:
                    get_total_list_03.append(total_list_03[n])
                elif n % 3 == 1:
                    if total_list_03[n] == 1:
                        acc_open_list_03.append(total_list_03[n])
                    elif total_list_03[n] == 0:
                        acc_close_list_03.append(total_list_03[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_04 = []
            acc_open_list_04 = []
            acc_close_list_04 = []
            all_time_list_04 = []
            for n in range(len(total_list_04)):
                if n % 3 == 0:
                    get_total_list_04.append(total_list_04[n])
                elif n % 3 == 1:
                    if total_list_04[n] == 1:
                        acc_open_list_04.append(total_list_04[n])
                    elif total_list_04[n] == 0:
                        acc_close_list_04.append(total_list_04[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_05 = []
            acc_open_list_05 = []
            acc_close_list_05 = []
            all_time_list_05 = []
            for n in range(len(total_list_05)):
                if n % 3 == 0:
                    get_total_list_05.append(total_list_05[n])
                elif n % 3 == 1:
                    if total_list_05[n] == 1:
                        acc_open_list_05.append(total_list_05[n])
                    elif total_list_05[n] == 0:
                        acc_close_list_05.append(total_list_05[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_06 = []
            acc_open_list_06 = []
            acc_close_list_06 = []
            all_time_list_06 = []
            for n in range(len(total_list_06)):
                if n % 3 == 0:
                    get_total_list_06.append(total_list_06[n])
                elif n % 3 == 1:
                    if total_list_06[n] == 1:
                        acc_open_list_06.append(total_list_06[n])
                    elif total_list_06[n] == 0:
                        acc_close_list_06.append(total_list_06[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_07 = []
            acc_open_list_07 = []
            acc_close_list_07 = []
            all_time_list_07 = []
            for n in range(len(total_list_07)):
                if n % 3 == 0:
                    get_total_list_07.append(total_list_07[n])
                elif n % 3 == 1:
                    if total_list_07[n] == 1:
                        acc_open_list_07.append(total_list_07[n])
                    elif total_list_07[n] == 0:
                        acc_close_list_07.append(total_list_07[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_08 = []
            acc_open_list_08 = []
            acc_close_list_08 = []
            all_time_list_08 = []
            for n in range(len(total_list_08)):
                if n % 3 == 0:
                    get_total_list_08.append(total_list_08[n])
                elif n % 3 == 1:
                    if total_list_08[n] == 1:
                        acc_open_list_08.append(total_list_08[n])
                    elif total_list_08[n] == 0:
                        acc_close_list_08.append(total_list_08[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_09 = []
            acc_open_list_09 = []
            acc_close_list_09 = []
            all_time_list_09 = []
            for n in range(len(total_list_09)):
                if n % 3 == 0:
                    get_total_list_09.append(total_list_09[n])
                elif n % 3 == 1:
                    if total_list_09[n] == 1:
                        acc_open_list_09.append(total_list_09[n])
                    elif total_list_09[n] == 0:
                        acc_close_list_09.append(total_list_09[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_10 = []
            acc_open_list_10 = []
            acc_close_list_10 = []
            all_time_list_10 = []
            for n in range(len(total_list_10)):
                if n % 3 == 0:
                    get_total_list_10.append(total_list_10[n])
                elif n % 3 == 1:
                    if total_list_10[n] == 1:
                        acc_open_list_10.append(total_list_10[n])
                    elif total_list_10[n] == 0:
                        acc_close_list_10.append(total_list_10[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_11 = []
            acc_open_list_11 = []
            acc_close_list_11 = []
            all_time_list_11 = []
            for n in range(len(total_list_11)):
                if n % 3 == 0:
                    get_total_list_11.append(total_list_11[n])
                elif n % 3 == 1:
                    if total_list_11[n] == 1:
                        acc_open_list_11.append(total_list_11[n])
                    elif total_list_11[n] == 0:
                        acc_close_list_11.append(total_list_11[n])
                elif n % 3 == 2:
                    all_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)
            get_total_list_12 = []
            acc_open_list_12 = []
            acc_close_list_12 = []
            all_time_list_12 = []
            for n in range(len(total_list_12)):
                if n % 3 == 0:
                    get_total_list_12.append(total_list_12[n])
                elif n % 3 == 1:
                    if total_list_12[n] == 1:
                        acc_open_list_12.append(total_list_12[n])
                    elif total_list_12[n] == 0:
                        acc_close_list_12.append(total_list_12[n])
                elif n % 3 == 2:
                    all_time_list_12.append(total_list_12[n])

            total = len(get_total_list_01) + len(get_total_list_02) + len(
                get_total_list_03) + len(get_total_list_04) + len(
                    get_total_list_05) + len(get_total_list_06) + len(
                        get_total_list_07) + len(get_total_list_08) + len(
                            get_total_list_10) + len(get_total_list_11) + len(
                                get_total_list_12)
            total_acc_open = len(acc_open_list_01) + len(
                acc_open_list_02) + len(acc_open_list_03) + len(
                    acc_open_list_04) + len(acc_open_list_05) + len(
                        acc_open_list_06) + len(acc_open_list_07) + len(
                            acc_open_list_08) + len(acc_open_list_10) + len(
                                acc_open_list_11) + len(acc_open_list_12)
            total_acc_close = len(acc_close_list_01) + len(
                acc_close_list_02) + len(acc_close_list_03) + len(
                    acc_close_list_04) + len(acc_close_list_05) + len(
                        acc_close_list_06) + len(acc_close_list_07) + len(
                            acc_close_list_08) + len(acc_close_list_10) + len(
                                acc_close_list_11) + len(acc_close_list_12)
            total_time = sum(all_time_list_01) + sum(all_time_list_02) + sum(
                all_time_list_03) + sum(all_time_list_04) + sum(
                    all_time_list_05) + sum(all_time_list_06) + sum(
                        all_time_list_07) + sum(all_time_list_08) + sum(
                            all_time_list_10) + sum(all_time_list_11) + sum(
                                all_time_list_12)

            # 断言总条数
            web_total = self.statistical_form_page.get_total_search_acc_form_number(
            )
            self.assertEqual(total, web_total)
            # 断言acc打开几次
            web_acc_open_total = self.statistical_form_page.get_total_search_acc_open(
            )
            self.assertEqual(str(total_acc_open), web_acc_open_total)

            # 断言acc关闭几次
            web_acc_close_total = self.statistical_form_page.get_total_search_acc_close(
            )
            self.assertEqual(str(total_acc_close), web_acc_close_total)

            # 断言总时间
            total_times = self.statistical_form_page.change_sec_time(
                total_time)
            web_all_time_total = self.statistical_form_page.get_total_search_all_time(
            )
            self.assertEqual(total_times, web_all_time_total)

            # 点击导出报表
            self.driver.default_frame()
            cursor_02.close()
            connect_02.close()
        csv_file.close()
Exemple #21
0
class TestCase136GlobSearchDevSearch(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.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_glob_search_dev_search(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)
        self.global_dev_search_page.click_easy_search()
        self.global_dev_search_page.swith_to_search_frame()
        self.global_dev_search_page.click_advanced_search_button()

        # 点击搜索按钮
        self.global_dev_search_page.click_search_buttons_in_dev_advanced_search_page(
        )
        sleep(4)
        # 点击详情
        self.global_dev_search_page.click_detail_button_in_dev_advanced_search_page(
        )
        sleep(2)

        # 获取设备的imei和状态
        get_dev_imei = self.global_dev_search_page.get_dev_imei_in_details()
        get_dev_status = self.global_dev_search_page.get_dev_status_in_dev_detail(
        )

        # 点击关闭高级搜索
        self.driver.default_frame()
        self.global_dev_search_page.click_close_button()

        # 点击控制台
        self.global_dev_search_page.click_cancel_page_button()

        # 输入imei然后搜索
        self.global_dev_search_page.add_dev_imei_to_search_in_console(
            get_dev_imei)

        # 获取设备的状态在控制台页面
        get_dev_status_in_console_page = self.global_dev_search_page.get_dev_status_in_console_page(
        )
        self.assertEqual(get_dev_status, get_dev_status_in_console_page)
class TestCase118UserSearchModifyBatchIssuedWorkTypeAuthority(unittest.TestCase):
    def setUp(self):
        self.driver = AutomateDriver(choose='firefox')
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.global_dev_search_page = GlobalDevSearchPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_user_search_modify_batch_issued_work_type_authority(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)

        self.global_dev_search_page.click_easy_search()

        # 选择用户搜索
        self.global_dev_search_page.click_dev_search()
        self.global_dev_search_page.click_search_buttons()

        # 获取列表中第二个用户的账号
        self.global_dev_search_page.swith_to_search_frame()
        get_second_user_account = self.global_account_search_page.get_second_user_account_after_search_user()
        # 点击详情
        self.global_account_search_page.click_user_detail_button()
        # 点击用户信息
        self.global_account_search_page.click_user_info_in_user_detail()

        # 获取用户信息页面登录账号名字
        current_account = self.global_account_search_page.get_current_account_in_user_detail()
        self.assertEqual(get_second_user_account, current_account)

        # 获取各个权限input的select属性
        web_login_authority = self.global_account_search_page.get_web_login_authority_input_select_in_user_detail()
        app_login_authority = self.global_account_search_page.get_app_login_authorith_input_select_in_user_detail()

        batch_issued_command_authority = self.global_account_search_page.batch_issued_command_authority_in_user_detail()
        batch_issued_work_type_authority = self.global_account_search_page.batch_issued_work_type_authority_in_user_detail()

        web_modify_authority = self.global_account_search_page.get_web_modify_authority_in_user_detail()
        app_modify_authority = self.global_account_search_page.get_app_modify_authority_in_user_detail()

        if batch_issued_work_type_authority == True:
            ## 点击批量下发工作模式
            self.global_account_search_page.click_modify_batch_issued_work_type_authority_in_user_detail()
            # 点击保存
            self.global_account_search_page.click_ensuer_button_in_user_detail()
            # 点击关闭
            self.driver.default_frame()
            self.global_account_search_page.click_close_button()

            # # 退出登录
            self.global_account_search_page.logout()

            # 登录刚刚修改过的账号
            self.global_account_search_page.log_in_user(get_second_user_account, 'jimi123')
            # 进入设备管理页面
            self.global_account_search_page.click_dev_manage_page()

            total_number = self.global_account_search_page.get_total_button_in_dev_manage()
            operation_all = []
            for n in range(total_number):
                get_per_operation = self.global_account_search_page.get_per_operation_in_dev_manage(n)
                operation_all.append(get_per_operation)

            select_issued_work_type = self.assert_text.select_issued_work_type_text()
            self.assertNotIn(select_issued_work_type, operation_all)
            all_issued_work_type = self.assert_text.all_issued_work_type_text()
            self.assertNotIn(all_issued_work_type, operation_all)

            # 退出登录的账号
            self.global_account_search_page.click_account_manage_page()
            self.global_account_search_page.logout()

            # 登录web_autotest
            self.log_in_base.log_in()
            self.log_in_base.click_account_center_button()
            self.global_dev_search_page.click_easy_search()
            # 关闭
            self.global_dev_search_page.close_search()
            sleep(2)
            self.global_dev_search_page.click_easy_search()
            # 选择用户搜索
            self.global_dev_search_page.click_dev_search()
            self.global_dev_search_page.click_search_buttons()
            # 点击详情
            self.global_dev_search_page.swith_to_search_frame()
            self.global_account_search_page.click_user_detail_button()
            # 点击用户信息
            self.global_account_search_page.click_user_info_in_user_detail()

            ## 点击批量下发工作模式
            self.global_account_search_page.click_modify_batch_issued_work_type_authority_in_user_detail()
            # 点击保存
            self.global_account_search_page.click_ensuer_button_in_user_detail()
            # 点击关闭
            self.driver.default_frame()
            self.global_account_search_page.click_close_button()

            # # 退出登录
            self.global_account_search_page.logout()

            # 登录刚刚修改过的账号
            self.global_account_search_page.log_in_user(get_second_user_account, 'jimi123')
            # 进入设备管理页面
            self.global_account_search_page.click_dev_manage_page()

            total_number = self.global_account_search_page.get_total_button_in_dev_manage()
            operation_all = []
            for n in range(total_number):
                get_per_operation = self.global_account_search_page.get_per_operation_in_dev_manage(n)
                operation_all.append(get_per_operation)

            select_issued_work_type = self.assert_text.select_issued_work_type_text()
            self.assertIn(select_issued_work_type, operation_all)
            all_issued_work_type = self.assert_text.all_issued_work_type_text()
            self.assertIn(all_issued_work_type, operation_all)

        if batch_issued_work_type_authority == False:
            ## 点击批量下发工作模式
            self.global_account_search_page.click_modify_batch_issued_work_type_authority_in_user_detail()
            # 点击保存
            self.global_account_search_page.click_ensuer_button_in_user_detail()
            # 点击关闭
            self.driver.default_frame()
            self.global_account_search_page.click_close_button()

            # # 退出登录
            self.global_account_search_page.logout()

            # 登录刚刚修改过的账号
            self.global_account_search_page.log_in_user(get_second_user_account, 'jimi123')
            # 进入设备管理页面
            self.global_account_search_page.click_dev_manage_page()

            total_number = self.global_account_search_page.get_total_button_in_dev_manage()
            operation_all = []
            for n in range(total_number):
                get_per_operation = self.global_account_search_page.get_per_operation_in_dev_manage(n)
                operation_all.append(get_per_operation)

            select_issued_work_type = self.assert_text.select_issued_work_type_text()
            self.assertIn(select_issued_work_type, operation_all)
            all_issued_work_type = self.assert_text.all_issued_work_type_text()
            self.assertIn(all_issued_work_type, operation_all)

            # 退出登录的账号
            self.global_account_search_page.click_account_manage_page()
            self.global_account_search_page.logout()

            # 登录web_autotest
            self.log_in_base.log_in()
            self.log_in_base.click_account_center_button()
            self.global_dev_search_page.click_easy_search()
            # 关闭
            self.global_dev_search_page.close_search()
            sleep(2)
            self.global_dev_search_page.click_easy_search()
            # 选择用户搜索
            self.global_dev_search_page.click_dev_search()
            self.global_dev_search_page.click_search_buttons()
            # 点击详情
            self.global_dev_search_page.swith_to_search_frame()
            self.global_account_search_page.click_user_detail_button()
            # 点击用户信息
            self.global_account_search_page.click_user_info_in_user_detail()

            ## 点击批量下发工作模式
            self.global_account_search_page.click_modify_batch_issued_work_type_authority_in_user_detail()
            # 点击保存
            self.global_account_search_page.click_ensuer_button_in_user_detail()
            # 点击关闭
            self.driver.default_frame()
            self.global_account_search_page.click_close_button()

            # # 退出登录
            self.global_account_search_page.logout()

            # 登录刚刚修改过的账号
            self.global_account_search_page.log_in_user(get_second_user_account, 'jimi123')
            # 进入设备管理页面
            self.global_account_search_page.click_dev_manage_page()

            total_number = self.global_account_search_page.get_total_button_in_dev_manage()
            operation_all = []
            for n in range(total_number):
                get_per_operation = self.global_account_search_page.get_per_operation_in_dev_manage(n)
                operation_all.append(get_per_operation)

            select_issued_work_type = self.assert_text.select_issued_work_type_text()
            self.assertNotIn(select_issued_work_type, operation_all)
            all_issued_work_type = self.assert_text.all_issued_work_type_text()
            self.assertNotIn(all_issued_work_type, operation_all)
class TestCase197OilVerifyTheDisplayLine(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_197_oil_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_oil_reoport()
        self.statistical_form_page.switch_to_oil_report()
        # 点击展示列
        self.form_page.click_display_line_button_oil()
        # 获取有多少个展示列
        display_line_number = self.form_page.get_display_line_number_oil()
        self.form_page.click_display_line_button_oil()
        for n in range(display_line_number):
            # 获取每一个展示列是否被勾选
            self.form_page.click_display_line_button_oil()
            display_style = self.form_page.get_per_display_style_oil(n)
            display_style_list = []
            for n1 in range(display_line_number):
                display_styles = self.form_page.get_per_display_style_oil(n1)
                if display_styles == True:
                    display_style_list.append(display_styles)
            display_line_name = self.form_page.get_per_display_name_oil(n)
            # 点击
            self.form_page.click_per_display_input_button_oil(n)
            # 点击展示列
            self.form_page.click_display_line_button_oil()
            # 获取展示列数量
            display_line_name_list = []
            display_line_name_number = self.form_page.get_display_line_name_number_oil(
            )
            for m in range(display_line_name_number):
                display_name = self.form_page.get_per_display_name_on_line_oil(
                    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()
Exemple #24
0
class TestCase148SportStatisticalOverview(unittest.TestCase):
    '''
    运动统计,运动总览
    author:zhangAo
    '''
    def setUp(self):
        # 前置条件
        # 实例化对象
        self.driver = AutomateDriver()
        self.base_url = self.driver.base_url
        self.base_page = BasePage(self.driver, self.base_url)
        self.statistical_form_page = StatisticalFormPage(
            self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.search_sql = SearchSql(self.driver, self.base_url)
        self.assert_text = AssertText()
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.driver.clear_cookies()
        self.log_in_base.log_in_jimitest()

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

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

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

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

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

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

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

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

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

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

            # 断言总的停留次数
            web_stay_total = self.statistical_form_page.get_total_search_stay_total(
            )
            # self.assertEqual(str(total_stay), web_stay_total)
            # 导出
            self.driver.default_frame()
            cursor_02.close()
            connect_02.close()
        csv_file.close()
Exemple #25
0
class TestCase713FormExportOBDTroubleFormExport(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.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.statistical_form_page4 = StatisticFormPage4(
            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_obd_trouble_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_obd_trouble_form()
        self.statistical_form_page.switch_to_obd_trouble_frame()
        # 搜索数据
        self.form_export_page.search_obd_trouble_data()

        # 让其展示所有列
        # 点击展示列
        self.form_page.click_display_line_button_obd_failure()
        # 获取有多少个展示列
        display_line_number = self.form_page.get_display_line_name_number_obd_failure(
        )
        print(display_line_number)
        for n in range(display_line_number):
            # 获取每一个展示列是否被勾选
            display_style = self.form_page.get_per_display_style_obd_failure(n)
            if display_style == False:
                self.form_page.click_per_display_input_button_obd_failure(n)
        self.form_page.click_display_line_button_obd_failure()
        # 获取页面中的数据
        web_data = []
        total_page = self.statistical_form_page4.get_total_page_in_obd_car_condition(
        )
        if total_page == 0:
            pass
        else:
            if total_page == 1:
                total_number_per_page = self.statistical_form_page4.get_total_number_per_page_in_obd_car_condition(
                )
                for a in range(total_number_per_page):
                    web_data.append(
                        self.form_export_page.get_per_line_data_obd_trouble(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_page4.get_total_number_per_page_in_obd_car_condition(
                    )
                    for a in range(total_number_per_page):
                        web_data.append(
                            self.form_export_page.
                            get_per_line_data_obd_trouble(a))

            # 点击导出所有列
            self.form_export_page.click_export_button_in_mileage()
            # 切换到导出的frame中
            self.form_export_page.switch_export_frame()
            # 判断有多少个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_stay(
            )
            # 查找刚刚导出的文件
            file = self.form_export_page.find_expect_file()
            print(file)
            # 读excel文件
            excel_data = self.form_export_page.read_excel_file_by_index(file,
                                                                        n=0)
            del excel_data[0]
            print('excel', excel_data)
            print('web', web_data)

            self.assertEqual(web_data, excel_data)

        self.driver.default_frame()
class TestCase510FormSearchObdVehicleConditionSearch(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_vehicle_condition_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_vehicle_condition_condition_form_button()
        # 切换到odb里程统计的frame里面
        self.obd_form_page.switch_to_obd_vehicle_condition_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_vehicle_condition_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_vehicel_condition_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 = 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({
                        'begin_time':
                        self.obd_form_page.
                        get_begin_time_in_vehicle_condition_form(n),
                        'speed':
                        float(
                            self.obd_form_page.
                            get_speed_in_vehicle_condition_form(n)),
                        'rotating_speed':
                        float(
                            self.obd_form_page.
                            get_rotating_speed_in_vehicle_condition_form(n)),
                        'water_temperature':
                        float(
                            self.obd_form_page.
                            get_water_temperature_in_vehicle_condition_form(
                                n)),
                        'battery_voltage':
                        float(
                            self.obd_form_page.
                            get_battery_voltage_in_vehicle_condition_form(n)),
                        'fuel':
                        float(
                            self.obd_form_page.
                            get_fuel_in_vehicle_condition_form(n)),
                        'total_mileage':
                        float(
                            self.obd_form_page.
                            get_total_mileage_in_vehicle_condition_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_vehicle_condition_form(n),
                            'speed':
                            float(
                                self.obd_form_page.
                                get_speed_in_vehicle_condition_form(n)),
                            'rotating_speed':
                            float(
                                self.obd_form_page.
                                get_rotating_speed_in_vehicle_condition_form(
                                    n)),
                            'water_temperature':
                            float(
                                self.obd_form_page.
                                get_water_temperature_in_vehicle_condition_form(
                                    n)),
                            'battery_voltage':
                            float(
                                self.obd_form_page.
                                get_battery_voltage_in_vehicle_condition_form(
                                    n)),
                            'fuel':
                            float(
                                self.obd_form_page.
                                get_fuel_in_vehicle_condition_form(n)),
                            'total_mileage':
                            float(
                                self.obd_form_page.
                                get_total_mileage_in_vehicle_condition_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()
class TestCase137SearchUserByTypeCreatNewUser(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.global_dev_search_page = GlobalDevSearchPage(self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_137_search_user_by_type_creat_new_user(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()
        # 点击账号中心
        self.log_in_base.click_account_center_button()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)
        self.global_dev_search_page.click_easy_search()
        # 选择用户搜索
        self.global_dev_search_page.click_user_search_buttons()
        self.global_dev_search_page.swith_to_search_frame()

        # 获取用户列表有多少页
        user_account = ''
        total_page = self.global_dev_search_page.get_total_page_after_search_user()
        for n in range(total_page):
            self.global_dev_search_page.click_per_page(n)
            # 获取每页有多少条
            number = self.global_dev_search_page.get_per_page_total_number_in_search_user()
            for i in range(number):
                # 获取各个用户的用户类型
                user_type = self.global_dev_search_page.get_user_type_in_search_user(i)
                user_account = self.global_dev_search_page.get_user_account_in_search_user(i)
                if user_type == '销售':
                    break
        # 搜索获取到的销售类型的用户,搜索
        self.global_dev_search_page.search_user(user_account)
        # 点击新增下级用户
        self.global_dev_search_page.click_add_next_user_in_search_user()
        # 获取新增下级用户时,下级的客户类型有几种
        user_type_number = self.global_dev_search_page.get_user_type_number_in_search_user()
        self.assertEqual(3, user_type_number)

        self.global_dev_search_page.search_user('')
        user_account = ''
        total_page = self.global_dev_search_page.get_total_page_after_search_user()
        for n in range(total_page):
            self.global_dev_search_page.click_per_page(n)
            # 获取每页有多少条
            number = self.global_dev_search_page.get_per_page_total_number_in_search_user()
            for i in range(number):
                # 获取各个用户的用户类型
                user_type = self.global_dev_search_page.get_user_type_in_search_user(i)
                user_account = self.global_dev_search_page.get_user_account_in_search_user(i)
                if user_type == '代理商':
                    break
        # 搜索获取到的销售类型的用户,搜索
        self.global_dev_search_page.search_user(user_account)
        # 点击新增下级用户
        self.global_dev_search_page.click_add_next_user_in_search_user()
        # 获取新增下级用户时,下级的客户类型有几种
        user_type_number = self.global_dev_search_page.get_user_type_number_in_search_user()
        self.assertEqual(2, user_type_number)

        self.global_dev_search_page.search_user('')
        user_account = ''
        total_page = self.global_dev_search_page.get_total_page_after_search_user()
        for n in range(total_page):
            self.global_dev_search_page.click_per_page(n)
            # 获取每页有多少条
            number = self.global_dev_search_page.get_per_page_total_number_in_search_user()
            for i in range(number):
                # 获取各个用户的用户类型
                user_type = self.global_dev_search_page.get_user_type_in_search_user(i)
                user_account = self.global_dev_search_page.get_user_account_in_search_user(i)
                if user_type == '用户':
                    break
        # 搜索获取到的销售类型的用户,搜索
        self.global_dev_search_page.search_user(user_account)
        # 获取新增下级用户的display值
        get_new_next_display = self.global_dev_search_page.get_new_next_display_in_search_user()
        self.assertEqual('display: none;', get_new_next_display)

        self.driver.default_frame()
class TestCase96DevManageCheckAccountInfo(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.dev_manage_page = DevManagePages(self.driver, self.base_url)
        self.driver.set_window_max()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.dev_manage_page_read_csv = DevManagePageReadCsv()
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_dev_manage_check_account_info(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()

        # 循环点击
        for n in range(5):
            self.dev_manage_page.click_per_account_in_dev_manage_page(n)
            # 获取点击后的用户账号
            user_account = self.dev_manage_page.get_per_user_account_in_dev_manage_page(
            )
            # 连接数据库,获取该账号的信息
            get_account_info = self.dev_manage_page.get_account_info(
                user_account)
            # 断言用户信息
            get_user_nickname_in_page = self.dev_manage_page.get_user_nickname_in_page(
            )
            get_user_type_in_page = self.dev_manage_page.get_user_type_in_page(
            )
            get_user_phone_in_page = self.dev_manage_page.get_user_phone_in_page(
            )

            self.assertEqual(get_account_info['nickname'],
                             get_user_nickname_in_page)
            if get_account_info['phone'] == None:
                self.assertEqual('', get_user_phone_in_page)
            else:
                self.assertEqual(get_account_info['phone'],
                                 get_user_phone_in_page)

            type = self.assert_text.log_in_page_account_type(
                get_account_info['type'])
            self.assertEqual(get_user_type_in_page, type)

            get_account_nickname_in_cust_tree = self.dev_manage_page.get_account_nickname_in_cust_tree(
                n)
            self.assertEqual(get_user_nickname_in_page,
                             get_account_nickname_in_cust_tree)

            # 点击监控用户
            current_handle = self.driver.get_current_window_handle()
            self.dev_manage_page.click_control_account_button()
            all_handles = self.driver.get_all_window_handles()
            for handle in all_handles:
                if handle != current_handle:
                    self.driver.switch_to_window(handle)
                    expect_url = self.driver.base_url + '/index'
                    self.assertEqual(self.driver.get_current_url(), expect_url)

                    self.driver.close_current_page()
                    self.driver.switch_to_window(current_handle)

            # 点击编辑用户
            edit_style = self.dev_manage_page.get_edit_style_in_dev_page()
            if edit_style == 'display: inline;':
                self.dev_manage_page.click_edit_account_button()
                self.dev_manage_page.click_close_edit_button()

                self.dev_manage_page.click_edit_account_button()

                self.dev_manage_page.switch_to_dev_edit_frame()

                # 验证打开的信息是否正确
                # 分别获取上级客户、客户类型、客户名称、登录账号、电话
                up_user = self.dev_manage_page.get_up_user_edit_user_in_dev_page(
                )
                user_type = self.dev_manage_page.get_user_type_edit_user_in_dev_page(
                )
                user_name = self.dev_manage_page.get_user_name_edit_user_in_dev_page(
                )
                account = self.dev_manage_page.get_user_account_edit_in_dev_page(
                )
                user_phone = self.dev_manage_page.get_user_phone_edit_in_dev_page(
                )

                # 断言
                self.assertEqual(type, user_type)
                self.assertEqual(user_name, get_user_nickname_in_page)
                self.assertEqual(account, user_account)
                if get_account_info['phone'] == None:
                    self.assertEqual(user_phone, '')
                else:
                    # self.assertEqual(user_phone, get_account_info['phone'])
                    pass
                self.driver.default_frame()
                self.dev_manage_page.click_close_edit_button()
class TestCase182AlarmDetailSearch(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.alarm_info_page = AlarmInfoPage(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_page = StatisticalFormPage(self.driver, self.base_url)
        self.connect_sql = ConnectSql()
        self.statistical_form_page3 = StatisticFormPage3(self.driver, self.base_url)
        self.seasrch_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.assert_text = AssertText()
        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_alarm_detail_search(self):
        # 断言url
        expect_url = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(expect_url, self.alarm_info_page.actual_url_click_alarm())
        # 点击告警详情
        self.alarm_info_page.click_alarm_detail_list()
        # 选择全部的告警类型查询
        self.statistical_form_page3.select_all_alarm_type_in_alarm_detail_search()
        # 读数据
        csv_file = self.statistical_form_page_read_csv.read_csv('alarm_detail_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],
                'type': row[1],
                'status': row[2],
                'alarm_begin_time': row[3],
                'alarm_end_time': row[4],
                'push_begin_time': row[5],
                'push_end_time': row[6],
                'is_input_dev': row[7]
            }
            self.statistical_form_page3.add_data_to_search_alarm_detail(data)

            get_alarm_begin_time = self.statistical_form_page3.get_alarm_begin_time_in_alarm_detail_page()
            get_alarm_end_time = self.statistical_form_page3.get_alarm_end_time_in_alarm_detail_page()
            get_push_begin_time = self.statistical_form_page3.get_push_begin_time_in_alarm_detail_page()
            get_push_end_time = self.statistical_form_page3.get_push_end_time_in_alarm_detail_page()
            all_dev = self.seasrch_sql.search_current_account_equipment(data['user_name'])
            imeis = self.statistical_form_page3.change_dev_imei_format(all_dev)
            get_current_userid = self.seasrch_sql.search_current_account_user_id(data['user_name'])
            request_url = request_base_url()

            if data['is_input_dev'] == '0':
                request_params = {
                    '_method_': 'getAlarmDetailNoPaging',
                    'startTime': get_alarm_begin_time,
                    'endTime': get_alarm_end_time,
                    'userIds': get_current_userid,
                }
                res = requests.post(request_url, data=request_params)
                sleep(20)
                response = res.json()
                res_data = response['data']
                for data_1 in res_data:
                    del data_1['alarmType'], data_1['id'], data_1['lat'], data_1['lng'], data_1['speed'], data_1[
                        'status'], data_1['userId']
                print(res_data)

                web_total_number = self.statistical_form_page3.get_web_total_number_in_alarm_detail_page()
                web_data = []
                for n in range(web_total_number):
                    web_data.append({
                        'imei': self.statistical_form_page3.get_imei_in_alarm_detail(n),
                        'createTime': self.statistical_form_page3.get_creat_time_in_alarm_detail(n),
                        'pushTime': self.statistical_form_page3.get_push_time_in_alarm_detail(n),
                        'addr': self.statistical_form_page3.get_addr_in_alarm_detail(n),
                        'readStatus': self.statistical_form_page3.get_read_status_in_alarm_detail(n)
                    })
                print(web_data)
                self.assertEqual(web_data, res_data)

            elif data['is_input_dev'] == '1':
                request_params = {
                    '_method_': 'getAlarmDetailNoPaging',
                    'startCreateTime': get_push_begin_time,
                    'endCreateTime': get_push_end_time,
                    'userIds': get_current_userid,
                    'imeis': imeis
                }
                res = requests.post(request_url, data=request_params)
                sleep(20)
                response = res.json()
                res_data = response['data']
                for data_1 in res_data:
                    del data_1['alarmType'], data_1['id'], data_1['lat'], data_1['lng'], data_1['speed'], data_1[
                        'status'], data_1['userId']
                print(res_data)

                web_total_number = self.statistical_form_page3.get_web_total_number_in_alarm_detail_page()
                web_data = []
                for n in range(web_total_number):
                    web_data.append({
                        'imei': self.statistical_form_page3.get_imei_in_alarm_detail(n),
                        'createTime': self.statistical_form_page3.get_creat_time_in_alarm_detail(n),
                        'pushTime': self.statistical_form_page3.get_push_time_in_alarm_detail(n),
                        'addr': self.statistical_form_page3.get_addr_in_alarm_detail(n),
                        'readStatus': self.statistical_form_page3.get_read_status_in_alarm_detail(n)
                    })
                print(web_data)
                self.assertEqual(web_data, res_data)
            self.driver.default_frame()
        csv_file.close()
Exemple #30
0
class TestCase108GlobSearchUserDetail(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.global_dev_search_page = GlobalDevSearchPage(
            self.driver, self.base_url)
        self.account_center_page_navi_bar = AccountCenterNaviBarPages(
            self.driver, self.base_url)
        self.driver.set_window_max()
        self.global_account_search_page = GlobalAccountSearchPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.global_search_page_read_csv = GlobleSearchPageReadCsv()
        self.search_sql = SearchSql()
        self.driver.wait(1)
        self.connect_sql = ConnectSql()
        self.assert_text = AssertText()
        self.driver.clear_cookies()
        self.driver.wait(1)

    def tearDown(self):
        self.driver.quit_browser()

    def test_case_global_search_user_detail(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        self.log_in_base.log_in()
        self.log_in_base.click_account_center_button()
        self.global_dev_search_page.click_easy_search()
        # 关闭
        self.global_dev_search_page.close_search()
        sleep(2)

        self.global_dev_search_page.click_easy_search()

        # 选择用户搜索
        self.global_dev_search_page.click_account_search()
        # self.global_dev_search_page.click_search_buttons()

        user_name = self.global_dev_search_page.get_user_name_in_user_search()
        user_type = self.global_dev_search_page.get_user_type_in_user_search()
        user_account = self.global_dev_search_page.get_user_account_in_user_search(
        )
        # 点用户详情
        self.global_dev_search_page.click_detail_in_user_search()

        # 用户信息
        self.global_dev_search_page.click_user_info_in_user_detail()
        # 获取用户信息中用户名称,用户类型、用户账号、上级用户
        user_name_in_detail = self.global_dev_search_page.get_user_name_in_detail(
        )
        self.assertIn(user_name, user_name_in_detail)

        # user_type_in_detail = self.global_dev_search_page.get_user_type_in_detail()
        # self.assertEqual(user_type, user_type_in_detail)

        uesr_account_in_detail = self.global_dev_search_page.get_user_account_in_detail(
        )
        self.assertEqual(user_account, uesr_account_in_detail)
        user_account_input_value = self.global_dev_search_page.get_user_account_input_value_in_detail(
        )
        self.assertEqual('true', user_account_input_value)

        get_up_user_name = self.global_dev_search_page.get_up_user_name_in_detail(
        )
        get_up_user_input_value = self.global_dev_search_page.get_up_user_input_value_in_detail(
        )
        self.assertEqual('true', get_up_user_input_value)

        # 查询选中用户的上级
        connect = self.connect_sql.connect_tuqiang_sql()
        cursor = connect.cursor()
        get_up_account_sql = "select parentId from user_info where account = '%s';" % user_account
        cursor.execute(get_up_account_sql)
        get_up_account = cursor.fetchall()
        up_account_id = get_up_account[0][0]
        get_up_name_sql = "select nickName from user_info where userId = '%s';" % up_account_id
        cursor.execute(get_up_name_sql)
        get_up_name = cursor.fetchall()
        up_account = get_up_name[0][0]
        cursor.close()
        connect.close()
        self.assertEqual(get_up_user_name, up_account)

        # 验证右侧的客户数是否可以搜索
        # 搜索没有的数据
        text = self.global_dev_search_page.search_user_in_user_info('无数据')
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      text)

        # 循环点击五次
        for n in range(5):
            self.global_dev_search_page.swith_to_search_frame()
            self.driver.click_element(
                'x,//*[@id="complex_userInfo_tree_complexUpdate_%s_a"]' %
                str(n + 15))
            get_up_user_name = self.global_dev_search_page.get_up_user_name_in_details(
            )
            select_up_name = self.driver.get_text(
                'x,//*[@id="complex_userInfo_tree_complexUpdate_%s_span"]' %
                str(n + 15))
            # self.assertEqual(get_up_user_name, select_up_name)
            sleep(2)
            self.driver.default_frame()

        # 点击销售设备
        self.global_dev_search_page.click_sale_dev_in_user_info()
        # 获取销售的对象
        sale_user_name = self.global_dev_search_page.get_sale_user_name()
        self.assertEqual(user_name, sale_user_name)

        # 点击新增客户
        self.global_dev_search_page.click_add_user_in_user_info()
        # 获取新增客户默认的上级
        up_user_in_add_user = self.global_dev_search_page.get_up_user_in_add_user(
        )
        self.assertIn(user_name, up_user_in_add_user)

        # 验证账号
        # 为空
        self.global_dev_search_page.check_add_user_account_input_in_user_info(
            '')
        self.global_dev_search_page.click_save_add_user()
        text = self.global_dev_search_page.get_text_account_input_expertion()
        self.assertEqual(self.assert_text.cust_page_user_account_not_null(),
                         text)

        # 小于3位
        self.global_dev_search_page.check_add_user_account_input_in_user_info(
            '12')
        self.global_dev_search_page.click_save_add_user()
        text = self.global_dev_search_page.get_text_account_input_expertion()
        self.assertEqual(self.assert_text.cust_page_user_account_len(), text)

        # 验证最大长度
        get_user_account_input_max_len = self.global_dev_search_page.get_user_account_input_max_len(
        )
        self.assertEqual('30', get_user_account_input_max_len)

        # 验证客户名称
        # 为空
        self.global_dev_search_page.check_add_user_name_input_in_user_info('')
        self.global_dev_search_page.click_save_add_user()
        text = self.global_dev_search_page.get_text_name_input_expertion()
        self.assertEqual(self.assert_text.cust_page_user_name_not_null(), text)

        # 小于3位
        self.global_dev_search_page.check_add_user_name_input_in_user_info(
            '12')
        self.global_dev_search_page.click_save_add_user()
        text = self.global_dev_search_page.get_text_name_input_expertion()
        self.assertEqual(self.assert_text.cust_page_user_name_more_than_3s(),
                         text)

        # 密码
        # 为空
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            '')
        self.global_dev_search_page.click_save_add_user()
        get_first_password_text = self.global_dev_search_page.get_first_password_text(
        )
        self.assertEqual(self.assert_text.cust_page_user_password_not_nulls(),
                         get_first_password_text)

        # 小于6位
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            '12qw')
        self.global_dev_search_page.click_add_user_password_second_input_in_user_info(
            '12qw')
        self.global_dev_search_page.click_save_add_user()
        get_first_password_text = self.global_dev_search_page.get_first_password_text(
        )
        self.assertEqual(self.assert_text.cust_page_user_password_len(),
                         get_first_password_text)

        # 全数字
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            '121212')
        self.global_dev_search_page.click_add_user_password_second_input_in_user_info(
            '121212')
        self.global_dev_search_page.click_save_add_user()
        get_first_password_text = self.global_dev_search_page.get_first_password_text(
        )
        self.assertEqual(
            self.assert_text.account_center_page_password_formart_text(),
            get_first_password_text)

        # 全字母
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            'qwerqw')
        self.global_dev_search_page.click_add_user_password_second_input_in_user_info(
            'qwerqw')
        self.global_dev_search_page.click_save_add_user()
        get_first_password_text = self.global_dev_search_page.get_first_password_text(
        )
        self.assertEqual(
            self.assert_text.account_center_page_password_formart_text(),
            get_first_password_text)
        # 两次密码不一致
        self.global_dev_search_page.click_add_user_password_first_input_in_user_info(
            'qwerqw123')
        self.global_dev_search_page.click_add_user_password_second_input_in_user_info(
            'qwerqw2324')
        self.global_dev_search_page.click_save_add_user()
        get_second_password_text = self.global_dev_search_page.get_second_password_text(
        )
        self.assertEqual(self.assert_text.cust_page_password_unlike(),
                         get_second_password_text)