class TestCase76DevManageDevOperationNOActiveAndStop(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.account_center_page_navi_bar = AccountCenterNaviBarPages( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.dev_manage_page_read_csv = DevManagePageReadCsv() self.connect_sql = ConnectSql() self.search_sql = SearchSql() self.driver.set_window_max() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_dev_manage_dev_operation_noactive_and_stop(self): # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() self.dev_manage_page.enter_dev_manage() # 选择已激活和开机的设备 self.dev_manage_page.choose_dev_noactive_and_stop() self.dev_manage_page.click_ensure() sleep(4) imei = self.dev_manage_page.get_imei_number() self.dev_manage_page.click_edit_button() self.dev_manage_page.click_close_edit_button() self.dev_manage_page.click_edit_button() csv_file = self.dev_manage_page_read_csv.read_csv( 'dev_operation_data.csv') csv_data = csv.reader(csv_file) for row in csv_data: self.data = { 'dev_name': row[0], 'sim': row[1], 'mark': row[2], 'd_name': row[3], 'd_phone': row[4], 'plate_numbers': row[5], 'iccid': row[6], 'sn': row[7], 'vin': row[8], 'engine_number': row[9], 'install_time': row[10], 'install_adress': row[11], 'install_comp': row[12], 'install_preson': row[13] } self.dev_manage_page.add_data_to_edit_dev_detila(self.data) # 验证是否修改成功 sleep(4) text = self.dev_manage_page.get_dev_name() self.assertEqual(self.data['dev_name'], text) csv_file.close() # 点击查看位置 current_handle = self.driver.get_current_window_handle() self.dev_manage_page.click_look_place_button() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) sleep(2) expect_url = self.base_url + "/console" self.assertEqual(expect_url, self.driver.get_current_url()) # dev_name = self.dev_manage_page.get_dev_name_after_click_console() # self.assertEqual(self.data['dev_name'], dev_name) self.driver.close_current_page() self.driver.switch_to_window(current_handle) sleep(2)
class TestCase604FormPortSearchAccSearch(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() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_acc_search_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_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 TestCase506FormSearchAccSearch(unittest.TestCase): # 测试 报表 acc报表搜索功能 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.search_sql = SearchSql(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.log_in_base.log_in_jimitest() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_acc_search(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击停留报表 self.statistical_form_page.click_acc_form_button() # 断言 self.assertEqual( self.assert_text.statistical_form_acc_form(), self.statistical_form_page.actual_text_after_click_acc_button()) # 读数据 # 读取查询数据 csv_file = self.statistical_form_page_read_csv.read_csv( 'sport_statistical_acc_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'search_user': row[0], 'status': row[1], 'choose_date': row[2], 'begin_time': row[3], 'end_time': row[4] } self.statistical_form_page.add_data_to_search_acc_form(search_data) self.statistical_form_page.switch_to_acc_report_form_frame() all_dev = self.search_sql.search_current_account_equipment( search_data['search_user']) # 连接另一个数据库 connect_02 = self.connect_sql.connect_tuqiang_form() # 创建游标 cursor_02 = connect_02.cursor() # get_total_sql = self.search_sql.search_acc_sql(all_dev, search_data) get_total_sql_01 = self.search_sql.search_acc_sql_01( all_dev, search_data) get_total_sql_02 = self.search_sql.search_acc_sql_02( all_dev, search_data) get_total_sql_03 = self.search_sql.search_acc_sql_03( all_dev, search_data) get_total_sql_04 = self.search_sql.search_acc_sql_04( all_dev, search_data) get_total_sql_05 = self.search_sql.search_acc_sql_05( all_dev, search_data) get_total_sql_06 = self.search_sql.search_acc_sql_06( all_dev, search_data) get_total_sql_07 = self.search_sql.search_acc_sql_07( all_dev, search_data) get_total_sql_08 = self.search_sql.search_acc_sql_08( all_dev, search_data) get_total_sql_09 = self.search_sql.search_acc_sql_09( all_dev, search_data) get_total_sql_10 = self.search_sql.search_acc_sql_10( all_dev, search_data) get_total_sql_11 = self.search_sql.search_acc_sql_11( all_dev, search_data) get_total_sql_12 = self.search_sql.search_acc_sql_12( all_dev, search_data) print(get_total_sql_01) cursor_02.execute(get_total_sql_01) get_total_01 = cursor_02.fetchall() total_list_01 = [] for range1 in get_total_01: for range2 in range1: total_list_01.append(range2) get_total_list_01 = [] acc_open_list_01 = [] acc_close_list_01 = [] all_time_list_01 = [] for n in range(len(total_list_01)): if n % 3 == 0: get_total_list_01.append(total_list_01[n]) elif n % 3 == 1: if total_list_01[n] == 1: acc_open_list_01.append(total_list_01[n]) elif total_list_01[n] == 0: acc_close_list_01.append(total_list_01[n]) elif n % 3 == 2: all_time_list_01.append(total_list_01[n]) cursor_02.execute(get_total_sql_02) get_total_02 = cursor_02.fetchall() total_list_02 = [] for range1 in get_total_02: for range2 in range1: total_list_02.append(range2) get_total_list_02 = [] acc_open_list_02 = [] acc_close_list_02 = [] all_time_list_02 = [] for n in range(len(total_list_02)): if n % 3 == 0: get_total_list_02.append(total_list_02[n]) elif n % 3 == 1: if total_list_02[n] == 1: acc_open_list_02.append(total_list_02[n]) elif total_list_02[n] == 0: acc_close_list_02.append(total_list_02[n]) elif n % 3 == 2: all_time_list_02.append(total_list_02[n]) cursor_02.execute(get_total_sql_03) get_total_03 = cursor_02.fetchall() total_list_03 = [] for range1 in get_total_03: for range2 in range1: total_list_03.append(range2) get_total_list_03 = [] acc_open_list_03 = [] acc_close_list_03 = [] all_time_list_03 = [] for n in range(len(total_list_03)): if n % 3 == 0: get_total_list_03.append(total_list_03[n]) elif n % 3 == 1: if total_list_03[n] == 1: acc_open_list_03.append(total_list_03[n]) elif total_list_03[n] == 0: acc_close_list_03.append(total_list_03[n]) elif n % 3 == 2: all_time_list_03.append(total_list_03[n]) cursor_02.execute(get_total_sql_04) get_total_04 = cursor_02.fetchall() total_list_04 = [] for range1 in get_total_04: for range2 in range1: total_list_04.append(range2) get_total_list_04 = [] acc_open_list_04 = [] acc_close_list_04 = [] all_time_list_04 = [] for n in range(len(total_list_04)): if n % 3 == 0: get_total_list_04.append(total_list_04[n]) elif n % 3 == 1: if total_list_04[n] == 1: acc_open_list_04.append(total_list_04[n]) elif total_list_04[n] == 0: acc_close_list_04.append(total_list_04[n]) elif n % 3 == 2: all_time_list_04.append(total_list_04[n]) cursor_02.execute(get_total_sql_05) get_total_05 = cursor_02.fetchall() total_list_05 = [] for range1 in get_total_05: for range2 in range1: total_list_05.append(range2) get_total_list_05 = [] acc_open_list_05 = [] acc_close_list_05 = [] all_time_list_05 = [] for n in range(len(total_list_05)): if n % 3 == 0: get_total_list_05.append(total_list_05[n]) elif n % 3 == 1: if total_list_05[n] == 1: acc_open_list_05.append(total_list_05[n]) elif total_list_05[n] == 0: acc_close_list_05.append(total_list_05[n]) elif n % 3 == 2: all_time_list_05.append(total_list_05[n]) cursor_02.execute(get_total_sql_06) get_total_06 = cursor_02.fetchall() total_list_06 = [] for range1 in get_total_06: for range2 in range1: total_list_06.append(range2) get_total_list_06 = [] acc_open_list_06 = [] acc_close_list_06 = [] all_time_list_06 = [] for n in range(len(total_list_06)): if n % 3 == 0: get_total_list_06.append(total_list_06[n]) elif n % 3 == 1: if total_list_06[n] == 1: acc_open_list_06.append(total_list_06[n]) elif total_list_06[n] == 0: acc_close_list_06.append(total_list_06[n]) elif n % 3 == 2: all_time_list_06.append(total_list_06[n]) cursor_02.execute(get_total_sql_07) get_total_07 = cursor_02.fetchall() total_list_07 = [] for range1 in get_total_07: for range2 in range1: total_list_07.append(range2) get_total_list_07 = [] acc_open_list_07 = [] acc_close_list_07 = [] all_time_list_07 = [] for n in range(len(total_list_07)): if n % 3 == 0: get_total_list_07.append(total_list_07[n]) elif n % 3 == 1: if total_list_07[n] == 1: acc_open_list_07.append(total_list_07[n]) elif total_list_07[n] == 0: acc_close_list_07.append(total_list_07[n]) elif n % 3 == 2: all_time_list_07.append(total_list_07[n]) cursor_02.execute(get_total_sql_08) get_total_08 = cursor_02.fetchall() total_list_08 = [] for range1 in get_total_08: for range2 in range1: total_list_08.append(range2) get_total_list_08 = [] acc_open_list_08 = [] acc_close_list_08 = [] all_time_list_08 = [] for n in range(len(total_list_08)): if n % 3 == 0: get_total_list_08.append(total_list_08[n]) elif n % 3 == 1: if total_list_08[n] == 1: acc_open_list_08.append(total_list_08[n]) elif total_list_08[n] == 0: acc_close_list_08.append(total_list_08[n]) elif n % 3 == 2: all_time_list_08.append(total_list_08[n]) cursor_02.execute(get_total_sql_09) get_total_09 = cursor_02.fetchall() total_list_09 = [] for range1 in get_total_09: for range2 in range1: total_list_09.append(range2) get_total_list_09 = [] acc_open_list_09 = [] acc_close_list_09 = [] all_time_list_09 = [] for n in range(len(total_list_09)): if n % 3 == 0: get_total_list_09.append(total_list_09[n]) elif n % 3 == 1: if total_list_09[n] == 1: acc_open_list_09.append(total_list_09[n]) elif total_list_09[n] == 0: acc_close_list_09.append(total_list_09[n]) elif n % 3 == 2: all_time_list_09.append(total_list_09[n]) cursor_02.execute(get_total_sql_10) get_total_10 = cursor_02.fetchall() total_list_10 = [] for range1 in get_total_10: for range2 in range1: total_list_10.append(range2) get_total_list_10 = [] acc_open_list_10 = [] acc_close_list_10 = [] all_time_list_10 = [] for n in range(len(total_list_10)): if n % 3 == 0: get_total_list_10.append(total_list_10[n]) elif n % 3 == 1: if total_list_10[n] == 1: acc_open_list_10.append(total_list_10[n]) elif total_list_10[n] == 0: acc_close_list_10.append(total_list_10[n]) elif n % 3 == 2: all_time_list_10.append(total_list_10[n]) cursor_02.execute(get_total_sql_11) get_total_11 = cursor_02.fetchall() total_list_11 = [] for range1 in get_total_11: for range2 in range1: total_list_11.append(range2) get_total_list_11 = [] acc_open_list_11 = [] acc_close_list_11 = [] all_time_list_11 = [] for n in range(len(total_list_11)): if n % 3 == 0: get_total_list_11.append(total_list_11[n]) elif n % 3 == 1: if total_list_11[n] == 1: acc_open_list_11.append(total_list_11[n]) elif total_list_11[n] == 0: acc_close_list_11.append(total_list_11[n]) elif n % 3 == 2: all_time_list_11.append(total_list_11[n]) cursor_02.execute(get_total_sql_12) get_total_12 = cursor_02.fetchall() total_list_12 = [] for range1 in get_total_12: for range2 in range1: total_list_12.append(range2) get_total_list_12 = [] acc_open_list_12 = [] acc_close_list_12 = [] all_time_list_12 = [] for n in range(len(total_list_12)): if n % 3 == 0: get_total_list_12.append(total_list_12[n]) elif n % 3 == 1: if total_list_12[n] == 1: acc_open_list_12.append(total_list_12[n]) elif total_list_12[n] == 0: acc_close_list_12.append(total_list_12[n]) elif n % 3 == 2: all_time_list_12.append(total_list_12[n]) total = len(get_total_list_01) + len(get_total_list_02) + len( get_total_list_03) + len(get_total_list_04) + len( get_total_list_05) + len(get_total_list_06) + len( get_total_list_07) + len(get_total_list_08) + len( get_total_list_10) + len(get_total_list_11) + len( get_total_list_12) total_acc_open = len(acc_open_list_01) + len( acc_open_list_02) + len(acc_open_list_03) + len( acc_open_list_04) + len(acc_open_list_05) + len( acc_open_list_06) + len(acc_open_list_07) + len( acc_open_list_08) + len(acc_open_list_10) + len( acc_open_list_11) + len(acc_open_list_12) total_acc_close = len(acc_close_list_01) + len( acc_close_list_02) + len(acc_close_list_03) + len( acc_close_list_04) + len(acc_close_list_05) + len( acc_close_list_06) + len(acc_close_list_07) + len( acc_close_list_08) + len(acc_close_list_10) + len( acc_close_list_11) + len(acc_close_list_12) total_time = sum(all_time_list_01) + sum(all_time_list_02) + sum( all_time_list_03) + sum(all_time_list_04) + sum( all_time_list_05) + sum(all_time_list_06) + sum( all_time_list_07) + sum(all_time_list_08) + sum( all_time_list_10) + sum(all_time_list_11) + sum( all_time_list_12) # 断言总条数 web_total = self.statistical_form_page.get_total_search_acc_form_number( ) self.assertEqual(total, web_total) # 断言acc打开几次 web_acc_open_total = self.statistical_form_page.get_total_search_acc_open( ) self.assertEqual(str(total_acc_open), web_acc_open_total) # 断言acc关闭几次 web_acc_close_total = self.statistical_form_page.get_total_search_acc_close( ) self.assertEqual(str(total_acc_close), web_acc_close_total) # 断言总时间 total_times = self.statistical_form_page.change_sec_time( total_time) web_all_time_total = self.statistical_form_page.get_total_search_all_time( ) self.assertEqual(total_times, web_all_time_total) # 点击导出报表 self.driver.default_frame() cursor_02.close() connect_02.close() csv_file.close()
class TestCase605FormPortSearchObdMileageSearch(unittest.TestCase): # 测试 报表 接口搜索 obd里程报表 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.obd_form_page = ObdFormPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.assert_text = AssertText() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_obd_mileage_search_port(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击obd统计的里程报表 self.obd_form_page.click_obd_form_mileage_statistical_button() # 切换到odb里程统计的frame里面 self.obd_form_page.switch_to_obd_mileage_statistical_frame() csv_file = self.statistical_form_page_read_csv.read_csv( 'obd_milage_report_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'user_name': row[0], 'choose_date': row[2], 'begin_time': row[3], 'end_time': row[4] } self.obd_form_page.add_data_to_search_obd_mileage_statistical_form( search_data) # 获取页面上设备的信息 dev_total_mile = self.obd_form_page.get_dev_total_mile_obd_mileage_statistical_form( ) dev_avg_oil = self.obd_form_page.get_dev_avg_oil_obd_mileage_statistical_form( ) dev_avg_speed = self.obd_form_page.get_avg_oil_obd_mileage_statistical_form( ) dev_total_oil = self.obd_form_page.get_dev_total_oil_obd_mileage_statistical_form( ) begin_time = self.obd_form_page.get_begin_times() end_time = self.obd_form_page.get_end_times() # 请求里程报表统计 request_url = request_base_url() header = { '_method_': 'getObdTotalInfo', 'imeis': self.obd_form_page.search_imei(), 'startTime': begin_time, 'endTime': end_time } print(header) req_json = requests.post(request_url, data=header).json() print(req_json) # 断言 try: self.assertEqual(float(dev_total_mile), req_json['data'][0]['totalMileage']) self.assertEqual( float(dev_avg_oil), req_json['data'][0]['totalAvgFuelConsumption']) self.assertEqual(float(dev_avg_speed), req_json['data'][0]['totalAvgSpeed']) self.assertEqual(float(dev_total_oil), req_json['data'][0]['totalFuelConsumption']) except: self.assertEqual([None], req_json['data']) request_url = request_base_url() header = { '_method_': 'getObdTrip', 'imeis': self.obd_form_page.search_imei(), 'startTime': begin_time, 'endTime': end_time, 'type': 'day' } sleep(10) res_json = requests.post(request_url, data=header).json() total_page = self.obd_form_page.get_obd_list_total_page_number() if total_page == 0: self.assertEqual('0', dev_total_mile) self.assertEqual('0', dev_avg_oil) self.assertEqual('0', dev_avg_speed) self.assertEqual('0', dev_total_oil) elif total_page == 1: # 获取页面上的里程和耗油 mile_and_oil_list = [] per_page_total_number = self.obd_form_page.get_per_page_total_number( ) for n in range(per_page_total_number): mile_and_oil_list.append({ 'atDay': self.obd_form_page.get_at_day_in_odb_mileage_form(n), 'mileage': float( self.obd_form_page. get_per_mile_in_obd_mileage_form(n)), 'totalFuelConsumption': float( self.obd_form_page.get_per_oil_in_obd_mileage_form( n)), 'avgFuelConsumption': float( self.obd_form_page. get_avg_fuel_consumption_in_obd_mileage_form(n)) }) res_data = res_json['data'] for data in res_data: del data['endLat'], data['endLng'], data['imei'], data[ 'maxSpeed'], data['rapidAcceleration'], data[ 'rapidDeceleration'], data['startLat'], data[ 'startLng'], data['tripTime'], data['avgSpeed'] self.assertEqual(mile_and_oil_list, res_data) else: mile_and_oil_list = [] for i in range(total_page): # 循环点击每一页 self.obd_form_page.click_per_page(i) # 获取页面上的里程和耗油 per_page_total_number = self.obd_form_page.get_per_page_total_number( ) for n in range(per_page_total_number): mile_and_oil_list.append({ 'atDay': self.obd_form_page.get_at_day_in_odb_mileage_form( n), 'mileage': float( self.obd_form_page. get_per_mile_in_obd_mileage_form(n)), 'totalFuelConsumption': float( self.obd_form_page. get_per_oil_in_obd_mileage_form(n)), 'avgFuelConsumption': float( self.obd_form_page. get_avg_fuel_consumption_in_obd_mileage_form( n)) }) res_data = res_json['data'] for data in res_data: del data['endLat'], data['endLng'], data['imei'], data[ 'maxSpeed'], data['rapidAcceleration'], data[ 'rapidDeceleration'], data['startLat'], data[ 'startLng'], data['tripTime'], data['avgSpeed'] self.assertEqual(mile_and_oil_list, res_data) csv_file.close() self.driver.default_frame()
class TestCase608FormPortSearchObdTroubleSearch(unittest.TestCase): # 测试 报表 接口搜索 obd车况报表 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.obd_form_page = ObdFormPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.assert_text = AssertText() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_obd_trouble_port_search(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击obd统计的里程报表 self.obd_form_page.click_obd_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 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 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 TestCase701FormExportSportOverviewExport(unittest.TestCase): # 测试 报表导出 运动总览导出 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.assert_text = AssertText() self.form_page = FormPage(self.driver, self.base_url) self.page = Page(self.driver, self.base_url) self.form_export_page = FormExportPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() # 登录之后点击控制台,然后点击设置 current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_sport_overview_export(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 断言 self.assertEqual( self.assert_text.statistical_form_sport_overview_form(), self.statistical_form_page.actual_text_after_click_sport_overview( )) # 切换到运动总览的frame self.statistical_form_page.switch_to_sport_overview_form_frame() # 点击搜索按钮 self.form_export_page.click_search_button_in_sport_overview() # 让其展示所有列 # 点击展示列 self.form_page.click_display_line_button_sport_overview() # 获取有多少个展示列 display_line_number = self.form_page.get_display_line_number_sport_overview( ) for n in range(display_line_number): # 获取每一个展示列是否被勾选 display_style = self.form_page.get_per_display_style_sport_overview( n) if display_style == False: self.form_page.click_per_display_input_button(n) self.form_page.click_display_line_button_sport_overview() # 获取页面中的数据 data_total_number = self.form_export_page.get_data_total_number_in_sport_overview( ) web_data = [] for i in range(data_total_number): web_data.append(self.form_export_page.get_per_line_data(i)) print('web', web_data) l_data = [[ '序号', '所属账号', '客户名称', '设备名称', 'imei', '型号', '设备分组', '总里程(KM)', '超速(次)', '停留(次)', '司机名称', '电话', '车牌号', '身份证号', '车架号', '电动机/发动机号' ]] for m in web_data: l_data.append([ m['序号'], m['所属账号'], m['客户名称'], m['设备名称'], m['IMEI'], m['型号'], m['设备分组'], m['总里程(KM)'], m['超速(次)'], m['停留(次)'], m['司机名称'], m['电话'], m['车牌号'], m['身份证号'], m['车架号'], m['电动机/发动机号'] ]) print(l_data) write_excel('add', l_data) self.driver.default_frame()
class TestCase106GlobSearchAppDetailOperation(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages( self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.assert_text = AssertText() self.driver.wait(1) self.connect_sql = ConnectSql() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_global_search_app_detail_operation(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in_jimitest() self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.select_search_app_user() # 点击搜索 # self.global_dev_search_page.click_search_button() # 点击详情 self.global_dev_search_page.click_detail_in_app_user_search() # 点击控制台 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_console_button_in_app_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual(self.base_url + '/console', self.driver.get_current_url()) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 重置密码 # 点击重置密码 self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.click_reset_password_button_in_app_detail() # 点击关闭 self.global_dev_search_page.close_button() # 点击重置密码 self.global_dev_search_page.click_reset_password_button_in_app_detail() # 点击关闭 self.global_dev_search_page.cancel_button() # 点击重置密码 self.global_dev_search_page.click_reset_password_button_in_app_detail() # 点击关闭 self.global_dev_search_page.ensure_button() get_text = self.global_dev_search_page.get_text_after_succeed() self.assertEqual(self.assert_text.account_center_page_operation_done(), get_text) # 获取app用户详情页面绑定的设备信息 get_dev_name = self.global_dev_search_page.get_dev_name_in_app_detail() get_dev_imei = self.global_dev_search_page.get_dev_imei_in_app_detail() get_dev_type = self.global_dev_search_page.get_dev_type_in_app_detail() get_dev_active_time = self.global_dev_search_page.get_dev_active_time_in_app_detail( ) get_dev_expire_time = self.global_dev_search_page.get_dev_expire_time_in_app_detail( ) get_dev_bound_user = self.global_dev_search_page.get_dev_bound_user_in_app_detail( ) self.driver.default_frame() # 点击设备的操作 # 详情 self.global_dev_search_page.click_dev_operation_detail_in_app_detail() # 获取点击设备详情后页面的数据 dev_name = self.global_dev_search_page.get_dev_name_in_dev_detail() self.assertEqual(get_dev_name, dev_name) dev_imei = self.global_dev_search_page.get_dev_imei_in_dev_detail() self.assertEqual(get_dev_imei, dev_imei) dev_type = self.global_dev_search_page.get_dev_type_in_dev_detail() self.assertEqual(get_dev_type, dev_type) dev_active_time = self.global_dev_search_page.get_dev_active_time_in_dev_detail( ) self.assertEqual(get_dev_active_time, dev_active_time) dev_expire_time = self.global_dev_search_page.get_dev_expire_time_in_dev_detail( ) self.assertEqual(get_dev_expire_time, dev_expire_time) dev_bound_user = self.global_dev_search_page.get_dev_bound_user_in_dev_detail( ) self.assertEqual(get_dev_bound_user, dev_bound_user) # 点击设备的轨迹回放、实时跟踪、查看告警 self.global_dev_search_page.return_app_user_detail_list() # 点击轨迹回放 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_track_replay_button_in_app_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/trackreplay/locus?imei=%s' % dev_imei, self.driver.get_current_url()) # 断言点击轨迹回放后的设备名称和 imei get_imei_in_replay = self.global_dev_search_page.get_imei_in_replay( ) self.assertEqual(dev_imei, get_imei_in_replay) get_dev_name_in_replay = self.global_dev_search_page.get_dev_name_in_replay( ) self.assertEqual(dev_name, get_dev_name_in_replay) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击实时跟踪 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_track_preset_button_in_app_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/trackpreset/tracking/%s?isTracking=0' % dev_imei, self.driver.get_current_url()) # 断言点击轨迹回放后的设备名称和 imei get_imei_in_track_preset = self.global_dev_search_page.get_imei_in_track_preset( ) self.assertEqual(dev_imei, get_imei_in_track_preset) get_dev_name_in_track_preset = self.global_dev_search_page.get_dev_name_in_track_preset( ) self.assertIn(dev_name, get_dev_name_in_track_preset) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击查看告警 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_alarm_detail_button_in_app_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/deviceReport/statisticalReport', self.driver.get_current_url()) # 断言 text = self.global_dev_search_page.get_text_after_click_alarm_detail( ) self.assertEqual( self.assert_text.account_center_page_alarm_details_text(), text) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle)
class TestCase114UserSearchUserRelation(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_user_search_user_relation(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in() self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() # 选择用户搜索 # self.global_dev_search_page.click_dev_search() self.global_dev_search_page.click_user_search_buttons() user_name = self.global_dev_search_page.get_user_name_in_user_search() user_type = self.global_dev_search_page.get_user_type_in_user_search() user_account = self.global_dev_search_page.get_user_account_in_user_search( ) self.global_dev_search_page.click_detail_in_user_search() # 验证用户信息 self.global_dev_search_page.swith_to_search_frame() user_name_in_user_detail = self.global_account_search_page.get_user_name_in_user_detail( ) self.assertEqual(user_name, user_name_in_user_detail) user_type_in_user_detail = self.global_account_search_page.get_user_type_in_user_detail( ) self.assertEqual(user_type, " " + user_type_in_user_detail) user_account_in_user_detail = self.global_account_search_page.get_user_account_in_user_detail( ) self.assertEqual(user_account, user_account_in_user_detail) dev_number_in_user_detail = self.global_account_search_page.get_dev_number_in_user_detail( ) # 分别点击控制台、重置密码、查看 # 点击查看 current_handle = self.driver.get_current_window_handle() self.global_account_search_page.click_look_button_in_user_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.driver.base_url + '/device/toDeviceManage' self.assertEqual(self.driver.get_current_url(), expect_url) get_total_dev_number = self.global_account_search_page.get_dev_total_number_in_dev_manage_page( ) self.assertEqual(dev_number_in_user_detail, str(get_total_dev_number)) self.driver.close_current_page() self.driver.switch_to_window(current_handle) # 点控制台 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.swith_to_search_frame() self.global_account_search_page.click_console_button_in_user_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.driver.base_url + '/console' self.assertEqual(self.driver.get_current_url(), expect_url) self.driver.close_current_page() self.driver.switch_to_window(current_handle) # 点击重置密码 self.global_dev_search_page.swith_to_search_frame() self.global_account_search_page.click_reset_password_button_in_user_detail( ) # 点击关闭 self.global_account_search_page.click_close_button() # 点击重置密码 self.global_account_search_page.click_reset_password_button_in_user_detail( ) # 点击取消 self.global_account_search_page.click_cancel_button() # 点击重置密码 self.global_account_search_page.click_reset_password_button_in_user_detail( ) # 点击确定 self.global_account_search_page.click_ensuer_button() sleep(4) self.driver.default_frame() self.global_account_search_page.click_close_button()
class TestCase105GlobSearchAppUserOperation(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages( self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.driver.wait(1) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_global_search_app_user_operation(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in_jimitest() self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.select_search_app_user() # 点击搜索 # self.global_dev_search_page.click_search_button() # 点击控制台 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_console_button() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual(self.base_url + '/console', self.driver.get_current_url()) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 获取第一个app用户的详情 self.global_dev_search_page.swith_to_search_frame() app_user_name = self.global_dev_search_page.get_app_user_name_in_app_search( ) app_user_type = self.global_dev_search_page.get_app_user_type_in_app_search( ) app_user_account = self.global_dev_search_page.get_app_user_account_in_app_search( ) app_user_phone = self.global_dev_search_page.get_app_user_phone_in_app_search( ) app_user_dev_number = self.global_dev_search_page.get_app_user_dev_number_in_app_search( ) # 点击详情 self.global_dev_search_page.click_detail_in_app_user_search() # 获取app用户详情页面的用户数据 app_name_in_detail = self.global_dev_search_page.get_app_name_in_detail( ) self.assertEqual(app_user_name, app_name_in_detail) app_type_in_detail = self.global_dev_search_page.get_app_type_in_detail( ) self.assertEqual(app_user_type, app_type_in_detail) app_account_in_detail = self.global_dev_search_page.get_app_account_in_detail( ) self.assertEqual(app_user_account, app_account_in_detail) app_phone_in_detail = self.global_dev_search_page.get_app_phone_in_detail( ) self.assertEqual(app_user_phone, app_phone_in_detail) app_dev_number_in_detail = self.global_dev_search_page.get_app_dev_number_in_detail( ) self.assertEqual(app_user_dev_number, app_dev_number_in_detail) app_dev_number_in_detail_by_list = self.global_dev_search_page.get_app_dev_number_in_detail_by_list( ) self.assertEqual(str(app_dev_number_in_detail_by_list), app_dev_number_in_detail) self.assertEqual(str(app_dev_number_in_detail_by_list), app_user_dev_number) # 重置密码 self.global_dev_search_page.return_app_user_list() # 点击重置密码 self.global_dev_search_page.click_reset_password_button() # 点击关闭 self.global_dev_search_page.close_button() # 点击重置密码 self.global_dev_search_page.click_reset_password_button() # 点击关闭 self.global_dev_search_page.cancel_button() # 点击重置密码 self.global_dev_search_page.click_reset_password_button() # 点击关闭 self.global_dev_search_page.ensure_button() get_text = self.global_dev_search_page.get_text_after_succeed() # self.assertEqual(self.assert_text.account_center_page_operation_done(), get_text) self.driver.default_frame()
class TestCase130DevSearchDetailUserRelation(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_user_relation(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in() self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() self.global_dev_search_page.click_dev_searchs() 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( ) get_imei_in_dev_advanced_detail_page = self.global_dev_search_page.get_imei_after_click_detail_button_in_dev_advanced( ) # 点击轨迹回放 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_tracker_play_button_in_dev_advanced_page( ) all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.base_url + '/trackreplay/locus?imei=%s' % get_imei_in_dev_advanced_detail_page self.assertEqual(expect_url, self.driver.get_current_url()) # 获取轨迹回放页面的imei get_imei_in_tracker_play = self.global_dev_search_page.get_imei_after_click_tracker_play_in_tracker_play( ) self.assertIn(get_imei_in_dev_advanced_detail_page, get_imei_in_tracker_play) self.driver.close_current_page() self.driver.switch_to_window(current_handle) # 点击实时跟踪(离线设备按钮灰暗显示不可选) current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.click_track_preset_button_in_dev_advanced_page( ) all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.base_url + '/trackpreset/tracking/%s?isTracking=0' % get_imei_in_dev_advanced_detail_page get_imei_in_track_preset = self.global_dev_search_page.get_imei_in_track_preset( ) self.assertEqual(expect_url, self.driver.get_current_url()) # self.assertEqual(get_imei_in_dev_advanced_detail_page, get_imei_in_track_preset) self.driver.close_current_page() self.driver.switch_to_window(current_handle) # 点击查看告警 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.click_alarm_detail_button_in_dev_advanced_page( ) all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.base_url + '/deviceReport/statisticalReport' self.assertEqual(expect_url, self.driver.get_current_url()) self.driver.close_current_page() self.driver.switch_to_window(current_handle) # 点击查看位置 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.click_look_loacltion_button_in_dev_advanced_page( ) all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.base_url + '/console' self.assertEqual(expect_url, self.driver.get_current_url()) self.driver.close_current_page() self.driver.switch_to_window(current_handle) # 点击控制台 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.click_console_button_in_dev_advanced() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.base_url + '/console' self.assertEqual(self.driver.get_current_url(), expect_url) self.driver.close_current_page() self.driver.switch_to_window(current_handle) # 点击查看 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.swith_to_search_frame() get_user_dev_number = self.global_dev_search_page.get_user_dev_number_in_dev_advanced( ) self.global_dev_search_page.click_look_button_in_dev_advanced() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.base_url + '/device/toDeviceManage' self.assertEqual(self.driver.get_current_url(), expect_url) get_dev_total_in_dev_page = self.global_dev_search_page.get_user_dev_total_number_in_dev_page( ) self.assertEqual(get_user_dev_number, str(get_dev_total_in_dev_page)) self.driver.close_current_page() self.driver.switch_to_window(current_handle)
class TestCase110GlobSearchDevDetail(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages( self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.driver.wait(1) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_global_search_dev_detail(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_dev_searchs() # self.global_dev_search_page.click_dev_search_button() self.global_dev_search_page.click_detail_in_dev_search() dev_name_in_detail = self.global_dev_search_page.get_dev_name_in_detail( ) dev_imei_in_detail = self.global_dev_search_page.get_dev_imei_in_detail( ) dev_type_in_detail = self.global_dev_search_page.get_dev_type_in_detail( ) dev_active_time_in_detail = self.global_dev_search_page.get_dev_active_time_in_detail( ) dev_expire_time_in_detail = self.global_dev_search_page.get_dev_expire_time_in_detail( ) # 点击轨迹回放 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_track_play_button_in_dev_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/trackreplay/locus?imei=%s' % dev_imei_in_detail, self.driver.get_current_url()) # 获取页面的抬头的文字 text = self.global_dev_search_page.get_text_after_click_track_play( ) self.assertEqual(self.assert_text.dev_page_track_replay_text(), text) # 获取页面抬头的设备名称和imei dev_name_and_dev_imei = self.global_dev_search_page.get_dev_name_and_imei_after_click_track_play( ) self.assertIn(dev_imei_in_detail, dev_name_and_dev_imei) self.assertIn(dev_name_in_detail, dev_name_and_dev_imei) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击实时跟踪 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_track_preset_button_in_dev_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/trackpreset/tracking/%s?isTracking=0' % dev_imei_in_detail, self.driver.get_current_url()) # 获取页面的抬头的文字 text = self.global_dev_search_page.get_text_after_click_track_preset( ) self.assertIn(self.assert_text.dev_page_track_preset_text(), text) # 获取页面抬头的设备名称和imei dev_name_in_track_preset = self.global_dev_search_page.get_dev_name_in_track_preset( ) dev_imei_in_track_preset = self.global_dev_search_page.get_imei_in_track_preset( ) self.assertEqual(dev_imei_in_detail, dev_imei_in_track_preset) self.assertEqual(dev_name_in_detail, dev_name_in_track_preset) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击查看告警 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_look_alarm_button_in_dev_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/deviceReport/statisticalReport', self.driver.get_current_url()) # 获取页面的抬头的文字 text = self.global_dev_search_page.get_text_after_click_alarm_detail( ) self.assertEqual( self.assert_text.account_center_page_alarm_details_text(), text) # 获取页面抬头的设备名称和ime self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击查看位置 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_look_place_button_in_dev_detail() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual(self.base_url + '/console', self.driver.get_current_url()) # 获取页面的抬头的文字 text = self.global_dev_search_page.get_text_after_click_look_place( ) # self.assertEqual(dev_imei_in_detail, text) # get_dev_name = self.global_dev_search_page.get_type_after_click_look_place() # self.assertEqual(dev_name_in_detail, get_dev_name) # 获取页面抬头的设备名称和ime self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击设备信息 sleep(1) self.global_dev_search_page.click_dev_info_button_in_dev_detail() sleep(2) # 验证设备的信息 dev_imei_in_dev_info = self.global_dev_search_page.get_dev_imei_in_dev_info( ) self.assertEqual(dev_imei_in_detail, dev_imei_in_dev_info) dev_type_in_dev_info = self.global_dev_search_page.get_dev_type_in_dev_info( ) self.assertEqual(dev_type_in_detail, dev_type_in_dev_info) dev_name_in_dev_info = self.global_dev_search_page.get_dev_name_in_dev_info( ) self.assertEqual(dev_name_in_detail, dev_name_in_dev_info) # 点击设备转移 self.global_dev_search_page.click_dev_tran_button_in_dev_detail() # 循环点击右侧客户树 for n in range(5): self.global_dev_search_page.click_customer(n) get_customer_name_in_header = self.global_dev_search_page.get_customer_name_in_header( ) get_click_customer_name = self.global_dev_search_page.get_click_customer_name( n) self.assertEqual(get_customer_name_in_header, get_click_customer_name) # 搜索无数据的用户 self.global_dev_search_page.search_user_in_dev_detail('无数据') text = self.global_dev_search_page.get_text_after_search_user_in_dev_detail( ) self.assertIn(self.assert_text.account_center_page_no_data_text(), text) # 添加已经添加的设备 self.global_dev_search_page.add_dev_to_trans(dev_imei_in_detail) get_file_imei = self.global_dev_search_page.get_file_imei_after_add_imei( ) self.assertEqual(dev_imei_in_detail, get_file_imei) get_file_reason = self.global_dev_search_page.get_file_reason_add_imei( ) self.assertEqual(self.assert_text.dev_page_repetition_text(), get_file_reason) get_file_status = self.global_dev_search_page.get_file_status() self.assertEqual(self.assert_text.dev_page_fail_text(), get_file_status) # 点击关闭失败信息 self.global_dev_search_page.close_file_info() # 添加不存在的 self.global_dev_search_page.add_dev_to_trans(dev_imei_in_detail + '12345') get_file_imei = self.global_dev_search_page.get_file_imei_after_add_imei( ) self.assertEqual(dev_imei_in_detail + '12345', get_file_imei) get_file_reason = self.global_dev_search_page.get_file_reason_add_imei( ) self.assertEqual(self.assert_text.dev_page_inexistence_text(), get_file_reason) get_file_status = self.global_dev_search_page.get_file_status() self.assertEqual(self.assert_text.dev_page_fail_text(), get_file_status) self.global_dev_search_page.close_file_info() # 点击删除设备 sleep(2) self.global_dev_search_page.click_detele_dev_in_dev_tran() # 点击转移 self.global_dev_search_page.click_trans_dev_button() # 获取错误提示语 get_text = self.global_dev_search_page.get_text_after_click_trans_dev() self.assertEqual(self.assert_text.glob_search_please_add_dev_text(), get_text) # 点击重置 self.global_dev_search_page.click_reset_button() # 点击转移 self.global_dev_search_page.click_trans_dev_button() # 获取错误提示语 get_text = self.global_dev_search_page.get_text_after_click_trans_dev() self.assertEqual( self.assert_text.glob_search_please_add_account_text(), get_text) # 点击设备指令 self.global_dev_search_page.click_dev_command_button() # 获取指令页面的设备名称和设备imei dev_imei_in_command = self.global_dev_search_page.get_dev_imei_in_command( ) dev_name_in_command = self.global_dev_search_page.get_dev_name_in_command( ) self.assertEqual(dev_imei_in_detail, dev_imei_in_command) self.assertEqual(dev_name_in_detail, dev_name_in_command)
class TestCase512FormSearchClockInSearch(unittest.TestCase): # 测试 报表搜索 打卡报表搜索 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage(self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.obd_form_page = ObdFormPage(self.driver, self.base_url) self.clock_in_page = ClockInPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.assert_text = AssertText() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page() sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_clock_in_search(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual(expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击打卡记录 self.clock_in_page.click_clock_in_form_button() # 切换到打开记录的frame里面 self.clock_in_page.switch_to_click_in_form_frame() csv_file = self.statistical_form_page_read_csv.read_csv('clock_in_form_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue data = { 'date_type': row[0], 'begin_time': row[1], 'end_time': row[2], 'dev_type': row[3], 'dev_imei': row[4], 'clock_in_type': row[5] } self.clock_in_page.add_data_to_search_click_in_form(data) get_sql_data = self.clock_in_page.get_sql_data_in_clock_in_form(data) print(get_sql_data) web_list = [] # 获取查询的页数 number = self.clock_in_page.get_page_number_after_search_clock_in_form() if number == 0: text = self.clock_in_page.get_no_data_text_in_clock_form() self.assertIn(self.assert_text.account_center_page_no_data_text(), text) elif number == 1: # 获取每一页的条数 per_page_number = self.clock_in_page.get_per_page_number_in_clock_in_form() for n in range(per_page_number): web_list.append({ 'imei': self.clock_in_page.get_imei_in_clock_in_form(n), 'time': self.clock_in_page.get_time_in_clock_form(n), 'on_off': self.clock_in_page.get_on_off_in_clock_form(n) }) print(web_list) self.assertEqual(get_sql_data, web_list) else: # 循环点击每一页 for n in range(number): self.clock_in_page.click_per_page(n) per_page_number = self.clock_in_page.get_per_page_number_in_clock_in_form() for n in range(per_page_number): web_list.append({ 'imei': self.clock_in_page.get_imei_in_clock_in_form(n), 'time': self.clock_in_page.get_time_in_clock_form(n), 'on_off': self.clock_in_page.get_on_off_in_clock_form(n) }) print(web_list) self.assertEqual(get_sql_data, web_list) self.driver.default_frame()
class TestCase96DevManageCheckAccountInfo(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.dev_manage_page = DevManagePages(self.driver, self.base_url) self.driver.set_window_max() self.log_in_base = LogInBase(self.driver, self.base_url) self.dev_manage_page_read_csv = DevManagePageReadCsv() self.connect_sql = ConnectSql() self.assert_text = AssertText() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_dev_manage_check_account_info(self): # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() # 点击进入设备管理 self.dev_manage_page.enter_dev_manage() # 循环点击 for n in range(5): self.dev_manage_page.click_per_account_in_dev_manage_page(n) # 获取点击后的用户账号 user_account = self.dev_manage_page.get_per_user_account_in_dev_manage_page( ) # 连接数据库,获取该账号的信息 get_account_info = self.dev_manage_page.get_account_info( user_account) # 断言用户信息 get_user_nickname_in_page = self.dev_manage_page.get_user_nickname_in_page( ) get_user_type_in_page = self.dev_manage_page.get_user_type_in_page( ) get_user_phone_in_page = self.dev_manage_page.get_user_phone_in_page( ) self.assertEqual(get_account_info['nickname'], get_user_nickname_in_page) if get_account_info['phone'] == None: self.assertEqual('', get_user_phone_in_page) else: self.assertEqual(get_account_info['phone'], get_user_phone_in_page) type = self.assert_text.log_in_page_account_type( get_account_info['type']) self.assertEqual(get_user_type_in_page, type) get_account_nickname_in_cust_tree = self.dev_manage_page.get_account_nickname_in_cust_tree( n) self.assertEqual(get_user_nickname_in_page, get_account_nickname_in_cust_tree) # 点击监控用户 current_handle = self.driver.get_current_window_handle() self.dev_manage_page.click_control_account_button() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) expect_url = self.driver.base_url + '/index' self.assertEqual(self.driver.get_current_url(), expect_url) self.driver.close_current_page() self.driver.switch_to_window(current_handle) # 点击编辑用户 edit_style = self.dev_manage_page.get_edit_style_in_dev_page() if edit_style == 'display: inline;': self.dev_manage_page.click_edit_account_button() self.dev_manage_page.click_close_edit_button() self.dev_manage_page.click_edit_account_button() self.dev_manage_page.switch_to_dev_edit_frame() # 验证打开的信息是否正确 # 分别获取上级客户、客户类型、客户名称、登录账号、电话 up_user = self.dev_manage_page.get_up_user_edit_user_in_dev_page( ) user_type = self.dev_manage_page.get_user_type_edit_user_in_dev_page( ) user_name = self.dev_manage_page.get_user_name_edit_user_in_dev_page( ) account = self.dev_manage_page.get_user_account_edit_in_dev_page( ) user_phone = self.dev_manage_page.get_user_phone_edit_in_dev_page( ) # 断言 self.assertEqual(type, user_type) self.assertEqual(user_name, get_user_nickname_in_page) self.assertEqual(account, user_account) if get_account_info['phone'] == None: self.assertEqual(user_phone, '') else: # self.assertEqual(user_phone, get_account_info['phone']) pass self.driver.default_frame() self.dev_manage_page.click_close_edit_button()
class TestCase501FormSearchSportOverviewSearch(unittest.TestCase): # 测试 报表 运动总览搜索功能 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.statistical_form_page3 = StatisticFormPage3( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.assert_text = AssertText() # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() 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_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.assertEqual( self.assert_text.statistical_form_sport_overview_form(), self.statistical_form_page.actual_text_after_click_sport_overview( )) # 读数据 csv_file = self.statistical_form_page_read_csv.read_csv( 'sport_statistical_sport_overview_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'search_user': row[0], 'choose_date': row[1], 'begin_time': row[2], 'end_time': row[3] } self.statistical_form_page.add_data_to_search_sport_overview( search_data) # 处理搜索出来的数据 web_total_number = self.statistical_form_page3.get_web_search_total_number_sport_overview( ) data_web = [] for n in range(web_total_number): data_web.append({ 'imei': self.statistical_form_page3.get_imei_in_sport_overview(n), 'mileage': self.statistical_form_page3.get_mileage_in_sport_overview( n), 'overSpeedTimes': self.statistical_form_page3. get_over_speed_times_in_sport_overview(n), 'stopTimes': self.statistical_form_page3. get_stop_times_in_sport_overview(n) }) print('web', data_web) # 连接数据库 all_dev = self.search_sql.search_current_account_equipment( search_data['search_user']) imeis = self.statistical_form_page3.change_dev_imei_format(all_dev) print(imeis) begin_time = self.statistical_form_page3.get_sport_overview_form_begin_time( ) end_time = self.statistical_form_page3.get_sport_overview_form_end_time( ) get_current_userid = self.search_sql.search_current_account_user_id( search_data['search_user']) # 连接接口 request_url = request_base_url() request_params = { '_method_': 'getRunSummary', 'imeis': imeis, 'startTime': begin_time, 'endTime': end_time, 'userIds': get_current_userid } res = requests.post(request_url, data=request_params) sleep(30) response = res.json() res_data = response['data'] for data in res_data: # if data['stopTimes'] != 0 or data['mileage'] != 0 or data['overSpeedTimes'] != 0: try: del data['atDay'] except: pass print('res', res_data) self.assertEqual(len(data_web), len(res_data)) '''for datas in data_web: self.assertIn(datas, res_data) for datas2 in res_data: self.assertIn(datas2, data_web)''' self.assertEqual(data_web, res_data) self.driver.default_frame() csv_file.close()
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 TestCase79DevManageDevOperationActiveAndStart(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.account_center_page_navi_bar = AccountCenterNaviBarPages( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.dev_manage_page_read_csv = DevManagePageReadCsv() self.connect_sql = ConnectSql() self.search_sql = SearchSql() self.assert_text = AssertText() self.driver.set_window_max() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_dev_manage_dev_operation_active_and_start(self): '''测试设备管理-设备搜索-by imei+设备名称+设备型号+车牌号+车架号+SIM''' # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() self.dev_manage_page.enter_dev_manage() # 选择已激活和开机的设备 self.dev_manage_page.choose_dev_active_and_statr() self.dev_manage_page.click_ensure() imei = self.dev_manage_page.get_imei_number() self.dev_manage_page.click_edit_button() self.dev_manage_page.click_close_edit_button() self.dev_manage_page.click_edit_button() csv_file = self.dev_manage_page_read_csv.read_csv( 'dev_operation_data.csv') csv_data = csv.reader(csv_file) for row in csv_data: self.data = { 'dev_name': row[0], 'sim': row[1], 'mark': row[2], 'd_name': row[3], 'd_phone': row[4], 'plate_numbers': row[5], 'iccid': row[6], 'sn': row[7], 'vin': row[8], 'engine_number': row[9], 'install_time': row[10], 'install_adress': row[11], 'install_comp': row[12], 'install_preson': row[13] } self.dev_manage_page.add_data_to_edit_dev_detila(self.data) # 验证是否修改成功 sleep(3) text = self.dev_manage_page.get_dev_name() self.assertEqual(self.data['dev_name'], text) csv_file.close() # 点击查看位置 current_handle = self.driver.get_current_window_handle() self.dev_manage_page.click_look_place_button() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) sleep(2) expect_url = self.base_url + "/console" self.assertEqual(expect_url, self.driver.get_current_url()) # dev_name = self.dev_manage_page.get_dev_name_after_click_console() # self.assertEqual(self.data['dev_name'], dev_name) self.driver.close_current_page() self.driver.switch_to_window(current_handle) sleep(2) # 点击轨迹回放 self.dev_manage_page.click_track_playback_button() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) sleep(2) expect_url = self.base_url + "/trackreplay/locus?imei=%s" % imei self.assertEqual(expect_url, self.driver.get_current_url()) text = self.dev_manage_page.click_track_playback_get_text() self.assertEqual(self.assert_text.dev_page_track_replay_text(), text) self.driver.close_current_page() self.driver.switch_to_window(current_handle) sleep(2) # 点行车记录 self.dev_manage_page.click_driving_recond_button() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) sleep(2) expect_url = self.base_url + "/drivingrecord/driving?imei=%s" % imei self.assertEqual(expect_url, self.driver.get_current_url()) text = self.dev_manage_page.click_driving_recond_get_text() self.assertEqual( self.assert_text.dev_page_driving_record_text(), text) self.driver.close_current_page() self.driver.switch_to_window(current_handle) sleep(2) # 点街景 self.dev_manage_page.click_street_scape_button() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) sleep(2) expect_url = self.base_url + "/trackpreset/tracking/%s?isTracking=1" % imei self.assertEqual(expect_url, self.driver.get_current_url()) text = self.dev_manage_page.click_street_scape_get_text() self.assertIn(self.assert_text.dev_page_track_preset_text(), text) self.driver.close_current_page() self.driver.switch_to_window(current_handle) sleep(2) # 点查看告警 self.dev_manage_page.click_look_alarm_button() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) sleep(2) expect_url = self.base_url + "/deviceReport/statisticalReport" self.assertEqual(expect_url, self.driver.get_current_url()) text = self.dev_manage_page.click_look_alarm_get_text() self.assertEqual( self.assert_text.account_center_page_alarm_details_text(), text) self.driver.close_current_page() self.driver.switch_to_window(current_handle) sleep(2)
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 TestCase109GlobSearchDevOperation(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages( self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.driver.wait(1) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_global_search_dev_operation(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in_jimitest() self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() # 选择用户搜索 self.global_dev_search_page.click_dev_searchs() # self.global_dev_search_page.click_search_buttons() # 获取设备信息 dev_name = self.global_dev_search_page.get_dev_name_in_dev_search() dev_imei = self.global_dev_search_page.get_dev_imei_in_dev_search() dev_type = self.global_dev_search_page.get_dev_type_in_dev_search() dev_active_time = self.global_dev_search_page.get_dev_active_time_in_dev_search( ) dev_expire_time = self.global_dev_search_page.get_dev_expire_time_in_dev_search( ) # 点击轨迹回放 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_track_play_button_in_dev_search() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/trackreplay/locus?imei=%s' % dev_imei, self.driver.get_current_url()) # 获取页面的抬头的文字 text = self.global_dev_search_page.get_text_after_click_track_play( ) self.assertEqual(self.assert_text.dev_page_track_replay_text(), text) # 获取页面抬头的设备名称和imei dev_name_and_dev_imei = self.global_dev_search_page.get_dev_name_and_imei_after_click_track_play( ) self.assertIn(dev_name, dev_name_and_dev_imei) self.assertIn(dev_imei, dev_name_and_dev_imei) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击实时跟踪 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_track_preset_button_in_dev_search() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/trackpreset/tracking/%s?isTracking=0' % dev_imei, self.driver.get_current_url()) # 获取页面的抬头的文字 text = self.global_dev_search_page.get_text_after_click_track_preset( ) self.assertIn(self.assert_text.dev_page_track_preset_text(), text) # 获取页面抬头的设备名称和imei dev_name_in_track_preset = self.global_dev_search_page.get_dev_name_in_track_preset( ) dev_imei_in_track_preset = self.global_dev_search_page.get_imei_in_track_preset( ) self.assertEqual(dev_imei, dev_imei_in_track_preset) self.assertEqual(dev_name, dev_name_in_track_preset) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击查看告警 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_look_alarm_button_in_dev_search() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual( self.base_url + '/deviceReport/statisticalReport', self.driver.get_current_url()) # 获取页面的抬头的文字 text = self.global_dev_search_page.get_text_after_click_alarm_detail( ) self.assertEqual( self.assert_text.account_center_page_alarm_details_text(), text) # 获取页面抬头的设备名称和ime self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击详情 self.global_dev_search_page.click_detail_in_dev_search() # 获取设备的名称 imei、设备类型、激活时间、平台到期时间 dev_name_in_detail = self.global_dev_search_page.get_dev_name_in_detail( ) self.assertEqual(dev_name, dev_name_in_detail) dev_imei_in_detail = self.global_dev_search_page.get_dev_imei_in_detail( ) self.assertEqual(dev_imei, dev_imei_in_detail) dev_type_in_detail = self.global_dev_search_page.get_dev_type_in_detail( ) self.assertEqual(dev_type, dev_type_in_detail) dev_active_time_in_detail = self.global_dev_search_page.get_dev_active_time_in_detail( ) self.assertEqual(dev_active_time, dev_active_time_in_detail) dev_expire_time_in_detail = self.global_dev_search_page.get_dev_expire_time_in_detail( ) self.assertEqual(dev_expire_time, dev_expire_time_in_detail)
class TestCase511FormSearchObdTroubleSearch(unittest.TestCase): # 测试 报表搜索 obd报表 故障报表搜索 def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.search_sql = SearchSql(self.driver, self.base_url) self.obd_form_page = ObdFormPage(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.assert_text = AssertText() current_handle = self.driver.get_current_window_handle() self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) self.base_page.change_windows_handle(current_handle) def tearDown(self): self.driver.close_window() # 退出浏览器 self.driver.quit_browser() def test_case_obd_trouble_form(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击obd统计的里程报表 self.obd_form_page.click_obd_trouble_form_button() # 切换到odb里程统计的frame里面 self.obd_form_page.switch_to_obd_trouble_form_frame() csv_file = self.statistical_form_page_read_csv.read_csv( 'obd_milage_report_search_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'user_name': row[0], 'choose_date': row[2], 'begin_time': row[3], 'end_time': row[4] } self.obd_form_page.add_data_to_search_obd_trouble_form(search_data) # 获取页面上设备的信息 dev_name = self.obd_form_page.get_dev_name_in_obd_vehicle_condition_form( ) dev_total_mile = self.obd_form_page.get_dev_total_mile_obd_vehicle_condition_form( ) dev_avg_oil = self.obd_form_page.get_dev_avg_oil_obd_vehicle_condition_form( ) dev_avg_speed = self.obd_form_page.get_avg_oil_obd_vehicle_condition_form( ) dev_total_oil = self.obd_form_page.get_dev_total_oil_obd_vehicle_condition_form( ) # 查询设备的名称 sql_check_dev_name = self.obd_form_page.get_dev_name_in_sql( self.obd_form_page.search_imei()) # 查询数据库的条数 get_sql_total_number = self.obd_form_page.get_sql_total_number_in_obd_trouble_form( ) get_web_total_number = self.obd_form_page.get_web_total_number_in_vehicel_condition_form( ) self.assertEqual(len(get_sql_total_number), get_web_total_number[1]) # 获取查询出来的 页数 if get_web_total_number[0] != 0 and get_web_total_number[0] != 1: self.obd_form_page.click_first_page() total_page = self.obd_form_page.get_obd_list_total_page_number() if total_page == 0: self.assertEqual('0', dev_total_mile) self.assertEqual('0', dev_avg_oil) self.assertEqual('0', dev_avg_speed) self.assertEqual('0', dev_total_oil) elif total_page == 1: # 断言平均油耗 # 查询设备的名称 self.assertEqual(dev_name, sql_check_dev_name) count_avg_oil = '%.2f' % ( (float(dev_total_oil) / float(dev_total_mile)) * 100) self.assertEqual(count_avg_oil, dev_avg_oil) # 获取页面上的里程和耗油 mile_and_oil_list = [] per_page_total_number = self.obd_form_page.get_per_page_total_number( ) for n in range(per_page_total_number): mile_and_oil_list.append({ 'begin_time': self.obd_form_page.get_begin_time_in_trouble_form(n), 'lot': float(self.obd_form_page.get_lot_in_trouble_form(n)), 'lat': float(self.obd_form_page.get_lat_in_trouble_form(n)), 'error_code': self.obd_form_page.get_error_code_in_trouble_form(n) }) '''total_mile = 0 total_oil = 0 for data in mile_and_oil_list: total_mile += data['mile'] total_oil += data['oil'] self.assertAlmostEqual(float(dev_total_mile), total_mile) self.assertAlmostEqual(float(dev_total_oil), total_oil)''' self.assertEqual(get_sql_total_number, mile_and_oil_list) else: # 断言平均油耗 self.assertEqual(dev_name, sql_check_dev_name) count_avg_oil = '%.2f' % ( (float(dev_total_oil) / float(dev_total_mile)) * 100) self.assertEqual(count_avg_oil, dev_avg_oil) mile_and_oil_list = [] for i in range(total_page): # 循环点击每一页 self.obd_form_page.click_per_page(i) # 获取页面上的里程和耗油 per_page_total_number = self.obd_form_page.get_per_page_total_number( ) for n in range(per_page_total_number): mile_and_oil_list.append({ 'begin_time': self.obd_form_page.get_begin_time_in_trouble_form( n), 'lot': float( self.obd_form_page.get_lot_in_trouble_form(n)), 'lat': float( self.obd_form_page.get_lat_in_trouble_form(n)), 'error_code': self.obd_form_page.get_error_code_in_trouble_form( n) }) '''total_mile = 0 total_oil = 0 for data in mile_and_oil_list: total_mile += data['mile'] total_oil += data['oil'] self.assertAlmostEqual(float(dev_total_mile), total_mile) self.assertAlmostEqual(float(dev_total_oil), total_oil)''' self.assertEqual(get_sql_total_number, mile_and_oil_list) csv_file.close() self.driver.default_frame()
class TestCase107GlobSearchUserOperation(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage(self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages(self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage(self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.assert_text = AssertText() self.driver.wait(1) self.connect_sql = ConnectSql() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_global_search_user_operation(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in() self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() # 选择用户搜索 self.global_dev_search_page.click_account_search() # self.global_dev_search_page.click_search_buttons() # 获取客户名称、客户类型、账号、电话、设备数量 user_name = self.global_dev_search_page.get_user_name_in_user_search() user_type = self.global_dev_search_page.get_user_type_in_user_search() user_account = self.global_dev_search_page.get_user_account_in_user_search() user_dev_number = self.global_dev_search_page.get_user_dev_number_in_user_search() # 点击控制台 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_console_button_in_user_search() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual(self.base_url + '/console', self.driver.get_current_url()) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击详情 self.global_dev_search_page.click_detail_in_user_search() # 点返回 self.global_dev_search_page.click_return_search_list() # 点击查看 current_handle = self.driver.get_current_window_handle() self.global_dev_search_page.click_look_button_in_user_search() all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_handle: self.driver.switch_to_window(handle) self.assertEqual(self.base_url + '/device/toDeviceManage', self.driver.get_current_url()) # 获取用户的设备数量 dev_number = self.global_dev_search_page.get_dev_numebr_in_dev_manage() self.assertEqual(user_dev_number, str(dev_number)) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_handle) # 点击重置密码 self.global_dev_search_page.click_reset_password_button_in_user_search() self.global_dev_search_page.close_buttons() self.global_dev_search_page.click_reset_password_button_in_user_search() self.global_dev_search_page.cancel_buttons() self.global_dev_search_page.click_reset_password_button_in_user_search() self.global_dev_search_page.ensure_buttons() get_text = self.global_dev_search_page.get_text_after_succeeds()