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 setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage(self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.obd_form_page = ObdFormPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.assert_text = AssertText() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page() sleep(3) self.base_page.change_windows_handle(current_handle)
class TestCase154ObdMileageForm(unittest.TestCase): def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.obd_form_page = ObdFormPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.assert_text = AssertText() # 登录之后点击控制台,然后点击设置 self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) def tearDown(self): # 退出浏览器 self.driver.quit_browser() def test_case_obd_mileage_form(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击obd统计的里程报表 self.obd_form_page.click_obd_form_mileage_statistical_button() # 切换到odb里程统计的frame里面 self.obd_form_page.switch_to_obd_mileage_statistical_frame() csv_file = self.statistical_form_page_read_csv.read_csv( 'obd_milage_report_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'user_name': row[0], 'choose_date': row[2], 'begin_time': row[3], 'end_time': row[4] } self.obd_form_page.add_data_to_search_obd_mileage_statistical_form( search_data) # 获取页面上设备的信息 dev_name = self.obd_form_page.get_dev_name_in_obd_mileage_statistical_form( ) dev_total_mile = self.obd_form_page.get_dev_total_mile_obd_mileage_statistical_form( ) dev_avg_oil = self.obd_form_page.get_dev_avg_oil_obd_mileage_statistical_form( ) dev_avg_speed = self.obd_form_page.get_avg_oil_obd_mileage_statistical_form( ) dev_total_oil = self.obd_form_page.get_dev_total_oil_obd_mileage_statistical_form( ) # 查询设备的名称 sql_check_dev_name = self.obd_form_page.get_dev_name_in_sql( self.obd_form_page.search_imei()) # 查询数据库的条数 get_sql_total_number = self.obd_form_page.get_sql_total_number() get_web_total_number = self.obd_form_page.get_web_total_number() self.assertEqual(len(get_sql_total_number), get_web_total_number[1]) # 获取查询出来的 页数 if get_web_total_number[0] != 0 and get_web_total_number[0] != 1: self.obd_form_page.click_first_page() total_page = self.obd_form_page.get_obd_list_total_page_number() if total_page == 0: self.assertEqual('0', dev_total_mile) self.assertEqual('0', dev_avg_oil) self.assertEqual('0', dev_avg_speed) self.assertEqual('0', dev_total_oil) elif total_page == 1: # 断言平均油耗 # 查询设备的名称 self.assertEqual(dev_name, sql_check_dev_name) count_avg_oil = '%.2f' % ( (float(dev_total_oil) / float(dev_total_mile)) * 100) self.assertEqual(count_avg_oil, dev_avg_oil) # 获取页面上的里程和耗油 mile_and_oil_list = [] per_page_total_number = self.obd_form_page.get_per_page_total_number( ) for n in range(per_page_total_number): mile_and_oil_list.append({ 'mile': float( self.obd_form_page. get_per_mile_in_obd_mileage_form(n)), 'oil': float( self.obd_form_page.get_per_oil_in_obd_mileage_form( n)), }) print(mile_and_oil_list) total_mile = 0 total_oil = 0 for data in mile_and_oil_list: total_mile += data['mile'] total_oil += data['oil'] self.assertAlmostEqual(float(dev_total_mile), total_mile) self.assertAlmostEqual(float(dev_total_oil), total_oil) # 计算总时间 然后断言平均速度 total_time = sum(get_sql_total_number) print(total_time) avg_speed = '%.2f' % ((float(dev_total_mile)) / float( (float(total_time) / 3600))) self.assertEqual(avg_speed, dev_avg_speed) else: # 断言平均油耗 self.assertEqual(dev_name, sql_check_dev_name) count_avg_oil = '%.2f' % ( (float(dev_total_oil) / float(dev_total_mile)) * 100) self.assertEqual(count_avg_oil, dev_avg_oil) mile_and_oil_list = [] for i in range(total_page): # 循环点击每一页 self.obd_form_page.click_per_page(i) # 获取页面上的里程和耗油 per_page_total_number = self.obd_form_page.get_per_page_total_number( ) for n in range(per_page_total_number): mile_and_oil_list.append({ 'mile': float( self.obd_form_page. get_per_mile_in_obd_mileage_form(n)), 'oil': float( self.obd_form_page. get_per_oil_in_obd_mileage_form(n)), }) total_mile = 0 total_oil = 0 for data in mile_and_oil_list: total_mile += data['mile'] total_oil += data['oil'] self.assertAlmostEqual(float(dev_total_mile), total_mile) self.assertAlmostEqual(float(dev_total_oil), total_oil) # 计算总时间 然后断言平均速度 total_time = sum(get_sql_total_number) avg_speed = '%.2f' % ((float(dev_total_mile)) / float( (float(total_time) / 3600))) self.assertEqual(avg_speed, dev_avg_speed) csv_file.close() self.driver.default_frame()
class 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 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()
class TestCase502FormSearchMileSearch(unittest.TestCase): # 测试 报表 测试里程报表搜索功能 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.seasrch_sql = SearchSql(self.driver, self.base_url) self.assert_text = AssertText() # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.log_in_base.log_in_jimitest() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_mile_search(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击里程报表 self.statistical_form_page.click_mileage_form_buttons() # 断言 self.assertEqual( self.assert_text.statistical_form_mile_form(), self.statistical_form_page. actual_text_after_click_mileage_form_buttons()) # 读取查询数据 csv_file = self.statistical_form_page_read_csv.read_csv( 'milage_report_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'search_user': row[0], 'type': row[1], 'choose_date': row[2], 'begin_time': row[3], 'end_time': row[4] } self.statistical_form_page.add_datas_to_search_mileage_form( search_data) self.statistical_form_page.switch_to_mile_report_form_frame() # 连接数据库 # 连接数据库 all_dev = self.seasrch_sql.search_current_account_equipment( search_data['search_user']) # 连接另一个数据库 connect_02 = self.connect_sql.connect_tuqiang_form() # 创建游标 cursor_02 = connect_02.cursor() # 判断查询的条件 # 判断查询条件 get_total_sql_01 = self.seasrch_sql.search_sport_mile_report_sql_01( all_dev, search_data) get_total_sql_02 = self.seasrch_sql.search_sport_mile_report_sql_02( all_dev, search_data) get_total_sql_03 = self.seasrch_sql.search_sport_mile_report_sql_03( all_dev, search_data) get_total_sql_04 = self.seasrch_sql.search_sport_mile_report_sql_04( all_dev, search_data) get_total_sql_05 = self.seasrch_sql.search_sport_mile_report_sql_05( all_dev, search_data) get_total_sql_06 = self.seasrch_sql.search_sport_mile_report_sql_06( all_dev, search_data) get_total_sql_07 = self.seasrch_sql.search_sport_mile_report_sql_07( all_dev, search_data) get_total_sql_08 = self.seasrch_sql.search_sport_mile_report_sql_08( all_dev, search_data) get_total_sql_09 = self.seasrch_sql.search_sport_mile_report_sql_09( all_dev, search_data) get_total_sql_10 = self.seasrch_sql.search_sport_mile_report_sql_10( all_dev, search_data) get_total_sql_11 = self.seasrch_sql.search_sport_mile_report_sql_11( all_dev, search_data) get_total_sql_12 = self.seasrch_sql.search_sport_mile_report_sql_12( all_dev, search_data) get_total_01 = self.seasrch_sql.search_sport_mile_report_sql_get_total_01( all_dev, search_data) get_total_02 = self.seasrch_sql.search_sport_mile_report_sql_get_total_02( all_dev, search_data) get_total_03 = self.seasrch_sql.search_sport_mile_report_sql_get_total_03( all_dev, search_data) get_total_04 = self.seasrch_sql.search_sport_mile_report_sql_get_total_04( all_dev, search_data) get_total_05 = self.seasrch_sql.search_sport_mile_report_sql_get_total_05( all_dev, search_data) get_total_06 = self.seasrch_sql.search_sport_mile_report_sql_get_total_06( all_dev, search_data) get_total_07 = self.seasrch_sql.search_sport_mile_report_sql_get_total_07( all_dev, search_data) get_total_08 = self.seasrch_sql.search_sport_mile_report_sql_get_total_08( all_dev, search_data) get_total_09 = self.seasrch_sql.search_sport_mile_report_sql_get_total_09( all_dev, search_data) get_total_10 = self.seasrch_sql.search_sport_mile_report_sql_get_total_10( all_dev, search_data) get_total_11 = self.seasrch_sql.search_sport_mile_report_sql_get_total_11( all_dev, search_data) get_total_12 = self.seasrch_sql.search_sport_mile_report_sql_get_total_12( all_dev, search_data) print(get_total_sql_01) print(get_total_01) # 判断查询的条件 if search_data['type'] == 'mile': # 查询的选择里程 cursor_02.execute(get_total_sql_01) get_all_mlie_and_time_01 = cursor_02.fetchall() get_all_mlie_and_time_list_01 = [] for range1 in get_all_mlie_and_time_01: for range2 in range1: get_all_mlie_and_time_list_01.append(range2) cursor_02.execute(get_total_sql_02) get_all_mlie_and_time_02 = cursor_02.fetchall() get_all_mlie_and_time_list_02 = [] for range1 in get_all_mlie_and_time_02: for range2 in range1: get_all_mlie_and_time_list_02.append(range2) cursor_02.execute(get_total_sql_03) get_all_mlie_and_time_03 = cursor_02.fetchall() get_all_mlie_and_time_list_03 = [] for range1 in get_all_mlie_and_time_03: for range2 in range1: get_all_mlie_and_time_list_03.append(range2) cursor_02.execute(get_total_sql_04) get_all_mlie_and_time_04 = cursor_02.fetchall() get_all_mlie_and_time_list_04 = [] for range1 in get_all_mlie_and_time_04: for range2 in range1: get_all_mlie_and_time_list_04.append(range2) cursor_02.execute(get_total_sql_05) get_all_mlie_and_time_05 = cursor_02.fetchall() get_all_mlie_and_time_list_05 = [] for range1 in get_all_mlie_and_time_05: for range2 in range1: get_all_mlie_and_time_list_05.append(range2) cursor_02.execute(get_total_sql_06) get_all_mlie_and_time_06 = cursor_02.fetchall() get_all_mlie_and_time_list_06 = [] for range1 in get_all_mlie_and_time_06: for range2 in range1: get_all_mlie_and_time_list_06.append(range2) cursor_02.execute(get_total_sql_07) get_all_mlie_and_time_07 = cursor_02.fetchall() get_all_mlie_and_time_list_07 = [] for range1 in get_all_mlie_and_time_07: for range2 in range1: get_all_mlie_and_time_list_07.append(range2) cursor_02.execute(get_total_sql_08) get_all_mlie_and_time_08 = cursor_02.fetchall() get_all_mlie_and_time_list_08 = [] for range1 in get_all_mlie_and_time_08: for range2 in range1: get_all_mlie_and_time_list_08.append(range2) cursor_02.execute(get_total_sql_09) get_all_mlie_and_time_09 = cursor_02.fetchall() get_all_mlie_and_time_list_09 = [] for range1 in get_all_mlie_and_time_09: for range2 in range1: get_all_mlie_and_time_list_09.append(range2) cursor_02.execute(get_total_sql_10) get_all_mlie_and_time_10 = cursor_02.fetchall() get_all_mlie_and_time_list_10 = [] for range1 in get_all_mlie_and_time_10: for range2 in range1: get_all_mlie_and_time_list_10.append(range2) cursor_02.execute(get_total_sql_11) get_all_mlie_and_time_11 = cursor_02.fetchall() get_all_mlie_and_time_list_11 = [] for range1 in get_all_mlie_and_time_11: for range2 in range1: get_all_mlie_and_time_list_11.append(range2) cursor_02.execute(get_total_sql_12) get_all_mlie_and_time_12 = cursor_02.fetchall() get_all_mlie_and_time_list_12 = [] for range1 in get_all_mlie_and_time_12: for range2 in range1: get_all_mlie_and_time_list_12.append(range2) cursor_02.execute(get_total_01) total_number_01 = cursor_02.fetchall() total_number_list_01 = [] for range1 in total_number_01: for range2 in range1: total_number_list_01.append(range2) cursor_02.execute(get_total_02) total_number_02 = cursor_02.fetchall() total_number_list_02 = [] for range1 in total_number_02: for range2 in range1: total_number_list_02.append(range2) cursor_02.execute(get_total_03) total_number_03 = cursor_02.fetchall() total_number_list_03 = [] for range1 in total_number_03: for range2 in range1: total_number_list_03.append(range2) cursor_02.execute(get_total_04) total_number_04 = cursor_02.fetchall() total_number_list_04 = [] for range1 in total_number_04: for range2 in range1: total_number_list_04.append(range2) cursor_02.execute(get_total_05) total_number_05 = cursor_02.fetchall() total_number_list_05 = [] for range1 in total_number_05: for range2 in range1: total_number_list_05.append(range2) cursor_02.execute(get_total_06) total_number_06 = cursor_02.fetchall() total_number_list_06 = [] for range1 in total_number_06: for range2 in range1: total_number_list_06.append(range2) cursor_02.execute(get_total_07) total_number_07 = cursor_02.fetchall() total_number_list_07 = [] for range1 in total_number_07: for range2 in range1: total_number_list_07.append(range2) cursor_02.execute(get_total_08) total_number_08 = cursor_02.fetchall() total_number_list_08 = [] for range1 in total_number_08: for range2 in range1: total_number_list_08.append(range2) cursor_02.execute(get_total_09) total_number_09 = cursor_02.fetchall() total_number_list_09 = [] for range1 in total_number_09: for range2 in range1: total_number_list_09.append(range2) cursor_02.execute(get_total_10) total_number_10 = cursor_02.fetchall() total_number_list_10 = [] for range1 in total_number_10: for range2 in range1: total_number_list_10.append(range2) cursor_02.execute(get_total_11) total_number_11 = cursor_02.fetchall() total_number_list_11 = [] for range1 in total_number_11: for range2 in range1: total_number_list_11.append(range2) cursor_02.execute(get_total_12) total_number_12 = cursor_02.fetchall() total_number_list_12 = [] for range1 in total_number_12: for range2 in range1: total_number_list_12.append(range2) total = len(total_number_list_01) + len( total_number_list_02) + len(total_number_list_03) + len( total_number_list_04 ) + len(total_number_list_05) + len( total_number_list_06 ) + len(total_number_list_07) + len( total_number_list_08 ) + len(total_number_list_09) + len( total_number_list_10) + len( total_number_list_11) + len(total_number_list_12) web_total = self.statistical_form_page.get_total_search_mileage_forms( ) self.assertEqual(total, web_total) # 计算总里程 和 总时间 total_mile = sum(get_all_mlie_and_time_list_01) + sum( get_all_mlie_and_time_list_02 ) + sum(get_all_mlie_and_time_list_03) + sum( get_all_mlie_and_time_list_04 ) + sum(get_all_mlie_and_time_list_05) + sum( get_all_mlie_and_time_list_06) + sum( get_all_mlie_and_time_list_07) + sum( get_all_mlie_and_time_list_08) + sum( get_all_mlie_and_time_list_09) + sum( get_all_mlie_and_time_list_10) + sum( get_all_mlie_and_time_list_11) + sum( get_all_mlie_and_time_list_12) # 断言总时间和总里程,总油耗 # 计算总油耗 if total_mile == 0: self.assertEqual( '0', self.statistical_form_page.get_mileage_total_oil()) else: if self.statistical_form_page.get_mileage_total_oil( ) == '0': pass else: get_total_oil = total_mile / 1000 / 100 * 8 total_oil = '%.2f' % get_total_oil self.assertEqual( str(total_oil), self.statistical_form_page.get_mileage_total_oil()) elif search_data['type'] == 'day': # 如果选择天 cursor_02.execute(get_total_sql_01) get_all_mile_data = cursor_02.fetchall() get_all_mile_list = [] for range1 in get_all_mile_data: for range2 in range1: get_all_mile_list.append(range2) total = len(get_all_mile_list) web_total = self.statistical_form_page.get_total_search_mileage_form_with_day( ) self.assertEqual(total, web_total) total_mile_with_day = sum(get_all_mile_list) # 断言 self.assertAlmostEqual( total_mile_with_day / 1000, float(self.statistical_form_page. get_mileage_with_day_total_mile())) # 点击导出 self.driver.default_frame() cursor_02.close() connect_02.close() csv_file.close()
class 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 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 TestCase303SetUpWorkTypeTemplateManagementCreatTemplate( 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_work_type_template_management_creat_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()) # 关闭创建模板 self.command_management_page.click_close_create_template() # 断言是否关闭成功 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文本 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_cancel_create_template() # 断言是否关闭成功 self.assertEqual( expect_title_text_after_click_work_type_template_management, self.command_management_page. actual_title_text_after_click_work_type_template_management()) # 输入参数 csv_file = self.command_management_page_read_csv.read_csv( 'work_template_time_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue work_template_time_data = { 'name': row[0], 'type': row[1], 'day': row[2], 'circulation': row[3], 'circulation_day': row[4], 'week': row[5], 'circulation1': row[6], 'circulation_day1': row[7], 'jiange': row[8], 'circulation2': row[9], 'circulation_day2': row[10], } # 点击创建模板 self.command_management_page.click_create_template() # 断言打开的创建模板的title文本 self.assertEqual( expect_title_text_after_click_create_template, self.command_management_page. actual_title_text_after_click_create_template()) sleep(5) self.command_management_page.add_create_template_data( work_template_time_data) # 点击保存 self.command_management_page.create_template_click_ensure() sleep(2) # 点击删除 self.command_management_page.delete_add_new_template() csv_file.close()
class TestCase180SportStatisticalAccForm(unittest.TestCase): ''' 运动报表,acc报表 接口与页面数据对比 ''' def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage(self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.statistical_form_page3 = StatisticFormPage3(self.driver, self.base_url) self.statistical_form_page4 = StatisticFormPage4(self.driver, self.base_url) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.search_sql = SearchSql(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.log_in_base.log_in_jimitest() # 登录之后点击控制台,然后点击设置 self.statistical_form_page.click_control_after_click_statistical_form_page() sleep(3) def tearDown(self): # 退出浏览器 self.driver.quit_browser() def test_case_sport_statistical_acc_form(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual(expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击停留报表 self.statistical_form_page.click_acc_form_button() # 断言 self.assertEqual(self.assert_text.statistical_form_acc_form(), self.statistical_form_page.actual_text_after_click_acc_button()) # 读数据 # 读取查询数据 csv_file = self.statistical_form_page_read_csv.read_csv('sport_statistical_acc_search_data2.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'search_user': row[0], 'status': row[1], 'choose_date': row[2], 'begin_time': row[3], 'end_time': row[4] } # 搜素数据+ self.statistical_form_page.add_data_to_search_acc_form(search_data) self.statistical_form_page.switch_to_acc_report_form_frame() total_page = self.statistical_form_page4.get_total_page_in_over_acc_form() begin_time = self.statistical_form_page4.get_over_acc_report_form_begin_time() end_time = self.statistical_form_page4.get_over_acc_report_form_end_time() acc_state = self.statistical_form_page4.get_over_acc_report_form_acc_state() all_dev = self.search_sql.search_current_account_equipment(search_data['search_user']) imeis = self.statistical_form_page3.change_dev_imei_format(all_dev) total_time = self.statistical_form_page4.get_total_time_in_over_acc_form() open_count = self.statistical_form_page4.get_total_time_in_open_count_acc_form() close_count = self.statistical_form_page4.get_total_time_in_close_count_acc_form() if total_page == 0: # 连接接口 request_url = request_base_url() request_params = { '_method_': 'getAccSegment', 'imeis': imeis, 'startTime': begin_time, 'endTime': end_time, 'acc': acc_state, } res = requests.post(request_url, data=request_params) sleep(30) response = res.json() self.assertEqual(400, response['code']) self.assertEqual('没有找到数据', response['msg']) elif total_page == 1: total_number_per_page = self.statistical_form_page4.get_total_number_per_page_in_over_acc_form() web_data = [] for n in range(total_number_per_page): web_data.append({ 'start': self.statistical_form_page4.get_start_time_in_over_acc_form(n), 'end': self.statistical_form_page4.get_end_time_in_over_acc_form(n), 'imei': self.statistical_form_page4.get_imei_in_over_acc_form(n), 'acc': int(self.statistical_form_page4.get_state_in_over_acc_form(n)), }) print("页面数据", web_data) print(len(web_data)) # 连接接口 request_url = request_base_url() request_params = { '_method_': 'getAccSegment', 'imeis': imeis, 'startTime': begin_time, 'endTime': end_time, 'acc': acc_state, } res = requests.post(request_url, data=request_params) sleep(30) response = res.json() res_data = response['data'] for data in res_data: del data['duration'] print("接口数据", res_data) print(len(res_data)) self.assertEqual(web_data, res_data) else: web_data = [] for i in range(total_page): # 循环点击每一页 self.statistical_form_page3.click_per_page_in_mile_report_form(i) total_number_per_page = self.statistical_form_page4.get_total_number_per_page_in_over_acc_form() for n in range(total_number_per_page): web_data.append({ 'start': self.statistical_form_page4.get_start_time_in_over_acc_form(n), 'end': self.statistical_form_page4.get_end_time_in_over_acc_form(n), 'imei': self.statistical_form_page4.get_imei_in_over_acc_form(n), 'acc': int(self.statistical_form_page4.get_state_in_over_acc_form(n)), }) print("页面数据", web_data) print(len(web_data)) # 连接接口 request_url = request_base_url() request_params = { '_method_': 'getAccSegment', 'imeis': imeis, 'startTime': begin_time, 'endTime': end_time, 'acc': acc_state, } res = requests.post(request_url, data=request_params) sleep(30) response = res.json() res_data = response['data'] for data in res_data: del data['duration'] print("接口数据", res_data) print(len(res_data)) self.assertEqual(web_data, res_data) # 总用时 # 连接接口 request_url = request_base_url() request_params = { '_method_': 'getAccSegmentSum', 'imeis': imeis, 'startTime': begin_time, 'endTime': end_time, 'acc': acc_state, } res = requests.post(request_url, data=request_params) sleep(20) response = res.json() print(response) try: res_data = response['data'] except: print("无数据") if total_time == "0": pass else: time = total_time.split("小时") print(time[0]) time2 = time[1].split("分") print(time2[0]) sec = time2[1].split("秒")[0] print(sec) web_total_time = (int(time[0]) * 60 * 60) + (int(time2[0]) * 60) + int(sec) print(web_total_time) self.assertEqual(web_total_time, res_data["duration"]) self.assertEqual(int(open_count), res_data["accOn"]) self.assertEqual(int(close_count), res_data["accOff"]) self.driver.default_frame() csv_file.close()
class TestCase145SportStatisticalStayForm(unittest.TestCase): ''' 运动统计,停留报表 author : zhangAo ''' def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage(self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.assert_text = AssertText() # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.log_in_base.log_in_jimitest() # 登录之后点击控制台,然后点击设置 self.statistical_form_page.click_control_after_click_statistical_form_page() sleep(3) def tearDown(self): # 退出浏览器 self.driver.quit_browser() def test_case_sport_statistical_stay_form(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual(expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击停留报表 self.statistical_form_page.click_stay_form_button() # 断言 self.assertEqual(self.assert_text.statistical_form_stay_form(), self.statistical_form_page.actual_text_after_click_stay_form_button()) # 读数据 # 读取查询数据 csv_file = self.statistical_form_page_read_csv.read_csv('sport_statistical_stay_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'search_user': row[0], 'choose_date': row[1], 'begin_time': row[2], 'end_time': row[3] } self.statistical_form_page.add_data_to_search_stay_form(search_data) all_dev = self.search_sql.search_current_account_equipment(search_data['search_user']) # 连接另一个数据库 connect_02 = self.connect_sql.connect_tuqiang_form() # 创建游标 cursor_02 = connect_02.cursor() # 判断查询条件 # get_total_sql = self.search_sql.search_sport_stay_sql(all_dev, search_data) get_total_sql_01 = self.search_sql.search_sport_stay_sql_01(all_dev, search_data) get_total_sql_02 = self.search_sql.search_sport_stay_sql_02(all_dev, search_data) get_total_sql_03 = self.search_sql.search_sport_stay_sql_03(all_dev, search_data) get_total_sql_04 = self.search_sql.search_sport_stay_sql_04(all_dev, search_data) get_total_sql_05 = self.search_sql.search_sport_stay_sql_05(all_dev, search_data) get_total_sql_06 = self.search_sql.search_sport_stay_sql_06(all_dev, search_data) get_total_sql_07 = self.search_sql.search_sport_stay_sql_07(all_dev, search_data) get_total_sql_08 = self.search_sql.search_sport_stay_sql_08(all_dev, search_data) get_total_sql_09 = self.search_sql.search_sport_stay_sql_09(all_dev, search_data) get_total_sql_10 = self.search_sql.search_sport_stay_sql_10(all_dev, search_data) get_total_sql_11 = self.search_sql.search_sport_stay_sql_11(all_dev, search_data) get_total_sql_12 = self.search_sql.search_sport_stay_sql_12(all_dev, search_data) print(get_total_sql_01) '''cursor_02.execute(get_total_sql) get_total = cursor_02.fetchall() total_list = [] for range1 in get_total: for range2 in range1: total_list.append(range2) # 拆分列表 total_number_list = [] total_time_list = [] for n in range(len(total_list)): if n % 2 == 0: total_number_list.append(total_list[n]) elif n % 2 == 1: total_time_list.append(total_list[n])''' cursor_02.execute(get_total_sql_01) get_total_01 = cursor_02.fetchall() total_list_01 = [] for range1 in get_total_01: for range2 in range1: total_list_01.append(range2) # 拆分列表 total_number_list_01 = [] total_time_list_01 = [] for n in range(len(total_list_01)): if n % 2 == 0: total_number_list_01.append(total_list_01[n]) elif n % 2 == 1: total_time_list_01.append(total_list_01[n]) cursor_02.execute(get_total_sql_02) get_total_02 = cursor_02.fetchall() total_list_02 = [] for range1 in get_total_02: for range2 in range1: total_list_02.append(range2) # 拆分列表 total_number_list_02 = [] total_time_list_02 = [] for n in range(len(total_list_02)): if n % 2 == 0: total_number_list_02.append(total_list_02[n]) elif n % 2 == 1: total_time_list_02.append(total_list_02[n]) cursor_02.execute(get_total_sql_03) get_total_03 = cursor_02.fetchall() total_list_03 = [] for range1 in get_total_03: for range2 in range1: total_list_03.append(range2) # 拆分列表 total_number_list_03 = [] total_time_list_03 = [] for n in range(len(total_list_03)): if n % 2 == 0: total_number_list_03.append(total_list_03[n]) elif n % 2 == 1: total_time_list_03.append(total_list_03[n]) cursor_02.execute(get_total_sql_04) get_total_04 = cursor_02.fetchall() total_list_04 = [] for range1 in get_total_04: for range2 in range1: total_list_04.append(range2) # 拆分列表 total_number_list_04 = [] total_time_list_04 = [] for n in range(len(total_list_04)): if n % 2 == 0: total_number_list_04.append(total_list_04[n]) elif n % 2 == 1: total_time_list_04.append(total_list_04[n]) cursor_02.execute(get_total_sql_05) get_total_05 = cursor_02.fetchall() total_list_05 = [] for range1 in get_total_05: for range2 in range1: total_list_05.append(range2) # 拆分列表 total_number_list_05 = [] total_time_list_05 = [] for n in range(len(total_list_05)): if n % 2 == 0: total_number_list_05.append(total_list_05[n]) elif n % 2 == 1: total_time_list_05.append(total_list_05[n]) cursor_02.execute(get_total_sql_06) get_total_06 = cursor_02.fetchall() total_list_06 = [] for range1 in get_total_06: for range2 in range1: total_list_06.append(range2) # 拆分列表 total_number_list_06 = [] total_time_list_06 = [] for n in range(len(total_list_06)): if n % 2 == 0: total_number_list_06.append(total_list_06[n]) elif n % 2 == 1: total_time_list_06.append(total_list_06[n]) cursor_02.execute(get_total_sql_07) get_total_07 = cursor_02.fetchall() total_list_07 = [] for range1 in get_total_07: for range2 in range1: total_list_07.append(range2) # 拆分列表 total_number_list_07 = [] total_time_list_07 = [] for n in range(len(total_list_07)): if n % 2 == 0: total_number_list_07.append(total_list_07[n]) elif n % 2 == 1: total_time_list_07.append(total_list_07[n]) cursor_02.execute(get_total_sql_08) get_total_08 = cursor_02.fetchall() total_list_08 = [] for range1 in get_total_08: for range2 in range1: total_list_08.append(range2) # 拆分列表 total_number_list_08 = [] total_time_list_08 = [] for n in range(len(total_list_08)): if n % 2 == 0: total_number_list_08.append(total_list_08[n]) elif n % 2 == 1: total_time_list_08.append(total_list_08[n]) cursor_02.execute(get_total_sql_09) get_total_09 = cursor_02.fetchall() total_list_09 = [] for range1 in get_total_09: for range2 in range1: total_list_09.append(range2) # 拆分列表 total_number_list_09 = [] total_time_list_09 = [] for n in range(len(total_list_09)): if n % 2 == 0: total_number_list_09.append(total_list_09[n]) elif n % 2 == 1: total_time_list_09.append(total_list_09[n]) cursor_02.execute(get_total_sql_10) get_total_10 = cursor_02.fetchall() total_list_10 = [] for range1 in get_total_10: for range2 in range1: total_list_10.append(range2) # 拆分列表 total_number_list_10 = [] total_time_list_10 = [] for n in range(len(total_list_10)): if n % 2 == 0: total_number_list_10.append(total_list_10[n]) elif n % 2 == 1: total_time_list_10.append(total_list_10[n]) cursor_02.execute(get_total_sql_11) get_total_11 = cursor_02.fetchall() total_list_11 = [] for range1 in get_total_11: for range2 in range1: total_list_11.append(range2) # 拆分列表 total_number_list_11 = [] total_time_list_11 = [] for n in range(len(total_list_11)): if n % 2 == 0: total_number_list_11.append(total_list_11[n]) elif n % 2 == 1: total_time_list_11.append(total_list_11[n]) cursor_02.execute(get_total_sql_12) get_total_12 = cursor_02.fetchall() total_list_12 = [] for range1 in get_total_12: for range2 in range1: total_list_12.append(range2) # 拆分列表 total_number_list_12 = [] total_time_list_12 = [] for n in range(len(total_list_12)): if n % 2 == 0: total_number_list_12.append(total_list_12[n]) elif n % 2 == 1: total_time_list_12.append(total_list_12[n]) # 断言查询的条 total = len(total_number_list_01) + len(total_number_list_02) + len(total_number_list_03) + len( total_number_list_04) + len(total_number_list_05) + len(total_number_list_06) + len( total_number_list_07) + len(total_number_list_08) + len(total_number_list_09) + len( total_number_list_10) + len(total_number_list_11) + len(total_number_list_12) sleep(3) self.statistical_form_page.switch_to_stay_report_form_frame() web_total = self.statistical_form_page.get_total_search_stay_form_number() self.assertEqual(total, web_total) # 断言查询的总的停留时间 total_time = sum(total_time_list_01) + sum(total_time_list_02) + sum(total_time_list_03) + sum( total_time_list_04) + sum(total_time_list_05) + sum(total_time_list_06) + sum(total_time_list_07) + sum( total_time_list_08) + sum(total_time_list_09) + sum(total_time_list_10) + sum(total_time_list_11) + sum( total_time_list_12) chang_total_time_type = self.statistical_form_page.change_sec_time(total_time) web_total_time = self.statistical_form_page.get_total_stay_form_time() print(web_total_time) self.assertEqual(chang_total_time_type, web_total_time) # 点击导出停留报表 self.driver.default_frame() cursor_02.close() connect_02.close() csv_file.close()
class TestCase186ObdTroubleForm(unittest.TestCase): def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage(self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.obd_form_page = ObdFormPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.assert_text = AssertText() # 登录之后点击控制台,然后点击设置 self.statistical_form_page.click_control_after_click_statistical_form_page() sleep(3) def tearDown(self): # 退出浏览器 self.driver.quit_browser() def test_case_obd_trouble_form(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual(expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击obd统计的里程报表 self.obd_form_page.click_obd_trouble_form_button() # 切换到odb里程统计的frame里面 self.obd_form_page.switch_to_obd_trouble_form_frame() csv_file = self.statistical_form_page_read_csv.read_csv('obd_milage_report_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'user_name': row[0], 'choose_date': row[2], 'begin_time': row[3], 'end_time': row[4] } self.obd_form_page.add_data_to_search_obd_trouble_form(search_data) # 获取页面上设备的信息 dev_total_mile = self.obd_form_page.get_dev_total_mile_obd_vehicle_condition_form() dev_avg_oil = self.obd_form_page.get_dev_avg_oil_obd_vehicle_condition_form() dev_avg_speed = self.obd_form_page.get_avg_oil_obd_vehicle_condition_form() dev_total_oil = self.obd_form_page.get_dev_total_oil_obd_vehicle_condition_form() begin_time = self.obd_form_page.get_begin_time() end_time = self.obd_form_page.get_end_time() request_url = request_base_url() header = { '_method_': 'getObdVehicleCondition', 'imeis': self.obd_form_page.search_imei(), 'startTime': begin_time, 'endTime': end_time, 'type': 'carfault' } sleep(10) res_json = requests.post(request_url, data=header).json() total_page = self.obd_form_page.get_obd_list_total_page_number() if total_page == 0: self.assertEqual('0', dev_total_mile) self.assertEqual('0', dev_avg_oil) self.assertEqual('0', dev_avg_speed) self.assertEqual('0', dev_total_oil) elif total_page == 1: # 获取页面上的里程和耗油 mile_and_oil_list = [] per_page_total_number = self.obd_form_page.get_per_page_total_number() for n in range(per_page_total_number): mile_and_oil_list.append({ 'gpsTime': self.obd_form_page.get_gps_time_in_vehicle_condition_form(n), 'lng': float(self.obd_form_page.get_lot_in_trouble_form(n)), 'lat': float(self.obd_form_page.get_lat_in_trouble_form(n)), 'errorCode': self.obd_form_page.get_error_code_in_trouble_form(n) }) res_data = res_json['data'] for data in res_data: del data['acc'], data['addr'], data['batteryVoltage'], data['direction'], data[ 'engineLoad'], data['fuelConsumption1'], data['fuelConsumption2'], data['gpsInfo'], data[ 'gpsSpeed'], data['heatingTime'], \ data['idleTime'], data['imei'], data[ 'maxSpeed'], data['oilPer'], data['rapidAcceleration'], data['rapidDeceleration'], data[ 'rotatingSpeed'], data[ 'speed'], data['throttlePosition'], data['totalMileage'], data['waterTemperature'] print(mile_and_oil_list) print(res_data) self.assertEqual(mile_and_oil_list, res_data) else: mile_and_oil_list = [] for i in range(total_page): # 循环点击每一页 self.obd_form_page.click_per_page(i) # 获取页面上的里程和耗油 per_page_total_number = self.obd_form_page.get_per_page_total_number() for n in range(per_page_total_number): mile_and_oil_list.append({ 'gpsTime': self.obd_form_page.get_gps_time_in_vehicle_condition_form(n), 'lng': float(self.obd_form_page.get_lot_in_trouble_form(n)), 'lat': float(self.obd_form_page.get_lat_in_trouble_form(n)), 'errorCode': self.obd_form_page.get_error_code_in_trouble_form(n) }) res_data = res_json['data'] for data in res_data: del data['acc'], data['addr'], data['batteryVoltage'], data['direction'], data[ 'engineLoad'], data['fuelConsumption1'], data['fuelConsumption2'], data['gpsInfo'], data[ 'gpsSpeed'], data['heatingTime'], \ data['idleTime'], data['imei'], data[ 'maxSpeed'], data['oilPer'], data['rapidAcceleration'], data['rapidDeceleration'], data[ 'rotatingSpeed'], data[ 'speed'], data['throttlePosition'], data['totalMileage'], data['waterTemperature'] print(mile_and_oil_list) print(res_data) self.assertEqual(mile_and_oil_list, res_data) csv_file.close() self.driver.default_frame()
class TestCase701FormExportSportOverviewExport(unittest.TestCase): # 测试 报表导出 运动总览导出 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.assert_text = AssertText() self.form_page = FormPage(self.driver, self.base_url) self.page = Page(self.driver, self.base_url) self.form_export_page = FormExportPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() # 登录之后点击控制台,然后点击设置 current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_sport_overview_export(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 断言 self.assertEqual( self.assert_text.statistical_form_sport_overview_form(), self.statistical_form_page.actual_text_after_click_sport_overview( )) # 切换到运动总览的frame self.statistical_form_page.switch_to_sport_overview_form_frame() # 点击搜索按钮 self.form_export_page.click_search_button_in_sport_overview() # 让其展示所有列 # 点击展示列 self.form_page.click_display_line_button_sport_overview() # 获取有多少个展示列 display_line_number = self.form_page.get_display_line_number_sport_overview( ) for n in range(display_line_number): # 获取每一个展示列是否被勾选 display_style = self.form_page.get_per_display_style_sport_overview( n) if display_style == False: self.form_page.click_per_display_input_button(n) self.form_page.click_display_line_button_sport_overview() # 获取页面中的数据 data_total_number = self.form_export_page.get_data_total_number_in_sport_overview( ) web_data = [] for i in range(data_total_number): web_data.append(self.form_export_page.get_per_line_data(i)) print('web', web_data) # 点击导出所有列 self.form_export_page.click_export_button_in_sport_overview() # 判断有多少个div的标签 export_div_number = self.form_export_page.get_sport_overview_export_div_number( ) for m in range(export_div_number - 2): # 获取基本信息和客户信息是否被勾选 input_style = self.form_export_page.get_input_style_select_in_sport_overview_export( m) if input_style == False: self.form_export_page.click_per_in_sport_overview_export(m) # 点击生成任务按钮 self.form_export_page.click_create_task_button_in_sport_overview_export( ) # 查找刚刚导出的文件 file = self.form_export_page.find_expect_file() print(file) # 读excel文件 excel_data = self.form_export_page.read_excel_file_by_index( file, col_name_index=1) del excel_data[0] print('excel', excel_data) self.assertEqual(web_data, excel_data) self.driver.default_frame()
class TestCase113UserSearchPagingFunction(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_user_search_paging_function(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_dev_search() self.global_dev_search_page.swith_to_search_frame() self.global_account_search_page.click_search_user_button() # 获取页面总共有多少页 total_number = self.global_account_search_page.get_total_number_after_click_search_user_button( ) if total_number == 0: self.assertIn( self.assert_text.account_center_page_no_data_text(), self.global_account_search_page. get_no_data_text_in_user_search()) elif total_number == 1: up_page_state = self.global_account_search_page.get_up_page_state_in_search_user( ) self.assertEqual('active', up_page_state) next_page_state = self.global_account_search_page.get_next_page_state_in_search_user( ) self.assertEqual('active', next_page_state) else: for n in range(total_number): self.global_account_search_page.click_per_page(n) if total_number != 0: self.global_account_search_page.click_per_number()
class TestCase307SetUpIssuedWorkTypeManagementSearch(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.connect_sql = ConnectSql() self.search_sql = SearchSql() 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.log_in_base.click_account_center_button() self.current_account = self.log_in_base.get_log_in_account() # 登录之后点击控制台,然后点击指令管理 self.command_management_page.click_control_after_click_command_management( ) sleep(3) def tearDown(self): self.driver.quit_browser() def test_case_set_up_issued_work_type_management_search(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( 'issued_work_type_management') # 断言 expect_title_text_click_issued_work_type = self.assert_text.command_manager_page_issued_work_type( ) self.assertEqual( expect_title_text_click_issued_work_type, self.command_management_page.actual_text_click_look_equipment()) # 读取数据 csv_file = self.command_management_page_read_csv.read_csv( 'issused_work_template.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'batch': row[0], 'execute_state': row[1], 'state': row[2], 'imei': row[3] } # 传入数据 self.command_management_page.add_data_to_search(search_data) # 创建数据库连接 connect = self.connect_sql.connect_tuqiang_sql() # 创建游标 cursor = connect.cursor() # 获取登录账号的ID get_current_user_id_sql = \ "select o.account,o.userId from user_info o where o.account = '" + self.current_account + "';" cursor.execute(get_current_user_id_sql) user_relation = cursor.fetchall() for row1 in user_relation: user_id = {'user_account': row1[0], 'user_id': row1[1]} # 查询数据库有多少条记录 get_total_count_sql = self.search_sql.search_issued_work_template_sql( user_id['user_id'], search_data) print(get_total_count_sql) cursor.execute(get_total_count_sql) current_total = cursor.fetchall() total_list = [] for range1 in current_total: for range2 in range1: total_list.append(range2) total = len(total_list) web_total = self.command_management_page.search_total_number_issued_work_type( ) self.assertEqual(total, web_total) cursor.close() connect.close() csv_file.close()
class TestCase136GlobSearchDevSearch(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages( self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.driver.wait(1) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_glob_search_dev_search(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in() self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.click_advanced_search_button() # 点击搜索按钮 self.global_dev_search_page.click_search_buttons_in_dev_advanced_search_page( ) sleep(4) # 点击详情 self.global_dev_search_page.click_detail_button_in_dev_advanced_search_page( ) sleep(2) # 获取设备的imei和状态 get_dev_imei = self.global_dev_search_page.get_dev_imei_in_details() get_dev_status = self.global_dev_search_page.get_dev_status_in_dev_detail( ) # 点击关闭高级搜索 self.driver.default_frame() self.global_dev_search_page.click_close_button() # 点击控制台 self.global_dev_search_page.click_cancel_page_button() # 输入imei然后搜索 self.global_dev_search_page.add_dev_imei_to_search_in_console( get_dev_imei) # 获取设备的状态在控制台页面 get_dev_status_in_console_page = self.global_dev_search_page.get_dev_status_in_console_page( ) self.assertEqual(get_dev_status, get_dev_status_in_console_page)
class 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 TestCase83DevManageSelectIssuedCommand(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_select_issued_command(self): # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() # 点击进入设备管理 self.dev_manage_page.enter_dev_manage() imei_in_list = self.dev_manage_page.get_imei_in_list() dev_type_in_list = self.dev_manage_page.get_dev_type_in_list() # 选中一个列表中的设备 self.dev_manage_page.click_dev_in_list() # 判断是否选中 input_value = self.dev_manage_page.check_input_value() self.assertEqual(True, input_value) # 点击选中发送指令 self.dev_manage_page.click_select_send_command() # 点击关闭 self.dev_manage_page.click_close_select_send_command() # 点击选中发送指令 self.dev_manage_page.click_select_send_command() # 点击取消 self.dev_manage_page.click_cancel_select_send_command() # 点击选中发送指令 self.dev_manage_page.click_select_send_command() # 判断数量 get_dev_number = self.dev_manage_page.get_dev_number_in_send_command() self.assertEqual(1, get_dev_number) get_dev_count = self.dev_manage_page.get_dev_count_number_in_send_command( ) self.assertEqual(str(get_dev_number), get_dev_count) # 验证设备信息 get_imei = self.dev_manage_page.get_imei_in_send_command() self.assertEqual(imei_in_list, get_imei) get_dev_type = self.dev_manage_page.get_dev_type_in_send_command() self.assertEqual(dev_type_in_list, get_dev_type) get_dev_user = self.dev_manage_page.get_dev_user_in_send_command() connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_account_sql = "select o.account from equipment_mostly e inner join user_info o on e.userId = o.userId where e.imei = '%s';" % imei_in_list cursor.execute(get_account_sql) account_data = cursor.fetchall() account = account_data[0][0] cursor.close() connect.close() self.assertEqual(get_dev_user, account) # 点击删除设备 self.dev_manage_page.click_detele_dev_in_send_command() self.dev_manage_page.click_send_command_in_send_command()
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)
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)
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()
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 TestCase713FormExportOBDTroubleFormExport(unittest.TestCase): # 测试 obd报表 故障报表 - 导出 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.statistical_form_page3 = StatisticFormPage3( self.driver, self.base_url) self.assert_text = AssertText() self.form_page = FormPage(self.driver, self.base_url) self.page = Page(self.driver, self.base_url) self.form_export_page = FormExportPage(self.driver, self.base_url) self.statistical_form_page4 = StatisticFormPage4( self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_obd_trouble_form_export(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 断言 self.assertEqual( self.assert_text.statistical_form_sport_overview_form(), self.statistical_form_page.actual_text_after_click_sport_overview( )) # 切换到里程报表的frame self.statistical_form_page.click_obd_trouble_form() self.statistical_form_page.switch_to_obd_trouble_frame() # 搜索数据 self.form_export_page.search_obd_trouble_data() # 让其展示所有列 # 点击展示列 self.form_page.click_display_line_button_obd_failure() # 获取有多少个展示列 display_line_number = self.form_page.get_display_line_name_number_obd_failure( ) print(display_line_number) for n in range(display_line_number): # 获取每一个展示列是否被勾选 display_style = self.form_page.get_per_display_style_obd_failure(n) if display_style == False: self.form_page.click_per_display_input_button_obd_failure(n) self.form_page.click_display_line_button_obd_failure() # 获取页面中的数据 web_data = [] total_page = self.statistical_form_page4.get_total_page_in_obd_car_condition( ) if total_page == 0: pass else: if total_page == 1: total_number_per_page = self.statistical_form_page4.get_total_number_per_page_in_obd_car_condition( ) for a in range(total_number_per_page): web_data.append( self.form_export_page.get_per_line_data_obd_trouble(a)) else: for x in range(total_page): self.statistical_form_page3.click_per_page_in_mile_report_form( x) total_number_per_page = self.statistical_form_page4.get_total_number_per_page_in_obd_car_condition( ) for a in range(total_number_per_page): web_data.append( self.form_export_page. get_per_line_data_obd_trouble(a)) # 点击导出所有列 self.form_export_page.click_export_button_in_mileage() # 切换到导出的frame中 self.form_export_page.switch_export_frame() # 判断有多少个div的标签 export_div_number = self.form_export_page.get_sport_overview_export_div_number( ) for m in range(export_div_number - 2): # 获取基本信息和客户信息是否被勾选 input_style = self.form_export_page.get_input_style_select_in_sport_overview_export( m) if input_style == False: self.form_export_page.click_per_in_sport_overview_export(m) # 点击生成任务按钮 self.form_export_page.click_create_task_button_in_sport_overview_export_stay( ) # 查找刚刚导出的文件 file = self.form_export_page.find_expect_file() print(file) # 读excel文件 excel_data = self.form_export_page.read_excel_file_by_index(file, n=0) del excel_data[0] print('excel', excel_data) print('web', web_data) self.assertEqual(web_data, excel_data) self.driver.default_frame()
class TestCase169SportStatisticalMileReportForm(unittest.TestCase): ''' 用例第141条,运动统计 里程报表 author:zhangAo ''' def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.seasrch_sql = SearchSql(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.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_new_mile_report_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_mileage_form_buttons() for n in range(5): self.statistical_form_page.click_customer_in_new_mile_form(n) # 点击搜索设备按钮 self.statistical_form_page.click_search_dev_button_in_new_mile_form( ) # 获取有多少组 number = self.statistical_form_page.get_group_number_in_new_mile_form( ) if number == 0: pass else: for m in range(number): # 收起默认组 self.statistical_form_page.click_defalut_group_in_new_mile_form( ) # 获取每个组设备的数量 dev_number = self.statistical_form_page.get_dev_number_in_new_mile_form( m) # 点开每一个分组 self.statistical_form_page.click_per_group_in_new_mile_form( m) dev_number_list = self.statistical_form_page.get_dev_number_list_in_new_mile_form( m) self.assertEqual(str(dev_number_list), dev_number)
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()
class TestCase184ObdTracelForm(unittest.TestCase): def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.obd_form_page = ObdFormPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.assert_text = AssertText() # 登录之后点击控制台,然后点击设置 self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) def tearDown(self): # 退出浏览器 self.driver.quit_browser() def test_case_obd_tracel_form(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击obd报表里面的行程报表 self.obd_form_page.click_obd_form_tracel_statistical_button() # 切换到行程报表的frame self.obd_form_page.switch_to_obd_tracel_statistical_frame() csv_file = self.statistical_form_page_read_csv.read_csv( 'obd_milage_report_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue data = { 'user_name': row[0], 'choose_date': row[2], 'begin_time': row[3], 'end_time': row[4] } self.obd_form_page.add_data_to_search_obd_tracel_statistical_form( data) # 获取页面上设备的信息 dev_total_mile = self.obd_form_page.get_dev_total_mile_obd_tracel_statistical_form( ) dev_avg_oil = self.obd_form_page.get_dev_avg_oil_obd_tracel_statistical_form( ) dev_avg_speed = self.obd_form_page.get_avg_oil_obd_tracel_statistical_form( ) dev_total_oil = self.obd_form_page.get_dev_total_oil_obd_tracel_statistical_form( ) begin_time = self.obd_form_page.get_begin_time() end_time = self.obd_form_page.get_end_time() # 请求里程报表统计 request_url = request_base_url() header = { '_method_': 'getObdTotalInfo', 'imeis': self.obd_form_page.search_imei(), 'startTime': begin_time, 'endTime': end_time } print(header) req_json = requests.post(request_url, data=header).json() print(req_json) # 断言 try: self.assertEqual(float(dev_total_mile), req_json['data'][0]['totalMileage']) self.assertEqual( float(dev_avg_oil), req_json['data'][0]['totalAvgFuelConsumption']) self.assertEqual(float(dev_avg_speed), req_json['data'][0]['totalAvgSpeed']) self.assertEqual(float(dev_total_oil), req_json['data'][0]['totalFuelConsumption']) except: self.assertEqual([None], req_json['data']) request_url = request_base_url() header = { '_method_': 'getObdTrip', 'imeis': self.obd_form_page.search_imei(), 'startTime': begin_time, 'endTime': end_time } sleep(10) res_json = requests.post(request_url, data=header).json() total_page = self.obd_form_page.get_obd_list_total_page_number() if total_page == 0: self.assertEqual('0', dev_total_mile) self.assertEqual('0', dev_avg_oil) self.assertEqual('0', dev_avg_speed) self.assertEqual('0', dev_total_oil) elif total_page == 1: # 获取页面上的里程和耗油 mile_and_oil_list = [] per_page_total_number = self.obd_form_page.get_per_page_total_number( ) for n in range(per_page_total_number): mile_and_oil_list.append({ 'startTime': self.obd_form_page.get_start_time_in_tracel_form(n), 'endTime': self.obd_form_page.get_end_time_in_tracel_form(n), 'tripTime': self.obd_form_page.get_trip_time_in_tracel_form(n), 'mileage': float( self.obd_form_page.get_mileage_in_tracel_form(n)), 'totalFuelConsumption': float( self.obd_form_page. get_total_fuel_consumption_in_tracel_form(n)), 'avgFuelConsumption': float( self.obd_form_page. get_avg_fuel_consumption_in_tracel_form(n)), "rapidAcceleration": int( self.obd_form_page. get_rapid_acceleration_in_tracel_form(n)), "rapidDeceleration": int( self.obd_form_page. get_rapid_deceleration_in_tracel_form(n)), }) res_data = res_json['data'] for data in res_data: del data['endAddr'], data['endLat'], data['endLng'], data[ 'imei'], data['maxSpeed'], data['startAddr'], data[ 'startLat'], data['startLng'], data['avgSpeed'] for data in res_data: data['tripTime'] = self.obd_form_page.chang_time_formeat( data['tripTime']) print(mile_and_oil_list) print(res_data) self.assertEqual(mile_and_oil_list, res_data) else: mile_and_oil_list = [] for i in range(total_page): # 循环点击每一页 self.obd_form_page.click_per_page(i) # 获取页面上的里程和耗油 per_page_total_number = self.obd_form_page.get_per_page_total_number( ) for n in range(per_page_total_number): mile_and_oil_list.append({ 'startTime': self.obd_form_page.get_start_time_in_tracel_form( n), 'endTime': self.obd_form_page.get_end_time_in_tracel_form(n), 'tripTime': self.obd_form_page.get_trip_time_in_tracel_form(n), 'mileage': float( self.obd_form_page.get_mileage_in_tracel_form( n)), 'totalFuelConsumption': float( self.obd_form_page. get_total_fuel_consumption_in_tracel_form(n)), 'avgFuelConsumption': float( self.obd_form_page. get_avg_fuel_consumption_in_tracel_form(n)), "rapidAcceleration": int( self.obd_form_page. get_rapid_acceleration_in_tracel_form(n)), "rapidDeceleration": int( self.obd_form_page. get_rapid_deceleration_in_tracel_form(n)), }) sleep(5) res_data = res_json['data'] print(res_data) for data in res_data: del data['startLng'], data['endLat'], data['endLng'], data[ 'imei'], data['maxSpeed'], data['startAddr'], data[ 'startLat'], data['endAddr'], data['avgSpeed'] for data in res_data: data['tripTime'] = self.obd_form_page.chang_time_formeat( data['tripTime']) print(mile_and_oil_list) print(res_data) self.assertEqual(mile_and_oil_list, res_data) csv_file.close() self.driver.default_frame()
class TestCase137SearchUserByTypeCreatNewUser(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage(self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages(self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage(self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.driver.wait(1) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_137_search_user_by_type_creat_new_user(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in() # 点击账号中心 self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() # 选择用户搜索 self.global_dev_search_page.click_user_search_buttons() self.global_dev_search_page.swith_to_search_frame() # 获取用户列表有多少页 user_account = '' total_page = self.global_dev_search_page.get_total_page_after_search_user() for n in range(total_page): self.global_dev_search_page.click_per_page(n) # 获取每页有多少条 number = self.global_dev_search_page.get_per_page_total_number_in_search_user() for i in range(number): # 获取各个用户的用户类型 user_type = self.global_dev_search_page.get_user_type_in_search_user(i) user_account = self.global_dev_search_page.get_user_account_in_search_user(i) if user_type == '销售': break # 搜索获取到的销售类型的用户,搜索 self.global_dev_search_page.search_user(user_account) # 点击新增下级用户 self.global_dev_search_page.click_add_next_user_in_search_user() # 获取新增下级用户时,下级的客户类型有几种 user_type_number = self.global_dev_search_page.get_user_type_number_in_search_user() self.assertEqual(3, user_type_number) self.global_dev_search_page.search_user('') user_account = '' total_page = self.global_dev_search_page.get_total_page_after_search_user() for n in range(total_page): self.global_dev_search_page.click_per_page(n) # 获取每页有多少条 number = self.global_dev_search_page.get_per_page_total_number_in_search_user() for i in range(number): # 获取各个用户的用户类型 user_type = self.global_dev_search_page.get_user_type_in_search_user(i) user_account = self.global_dev_search_page.get_user_account_in_search_user(i) if user_type == '代理商': break # 搜索获取到的销售类型的用户,搜索 self.global_dev_search_page.search_user(user_account) # 点击新增下级用户 self.global_dev_search_page.click_add_next_user_in_search_user() # 获取新增下级用户时,下级的客户类型有几种 user_type_number = self.global_dev_search_page.get_user_type_number_in_search_user() self.assertEqual(2, user_type_number) self.global_dev_search_page.search_user('') user_account = '' total_page = self.global_dev_search_page.get_total_page_after_search_user() for n in range(total_page): self.global_dev_search_page.click_per_page(n) # 获取每页有多少条 number = self.global_dev_search_page.get_per_page_total_number_in_search_user() for i in range(number): # 获取各个用户的用户类型 user_type = self.global_dev_search_page.get_user_type_in_search_user(i) user_account = self.global_dev_search_page.get_user_account_in_search_user(i) if user_type == '用户': break # 搜索获取到的销售类型的用户,搜索 self.global_dev_search_page.search_user(user_account) # 获取新增下级用户的display值 get_new_next_display = self.global_dev_search_page.get_new_next_display_in_search_user() self.assertEqual('display: none;', get_new_next_display) self.driver.default_frame()
class 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()
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 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)