コード例 #1
0
    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()

        # 登录之后点击控制台,然后点击设置
        self.statistical_form_page.click_control_after_click_statistical_form_page(
        )
        sleep(3)
コード例 #2
0
    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.command_management_page = CommandManagementPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        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()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management(
        )
        sleep(3)
コード例 #3
0
class TestCase164SportStatisticalAccFormOperation(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.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_operation(self):
        # 断言url
        expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(
            expect_url_after_click_statistical_form,
            self.statistical_form_page.actual_url_after_statistical_form())

        # 点击停留报表
        self.statistical_form_page.click_acc_form_button()

        for n in range(5):
            self.statistical_form_page.click_customer_in_acc_form(n)
            # 点击搜索设备按钮
            self.statistical_form_page.click_search_dev_button_in_acc_form()
            # 获取有多少组
            number = self.statistical_form_page.get_group_number_in_acc_form()
            if number == 0:
                pass
            else:
                for m in range(number):
                    # 收起默认组
                    self.statistical_form_page.click_defalut_group_in_acc_form(
                    )
                    # 获取每个组设备的数量
                    dev_number = self.statistical_form_page.get_dev_number_in_acc_form(
                        m)
                    # 点开每一个分组
                    self.statistical_form_page.click_per_group_in_acc_form(m)
                    dev_number_list = self.statistical_form_page.get_dev_number_list_in_acc_form(
                        m)
                    self.assertEqual(str(dev_number_list), dev_number)
    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)
