def get_consume_number_in_mysql(self, begin_time, end_time, account): data = [] conncet_sql = ConnectSql() conncet = conncet_sql.connect_tuqiang_sql() cursor = conncet.cursor() massage_sql = "SELECT b.amount FROM vs_bill b INNER JOIN user_info o on b.userId = o.userId WHERE o.account = '" + account + "' and b.alarmPushType = 4 and b.creationDate BETWEEN '" + begin_time + "' and '" + end_time + "';" cursor.execute(massage_sql) massage_data = cursor.fetchall() data.append(massage_data[0][0]) telephone_sql = "SELECT b.amount FROM vs_bill b INNER JOIN user_info o on b.userId = o.userId WHERE o.account = '" + account + "' and b.alarmPushType = 3 and b.creationDate BETWEEN '" + begin_time + "' and '" + end_time + "';" cursor.execute(telephone_sql) telephone_data = cursor.fetchall() data.append(telephone_data[0][0]) year_card_sql = "SELECT b.imei FROM rc_recharge b INNER JOIN user_info o on b.userId = o.userId WHERE o.account = '" + account + "' and b.cardType = 1 and b.creationDate BETWEEN '" + begin_time + "' and '" + end_time + "';" cursor.execute(year_card_sql) year_card_data = cursor.fetchall() data.append(len(year_card_data)) life_card_sql = "SELECT b.imei FROM rc_recharge b INNER JOIN user_info o on b.userId = o.userId WHERE o.account = '" + account + "' and b.cardType = 2 and b.creationDate BETWEEN '" + begin_time + "' and '" + end_time + "';" cursor.execute(life_card_sql) life_card_data = cursor.fetchall() data.append(len(life_card_data)) cursor.close() conncet.close() return data
def get_telephone_and_massage_alarm_number_in_mysql(self, account): conncet_sql = ConnectSql() conncet = conncet_sql.connect_tuqiang_sql() cursor = conncet.cursor() sql = "SELECT v.phoneRecord,v.infoRecord FROM rc_recharge_card_stock v INNER JOIN user_info u on v.userId = u.userId WHERE u.account = '%s';" % account cursor.execute(sql) data = cursor.fetchall() cursor.close() conncet.close() return data
def get_year_and_life_card_number_in_mysql(self, account): conncet_sql = ConnectSql() conncet = conncet_sql.connect_tuqiang_sql() cursor = conncet.cursor() sql = "SELECT v.yearCard,v.lifetimeCard FROM rc_recharge_card_stock v INNER JOIN user_info u on v.userId = u.userId WHERE u.account = '%s';" % account cursor.execute(sql) data = cursor.fetchall() cursor.close() conncet.close() return data
def get_dev_name_in_sql(self, param): connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cousor = connect.cursor() sql = "SELECT deviceName FROM equipment_mostly WHERE imei = '%s';" % param cousor.execute(sql) dev_name = cousor.fetchall()[0][0] cousor.close() connect.close() return dev_name
class TestCase70CustManageCustSearch(unittest.TestCase): def setUp(self): self.driver = AutomateDriverServer(choose='chrome') self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage( self.driver, self.base_url) self.cust_manage_cust_list_page = CustManageCustListPage( self.driver, self.base_url) self.cust_manage_my_dev_page = CustManageMyDevPage( self.driver, self.base_url) self.cust_manage_lower_account_page = CustManageLowerAccountPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPage( self.driver, self.base_url) self.driver.set_window_max() self.log_in_base = LogInBaseServer(self.driver, self.base_url) self.cust_manage_page_read_csv = CustManagePageReadCsv() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def test_cust_manage_add_cust_search(self): # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() # 进入客户管理页面 self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage() self.cust_manage_basic_info_and_add_cust_page.add_acc() self.cust_manage_basic_info_and_add_cust_page.cancel_add_account() self.cust_manage_basic_info_and_add_cust_page.add_acc() # 添加客户名称、账号,点击保存 self.cust_manage_basic_info_and_add_cust_page.add_account_name("虚拟账号") self.cust_manage_basic_info_and_add_cust_page.add_account( "xnzh_dzl022") self.cust_manage_basic_info_and_add_cust_page.acc_add_save() connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_account_sql = "select account from user_info where account = 'xnzh_dzl022';" cursor.execute(get_account_sql) user = cursor.fetchall() print(user) print(len(user)) self.assertEqual(0, len(user), "添加普通账号时,可成功添加虚拟账户") def tearDown(self): self.driver.quit_browser()
def get_sql_total_after_click_search_risk_share(self, data): connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cursor = connect.cursor() sql = "SELECT t.id FROM t_share_area t WHERE t.name LIKE '%" + data['risk_name'] + "%';" print(sql) cursor.execute(sql) sql_data = cursor.fetchall() cursor.close() connect.close() return len(sql_data)
def get_command_imei_user_account(self, command_imei): connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cursor = connect.cursor() sql = "SELECT e.account FROM equipment_mostly e WHERE e.imei = '%s';" % command_imei cursor.execute(sql) data = cursor.fetchall() cursor.close() connect.close() return data[0][0]
def get_dev_user_name(self): connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cursor = connect.cursor() sql = "SELECT o.nickName FROM equipment_mostly m INNER JOIN user_info o on m.userId = o.userId WHERE m.imei = %s;" % self.get_imei( ) cursor.execute(sql) data = cursor.fetchall() user_name = data[0][0] cursor.close() connect.close() return user_name
def get_sql_total_after_click_search(self, data, account): connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cursor = connect.cursor() sql = "SELECT o.id FROM geozone_info o INNER JOIN user_info u on o.userid = u.userId WHERE u.account = '" + account + "'" if data['defence_name'] != '': sql += " and o.geoname like '%" + data['defence_name'] + "%'" sql += ";" print(sql) cursor.execute(sql) sql_data = cursor.fetchall() cursor.close() connect.close() return len(sql_data)
def get_account_info(self, user_account): # 获取当前登录账号的客户信息 connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cursor = connect.cursor() sql = "SELECT o.nickName,o.phone,o.email FROM user_info o WHERE o.account = '%s';" % user_account cursor.execute(sql) data = cursor.fetchall() data_list = [] for range in data: for range1 in range: data_list.append(range1) cursor.close() connect.close() return data_list
def search_current_account_data(self, user_account): connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_user_id_sql = "select u.userId,u.account,u.type from user_info u where u.account = '%s';" % user_account cursor.execute(get_user_id_sql) user_data_list = cursor.fetchall() list_data = [] for range1 in user_data_list: for range2 in range1: list_data.append(range2) all_data = tuple(list_data) cursor.close() connect.close() return all_data
def get_sql_number_after_click_search_button(self, account, search_data): conncet_sql = ConnectSql() conncet = conncet_sql.connect_tuqiang_sql() cursor = conncet.cursor() sql = "SELECT b.id FROM vs_bill b INNER JOIN user_info o on b.userId = o.userId WHERE o.account = '" + account + "'" if search_data['date_type'] == '今天': sql += " and b.creationDate BETWEEN '" + self.get_today_begin_date( ) + "' and '" + self.get_today_end_time() + "'" elif search_data['date_type'] == '本周': sql += " and b.creationDate BETWEEN '" + self.get_this_week_begin_time( ) + "' and '" + self.get_this_month_end_time() + "'" elif search_data['date_type'] == '本月': sql += " and b.creationDate BETWEEN '" + self.get_this_month_begin_time( ) + "' and '" + self.get_this_month_end_time() + "'" elif search_data['date_type'] == '上月': sql += " and b.creationDate BETWEEN '" + self.get_last_month_begin_time( ) + "' and '" + self.get_last_month_end_time() + "'" elif search_data['date_type'] == '自定义': sql += " and b.creationDate BETWEEN '" + search_data[ 'begin_time'] + "' and '" + search_data['end_time'] + "'" if search_data['imei'] != '': sql += " and b.imei like '%" + search_data['imei'] + "%'" if search_data['telephone'] != '': sql += " and b.phone like '%" + search_data['telephone'] + "%'" if search_data['alarm_type'] != '': sql += " and b.alarmPushType = '" + search_data['alarm_type'] + "'" if search_data['result'] != '': sql += " and b.status = '" + search_data['result'] + "'" sql += ";" print(sql) cursor.execute(sql) data = cursor.fetchall() cursor.close() conncet.close() return len(data)
def get_sql_number_after_click_order_manage_search_button( self, account, search_data): begin_time = self.driver.get_element( 'x,//*[@id="startTime_order"]').get_attribute('value') end_time = self.driver.get_element( 'x,//*[@id="endTime_order"]').get_attribute('value') conncet_sql = ConnectSql() conncet = conncet_sql.connect_tuqiang_sql() cursor = conncet.cursor() sql = "SELECT t.id FROM t_order t INNER JOIN user_info u on t.createBy = u.userId WHERE u.account = '%s'" % account if search_data['date_type'] == '创建时间': sql += " and t.createDate BETWEEN '" + begin_time + "' and '" + end_time + "'" if search_data['date_type'] == '支付时间': sql += " and t.transPayTime BETWEEN '" + begin_time + "' and '" + end_time + "'" if search_data['goods_name'] != '': sql += " and t.productName LIKE '%" + search_data[ 'goods_name'] + "%'" if search_data['order_id'] != '': sql += " and t.orderNo LIKE '%" + search_data['order_id'] + "%'" if search_data['order_type'] != '': sql += " and t.orderType = '%s'" % search_data['order_type'] if search_data['is_order'] != '': sql += " and t.payStatus = '%s'" % search_data['is_order'] if search_data['is_pay'] != '': sql += " and t.payType = '%s' and t.payStatus = '1'" % search_data[ 'is_pay'] sql += ";" print(sql) cursor.execute(sql) data = cursor.fetchall() cursor.close() conncet.close() return len(data)
def get_sql_number_after_click_massage_and_telephone_alarm_set_search_button( self, account, search_data): conncet_sql = ConnectSql() conncet = conncet_sql.connect_tuqiang_sql() cursor = conncet.cursor() sql = "SELECT t.id FROM vs_alarm_set t INNER JOIN user_info u on t.createdBy = u.userId WHERE u.account = '%s'" % account if search_data['alarm_name'] != '': sql += " and t.alarmSetName like '%" + search_data[ 'alarm_name'] + "%'" if search_data['alarm_type'] != "": sql += " and t.alarmPushType = '%s'" % search_data['alarm_type'] sql += ";" print(sql) cursor.execute(sql) data = cursor.fetchall() cursor.close() conncet.close() return len(data)
def get_sql_total_search_center_massage(self, search_data, all_user_id): connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cursor = connect.cursor() sql = "SELECT u.id FROM user_message u WHERE u.userId in %s" % str( all_user_id) ########################################################### if search_data['imei'] != "": sql += " and u.imeis = %s" % search_data['imei'] ########################################################### if search_data['massage_type'] == '设备离线': sql += " and u.type = 2" elif search_data['massage_type'] == "设备到期": sql += " and u.type = 1" elif search_data['massage_type'] == '导游播报': sql += " and u.type = 3" elif search_data['massage_type'] == '电量过低': sql += " and u.type = 4" ########################################################### if search_data['is_read'] == '未读': sql += " and u.readFlag = 0" elif search_data['is_read'] == '已读': sql += " and u.readFlag = 1" ########################################################### sql += ";" print(sql) cursor.execute(sql) data = cursor.fetchall() cursor.close() connect.close() return len(data)
class TestCase142SportStatisticalElectricReport(unittest.TestCase): ''' 电量报表 author:zhangAo ''' def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.statistical_form_page = StatisticalFormPage( self.driver, self.base_url) self.statistical_form_page_read_csv = StatisticalFormPageReadCsv() self.log_in_base = LogInBase(self.driver, self.base_url) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.search_sql = SearchSql(self.driver, self.base_url) # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.log_in_base.log_in_jimitest() # 登录之后点击控制台,然后点击设置 self.statistical_form_page.click_control_after_click_statistical_form_page( ) sleep(3) def tearDown(self): # 退出浏览器 self.driver.quit_browser() def test_case_sport_statistical_electric_report(self): # 断言url expect_url_after_click_statistical_form = self.base_url + '/deviceReport/statisticalReport' self.assertEqual( expect_url_after_click_statistical_form, self.statistical_form_page.actual_url_after_statistical_form()) # 点击里程报表 self.statistical_form_page.click_electric_report_form_buttons() # 断言 self.assertEqual( self.assert_text.statistical_form_electric_report(), self.statistical_form_page. actual_text_after_click_electric_report_buttons()) # 读取查询数据 csv_file = self.statistical_form_page_read_csv.read_csv( 'search_electric_report_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], 'electric': row[1], 'dev_type': row[2], 'next': row[3] } self.statistical_form_page.add_data_to_search_electric_report( search_data) all_dev = self.search_sql.search_current_account_equipment( search_data['search_user']) all_user_dev = self.search_sql.search_current_account_equipment_and_next( search_data['search_user']) connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_electric_total_sql = self.search_sql.get_total_electric_report_sql( all_user_dev, all_dev, search_data) print(get_electric_total_sql) cursor.execute(get_electric_total_sql) get_total_number = cursor.fetchall() total_list = [] for range1 in get_total_number: for range2 in range1: total_list.append(range2) cursor.close() connect.close() total = len(total_list) web_total = self.statistical_form_page.get_web_total_electric_report( ) self.assertEqual(total, web_total) csv_file.close()
class TestCase117LoginSuccessWithOrdinaryUser(unittest.TestCase): def setUp(self): self.driver = AutomateDriverServer() self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPage( self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.driver.set_window_max() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_ordinary_user_login_by_csv(self): '''通过csv测试普通用户账户成功登录和成功退出功能''' data = ["首页", "设备管理", "操控台", "统计报表", "安全区域", "设备分布"] csv_file = self.log_in_page_read_csv.read_csv( 'login_with_ordinary_user.csv') csv_data = csv.reader(csv_file) for row in csv_data: user_to_login = {"account": row[0], "passwd": row[1]} # 打开途强在线首页-登录页 self.base_page.open_page() # 输入用户信息进行登录 self.login_page.user_login(user_to_login["account"], user_to_login["passwd"]) self.driver.wait(1) # 点首页 self.login_page.click_home_page() # 判断登录成功后跳转页面是否正确 actual_url = self.driver.get_current_url() expect_url = self.base_url + "/nomalUserCenter" self.assertEqual(expect_url, actual_url, "登录成功后页面跳转错误") # 判断登录成功后招呼栏的用户名是否正确 hello_usr = self.account_center_page_navi_bar.hello_user_account() expect_usr = user_to_login["account"] self.assertIn(expect_usr, hello_usr, "登录成功后招呼栏账户名显示错误") # 验证模块 '''module = self.account_center_page_navi_bar.get_page_module() for m in range(len(module)): self.assertIn(data[m], module[m], "用户账号登录,模块显示错误")''' connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_account_user_info_sql = "SELECT o.parentId from user_info o WHERE o.account = '" + \ user_to_login['account'] + "'" cursor.execute(get_account_user_info_sql) get_account_user_info = cursor.fetchall() current_user_info = [] for range1 in get_account_user_info: for range2 in range1: current_user_info.append(range2) print(current_user_info) # get_up_account_info_sql = "SELECT o.account,o.nickName,o.phone FROM user_info o WHERE o.userId = '" + \ # current_user_info[0] + "';" get_up_account_info_sql = "SELECT o.account,o.contact,o.phone FROM user_info o WHERE o.userId = '" + \ current_user_info[0] + "';" cursor.execute(get_up_account_info_sql) get_up_user_info = cursor.fetchall() up_user_info = [] for range1 in get_up_user_info: for range2 in range1: up_user_info.append(range2) print(up_user_info) usr_service_provider = self.account_center_page_navi_bar.ordinary_usr_service_provider( ) expect_usr_service_provider = up_user_info[0] self.assertIn(expect_usr_service_provider, usr_service_provider, "服务商显示错误") if up_user_info[1] != '': service_provider_connect = self.account_center_page_navi_bar.ordinary_usr_service_provider_connect( ) expect_service_provider_connect = up_user_info[1] self.assertIn(expect_service_provider_connect, service_provider_connect, "联系人显示错误") service_provider_phone = self.account_center_page_navi_bar.ordinary_usr_service_provider_phone( ) expect_service_provider_phone = up_user_info[2] self.assertIn(expect_service_provider_phone, service_provider_phone, "电话显示错误") # 成功退出系统 sleep(2) self.account_center_page_navi_bar.usr_log_out() # 判断是否成功退出到登录页 self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "退出系统失败") # 验证退出系统后“记住我”是否是未勾选状态 box_status = self.login_page.check_remember_me() self.assertEqual(False, box_status, '记住密码为勾选状态!') csv_file.close()
def test_dev_manage_dev_search_by_input_data(self): '''测试设备管理-设备搜索-by imei''' # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() # 点击进入设备管理 self.dev_manage_page.enter_dev_manage() self.dev_manage_page.click_more_button() # 车牌号输入框输入选中用户的设备车牌号包含的字符,点击搜索,点击导出 dev_vehicle_number = '12' self.dev_manage_page.inpui_dev_vehicle_number_to_search( dev_vehicle_number) self.dev_manage_page.click_search_btn() connect_sql = ConnectSql() connect = connect_sql.connect_tuqiang_sql() cursor = connect.cursor() # 获取查询出来的条数 number = self.dev_manage_page.get_total_page_number_in_dev_manager() for n in range(number): imei = self.dev_manage_page.get_imei_after_search(n) sql = "SELECT d.vehicleNumber FROM equipment_detail d WHERE d.imei = '%s';" % imei cursor.execute(sql) data = cursor.fetchall() vehicle_number = data[0][0] self.assertIn(dev_vehicle_number, vehicle_number) # 车牌号输入框输入选中用户的设备车牌号不包含的字符,点击搜索,点击导出 dev_vehicle_number = '不存在的' self.dev_manage_page.inpui_dev_vehicle_number_to_search( dev_vehicle_number) self.dev_manage_page.click_search_btn() text = self.dev_manage_page.get_search_no_dev_name_text() self.assertIn(self.assert_text.account_center_page_no_data_texts(), text) # 车架号输入框输入选中用户的设备车架号包含的字符,点击搜索,点击导出 self.dev_manage_page.inpui_dev_vehicle_number_to_search('') dev_car_frame = '12' self.dev_manage_page.input_dev_car_frame_to_search(dev_car_frame) self.dev_manage_page.click_search_btn() sleep(2) # 获取查询出来的条数 number = self.dev_manage_page.get_total_page_number_in_dev_manager() for n in range(number): imei = self.dev_manage_page.get_imei_after_search(n) sql = "SELECT d.carFrame FROM equipment_detail d WHERE d.imei = '%s';" % imei cursor.execute(sql) data = cursor.fetchall() vehicle_number = data[0][0] self.assertIn(dev_car_frame, vehicle_number) # 车架号输入框输入选中用户的设备车架号不包含的字符,点击搜索,点击导出 dev_vehicle_number = '不存在的' self.dev_manage_page.input_dev_car_frame_to_search(dev_vehicle_number) self.dev_manage_page.click_search_btn() text = self.dev_manage_page.get_search_no_dev_name_text() self.assertIn(self.assert_text.account_center_page_no_data_texts(), text) # SIM卡号输入框输入选中用户的设备车牌号包含的字符,点击搜索,点击导出 self.dev_manage_page.input_dev_car_frame_to_search('') dev_sim = '12' self.dev_manage_page.input_dev_sim_to_search(dev_sim) self.dev_manage_page.click_search_btn() sleep(2) # 获取查询出来的条数 number = self.dev_manage_page.get_total_page_number_in_dev_manager() for n in range(number): imei = self.dev_manage_page.get_imei_after_search(n) sql = "SELECT d.sim FROM equipment_mostly d WHERE d.imei = '%s';" % imei cursor.execute(sql) data = cursor.fetchall() sim_number = data[0][0] self.assertIn(dev_sim, sim_number) # SIM卡号输入框输入选中用户的设备车牌号不包含的字符,点击搜索,点击导出 dev_sim_number = '不存在的' self.dev_manage_page.input_dev_sim_to_search(dev_sim_number) self.dev_manage_page.click_search_btn() text = self.dev_manage_page.get_search_no_dev_name_text() self.assertIn(self.assert_text.account_center_page_no_data_texts(), text) # SN码输入框输入选中用户的设备车架号包含的字符,点击搜索,点击导出 self.dev_manage_page.input_dev_sim_to_search('') dev_sn = '12' self.dev_manage_page.input_dev_sn_to_search(dev_sn) self.dev_manage_page.click_search_btn() sleep(2) # 获取查询出来的条数 number = self.dev_manage_page.get_total_page_number_in_dev_manager() for n in range(number): imei = self.dev_manage_page.get_imei_after_search(n) sql = "SELECT d.sn FROM equipment_detail d WHERE d.imei = '%s';" % imei cursor.execute(sql) data = cursor.fetchall() sn_number = data[0][0] self.assertIn(dev_sn, sn_number) # SN码输入框输入选中用户的设备车架号不包含的字符,点击搜索,点击导出 dev_sn_number = '不存在的' self.dev_manage_page.input_dev_sn_to_search(dev_sn_number) self.dev_manage_page.click_search_btn() text = self.dev_manage_page.get_search_no_dev_name_text() self.assertIn(self.assert_text.account_center_page_no_data_texts(), text)
class TestCase07AccountCenterMsgSearch(unittest.TestCase): def setUp(self): self.driver = AutomateDriverServer(choose='chrome') self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.account_center_page_operation_log = AccountCenterOperationLogPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPage( self.driver, self.base_url) self.account_center_page_msg_center = AccountCenterMsgCenterPage( self.driver, self.base_url) self.assert_text = AssertText() self.driver.set_window_max() self.account_center_page_read_csv = AccountCenterPageReadCsv() self.connect_sql = ConnectSql() self.search_sql = SearchSql() self.log_in_base = LogInBaseServer(self.driver, self.base_page) self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_account_center_msg_search(self): self.base_page.open_page() self.log_in_base.log_in() self.account_center_page_navi_bar.click_account_center_button() # self.driver.switch_to_frame('x,//*[@id="usercenterFrame"]') # 获取登录账号的用户名 current_account = self.log_in_base.get_log_in_account() #self.driver.default_frame() # 进入消息中心 self.account_center_page_msg_center.enter_msg_center() self.driver.wait(10) # 进入iframe # self.account_center_page_msg_center.message_center_iframe() # 获取消息中心title msg_center_title = self.account_center_page_msg_center.get_msg_center_title( ) # 验证消息中心title是否正确显示 self.assertIn( self.assert_text.account_center_page_message_center_text(), msg_center_title, "消息中心title有误!") csv_file = self.account_center_page_read_csv.read_csv( 'search_massage_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 = {'imei': row[0], 'type': row[1], 'status': row[2]} # 搜索 self.account_center_page_operation_log.add_data_to_search_massages( search_data) connect1 = self.connect_sql.connect_tuqiang_sql() # 创建数据库游标 cur = connect1.cursor() # 执行sql脚本查询当前登录账号的userId,fullParent get_id_sql = "select o.account,o.userId,o.fullParentId from user_info o where o.account = '" + current_account + "';" cur.execute(get_id_sql) # 读取数据 user_relation = cur.fetchall() # 遍历数据 for row in user_relation: user_relation_id = { "account": row[0], "userId": row[1], "fullParent": row[2] } # 执行sql脚本,根据当前登录账号的userId,fullParent查询出当前账户的所有下级账户 get_lower_account_sql = "select userId from user_info where fullParentId like" + \ "'" + user_relation_id["fullParent"] + user_relation_id["userId"] + "%'" + ";" cur.execute(get_lower_account_sql) # 读取数据 lower_account = cur.fetchall() lower_account_list = [user_relation_id["userId"]] for range1 in lower_account: for range2 in range1: lower_account_list.append(range2) self.lower_account_tuple = tuple(lower_account_list) cur.close() connect1.close() connect = self.connect_sql.connect_tuqiang_sql() # 创建数据库游标 cur = connect.cursor() get_total_sql = self.search_sql.search_massage_sql( self.lower_account_tuple, search_data) print(get_total_sql) cur.execute(get_total_sql) # 读取数据 total_data = cur.fetchall() # 从数据tuple中获取最终查询记录统计条数 total_list = [] for range1 in total_data: for range2 in range1: total_list.append(range2) total = len(total_list) print('本次查询数据库的条数为:%s' % total) web_total = self.account_center_page_operation_log.get_msg_number() print('本次查询页面的条数是:%s' % web_total) self.assertEqual(total, web_total) cur.close() connect.close() csv_file.close()
class TestCase450919AccountCenterRefillCardRefillRecordSearch(unittest.TestCase): def setUp(self): self.driver = AutomateDriverServer(choose='CHROME') self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPage(self.driver, self.base_url) self.account_center_page_details = AccountCenterDetailsPage(self.driver, self.base_url) self.account_center_page_refill_card = AccountCenterRefillCardPage(self.driver, self.base_url) self.log_in_base = LogInBaseServer(self.driver, self.base_page) self.connect_sql = ConnectSql() self.search_sql = SearchSql() self.assert_text = AssertText() self.driver.set_window_max() self.account_center_page_read_csv = AccountCenterPageReadCsv() self.log_in_base = LogInBaseServer(self.driver, self.base_page) self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_refill_record_search(self): '''充值卡-充值记录--搜索''' csv_file = self.account_center_page_read_csv.read_csv('search_refill_record_data.csv') csv_data = csv.reader(csv_file) # 打开途强在线首页-登录页 self.base_page.open_page() # 登录账号 self.log_in_base.log_in() self.driver.wait(1) self.account_center_page_navi_bar.click_account_center_button() # 进入充值卡页面 # self.account_center_page_navi_bar.switch_to_chongzhi_card() self.account_center_page_refill_card.click_refill_card() # 验证页面顶部我的账号 my_account = self.account_center_page_refill_card.get_title_display_account() self.assertIn(self.account_center_page_refill_card.get_current_login_account(), my_account, "登录账号显示一致") for row in csv_data: data = { "refill_type": row[0], "device_imei": row[1] } # 点击充值记录 self.account_center_page_refill_card.click_refill_record() # 搜索 count = self.account_center_page_refill_card.refill_record_search_data(data["refill_type"], data["device_imei"]) # 验证imei计数 self.assertEqual(count["import_count"], int(count["add_count"]), "输入框中imei的计数显示错误") # 获取页面列表条数 page_number = self.account_center_page_refill_card.get_refill_record_number() # 获取当前账号id sql_data = self.search_sql.search_current_account_data(my_account) connect1 = self.connect_sql.connect_tuqiang_sql() # 创建数据库游标 cur = connect1.cursor() # 获取数据库条数 get_sql = self.search_sql.search_refill_record_sql(sql_data[0], data) print(get_sql) cur.execute(get_sql) # 读取数据 total_data = cur.fetchall() # 从数据tuple中获取最终查询记录统计条数 total_list = [] for range1 in total_data: for range2 in range1: total_list.append(range2) total = len(total_list) print('本次查询数据库的条数为:%s' % total) # 获取数据库条数 self.assertEqual(total, page_number, "转移记录中,平台与sql搜索出来的数据条数不一致") # 点击充值记录 self.account_center_page_refill_card.click_refill_record() # 获取设备有多少个分页 total_page = self.account_center_page_refill_card.get_total_page_number_search_refill_record() print(total_page) if total_page[0] == 0: text = self.account_center_page_refill_card.get_refill_record_page_no_data_text() self.assertIn(self.assert_text.account_center_page_no_data_text(), text) elif total_page[0] == 1: up_page_class = self.account_center_page_refill_card.get_up_page_class_active_in_refill_search() self.assertEqual('active', up_page_class) else: for n in range(total_page[0]): self.account_center_page_refill_card.click_per_page(n) get_per_first_number = self.account_center_page_refill_card.get_per_frist_number_in_refill_search() self.assertEqual(get_per_first_number, str(10 * (n + 1) - 9)) # 点击每页20条 list = [20, 30, 50, 100] for m in list: self.account_center_page_refill_card.click_per_page_number_refill_record() page_number = self.account_center_page_refill_card.get_page_number_in_refill_record_search() print(page_number) self.assertEqual(int(total_page[1] / m) + 1, page_number) csv_file.close()
class TestCase402CustomerManagementLowerUserSearch(unittest.TestCase): # 测试客户管理 搜索 客户 def setUp(self): self.driver = AutomateDriverServer(choose='chrome') self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage( self.driver, self.base_url) self.account_center_page_details = AccountCenterDetailsPage( self.driver, self.base_url) self.cust_manage_cust_list_page = CustManageCustListPage( self.driver, self.base_url) self.cust_manage_my_dev_page = CustManageMyDevPage( self.driver, self.base_url) self.cust_manage_lower_account_page = CustManageLowerAccountPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPage( self.driver, self.base_url) self.driver.set_window_max() self.log_in_base = LogInBaseServer(self.driver, self.base_url) self.cust_manage_page_read_csv = CustManagePageReadCsv() self.search_sql = SearchSql() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.close_window() self.driver.quit_browser() def test_customer_management_lower_user_search(self): # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() # 点击账户中心 # self.account_center_page_navi_bar.click_account_center_button() # current_account = self.log_in_base.get_log_in_account() # 进入客户管理页面 current_handle = self.driver.get_current_window_handle() self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage() self.base_page.change_windows_handle(current_handle) csv_file = self.cust_manage_page_read_csv.read_csv('acc_search.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'account': row[0], "account_type": row[1], "info": row[2] } print(search_data) sleep(1) self.cust_manage_lower_account_page.add_data_to_search_account( search_data) connect = self.connect_sql.connect_tuqiang_sql() # 创建数据库游标 cur = connect.cursor() # 执行sql脚本查询当前登录账号的userId,fullParent get_id_sql = "select o.account,o.userId,o.fullParentId from user_info o where o.account = '" + search_data[ 'account'] + "' ;" cur.execute(get_id_sql) # 读取数据 user_relation = cur.fetchall() # 遍历数据 for row in user_relation: user_relation_id = { "account": row[0], "userId": row[1], "fullParent": row[2] } # 执行sql脚本,根据当前登录账号的userId,fullParent查询出当前账户的所有下级账户 get_lower_account_sql = "select userId from user_info where fullParentId = " + \ "'" + user_relation_id["fullParent"] + user_relation_id[ "userId"] + ",'" + ";" cur.execute(get_lower_account_sql) # 读取数据 lower_account = cur.fetchall() print(lower_account) lower_account_list = [] for range1 in lower_account: for range2 in range1: lower_account_list.append(range2) lower_account_tuple = tuple(lower_account_list) print(lower_account_tuple) get_total_sql = self.search_sql.search_account_sql( lower_account_tuple, search_data) print(get_total_sql) cur.execute(get_total_sql) # 读取数据 total_data = cur.fetchall() # 从数据tuple中获取最终查询记录统计条数 total_list = [] for range1 in total_data: for range2 in range1: total_list.append(range2) total = len(total_list) print('本次查询数据库的条数为:%s' % total) web_total = self.cust_manage_lower_account_page.get_account_number( ) print('本次查询页面的条数是:%s' % web_total) self.assertEqual(total, web_total) cur.close() connect.close() csv_file.close()
class TestCase40AccountCenterOperLoginLog(unittest.TestCase): def setUp(self): self.driver = AutomateDriverServer() self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.help_page = HelpPage(self.driver, self.base_url) self.account_center_page_operation_log = AccountCenterOperationLogPage(self.driver, self.base_url) self.help_page_sql = HelpPageSql() self.account_center_page_read_csv = AccountCenterPageReadCsv() self.connect_sql = ConnectSql() self.log_in_base = LogInBaseServer(self.driver, self.base_page) 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_account_center_login_log(self): self.base_page.open_page() self.log_in_base.log_in() self.log_in_base.click_account_center_button() # 获取登录账号的用户名 current_account = self.log_in_base.get_log_in_account() # 点击招呼栏-业务日志 self.account_center_page_operation_log.click_help_button() self.help_page.click_log_in_log() # 判断当前页面是否正确跳转至业务日志页面 expect_url = self.base_url + "/userFeedback/toHelp" self.assertEqual(expect_url, self.driver.get_current_url(), "当前页面跳转错误") i = 0 csv_file = self.account_center_page_read_csv.read_csv('search_log_in_log_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'account': row[0], 'begin_time': row[1], 'end_time': row[2] } self.help_page.search_login_log(search_data) connect = self.connect_sql.connect_tuqiang_sql() # 创建数据库游标 cur = connect.cursor() # 执行sql脚本查询当前登录账号的userId,fullParent get_id_sql = "select o.userId from user_info o where o.account = '" + current_account + "' ;" cur.execute(get_id_sql) # 读取数据 user_relation = cur.fetchall() # 遍历数据 for row1 in user_relation: user_relation_id = { "userId": row1[0] } get_total_sql = self.help_page_sql.search_log_in_sql(user_relation_id['userId'], search_data) print(get_total_sql) cur.execute(get_total_sql) # 读取数据 total_data = cur.fetchall() # 从数据tuple中获取最终查询记录统计条数 total_list = [] for range1 in total_data: for range2 in range1: total_list.append(range2) total = len(total_list) i += 1 print('第%s次查询数据库的条数为:%s' % (i, total)) web_total = self.help_page.get_current_login_log() print('第%s次查询页面的条数是:%s' % (i, web_total)) self.assertEqual(total, web_total) cur.close() connect.close() csv_file.close()
class TestCase124LoginSuccessWithphAppUser(unittest.TestCase): def setUp(self): self.driver = AutomateDriverServer() self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPage( self.driver, self.base_url) self.account_center_page_details = AccountCenterDetailsPage( self.driver, self.base_url) self.log_in_read_csv = LogInPageReadCsv() self.connect_sql = ConnectSql() 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_app_user_login_by_csv(self): '''通过csv测试app账户成功登录和成功退出功能''' data = ["首页", "设备管理", "操控台", "统计报表", "安全区域", "设备分布"] csv_file = self.log_in_read_csv.read_csv('login_with_app_user.csv') csv_data = csv.reader(csv_file) for row in csv_data: user_to_login = {"account": row[0], "passwd": row[1]} # 打开途强在线首页-登录页 self.base_page.open_page() # 输入用户信息进行登录 self.login_page.user_login(user_to_login["account"], user_to_login["passwd"]) # 点首页 # self.login_page.click_home_page() # 判断登录成功后跳转页面是否正确 actual_url = self.driver.get_current_url() expect_url = self.base_url + "/nomalUserCenter" self.assertEqual(expect_url, actual_url, "登录成功后页面跳转错误") # 判断登录成功后招呼栏的用户名是否正确 hello_usr = self.account_center_page_navi_bar.hello_user_account() expect_usr = user_to_login["account"] self.assertEqual(expect_usr, hello_usr, "登录成功后招呼栏账户名显示错误") # 验证模块 module = self.account_center_page_navi_bar.get_page_module() for m in range(len(module)): self.assertIn(data[m], module[m], "用户账号登录,模块显示错误") # 获取当前app账号有几个服务商 service_number = self.account_center_page_details.get_current_account_service_number( ) # 获取数据库服务商的个数 connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_up_account_info_sql = "select userId from user_info where account = '%s';" % user_to_login[ 'account'] cursor.execute(get_up_account_info_sql) get_up_user_info = cursor.fetchall() get_current_id = [] for range1 in get_up_user_info: for range2 in range1: get_current_id.append(range2) print(get_current_id) get_service_sql = "select userId from equipment_mostly where bindUserId = '" + get_current_id[ 0] + "' group by userId ;" cursor.execute(get_service_sql) get_service = cursor.fetchall() service_number_list = [] for range1 in get_service: for range2 in range1: service_number_list.append(range2) service_total = len(service_number_list) cursor.close() connect.close() # 断言 # self.assertEqual(service_number - 1, service_total) self.assertEqual(service_number, service_total) # 成功退出系统 sleep(2) self.account_center_page_navi_bar.app_usr_logout() # 判断是否成功退出到登录页 self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "退出系统失败") break csv_file.close()
class TestCase83DevManageSelectIssuedCommand(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.dev_manage_page = DevManagePages(self.driver, self.base_url) self.driver.set_window_max() self.log_in_base = LogInBase(self.driver, self.base_url) self.dev_manage_page_read_csv = DevManagePageReadCsv() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_dev_manage_select_issued_command(self): # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() # 点击进入设备管理 self.dev_manage_page.enter_dev_manage() imei_in_list = self.dev_manage_page.get_imei_in_list() dev_type_in_list = self.dev_manage_page.get_dev_type_in_list() # 选中一个列表中的设备 self.dev_manage_page.click_dev_in_list() # 判断是否选中 input_value = self.dev_manage_page.check_input_value() self.assertEqual(True, input_value) # 点击选中发送指令 self.dev_manage_page.click_select_send_command() # 点击关闭 self.dev_manage_page.click_close_select_send_command() # 点击选中发送指令 self.dev_manage_page.click_select_send_command() # 点击取消 self.dev_manage_page.click_cancel_select_send_command() # 点击选中发送指令 self.dev_manage_page.click_select_send_command() # 判断数量 get_dev_number = self.dev_manage_page.get_dev_number_in_send_command() self.assertEqual(1, get_dev_number) get_dev_count = self.dev_manage_page.get_dev_count_number_in_send_command( ) self.assertEqual(str(get_dev_number), get_dev_count) # 验证设备信息 get_imei = self.dev_manage_page.get_imei_in_send_command() self.assertEqual(imei_in_list, get_imei) get_dev_type = self.dev_manage_page.get_dev_type_in_send_command() self.assertEqual(dev_type_in_list, get_dev_type) get_dev_user = self.dev_manage_page.get_dev_user_in_send_command() connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_account_sql = "select o.account from equipment_mostly e inner join user_info o on e.userId = o.userId where e.imei = '%s';" % imei_in_list cursor.execute(get_account_sql) account_data = cursor.fetchall() account = account_data[0][0] cursor.close() connect.close() self.assertEqual(get_dev_user, account) # 点击删除设备 self.dev_manage_page.click_detele_dev_in_send_command() self.dev_manage_page.click_send_command_in_send_command()
class TestCase307SetUpIssuedWorkTypeManagementSearch(unittest.TestCase): # 测试 设置 - 指令管理 - 下发工作模式管理页面搜索 driver = None base_url = None base_page = None log_in_page = None command_management_page = None def setUp(self): # 前置条件 # 实例化对象 self.driver = AutomateDriver(choose='firefox') self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.command_management_page = CommandManagementPage( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.command_management_page_read_csv = CommandManagementPageReadCsv() self.connect_sql = ConnectSql() self.search_sql = SearchSql() self.assert_text = AssertText() # 打开页面,填写用户名、密码、点击登录 self.base_page.open_page() self.driver.set_window_max() self.driver.implicitly_wait(5) self.driver.clear_cookies() self.log_in_base.log_in_jimitest() self.log_in_base.click_account_center_button() self.current_account = self.log_in_base.get_log_in_account() # 登录之后点击控制台,然后点击指令管理 self.command_management_page.click_control_after_click_command_management( ) sleep(3) def tearDown(self): self.driver.quit_browser() def test_case_set_up_issued_work_type_management_search(self): # 断言url expect_url_after_click_command_management = self.base_url + '/custom/toTemplate' self.assertEqual( expect_url_after_click_command_management, self.command_management_page.actual_url_click_command_management()) # 断言左侧列表的title文本 expect_title_text_after_click_command_management = self.assert_text.command_manager_page_command_type( ) self.assertEqual( expect_title_text_after_click_command_management, self.command_management_page. actual_title_text_after_click_command_management()) # 点击下发工作模式管理 self.command_management_page.click_lift_list( 'issued_work_type_management') # 断言 expect_title_text_click_issued_work_type = self.assert_text.command_manager_page_issued_work_type( ) self.assertEqual( expect_title_text_click_issued_work_type, self.command_management_page.actual_text_click_look_equipment()) # 读取数据 csv_file = self.command_management_page_read_csv.read_csv( 'issused_work_template.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'batch': row[0], 'execute_state': row[1], 'state': row[2], 'imei': row[3] } # 传入数据 self.command_management_page.add_data_to_search(search_data) # 创建数据库连接 connect = self.connect_sql.connect_tuqiang_sql() # 创建游标 cursor = connect.cursor() # 获取登录账号的ID get_current_user_id_sql = \ "select o.account,o.userId from user_info o where o.account = '" + self.current_account + "';" cursor.execute(get_current_user_id_sql) user_relation = cursor.fetchall() for row1 in user_relation: user_id = {'user_account': row1[0], 'user_id': row1[1]} # 查询数据库有多少条记录 get_total_count_sql = self.search_sql.search_issued_work_template_sql( user_id['user_id'], search_data) print(get_total_count_sql) cursor.execute(get_total_count_sql) current_total = cursor.fetchall() total_list = [] for range1 in current_total: for range2 in range1: total_list.append(range2) total = len(total_list) web_total = self.command_management_page.search_total_number_issued_work_type( ) self.assertEqual(total, web_total) cursor.close() connect.close() csv_file.close()
class TestCase100GlobAccountSearch(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage(self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages(self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage(self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.driver.wait(1) self.connect_sql = ConnectSql() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_global_account_search(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in() self.log_in_base.click_account_center_button() current_account = self.log_in_base.get_log_in_account() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() # self.global_dev_search_page.click_account_search() # 度数据 csv_file = self.global_search_page_read_csv.read_csv('global_search_account_data.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'account_info': row[0] } self.global_dev_search_page.swith_to_search_frame() self.global_dev_search_page.account_easy_search(search_data) connect = self.connect_sql.connect_tuqiang_sql() # 创建数据库游标 cur = connect.cursor() # 执行sql脚本查询当前登录账号的userId,fullParent get_id_sql = "select o.account,o.userId,o.fullParentId from user_info o where o.account = '" + current_account + "' ;" cur.execute(get_id_sql) # 读取数据 user_relation = cur.fetchall() # 遍历数据 for row in user_relation: user_relation_id = { "account": row[0], "userId": row[1], "fullParent": row[2] } # 执行sql脚本,根据当前登录账号的userId,fullParent查询出当前账户的所有下级账户 get_lower_account_sql = "select userId from user_info where fullParentId like" + \ "'" + user_relation_id["fullParent"] + user_relation_id["userId"] + "%'" + ";" cur.execute(get_lower_account_sql) # 读取数据 lower_account = cur.fetchall() lower_account_list = [user_relation_id["userId"]] for range1 in lower_account: for range2 in range1: lower_account_list.append(range2) lower_account_tuple = tuple(lower_account_list) get_total_sql = self.search_sql.search_account_sqls(lower_account_tuple, search_data) print(get_total_sql) cur.execute(get_total_sql) # 读取数据 total_data = cur.fetchall() # 从数据tuple中获取最终查询记录统计条数 total_list = [] for range1 in total_data: for range2 in range1: total_list.append(range2) total = len(total_list) print('本次查询数据库的条数为:%s' % total) web_total = self.global_account_search_page.easy_search_results() print('本次查询页面的条数是:%s' % web_total) self.assertEqual(total, web_total) self.driver.default_frame() cur.close() connect.close() csv_file.close() self.global_dev_search_page.close_search()
class TestCase131MarkOperation(unittest.TestCase): """ web_autotest账号,标注点页面操作 """ # author:邓肖斌 def setUp(self): self.driver = AutomateDriverServer(choose='chrome') self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.log_in_base = LogInBaseServer(self.driver, self.base_url) self.safe_area_page = SafeAreaPage(self.driver, self.base_url) self.base_page.open_page() self.base_page.click_chinese_button() self.driver.set_window_max() self.log_in_base.log_in() self.safe_area_page.click_control_after_click_safe_area() self.safe_area_page_read_csv = SafeAreaPageReadCsv() self.assert_text = AssertText() self.connect_sql = ConnectSql() self.search_sql = SafeAreaSearchSql() def tearDown(self): self.driver.quit_browser() def test_case_mark_operation(self): # 断言url expect_url = self.base_url + "/safearea/geozonemap?flag=0" self.assertEqual(expect_url, self.driver.get_current_url()) self.safe_area_page.click_mark_button() sleep(2) # 全选 self.safe_area_page.click_all_select_button_with_mark() # 点击删除 self.safe_area_page.click_detele_button_with_mark() # 点击取消 self.safe_area_page.click_cancel_detele_button() # 点击删除 self.safe_area_page.click_detele_button_with_mark() # 点击关闭 self.safe_area_page.click_close_detele_button() # 点击新建按钮 self.safe_area_page.click_create_mark_point() text = self.safe_area_page.get_text_after_create_map() self.assertEqual(self.assert_text.safe_area_page_map_text(), text) # 获取第一个地标的名称 mark_name = self.safe_area_page.get_first_mark_name_text() # 点击列表的编辑 self.safe_area_page.click_edit_button_in_list() # 点击保存 self.safe_area_page.click_ensure_edit_in_list('名称1', '描述1') # 获取保存之后的地标名称 mark_name_after_save = self.safe_area_page.get_first_mark_name_text() # 断言1:网页上名称的变化 self.assertNotEqual(mark_name, mark_name_after_save) # 断言2:用修改之前的名称在数据库搜索 # 创建数据库连接 connect = self.connect_sql.connect_tuqiang_sql() # 创建游标 cursor = connect.cursor() get_total_count_sql = self.search_sql.search_sql_in_test_case_131( '%s') % mark_name print(get_total_count_sql) cursor.execute(get_total_count_sql) current_total = cursor.fetchall() total_list1 = [] for range1 in current_total: for range2 in range1: total_list1.append(range2) total = len(total_list1) self.assertEqual(0, total) # 断言3:用修改之后的名称在数据库搜索 get_total_count_sql = self.search_sql.search_sql_in_test_case_131( '%s') % mark_name_after_save print(get_total_count_sql) cursor.execute(get_total_count_sql) current_total = cursor.fetchall() total_list2 = [] for range1 in current_total: for range2 in range1: total_list2.append(range2) total = len(total_list2) self.assertEqual(1, total) self.assertEqual('描述1', total_list2[0]) # 点击列表的编辑 self.safe_area_page.click_edit_button_in_list() # 点击保存 self.safe_area_page.click_ensure_edit_in_list('名称', '描述') # 点击列表的编辑 self.safe_area_page.click_edit_button_in_list() # 点击取消 self.safe_area_page.click_cancel_edit_in_list() # 点击列表中的删除 self.safe_area_page.click_delete_button_in_list() self.safe_area_page.click_cancel_detele_button() # 点击关闭 self.safe_area_page.click_delete_button_in_list() self.safe_area_page.click_close_detele_button()
class TestCase75DevManageDevComplexSearch(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_complex_search(self): '''测试设备管理-设备搜索-by imei+设备名称+设备型号+车牌号+车架号+SIM''' # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() self.dev_manage_page.click_account_center_button() current_account = self.log_in_base.get_log_in_account() self.dev_manage_page.enter_dev_manage() self.dev_manage_page.click_more_button() csv_file = self.dev_manage_page_read_csv.read_csv( 'dev_search_info.csv') csv_data = csv.reader(csv_file) is_header = True for row in csv_data: if is_header: is_header = False continue search_data = { 'dev_name': row[0], 'dev_type': row[1], 'past_due': row[2], 'plate_numbers': row[3], 'frame_number': row[4], 'sim': row[5], 'active': row[6], 'choose_time': row[7], 'begin_time': row[8], 'end_time': row[9], 'next': row[10], 'band_status': row[11], 'dev_mold': row[12], 'dev_group': row[13], 'sn': row[14] } self.dev_manage_page.add_data_to_search_dev(search_data) connect = self.connect_sql.connect_tuqiang_sql() # 创建数据库游标 cur = connect.cursor() # 执行sql脚本查询当前登录账号的userId,fullParent get_id_sql = "select o.account,o.userId,o.fullParentId from user_info o where o.account = '" + current_account + "';" cur.execute(get_id_sql) # 读取数据 user_relation = cur.fetchall() # 遍历数据 for row in user_relation: user_relation_id = { "account": row[0], "userId": row[1], "fullParent": row[2] } # 执行sql脚本,根据当前登录账号的userId,fullParent查询出当前账户的所有下级账户 get_lower_account_sql = "select userId from user_info where fullParentId like" + \ "'" + user_relation_id["fullParent"] + user_relation_id["userId"] + "%'" + ";" cur.execute(get_lower_account_sql) # 读取数据 lower_account = cur.fetchall() lower_account_list = [user_relation_id["userId"]] for range1 in lower_account: for range2 in range1: lower_account_list.append(range2) lower_account_tuple = tuple(lower_account_list) get_total_sql = self.search_sql.search_dev_sql( user_relation_id['userId'], lower_account_tuple, search_data) print(get_total_sql) cur.execute(get_total_sql) # 读取数据 total_data = cur.fetchall() # 从数据tuple中获取最终查询记录统计条数 total_list = [] for range1 in total_data: for range2 in range1: total_list.append(range2) total = len(total_list) print('本次查询数据库的条数为:%s' % total) web_total = self.dev_manage_page.get_dev_number() print('本次查询页面的条数是:%s' % web_total) self.assertEqual(total, web_total) cur.close() connect.close() csv_file.close()
class TestCase57CustManageCheckAccount(unittest.TestCase): def setUp(self): self.driver = AutomateDriverServer(choose='chrome') self.base_url = self.driver.base_url self.base_page = BasePageServer(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.cust_manage_basic_info_and_add_cust_page = CustManageBasicInfoAndAddCustPage( self.driver, self.base_url) self.cust_manage_cust_list_page = CustManageCustListPage( self.driver, self.base_url) self.cust_manage_my_dev_page = CustManageMyDevPage( self.driver, self.base_url) self.cust_manage_lower_account_page = CustManageLowerAccountPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPage( self.driver, self.base_url) self.driver.set_window_max() self.log_in_base = LogInBaseServer(self.driver, self.base_url) self.connect_sql = ConnectSql() self.cust_manage_page_read_csv = CustManagePageReadCsv() 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_cust_manage_check_account(self): '''测试客户管理-新增用户''' # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() # 进入客户管理页面 self.cust_manage_basic_info_and_add_cust_page.enter_cust_manage() csv_file = self.cust_manage_page_read_csv.read_csv( 'check_account_data.csv') csv_data = csv.reader(csv_file) for row in csv_data: data = {'account': row[0]} self.cust_manage_basic_info_and_add_cust_page.add_data_to_search_account( data) connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_account_sql = "SELECT o.type,o.phone,o.nickName from user_info o WHERE o.account = '" + data[ 'account'] + "';" cursor.execute(get_account_sql) get_account_user_info = cursor.fetchall() current_user_info = [] for range1 in get_account_user_info: for range2 in range1: current_user_info.append(range2) print(current_user_info) type = self.assert_text.log_in_page_account_type( current_user_info[0]) # 断言客户类型 account_type = self.cust_manage_basic_info_and_add_cust_page.get_account_type( ) self.assertEqual(type, account_type) # 断言账号 account = self.cust_manage_basic_info_and_add_cust_page.get_account( ) self.assertEqual(data['account'], account) # 断言电话 account_phone = self.cust_manage_basic_info_and_add_cust_page.get_account_phone( ) if current_user_info[1] == None: self.assertEqual("", account_phone, "手机号不一致") else: self.assertEqual(current_user_info[1], account_phone) # 断言昵称 account_name = self.cust_manage_basic_info_and_add_cust_page.get_account_name( ) if current_user_info[2] == None: self.assertEqual("", account_name, "昵称不一致") else: self.assertEqual(current_user_info[2], account_name) # 点击监控用户 current_window = self.driver.get_current_window_handle() self.cust_manage_basic_info_and_add_cust_page.click_monitoring_account_button( ) all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != current_window: self.driver.switch_to_window(handle) expect_url = self.base_url + '/index' self.assertEqual(expect_url, self.driver.get_current_url()) self.driver.close_current_page() sleep(2) self.driver.switch_to_window(current_window) # 点击编辑用户 style_value = self.cust_manage_basic_info_and_add_cust_page.edit_button_style_value( ) if style_value == 'display: inline;': self.cust_manage_basic_info_and_add_cust_page.click_edit_account_button( ) # 点击关闭 self.cust_manage_basic_info_and_add_cust_page.click_close_edit_accunt_button( ) # 点击编辑 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_button( ) # 查询用户上一级信息 connect_02 = self.connect_sql.connect_tuqiang_sql() cursor_02 = connect_02.cursor() get_id_sql = "SELECT o.parentId from user_info o WHERE o.account = '" + account + "';" cursor_02.execute(get_id_sql) get_id_info = cursor_02.fetchall() current_user = [] for range1 in get_id_info: for range2 in range1: current_user.append(range2) print(current_user) get_up_account_info_sql = "SELECT o.nickName FROM user_info o WHERE o.userId = '" + current_user[ 0] + "';" cursor_02.execute(get_up_account_info_sql) get_up_user_info = cursor_02.fetchall() up_user_info = [] for range1 in get_up_user_info: for range2 in range1: up_user_info.append(range2) account_name = up_user_info[0] get_web_account_name = self.cust_manage_basic_info_and_add_cust_page.get_account_name_after_click_edit( ) self.assertEqual(account_name, get_web_account_name, '用户上级显示错误!') self.cust_manage_basic_info_and_add_cust_page.click_close_edit_accunt_button( ) # 断言账号类型 cursor_02.close() connect_02.close() cursor.close() connect.close() csv_file.close()
class TestCase108GlobSearchUserDetail(unittest.TestCase): def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.global_dev_search_page = GlobalDevSearchPage( self.driver, self.base_url) self.account_center_page_navi_bar = AccountCenterNaviBarPages( self.driver, self.base_url) self.driver.set_window_max() self.global_account_search_page = GlobalAccountSearchPage( self.driver, self.base_url) self.log_in_base = LogInBase(self.driver, self.base_url) self.global_search_page_read_csv = GlobleSearchPageReadCsv() self.search_sql = SearchSql() self.driver.wait(1) self.connect_sql = ConnectSql() self.assert_text = AssertText() self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_case_global_search_user_detail(self): # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in() self.log_in_base.click_account_center_button() self.global_dev_search_page.click_easy_search() # 关闭 self.global_dev_search_page.close_search() sleep(2) self.global_dev_search_page.click_easy_search() # 选择用户搜索 self.global_dev_search_page.click_account_search() # self.global_dev_search_page.click_search_buttons() user_name = self.global_dev_search_page.get_user_name_in_user_search() user_type = self.global_dev_search_page.get_user_type_in_user_search() user_account = self.global_dev_search_page.get_user_account_in_user_search( ) # 点用户详情 self.global_dev_search_page.click_detail_in_user_search() # 用户信息 self.global_dev_search_page.click_user_info_in_user_detail() # 获取用户信息中用户名称,用户类型、用户账号、上级用户 user_name_in_detail = self.global_dev_search_page.get_user_name_in_detail( ) self.assertIn(user_name, user_name_in_detail) # user_type_in_detail = self.global_dev_search_page.get_user_type_in_detail() # self.assertEqual(user_type, user_type_in_detail) uesr_account_in_detail = self.global_dev_search_page.get_user_account_in_detail( ) self.assertEqual(user_account, uesr_account_in_detail) user_account_input_value = self.global_dev_search_page.get_user_account_input_value_in_detail( ) self.assertEqual('true', user_account_input_value) get_up_user_name = self.global_dev_search_page.get_up_user_name_in_detail( ) get_up_user_input_value = self.global_dev_search_page.get_up_user_input_value_in_detail( ) self.assertEqual('true', get_up_user_input_value) # 查询选中用户的上级 connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() get_up_account_sql = "select parentId from user_info where account = '%s';" % user_account cursor.execute(get_up_account_sql) get_up_account = cursor.fetchall() up_account_id = get_up_account[0][0] get_up_name_sql = "select nickName from user_info where userId = '%s';" % up_account_id cursor.execute(get_up_name_sql) get_up_name = cursor.fetchall() up_account = get_up_name[0][0] cursor.close() connect.close() self.assertEqual(get_up_user_name, up_account) # 验证右侧的客户数是否可以搜索 # 搜索没有的数据 text = self.global_dev_search_page.search_user_in_user_info('无数据') self.assertIn(self.assert_text.account_center_page_no_data_text(), text) # 循环点击五次 for n in range(5): self.global_dev_search_page.swith_to_search_frame() self.driver.click_element( 'x,//*[@id="complex_userInfo_tree_complexUpdate_%s_a"]' % str(n + 15)) get_up_user_name = self.global_dev_search_page.get_up_user_name_in_details( ) select_up_name = self.driver.get_text( 'x,//*[@id="complex_userInfo_tree_complexUpdate_%s_span"]' % str(n + 15)) # self.assertEqual(get_up_user_name, select_up_name) sleep(2) self.driver.default_frame() # 点击销售设备 self.global_dev_search_page.click_sale_dev_in_user_info() # 获取销售的对象 sale_user_name = self.global_dev_search_page.get_sale_user_name() self.assertEqual(user_name, sale_user_name) # 点击新增客户 self.global_dev_search_page.click_add_user_in_user_info() # 获取新增客户默认的上级 up_user_in_add_user = self.global_dev_search_page.get_up_user_in_add_user( ) self.assertIn(user_name, up_user_in_add_user) # 验证账号 # 为空 self.global_dev_search_page.check_add_user_account_input_in_user_info( '') self.global_dev_search_page.click_save_add_user() text = self.global_dev_search_page.get_text_account_input_expertion() self.assertEqual(self.assert_text.cust_page_user_account_not_null(), text) # 小于3位 self.global_dev_search_page.check_add_user_account_input_in_user_info( '12') self.global_dev_search_page.click_save_add_user() text = self.global_dev_search_page.get_text_account_input_expertion() self.assertEqual(self.assert_text.cust_page_user_account_len(), text) # 验证最大长度 get_user_account_input_max_len = self.global_dev_search_page.get_user_account_input_max_len( ) self.assertEqual('30', get_user_account_input_max_len) # 验证客户名称 # 为空 self.global_dev_search_page.check_add_user_name_input_in_user_info('') self.global_dev_search_page.click_save_add_user() text = self.global_dev_search_page.get_text_name_input_expertion() self.assertEqual(self.assert_text.cust_page_user_name_not_null(), text) # 小于3位 self.global_dev_search_page.check_add_user_name_input_in_user_info( '12') self.global_dev_search_page.click_save_add_user() text = self.global_dev_search_page.get_text_name_input_expertion() self.assertEqual(self.assert_text.cust_page_user_name_more_than_3s(), text) # 密码 # 为空 self.global_dev_search_page.click_add_user_password_first_input_in_user_info( '') self.global_dev_search_page.click_save_add_user() get_first_password_text = self.global_dev_search_page.get_first_password_text( ) self.assertEqual(self.assert_text.cust_page_user_password_not_nulls(), get_first_password_text) # 小于6位 self.global_dev_search_page.click_add_user_password_first_input_in_user_info( '12qw') self.global_dev_search_page.click_add_user_password_second_input_in_user_info( '12qw') self.global_dev_search_page.click_save_add_user() get_first_password_text = self.global_dev_search_page.get_first_password_text( ) self.assertEqual(self.assert_text.cust_page_user_password_len(), get_first_password_text) # 全数字 self.global_dev_search_page.click_add_user_password_first_input_in_user_info( '121212') self.global_dev_search_page.click_add_user_password_second_input_in_user_info( '121212') self.global_dev_search_page.click_save_add_user() get_first_password_text = self.global_dev_search_page.get_first_password_text( ) self.assertEqual( self.assert_text.account_center_page_password_formart_text(), get_first_password_text) # 全字母 self.global_dev_search_page.click_add_user_password_first_input_in_user_info( 'qwerqw') self.global_dev_search_page.click_add_user_password_second_input_in_user_info( 'qwerqw') self.global_dev_search_page.click_save_add_user() get_first_password_text = self.global_dev_search_page.get_first_password_text( ) self.assertEqual( self.assert_text.account_center_page_password_formart_text(), get_first_password_text) # 两次密码不一致 self.global_dev_search_page.click_add_user_password_first_input_in_user_info( 'qwerqw123') self.global_dev_search_page.click_add_user_password_second_input_in_user_info( 'qwerqw2324') self.global_dev_search_page.click_save_add_user() get_second_password_text = self.global_dev_search_page.get_second_password_text( ) self.assertEqual(self.assert_text.cust_page_password_unlike(), get_second_password_text)