class TestCase93DevManageUnbundleDev(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.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

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

        # 搜索绑定的设备
        self.dev_manage_page.search_bundle_dev()
        #  获取第一个设备的imei
        imei_in_list = self.dev_manage_page.get_imei_in_list()

        # 点击解绑
        self.dev_manage_page.click_unbundle_dev()

        imei_in_list_again = self.dev_manage_page.get_imei_in_list()

        self.assertNotEqual(imei_in_list, imei_in_list_again, '解绑失败')
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()
コード例 #7
0
class TestCase165StatisticalFormAlarmOverview(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.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()
        time.sleep(3)

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

    def test_case_statistical_form_alarm_overview(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_overview_list()

        for n in range(5):
            self.statistical_form_page.click_customer_in_alarm_overview(n)
            # 点击搜索设备按钮
            self.statistical_form_page.click_search_dev_button_alarm_form()
            # 获取有多少组
            number = self.statistical_form_page.get_group_number_in_alarm_overview_form()
            if number == 0:
                pass
            else:
                for m in range(number):
                    # 收起默认组
                    self.statistical_form_page.click_defalut_group_in_alarm_overview_form()
                    # 获取每个组设备的数量
                    dev_number = self.statistical_form_page.get_dev_number_in_alarm_overview_form(m)
                    # 点开每一个分组
                    self.statistical_form_page.click_per_group_in_alarm_overview_form(m)
                    dev_number_list = self.statistical_form_page.get_dev_number_list_in_alarm_overview_form(m)
                    self.assertEqual(str(dev_number_list), dev_number)
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()
コード例 #9
0
class TestCase02UserManageAddUserException1(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.login_page = LoginPage(self.driver, self.base_url)
        self.user_center = UserCenter(self.driver, self.base_url)
        self.user_management = UserManagement(self.driver, self.base_url)
        self.log_in_page_read_csv = LogInPageReadCsv()
        self.user_center_read_csv = UserCenterReadCsv()
        self.user_management_read_csv = UserManagementReadCsv()
        self.driver.set_window_max()
        self.connect_sql = ConnectSql()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

        # 打开风控首页-登录页
        self.base_page.open_page()
        sleep(1)
        # 登录账号
        self.login_page.test_user_login()



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

    def test_add_user_exception1(self):
        # 通过csv测试新增用户功能异常情况


        # 获取当前登录账户
        log_in_account = self.user_center.get_login_account()
        print(log_in_account)

        csv_file = self.user_management_read_csv.read_csv('add_user_exception1.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            add_user_exception = {
                "add_user_name": row[0],
                "add_login_user": row[1],
                "add_login_passwd": row[2],
                "add_user_phone": row[3],
                "add_user_role":row[4],
                "exception_text": row[5],
            }

            # 点击进入用户管理
            self.user_management.click_user_manage()
            # 点击新增用户
            self.user_management.click_add_user()
            # 切入内层frame
            self.user_management.switch_to_2_frame()
            # 输入新增用户名
            self.user_management.input_add_user_name(add_user_exception['add_user_name'])
            # 输入登陆账号
            self.user_management.input_add_login_user(add_user_exception['add_login_user'])
            # 输入登录密码
            self.user_management.input_add_login_passwd(add_user_exception['add_login_passwd'])
            # 输入手机号码
            self.user_management.input_add_user_phone(add_user_exception['add_user_phone'])
            # 判断分配用户角色
            if add_user_exception['add_user_role'] == '1':
                self.user_management.input_add_user_role()
            # 选择所属公司部门
            self.user_management.choose_add_user_org()
            # 点击保存按钮
            self.user_management.click_add_user_save()

            # 获取异常提示
            text = self.user_management.get_add_user_exception1()

            self.assertEqual(add_user_exception['exception_text'], text)

            # 关闭新增用户框
            self.user_management.click_add_user_close()

            # 跳出最外层frame
            self.user_management.switch_to_default_content()

            # 从数据库查询验证新增失败
            new_user_name = self.user_management.get_add_user_by_sql(log_in_account)
            self.assertNotEqual(new_user_name, add_user_exception['add_user_name'])
            self.driver.wait(1)

        csv_file.close()

        # 退出登录
        self.user_center.logout()
class TestCase155SportStatisticalParkingFormExceptionSearch(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_page2 = StatisticalFormPage2(self.driver, self.base_url)
        self.statistical_form_page_read_csv = StatisticalFormPageReadCsv()
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.assert_text = AssertText()
        # 打开页面,填写用户名、密码、点击登录
        self.base_page.open_page()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)

    def test_parking_form_exception_search(self):
        """
         停车未熄火报表页面,异常搜索数据验证
        """
        # 登录
        self.log_in_base.log_in_jimitest()
        # 点击进入统计报表、停车未熄火报表
        self.statistical_form_page.click_control_after_click_statistical_form_page()
        self.statistical_form_page.click_paking_not_shut_down_form_button()

        # 取开始、结束时间
        type = ["今天", "本周", "昨天", "上周", "本月", "上月", "自定义"]
        data = ["暂无数据"]

        for time in type:
            time = self.statistical_form_page2.parking_not_shut_down_form_validation_time(time)
            self.assertEqual(time["page_time"]["page_start_time"], time["sql_time"]["sql_start_time"], "实际与显示的开始时间不相符")
            self.assertEqual(time["page_time"]["page_end_time"], time["sql_time"]["sql_end_time"], "实际与显示的结束时间不相符")

        # 验证提示
        for user in data:
            text = self.statistical_form_page2.search_inexistence_user(user)
            print(text)
            self.assertIn(user, text, "搜索后的数据不存在实际搜索出的数据中")

        # 验证搜索下级的imei可以搜索到
        # 填写下级的imei搜索
        sleep(2)
        self.statistical_form_page2.input_imei_to_search_in_paking_form(self.statistical_form_page2.get_imei())
        # 断言
        # 获取查询设备的imei
        search_imei = self.statistical_form_page2.get_search_imei_in_paking_form()
        self.assertEqual(search_imei, self.statistical_form_page2.get_imei())

        # 验证停机的设备无法搜索到
        self.statistical_form_page2.input_imei_to_search_in_paking_form(
            self.statistical_form_page2.get_shut_down_imei())
        # 获取搜索的数量
        get_number_after_search = self.statistical_form_page.get_number_after_search_in_paking_form()
        self.assertEqual(0, get_number_after_search)

        get_text_after_search = self.statistical_form_page.get_text_after_search_in_paking_form()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text_after_search)

        # 验证未激活的设备无法搜索到
        self.statistical_form_page2.input_imei_to_search_in_paking_form(
            self.statistical_form_page2.get_no_active_imei())
        # 获取搜索的数量
        get_number_after_search = self.statistical_form_page.get_number_after_search_in_paking_form()
        self.assertEqual(0, get_number_after_search)

        get_text_after_search = self.statistical_form_page.get_text_after_search_in_paking_form()
        self.assertIn(self.assert_text.account_center_page_no_data_text(), get_text_after_search)

    def tearDown(self):
        # 退出浏览器
        self.driver.quit_browser()
コード例 #11
0
class TestCase04AccountLog(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.login_page = LoginPage(self.driver, self.base_url)
        self.user_center = UserCenter(self.driver, self.base_url)
        self.operation_log = OperationLog(self.driver, self.base_url)
        self.log_in_page_read_csv = LogInPageReadCsv()
        self.user_center_read_csv = UserCenterReadCsv()
        self.operation_log_read_csv = OperationLogReadCsv()
        self.driver.set_window_max()
        self.connect_sql = ConnectSql()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_account_log(self):
        # 测试账号管理记录

        # 打开风控首页-登录页
        self.base_page.open_page()
        sleep(1)
        # 登录账号
        self.login_page.test_log_login_user_normal()
        # 获取当前登录账号
        log_in_account = self.user_center.get_login_account()
        print(log_in_account)

        # 从数据库获取登录账号的客户名称、电话
        account_info = self.user_center.get_account_info_by_sql(log_in_account)
        print(account_info)

        # 获取修改资料里面的信息
        user_info = self.user_center.get_user_info()

        # 断言
        self.assertEqual(log_in_account, user_info['login_account'])
        self.assertEqual(account_info[1], user_info['name'])
        self.assertEqual(account_info[2], user_info['tel'])

        # 点击设置
        self.operation_log.click_setup()

        # 点击进入操作日志
        self.operation_log.click_operation_log()

        # 切入frame
        self.operation_log.switch_to_myframe()

        # 点击账号管理记录
        self.operation_log.click_account_log()

        csv_file = self.operation_log_read_csv.read_csv('account_log.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            account_log = {
                "start_time": row[0],
                "end_time": row[1],
                "type": row[2],
            }

            # 输入时间段
            self.operation_log.account_input_time(account_log['start_time'],
                                                  account_log['end_time'])

            # 选择类型
            self.operation_log.account_choose_type(account_log['type'])

            # 点击搜索
            self.operation_log.account_click_search()
            '''# 获取搜索结果
            result_info = self.operation_log.get_account_log_search_result()
            print(result_info)


            # 获取数据库查询结果
            info = self.operation_log.get_account_log_search_result_by_sql(log_in_account,account_log['start_time'],account_log['end_time'])


            # 验证搜索结果是否一致
            self.assertEqual(result_info,info)'''

            # 点击重置
            self.operation_log.account_click_reset()

        # 跳出frame
        self.operation_log.switch_default()

        # 退出登录
        self.user_center.logout()
class TestCase01LoanCustomerInput(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.login_page = LoginPage(self.driver, self.base_url)
        self.user_center = UserCenter(self.driver, self.base_url)
        self.loan_customer = LoanCustomer(self.driver, self.base_url)
        self.log_in_page_read_csv = LogInPageReadCsv()
        self.user_center_read_csv = UserCenterReadCsv()
        self.loan_customer_read_csv = LoanCustomerReadCsv()
        self.driver.set_window_max()
        self.connect_sql = ConnectSql()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)



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

    def test_user_center_modify_info(self):
        # 通过csv测试贷款客户信息录入


        csv_file = self.loan_customer_read_csv.read_csv('loan_customer_input_info.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            loan_customer_input_info = {
                "name": row[0],
                "tel": row[1],
                "type": row[2],
                "ID": row[3],
                "sex": row[4],
                "com": row[5],
                "car_num": row[6],
                "model": row[7],
                "engi_num": row[8],
                "frame_num": row[9],
                "car_type": row[10],
                "loan_money": row[11],
                "loan_deadline": row[12],
                "current_balance": row[13],
                "pay_type": row[14],
                "pay_date": row[15],
                "contract_number": row[16],
                "imei": row[17],
                "install_address": row[18],
                "install_person": row[19],
            }


            # 打开风控首页-登录页
            self.base_page.open_page()
            sleep(1)
            # 登录账号
            self.login_page.test_user_login()
            # 获取当前登录账号
            log_in_account = self.user_center.get_login_account()
            print(log_in_account)

            # 从数据库获取登录账号的客户名称、电话
            account_info = self.user_center.get_account_info_by_sql(log_in_account)
            print(account_info)

            # 获取修改资料里面的信息
            user_info = self.user_center.get_user_info()

            # 断言
            self.assertEqual(log_in_account, user_info['login_account'])
            self.assertEqual(account_info[1], user_info['name'])
            self.assertEqual(account_info[2], user_info['tel'])


            # 点击进入贷款客户录入
            self.loan_customer.click_loan_customer_input()

            # 切入外层frame
            self.loan_customer.switch_to_1_frame()

            # 录入车主信息
            # 录入车主姓名
            self.loan_customer.input_owner_name(loan_customer_input_info['name'])

            # 录入车主电话
            self.loan_customer.input_owner_tel(loan_customer_input_info['tel'])

            # 选择车主证件类型
            self.loan_customer.choose_owner_ID_type(loan_customer_input_info['type'])

            # 输入车主证件号
            self.loan_customer.input_owner_ID(loan_customer_input_info['ID'])

            # 选择车主性别
            self.loan_customer.choose_owner_sex(loan_customer_input_info['sex'])

            # 选择车主贷款单位
            self.loan_customer.choose_owner_loan_com(loan_customer_input_info['com'])

            # 保存
            self.loan_customer.save_owner_info()

            # 验证是否保存成功


            # 录入车辆信息
            # 输入车牌号
            self.loan_customer.input_car_num(loan_customer_input_info['car_num'])

            # 输入车型
            self.loan_customer.input_car_model(loan_customer_input_info['model'])

            # 输入发动机号
            self.loan_customer.input_car_engi_num(loan_customer_input_info['engi_num'])

            # 输入车架号
            self.loan_customer.input_car_frame_num(loan_customer_input_info['frame_num'])

            # 选择车辆类型
            self.loan_customer.choose_car_type(loan_customer_input_info['car_type'])


            # 保存车辆信息
            self.loan_customer.save_car_info()

            # 验证是否保存成功


            # 录入贷款信息
            # 输入贷款日期
            self.loan_customer.input_loan_date()

            # 输入贷款金额
            self.loan_customer.input_loan_money(loan_customer_input_info['loan_money'])

            # 输入贷款期限
            self.loan_customer.input_loan_deadline(loan_customer_input_info['loan_deadline'])

            # 输入应还金额
            self.loan_customer.input_current_balance(loan_customer_input_info['current_balance'])

            # 选择还款方式
            self.loan_customer.choose_pay_type(loan_customer_input_info['pay_type'])

            # 选择还款日
            self.loan_customer.choose_pay_date(loan_customer_input_info['pay_date'])

            # 输入合同编号
            self.loan_customer.input_contract_number(loan_customer_input_info['contract_number'])

            # 保存贷款信息
            self.loan_customer.save_loan_info()

            # 验证是否保存成功


            # 录入安装设备
            # 点击安装设备
            self.loan_customer.click_install_dev()


            # 输入Imei
            self.loan_customer.input_dev_imei(loan_customer_input_info['imei'])

            # 选择安装时间
            self.loan_customer.choose_install_time()

            # 输入安装地址
            self.loan_customer.input_install_address(loan_customer_input_info['install_address'])

            # 输入安装人员
            self.loan_customer.input_install_person(loan_customer_input_info['install_person'])

            # 保存安装信息
            self.loan_customer.save_install_info()

            # 跳出frame1
            self.loan_customer.switch_out_frame1()

            # 验证是否保存成功



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


        csv_file.close()
class TestCase03UserCenterModifyPassword(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.login_page = LoginPage(self.driver, self.base_url)
        self.user_center = UserCenter(self.driver, self.base_url)
        self.log_in_page_read_csv = LogInPageReadCsv()
        self.user_center_read_csv = UserCenterReadCsv()
        self.driver.set_window_max()
        self.connect_sql = ConnectSql()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_user_center_modify_password(self):
        # 通过csv测试修改密码功能

        csv_file = self.user_center_read_csv.read_csv(
            'user_to_modify_password.csv')
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            user_to_modify_password = {
                "account": row[0],
                "old_passwd": row[1],
                "new_passwd": row[2],
            }

            # 打开途强在线首页-登录页
            self.base_page.open_page()
            sleep(1)
            # 登录账号
            self.login_page.user_login(user_to_modify_password['account'],
                                       user_to_modify_password['old_passwd'])

            # 修改密码
            self.user_center.click_edit_password()
            self.user_center.input_old_password(
                user_to_modify_password['old_passwd'])
            self.user_center.input_new_password(
                user_to_modify_password['new_passwd'])
            self.user_center.input_password_again(
                user_to_modify_password['new_passwd'])

            # 确认
            self.user_center.click_edit_password_confirm()
            self.driver.wait()

            # 用旧密码登录,验证提示
            self.login_page.user_login(user_to_modify_password['account'],
                                       user_to_modify_password['old_passwd'])
            exception_text = self.login_page.get_exception_text()
            self.assertEqual('登录密码验证错误', exception_text)

            self.driver.wait()

            # 用新密码登录,验证是否修改成功
            self.login_page.user_login(user_to_modify_password['account'],
                                       user_to_modify_password['new_passwd'])
            # 判断登录成功后招呼栏的用户名是否正确
            username = self.user_center.get_username()

            # 从数据库获取登录账号的用户名
            account_info = self.user_center.get_account_info_by_sql(
                user_to_modify_password['account'])
            print(account_info)
            account_name = account_info[1]

            self.assertEqual(account_name, username, '登录成功后招呼栏的用户名错误')

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

        csv_file.close()
class TestCase134AppUserSearchPagingFunction(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_app_user_search_paging_function(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.click_app_account_search()
        # 点击搜索
        # self.global_dev_search_page.click_search_buttonss()

        # 获取页面的总数
        self.global_dev_search_page.swith_to_search_frame()
        total_page = self.global_dev_search_page.get_total_page_after_click_app_search(
        )
        if total_page[0] == 0:
            text = self.global_dev_search_page.get_no_data_text_in_app_user_search(
            )
            self.assertIn(self.assert_text.account_center_page_no_data_text(),
                          text)

        elif total_page[0] == 1:
            get_previous_page_class = self.global_dev_search_page.get_previous_page_class_in_app_user_search(
            )
            self.assertEqual('active', get_previous_page_class)

            get_next_page_class = self.global_dev_search_page.get_next_page_class_in_app_user_search(
            )
            self.assertEqual('active', get_next_page_class)

            list = [20, 30, 50, 100]
            for m in list:
                self.global_dev_search_page.click_per_page_number()
                total_page_again = self.global_dev_search_page.get_total_page_after_click_app_search(
                )
                self.assertEqual(total_page, total_page_again)

        else:
            for n in range(total_page[0]):
                self.global_dev_search_page.click_per_page(n)
                get_per_first_number = self.global_dev_search_page.get_per_frist_number_in_dev_searchs(
                )
                self.assertEqual(get_per_first_number, str(10 * (n + 1) - 9))
class TestCase131DevSearchDetailDevInfo(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_dev_search_detail_dev_info(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()
        sleep(3)
        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)
        get_imei_in_dev_advanced_detail_page = self.global_dev_search_page.get_imei_after_click_detail_button_in_dev_advanced(
        )
        ## 点击设备信息
        self.global_dev_search_page.click_dev_info_in_dev_advancde_search_page(
        )
        self.global_dev_search_page.switch_to_dev_info_frame()
        get_imei_in_dev_info = self.global_dev_search_page.get_imei_in_dev_info_after_click_dev_info_button(
        )
        self.assertEqual(get_imei_in_dev_advanced_detail_page,
                         get_imei_in_dev_info)

        ## 点击设备IMEI,修改设备IMEI
        get_imei_input_attribute = self.global_dev_search_page.get_imei_input_attribute_in_dev_info_page(
        )
        self.assertEqual('true', get_imei_input_attribute)

        ## 点击设备设备名称输入框,修改设备的设备名称,点击保存
        self.global_dev_search_page.input_dev_name_modify_dev_info_in_dev_info_page(
            '这是设备名称')
        # 点击保存
        self.global_dev_search_page.click_ensure_button_in_dev_info_page()

        # 点击设备设备分组下拉按钮,修改设备的设备分组(在控制台页面已新建分组),点击保存
        self.global_dev_search_page.select_dev_group_in_dev_info_page()
        self.global_dev_search_page.click_ensure_button_in_dev_info_page()

        # 修改使用范围选项(11类)
        self.global_dev_search_page.click_dev_range_of_use_in_dev_info_page(
            '2')
        self.global_dev_search_page.click_ensure_button_in_dev_info_page()

        # 修改iccid
        get_iccid_input_attribute = self.global_dev_search_page.get_iccid_input_attribute_in_dev_info_page(
        )
        self.assertEqual('true', get_iccid_input_attribute)

        # 修改销售时间
        get_sale_time_input_attribute = self.global_dev_search_page.get_sale_time_input_attribute_in_dev_info_page(
        )
        self.assertEqual('true', get_sale_time_input_attribute)

        # 修改超速速度和超速时间
        self.global_dev_search_page.add_over_speed_and_over_speed_time_to_modify_dev_info(
            '12', '10')
        self.global_dev_search_page.click_ensure_button_in_dev_info_page()

        # 点击备注输入框,修改设备的备注,点击保存
        self.global_dev_search_page.add_remark_to_modify_dev_info('这是备注')
        self.global_dev_search_page.click_ensure_button_in_dev_info_page()

        ## 点击设备类型,修改设备类型
        get_dev_type_input_attribute = self.global_dev_search_page.get_dev_type_input_attribute_in_dev_info_page(
        )
        self.assertEqual('true', get_dev_type_input_attribute)

        ## 点击设备SIM卡号输入框,修改设备的设备SIM卡号,点击保存
        self.global_dev_search_page.add_sim_number_to_modify_dev_info_page(
            '123456789')
        self.global_dev_search_page.click_ensure_button_in_dev_info_page()

        ## 点击激活时间,修改设备的激活时间
        get_active_time_input_attribute = self.global_dev_search_page.get_active_time_input_attribute_in_dev_info_page(
        )
        self.assertEqual('true', get_active_time_input_attribute)

        ## 点击平台到期时间,修改设备平台到期时间
        get_platform_time_input_attribute = self.global_dev_search_page.get_platform_time_input_attribute_in_dev_info_page(
        )
        self.assertEqual('true', get_platform_time_input_attribute)

        ##点击imsi,修改imsi
        get_imsi_input_attribute = self.global_dev_search_page.get_imsi_input_attribute_in_dev_info_page(
        )
        self.assertEqual('true', get_imsi_input_attribute)

        ## 点击导入时间输入框,编辑时间
        get_export_time_attribute = self.global_dev_search_page.get_export_time_attribute_in_dev_info_page(
        )
        self.assertEqual('true', get_export_time_attribute)
コード例 #16
0
class TestCase91DevManageShutDownByNextUser(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_shut_down_by_next_user(self):
        # 打开途强在线首页-登录页
        self.base_page.open_page()

        # 登录
        self.log_in_base.log_in()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()

        # 搜索下级客户
        csv_file = self.dev_manage_page_read_csv.read_csv("search_account.csv")
        csv_data = csv.reader(csv_file)
        for row in csv_data:
            self.data = {'acc': row[0]}
        # 输入用户名搜索
        self.dev_manage_page.search_account(self.data['acc'])
        # 勾选包含下级,搜索
        self.dev_manage_page.search_dev()

        # 测试选中停机
        self.dev_manage_page.click_dev_in_list()

        # 点击选中停机
        self.dev_manage_page.click_select_shut_down()
        # 点击确定
        self.dev_manage_page.click_ensure()
        sleep(4)
        get_dev_status = self.dev_manage_page.get_dev_status_in_list()
        self.assertEqual(self.assert_text.dev_page_closing_down(),
                         get_dev_status)

        # 点击选中停机
        self.dev_manage_page.click_dev_in_list()
        self.dev_manage_page.click_select_shut_down()
        # 点击取消
        self.dev_manage_page.click_cancel()
        get_dev_status = self.dev_manage_page.get_dev_status_in_list()
        self.assertEqual(self.assert_text.dev_page_closing_down(),
                         get_dev_status)

        # 点击选中停机
        self.dev_manage_page.click_select_shut_down()
        # 点击关闭
        self.dev_manage_page.click_close()
        get_dev_status = self.dev_manage_page.get_dev_status_in_list()
        self.assertEqual(self.assert_text.dev_page_closing_down(),
                         get_dev_status)

        # 点击本次查询全部停机
        self.dev_manage_page.click_all_shut_down()
        self.dev_manage_page.click_ensure()
        sleep(4)

        # 断言
        get_all_page = self.dev_manage_page.get_all_pages()

        if get_all_page == 0:
            pass
        elif get_all_page == 1:
            per_number = self.dev_manage_page.get_per_number()
            for m in range(per_number):
                text = self.dev_manage_page.get_text_dev_status(m + 1)
                self.assertEqual(self.assert_text.dev_page_closing_down(),
                                 text)
        else:
            for n in range(get_all_page):
                self.dev_manage_page.click_per_page(n + 1)
                sleep(2)
                # 获取当前页面有多少条
                per_number = self.dev_manage_page.get_per_number()

                for m in range(per_number):
                    text = self.dev_manage_page.get_text_dev_status(m + 1)
                    self.assertEqual(self.assert_text.dev_page_closing_down(),
                                     text)
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()
コード例 #18
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()
コード例 #19
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()
コード例 #20
0
class TestCase316CommandManagerAbnormalStateSendCommand(unittest.TestCase):
    # 测试 设置 - 指令管理 - 模板管理 - 异常状态imei下发指令
    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.command_management_page = CommandManagementPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        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.command_management_page.click_control_after_click_command_management()
        sleep(3)

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

    def test_case_command_manage_abnormal_state_send_command(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(expect_url_after_click_command_management,
                         self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type()
        self.assertEqual(expect_title_text_after_click_command_management,
                         self.command_management_page.actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list('work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击下发指令
        self.command_management_page.click_send_command()

        # 读取数据
        csv_file = self.command_management_page_read_csv.read_csv("send_command_with_abnormal_dev.csv")
        csv_data = csv.reader(csv_file)

        is_header = True
        for row in csv_data:
            if is_header:
                is_header = False
                continue
            abnormal_state_data = {
                "state": row[0]
            }

            # 下发指令并获取文本
            send_command_text = self.command_management_page. \
                get_text_after_send_command_with_abnormal_dev(abnormal_state_data["state"])

            # 断言
            self.assertEqual(send_command_text, self.assert_text.
                             text_with_abnormal_dev_send_command(abnormal_state_data["state"]))

            # 关闭提示框
            self.command_management_page.close_send_command_fail_frame()
        csv_file.close()
コード例 #21
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()
コード例 #22
0
class TestCase312SetUpCommandManageCreateTemplate(unittest.TestCase):
    # 测试 设置 - 指令管理 - 创建模板异常操作--上报周期为定时模式
    driver = None
    base_url = None
    base_page = None
    log_in_page = None
    command_management_page = None

    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.command_management_page = CommandManagementPage(self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        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()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management()
        sleep(3)

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

    def test_case_set_up_command_manage_create_template(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(expect_url_after_click_command_management,
                         self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type()
        self.assertEqual(expect_title_text_after_click_command_management,
                         self.command_management_page.actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list('work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(expect_title_text_after_click_work_type_template_management,
                         self.command_management_page.actual_title_text_after_click_work_type_template_management())

        # 点击创建模板
        self.command_management_page.click_create_template()
        # 断言打开的创建模板的title文本
        expect_title_text_after_click_create_template = self.assert_text.command_manager_page_new_command_text()
        self.assertEqual(expect_title_text_after_click_create_template,
                         self.command_management_page.actual_title_text_after_click_create_template())

        # 验证创建模板的提示语
        template_name = self.command_management_page.get_create_template_name_text()
        self.assertEqual(self.assert_text.command_manager_page_template_name(), template_name)

        # 验证定时模式下输入框的规则
        # 模板名称 1 为空
        self.command_management_page.add_template_name_in_create_template('')
        self.command_management_page.click_ensure()
        get_name_text_fail = self.command_management_page.get_text_after_click_ensure()
        self.assertEqual(self.assert_text.command_manager_page_not_null(), get_name_text_fail)

        # 上班时间 为空
        self.command_management_page.click_ensure()
        get_report_time_text_fail = self.command_management_page.get_report_time_text_fail()
        self.assertEqual(self.assert_text.command_manager_page_not_null(), get_report_time_text_fail)

        # 循环上报天数 为空
        self.command_management_page.click_ensure()
        get_circulation_report_time_text_fail = self.command_management_page.get_circulation_report_time_text_fail()
        self.assertEqual(self.assert_text.command_manager_page_not_null(), get_circulation_report_time_text_fail)

        # 非正整数
        self.command_management_page.add_circulation_report_time('sssa')
        self.command_management_page.click_ensure()
        get_circulation_report_time_text_fail = self.command_management_page.get_circulation_report_time_text_fail()
        self.assertEqual(self.assert_text.command_manager_page_must_be_integer(), get_circulation_report_time_text_fail)

        # 大于90
        self.command_management_page.add_circulation_report_time('91')
        self.command_management_page.click_ensure()
        get_circulation_report_time_text_fail = self.command_management_page.get_circulation_report_time_text_fail()
        self.assertEqual(self.assert_text.command_manager_page_must_than_90(), get_circulation_report_time_text_fail)

        # 大于90且非正整数
        self.command_management_page.add_circulation_report_time('91fdsf')
        self.command_management_page.click_ensure()
        get_circulation_report_time_text_fail = self.command_management_page.get_circulation_report_time_text_fail()
        get_circulation_report_time_texts_fail = self.command_management_page.get_circulation_report_time_texts_fail()
        self.assertEqual(
            self.assert_text.command_manager_page_must_than_90() +
            self.assert_text.command_manager_page_must_be_integer(),
            get_circulation_report_time_text_fail + get_circulation_report_time_texts_fail)

        # 点击添加
        self.command_management_page.click_add_user_defined_template()
        # 验证是否添加成功
        number = self.command_management_page.get_total_number_template()
        self.assertEqual(2, number)

        # 点击删除
        self.command_management_page.click_delete_user_defined_template()
        number = self.command_management_page.get_total_number_template()
        self.assertEqual(1, number)
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()
コード例 #24
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)
コード例 #25
0
class TestCase167OffLineFormOperation(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.base_page.open_page()
        self.assert_text = AssertText()
        self.driver.set_window_max()
        self.driver.implicitly_wait(5)
        self.log_in_base.log_in_jimitest()

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

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

    def test_case_off_line_form_operation(self):
        # 断言url
        expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport'
        self.assertEqual(
            expect_url_after_click_statistical_form,
            self.statistical_form_page.actual_url_after_statistical_form())

        # 点击离线统计
        self.statistical_form_page.click_off_line_form_button()

        # 断言文本
        text = self.statistical_form_page.get_text_after_click_off_line_form_button(
        )
        self.assertEqual(self.assert_text.statistical_form_off_line_form(),
                         text)

        # 检查里面时间格式
        self.statistical_form_page.add_off_time_in_off_line_form('sss')
        # 点击搜索
        self.statistical_form_page.click_search_button_in_off_line_form()
        get_text = self.statistical_form_page.get_text_after_click_search()
        self.assertEqual(self.assert_text.statistical_form_date_formate(),
                         get_text)

        # 循环客户树
        for n in range(5):
            get_select_account = self.statistical_form_page.get_select_account_off_line_form(
                n)
            self.statistical_form_page.click_customer_in_off_line(n)
            get_search_input_account = self.statistical_form_page.get_search_input_account_in_off_line_form(
            )
            self.assertEqual(get_search_input_account, get_select_account)

        # 搜索客户树无数据
        self.statistical_form_page.add_data_to_search_customer_in_off_line(
            '无数据')
        text = self.statistical_form_page.get_text_after_click_search_in_off_line(
        )
        self.assertIn(self.assert_text.account_center_page_no_data_text(),
                      text)
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()
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()
コード例 #28
0
class TestCase72DevManageDevSearchByInputData(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.assert_text = AssertText()
        self.driver.wait(1)
        self.driver.clear_cookies()
        self.driver.wait(1)

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

    def test_dev_manage_dev_search_by_input_data(self):
        '''测试设备管理-设备搜索-by imei'''
        # 打开途强在线首页-登录页
        self.base_page.open_page()
        # 登录
        self.log_in_base.log_in()
        # 点击进入设备管理
        self.dev_manage_page.enter_dev_manage()
        self.dev_manage_page.click_more_button()

        # 车牌号输入框输入选中用户的设备车牌号包含的字符,点击搜索,点击导出
        dev_vehicle_number = '12'
        self.dev_manage_page.inpui_dev_vehicle_number_to_search(
            dev_vehicle_number)
        self.dev_manage_page.click_search_btn()
        connect_sql = ConnectSql()
        connect = connect_sql.connect_tuqiang_sql()
        cursor = connect.cursor()
        # 获取查询出来的条数
        number = self.dev_manage_page.get_total_page_number_in_dev_manager()
        for n in range(number):
            imei = self.dev_manage_page.get_imei_after_search(n)
            sql = "SELECT d.vehicleNumber FROM equipment_detail d WHERE d.imei = '%s';" % imei
            cursor.execute(sql)
            data = cursor.fetchall()
            vehicle_number = data[0][0]
            self.assertIn(dev_vehicle_number, vehicle_number)

        # 车牌号输入框输入选中用户的设备车牌号不包含的字符,点击搜索,点击导出
        dev_vehicle_number = '不存在的'
        self.dev_manage_page.inpui_dev_vehicle_number_to_search(
            dev_vehicle_number)
        self.dev_manage_page.click_search_btn()
        text = self.dev_manage_page.get_search_no_dev_name_text()
        self.assertIn(self.assert_text.account_center_page_no_data_texts(),
                      text)

        # 车架号输入框输入选中用户的设备车架号包含的字符,点击搜索,点击导出
        self.dev_manage_page.inpui_dev_vehicle_number_to_search('')
        dev_car_frame = '12'
        self.dev_manage_page.input_dev_car_frame_to_search(dev_car_frame)
        self.dev_manage_page.click_search_btn()
        sleep(2)
        # 获取查询出来的条数
        number = self.dev_manage_page.get_total_page_number_in_dev_manager()
        for n in range(number):
            imei = self.dev_manage_page.get_imei_after_search(n)
            sql = "SELECT d.carFrame FROM equipment_detail d WHERE d.imei = '%s';" % imei
            cursor.execute(sql)
            data = cursor.fetchall()
            vehicle_number = data[0][0]
            self.assertIn(dev_car_frame, vehicle_number)

        # 车架号输入框输入选中用户的设备车架号不包含的字符,点击搜索,点击导出
        dev_vehicle_number = '不存在的'
        self.dev_manage_page.input_dev_car_frame_to_search(dev_vehicle_number)
        self.dev_manage_page.click_search_btn()
        text = self.dev_manage_page.get_search_no_dev_name_text()
        self.assertIn(self.assert_text.account_center_page_no_data_texts(),
                      text)

        # SIM卡号输入框输入选中用户的设备车牌号包含的字符,点击搜索,点击导出
        self.dev_manage_page.input_dev_car_frame_to_search('')
        dev_sim = '12'
        self.dev_manage_page.input_dev_sim_to_search(dev_sim)
        self.dev_manage_page.click_search_btn()
        sleep(2)
        # 获取查询出来的条数
        number = self.dev_manage_page.get_total_page_number_in_dev_manager()
        for n in range(number):
            imei = self.dev_manage_page.get_imei_after_search(n)
            sql = "SELECT d.sim FROM equipment_mostly d WHERE d.imei = '%s';" % imei
            cursor.execute(sql)
            data = cursor.fetchall()
            sim_number = data[0][0]
            self.assertIn(dev_sim, sim_number)

        # SIM卡号输入框输入选中用户的设备车牌号不包含的字符,点击搜索,点击导出
        dev_sim_number = '不存在的'
        self.dev_manage_page.input_dev_sim_to_search(dev_sim_number)
        self.dev_manage_page.click_search_btn()
        text = self.dev_manage_page.get_search_no_dev_name_text()
        self.assertIn(self.assert_text.account_center_page_no_data_texts(),
                      text)

        # SN码输入框输入选中用户的设备车架号包含的字符,点击搜索,点击导出
        self.dev_manage_page.input_dev_sim_to_search('')
        dev_sn = '12'
        self.dev_manage_page.input_dev_sn_to_search(dev_sn)
        self.dev_manage_page.click_search_btn()
        sleep(2)
        # 获取查询出来的条数
        number = self.dev_manage_page.get_total_page_number_in_dev_manager()
        for n in range(number):
            imei = self.dev_manage_page.get_imei_after_search(n)
            sql = "SELECT d.sn FROM equipment_detail d WHERE d.imei = '%s';" % imei
            cursor.execute(sql)
            data = cursor.fetchall()
            sn_number = data[0][0]
            self.assertIn(dev_sn, sn_number)

        # SN码输入框输入选中用户的设备车架号不包含的字符,点击搜索,点击导出
        dev_sn_number = '不存在的'
        self.dev_manage_page.input_dev_sn_to_search(dev_sn_number)
        self.dev_manage_page.click_search_btn()
        text = self.dev_manage_page.get_search_no_dev_name_text()
        self.assertIn(self.assert_text.account_center_page_no_data_texts(),
                      text)
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()
class TestCase54CommandManageCreateTemplateNormalMode(unittest.TestCase):
    """ 创建模板的异常操作--上报周期为普通模式 """
    # author:邓肖斌
    driver = None
    base_url = None
    base_page = None
    log_in_page = None
    command_management_page = None

    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.command_management_page = CommandManagementPage(
            self.driver, self.base_url)
        self.log_in_base = LogInBase(self.driver, self.base_url)
        self.command_management_page_read_csv = CommandManagementPageReadCsv()
        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()

        # 登录之后点击控制台,然后点击指令管理
        self.command_management_page.click_control_after_click_command_management(
        )
        sleep(3)

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

    def test_case_command_manage_create_template_normal_mode(self):
        # 断言url
        expect_url_after_click_command_management = self.base_url + '/custom/toTemplate'
        self.assertEqual(
            expect_url_after_click_command_management,
            self.command_management_page.actual_url_click_command_management())
        # 断言左侧列表的title文本
        expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type(
        )
        self.assertEqual(
            expect_title_text_after_click_command_management,
            self.command_management_page.
            actual_title_text_after_click_command_management())

        # 点击工作模式模板管理
        self.command_management_page.click_lift_list(
            'work_type_template_management')
        # 断言右侧页面的title文本
        expect_title_text_after_click_work_type_template_management = \
            self.assert_text.command_manager_page_work_type_template_management()
        self.assertEqual(
            expect_title_text_after_click_work_type_template_management,
            self.command_management_page.
            actual_title_text_after_click_work_type_template_management())

        # 点击创建模板
        self.command_management_page.click_create_template()
        # 断言打开的创建模板的title文本
        expect_title_text_after_click_create_template = self.assert_text.command_manager_page_new_command_text(
        )
        self.assertEqual(
            expect_title_text_after_click_create_template,
            self.command_management_page.
            actual_title_text_after_click_create_template())

        # 点击星期模式
        self.command_management_page.click_normal_mode()

        # 验证创建模板的提示语
        template_name = self.command_management_page.get_create_template_name_text(
        )
        self.assertEqual(self.assert_text.command_manager_page_template_name(),
                         template_name)

        # 验证定时模式下输入框的规则
        # 模板名称 1 为空
        self.command_management_page.add_template_name_in_create_template('')
        self.command_management_page.click_ensure()
        get_name_text_fail = self.command_management_page.get_text_after_click_ensure(
        )
        self.assertEqual(self.assert_text.command_manager_page_not_null(),
                         get_name_text_fail)

        # wake up time 唤醒时间
        self.command_management_page.click_ensure()
        get_text_wake_up_time_fail = self.command_management_page.get_text_wake_up_time_fail(
        )
        self.assertEqual(self.assert_text.command_manager_page_not_null(),
                         get_text_wake_up_time_fail)

        # 限时周期
        # 限时周期
        # 为空
        self.command_management_page.click_ensure()
        get_text_fail_limit_cycle = self.command_management_page.get_text_fail_limit_cycles(
        )
        self.assertEqual(self.assert_text.command_manager_page_not_null(),
                         get_text_fail_limit_cycle)

        # 大于15
        self.command_management_page.add_limit_cycle_in_create_templates('91')
        self.command_management_page.click_ensure()
        get_text_fail_limit_cycle = self.command_management_page.get_text_fail_limit_cycles(
        )
        self.assertEqual(self.assert_text.command_manager_page_must_than_90(),
                         get_text_fail_limit_cycle)

        # 非正整数
        self.command_management_page.add_limit_cycle_in_create_templates('刷刷刷')
        self.command_management_page.click_ensure()
        get_text_fail_limit_cycle = self.command_management_page.get_text_fail_limit_cycles(
        )
        self.assertEqual(
            self.assert_text.command_manager_page_must_be_integer(),
            get_text_fail_limit_cycle)

        # 非正整数 大于15
        self.command_management_page.add_limit_cycle_in_create_templates(
            '2323刷刷刷')
        self.command_management_page.click_ensure()
        get_text_fail_limit_cycle = self.command_management_page.get_text_fail_limit_cycles(
        )
        get_texts_fail_limit_cycle = self.command_management_page.get_texts_fail_limit_cycles(
        )
        self.assertEqual(
            self.assert_text.command_manager_page_must_than_90() +
            self.assert_text.command_manager_page_must_be_integer(),
            get_text_fail_limit_cycle + get_texts_fail_limit_cycle)

        # 点击添加
        self.command_management_page.click_add_user_defined_template()
        # 验证是否添加成功
        number = self.command_management_page.get_total_number_template()
        self.assertEqual(2, number)

        # 点击删除
        self.command_management_page.click_delete_user_defined_template()
        number = self.command_management_page.get_total_number_template()
        self.assertEqual(1, number)