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 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.search_sql = SearchSql() self.assert_text = AssertText() self.assert_text2 = AssertText2() 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 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.assert_text = AssertText() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1)
class TestCase119LoginWithRememberMe(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_base = LogInBaseServer(self.driver, self.base_url) self.driver.set_window_max() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_login_with_remember_me(self): '''测试登录时勾选记住我''' # 打开途强在线首页-登录页 self.base_page.open_page() self.log_in_base.log_in() # 点账户中心 self.account_center_page_navi_bar.click_account_center_button() # 判断登录成功后跳转页面是否正确 actual_url = self.driver.get_current_url() expect_url = self.base_url + "/customer/toAccountCenter" self.assertEqual(expect_url, actual_url, "登录成功后页面跳转错误") sleep(1) # 成功退出系统 self.account_center_page_navi_bar.usr_logout() # 判断是否成功退出系统 self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "退出系统失败") # 验证退出系统后“记住我”是否是已勾选状态 box_status = self.login_page.check_remember_me() self.assertEqual(True, box_status, '记住密码失败')
def objectSetup(self, oneTimeSetUp): self.lp = LoginPage(self.driver)
def classSetup(self, oneTimeSetUp): self.lp = LoginPage(self.driver) self.ts = TestStatus(self.driver) self.hp = HomePage(self.driver)
def classSetup(self): self.lp = LoginPage(self.driver) self.ts = TestStatus(self.driver) self.hp = HomePage(self.driver) self.ad = AddressPage(self.driver)
class TestCase03OrgManageAddOrgException2(unittest.TestCase): # 测试部门管理新增公司部门功能异常情况-部门名称已存在 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.organize_management = OrganizeManagement(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.organize_management_read_csv = OrganizeManagementReadCsv() self.driver.set_window_max() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.test_user_login() def tearDown(self): self.driver.quit_browser() def test_add_org_exception2(self): # 通过csv测试新增公司部门功能异常情况-部门名称已存在 # 获取当前登录账户 log_in_account = self.user_center.get_login_account() print(log_in_account) csv_file = self.user_center_read_csv.read_csv( 'add_org_info_exception2.csv') csv_data = csv.reader(csv_file) for row in csv_data: add_org_info_exception = { "add_org_name": row[0], "add_org_tel": row[1], "exception_text": row[2], } # 点击进入部门管理 self.organize_management.click_org_manage() # 点击新增公司部门 self.organize_management.click_add_org() # 验证上级部门是否显示正确 sup_org_name = self.organize_management.get_sup_org_name() # 数据库查询当前登录账户的上级部门 sup_org_name_by_aql = self.organize_management.get_user_sup_org_by_sql( log_in_account) self.assertEqual(sup_org_name, sup_org_name_by_aql) # 选择上级部门 self.organize_management.choose_sup_org() # 填写新增部门名称 self.organize_management.input_add_org_name( add_org_info_exception['add_org_name']) # 填写联系方式 self.organize_management.input_add_org_tel( add_org_info_exception['add_org_tel']) # 点击保存按钮 self.organize_management.click_add_org_save() # 跳出最外层frame self.organize_management.switch_to_default_content() # 获取名称重复异常提示 text = self.organize_management.get_add_org_exception2() self.assertEqual(add_org_info_exception['exception_text'], text) # 切入外层frame self.organize_management.switch_to_1_frame() # 切入内层frame self.organize_management.switch_to_2_frame() # 关闭新增公司部门框 self.organize_management.click_add_org_close() # 跳出最外层frame self.organize_management.switch_to_default_content() # 从数据库查询验证新增失败 new_org_name = self.organize_management.get_add_org_by_sql( log_in_account) self.assertNotEqual(new_org_name, add_org_info_exception['add_org_name']) self.driver.wait(1) csv_file.close() # 退出登录 self.user_center.logout()
class TestCase122LoginEnterThirdWebsite(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.driver.set_window_max() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_third_website(self): '''测试登录页底部第三方链接''' websites = ["可信网站", "网络警察", "公共信息网络安全监察", "不良信息举报中心", "工商网监"] # 打开途强在线首页-登录页 self.base_page.open_page() # 获取网站个数 url = self.base_url count = self.login_page.get_login_page_website_count(url) # 获取当前窗口句柄 tuqiang_handle = self.driver.get_current_window_handle() try: # 点击底部第三方链接-可信网站 expect_url_00 = "https://ss.knet.cn/verifyseal.dll?sn=e16112844030065399aooh000000&ct=df&a=1&pa=0.5438364866062911" self.login_page.enter_third_party_website(websites[0], count) self.driver.wait() # 获取当前所有窗口句柄 all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != tuqiang_handle: self.driver.switch_to_window(handle) self.driver.wait(1) web_url_00 = self.driver.get_current_url() # 判断当前第三方链接跳转是否正确 self.assertEqual(expect_url_00, web_url_00, "当前第三方链接跳转错误") self.driver.close_window() self.driver.switch_to_window(tuqiang_handle) print("有可信网站") except: print("没有可信网站############") # 点击底部第三方链接-01 expect_url_01 = "http://www.cyberpolice.cn/wfjb/" self.login_page.enter_third_party_website(websites[1], count) self.driver.wait() # 获取当前所有窗口句柄 all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != tuqiang_handle: self.driver.switch_to_window(handle) self.driver.wait(1) web_url_01 = self.driver.get_current_url() # 判断当前第三方链接跳转是否正确 self.assertEqual(expect_url_01, web_url_01, "当前第三方链接跳转错误") self.driver.wait() self.driver.close_window() self.driver.switch_to_window(tuqiang_handle) # 点击底部第三方链接-02 self.driver.switch_to_window(tuqiang_handle) self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "回到原窗口失败") expect_url_02 = "http://www.500wan.com/pages/info/about/wangan/index.htm" self.login_page.enter_third_party_website(websites[2], count) self.driver.wait() # 获取当前所有窗口句柄 all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != tuqiang_handle: self.driver.switch_to_window(handle) self.driver.wait(1) web_url_02 = self.driver.get_current_url() # 判断当前第三方链接跳转是否正确 self.assertEqual(expect_url_02, web_url_02, "当前第三方链接跳转错误") self.driver.wait() self.driver.close_window() self.driver.switch_to_window(tuqiang_handle) # 点击底部第三方链接-03 self.driver.switch_to_window(tuqiang_handle) self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "回到原窗口失败") expect_url_03 = "http://www.12377.cn/" self.login_page.enter_third_party_website(websites[3], count) self.driver.wait() # 获取当前所有窗口句柄 all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != tuqiang_handle: self.driver.switch_to_window(handle) self.driver.wait(1) web_url_03 = self.driver.get_current_url() # 判断当前第三方链接跳转是否正确 self.assertEqual(expect_url_03, web_url_03, "当前第三方链接跳转错误") self.driver.wait() self.driver.close_window() self.driver.switch_to_window(tuqiang_handle) self.driver.switch_to_window(tuqiang_handle) self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "回到原窗口失败") expect_url_04 = "http://szcert.ebs.org.cn/2a950f00-00fb-495c-8e30-5a04100f9b17" self.login_page.enter_third_party_website(websites[4], count) self.driver.wait() # 获取当前所有窗口句柄 all_handles = self.driver.get_all_window_handles() for handle in all_handles: if handle != tuqiang_handle: self.driver.switch_to_window(handle) self.driver.wait(1) web_url_04 = self.driver.get_current_url() # 判断当前第三方链接跳转是否正确 self.assertEqual(expect_url_04, web_url_04, "当前第三方链接跳转错误") self.driver.wait() self.driver.close_window() self.driver.switch_to_window(tuqiang_handle) self.driver.switch_to_window(tuqiang_handle) self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "回到原窗口失败")
class TestCase010AccountCenterModifyPasswd(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_read_csv = AccountCenterPageReadCsv() 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_account_center_modify_info(self): '''通过csv测试修改密码功能''' csv_file = self.account_center_page_read_csv.read_csv( 'user_to_modify_passwd.csv') csv_data = csv.reader(csv_file) for row in csv_data: user_to_modify_passwd = { "account": row[0], "old_passwd": row[1], "new_passwd": row[2], } # 打开途强在线首页-登录页 self.base_page.open_page() # 登录账号 self.login_page.user_login(user_to_modify_passwd["account"], user_to_modify_passwd["old_passwd"]) self.driver.wait() self.account_center_page_navi_bar.click_account_center_button() # 招呼栏修改资料 modify_status = self.account_center_page_navi_bar.modify_user_passwd( user_to_modify_passwd["old_passwd"], user_to_modify_passwd["new_passwd"]) # 判断是否修改成功 # self.assertEqual("密码修改成功", modify_status, "密码修改失败") # 点击确定 self.account_center_page_navi_bar.modify_passwd_success_comfrim() # 判断点击确定后是否关闭弹框并回到登录页 self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "修改成功后页面跳转错误") # 使用旧密码登录 self.login_page.user_login(user_to_modify_passwd["account"], user_to_modify_passwd["old_passwd"]) self.assertEqual(self.assert_text.log_in_page_password_error(), self.login_page.get_exception_text(), "旧密码登录,提示不一致") # 新密码登录账号 self.login_page.user_login(user_to_modify_passwd["account"], user_to_modify_passwd["new_passwd"]) self.driver.wait() self.account_center_page_navi_bar.click_account_center_button() # 招呼栏修改资料 modify_status = self.account_center_page_navi_bar.modify_user_passwd( user_to_modify_passwd["new_passwd"], user_to_modify_passwd["old_passwd"]) # 判断是否修改成功 # self.assertEqual("密码修改成功", modify_status, "密码修改失败") # 点击确定 self.account_center_page_navi_bar.modify_passwd_success_comfrim() # 判断点击确定后是否关闭弹框并回到登录页 self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "修改成功后页面跳转错误") csv_file.close()
class TestCase04RoleManageEditRole(unittest.TestCase): # 测试角色管理修改角色 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.role_management = RoleManagement(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.role_management_read_csv = RoleManagementReadCsv() 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_edit_role(self): # 通过csv测试修改角色功能 csv_file = self.role_management_read_csv.read_csv('edit_role_info.csv') csv_data = csv.reader(csv_file) for row in csv_data: edit_role_info = { "account": row[0], "password": row[1], "search_key": row[2], "edit_role_name": row[3], "edit_role_description": row[4], "edit_role_limit": row[5], } # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.user_login(edit_role_info['account'], edit_role_info['password']) # 判断登录成功后招呼栏的用户名是否正确 username = self.user_center.get_username() # 从数据库获取登录账号的用户名 account_info = self.user_center.get_account_info_by_sql( edit_role_info['account']) print(account_info) account_name = account_info[1] self.assertEqual(account_name, username, '登录成功后招呼栏的用户名错误') # 点击进入角色管理 self.role_management.click_role_manage() # 查找11111角色 self.role_management.search_role(edit_role_info['search_key']) # 获取页面查找结果 search_role_name_01 = self.role_management.get_search_result_one() # 查询数据库获取搜索结果 role_info_00 = self.role_management.get_search_result_by_sql( edit_role_info['account'], edit_role_info['search_key']) role_name_00 = role_info_00[0] role_desc_00 = role_info_00[1] self.assertEqual(search_role_name_01, role_name_00) # 点击修改 self.role_management.click_edit_role() # 切入内层frame self.role_management.switch_to_2_frame() # 获取当前显示的角色名称是否与未修改前一致 current_role_name_01 = self.role_management.get_current_role_name() self.assertEqual(search_role_name_01, current_role_name_01) # 获取显示的角色描述是否与未修改前一致 current_role_desc = self.role_management.get_current_role_desc() self.assertEqual(role_desc_00, current_role_desc) # 输入角色名称 self.role_management.input_add_role_name( edit_role_info['edit_role_name']) # 输入角色描述 self.role_management.input_add_role_description( edit_role_info['edit_role_description']) # 选择角色权限 self.role_management.choose_add_role_limit( edit_role_info['edit_role_limit']) # 点击取消 self.role_management.click_add_role_dismiss() # 数据库查询是否修改失败 role_info_01 = self.role_management.get_search_result_by_sql( edit_role_info['account'], edit_role_info['search_key']) role_name_01 = role_info_01[0] role_desc_01 = role_info_01[1] self.assertEqual(role_name_00, role_name_01) self.assertEqual(role_desc_00, role_desc_01) # 点击修改 self.role_management.click_edit_role() # 切入内层frame self.role_management.switch_to_2_frame() # 获取当前显示的角色名称是否与未修改前一致 current_role_name_01 = self.role_management.get_current_role_name() self.assertEqual(search_role_name_01, current_role_name_01) # 获取显示的角色描述是否与未修改前一致 current_role_desc = self.role_management.get_current_role_desc() self.assertEqual(role_desc_00, current_role_desc) # 输入角色名称 self.role_management.input_add_role_name( edit_role_info['edit_role_name']) # 输入角色描述 self.role_management.input_add_role_description( edit_role_info['edit_role_description']) # 选择角色权限 self.role_management.choose_add_role_limit( edit_role_info['edit_role_limit']) # 点击关闭按钮 self.role_management.click_add_role_close() # 数据库查询是否修改失败 role_info_02 = self.role_management.get_search_result_by_sql( edit_role_info['account'], edit_role_info['search_key']) role_name_02 = role_info_02[0] role_desc_02 = role_info_02[1] self.assertEqual(role_name_00, role_name_02) self.assertEqual(role_desc_00, role_desc_02) # 点击修改 self.role_management.click_edit_role() # 切入内层frame self.role_management.switch_to_2_frame() # 获取当前显示的角色名称是否与未修改前一致 current_role_name_01 = self.role_management.get_current_role_name() self.assertEqual(search_role_name_01, current_role_name_01) # 获取显示的角色描述是否与未修改前一致 current_role_desc = self.role_management.get_current_role_desc() self.assertEqual(role_desc_00, current_role_desc) # 输入角色名称 self.role_management.input_add_role_name( edit_role_info['edit_role_name']) # 输入角色描述 self.role_management.input_add_role_description( edit_role_info['edit_role_description']) # 选择角色权限 self.role_management.choose_add_role_limit( edit_role_info['edit_role_limit']) # 点击保存按钮 self.role_management.click_add_role_save() # 数据库查询是否修改成功 role_info_03 = self.role_management.get_search_result_by_sql( edit_role_info['account'], edit_role_info['edit_role_name']) role_name_03 = role_info_03[0] role_desc_03 = role_info_03[1] self.assertNotEqual(role_name_00, role_name_03) self.assertNotEqual(role_desc_00, role_desc_03) # 跳出外层frame self.role_management.switch_to_default_content() # 退出登录 self.user_center.logout() csv_file.close()
class TestCase01LoginSuccess(unittest.TestCase): # 测试用户账号登录成功 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.driver.set_window_max() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_user_login_by_csv(self): '''通过csv测试用户账户成功登录和成功退出功能''' data = ["部门管理", "设备", "贷款客户", "车辆监控中心", "统计报表", "设置"] csv_file = self.log_in_page_read_csv.read_csv('login_account.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) # 判断登录成功后招呼栏的用户名是否正确 username = self.user_center.get_username() # 从数据库获取登录账号的用户名 account_info = self.user_center.get_account_info_by_sql( user_to_login['account']) print(account_info) account_name = account_info[1] self.assertEqual(account_name, username, '登录成功后招呼栏的用户名错误') # 验证模块 module = self.user_center.get_module_name() print(module) self.assertEqual(data, module, "用户账号登录,模块显示错误") # 取消退出系统 sleep(2) self.user_center.logout_dismiss() # 关闭退出系统弹框 sleep(2) self.user_center.logout_close() # 成功退出系统 sleep(2) self.user_center.logout() # 再次登录判断是否成功退出到登录页并登录成功 self.login_page.user_login(user_to_login["account"], user_to_login["passwd"]) # # 成功退出系统 sleep(2) self.user_center.logout() csv_file.close()
def classSetup(self, oneTimeSetUp): self.up = UsersPage(self.driver) self.ts = StatusTest(self.driver) self.nav = NavigationPage(self.driver) self.lp = LoginPage(self.driver)
class TestCase05RoleManageSearchRole(unittest.TestCase): # 测试角色管理搜索角色 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.role_management = RoleManagement(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.role_management_read_csv = RoleManagementReadCsv() 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_search_role(self): # 通过csv测试搜索角色功能 csv_file = self.role_management_read_csv.read_csv('search_role.csv') csv_data = csv.reader(csv_file) for row in csv_data: search_role = { "account": row[0], "password": row[1], "search_name": row[2], } # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.user_login(search_role['account'], search_role['password']) # 判断登录成功后招呼栏的用户名是否正确 username = self.user_center.get_username() # 从数据库获取登录账号的用户名 account_info = self.user_center.get_account_info_by_sql( search_role['account']) print(account_info) account_name = account_info[1] self.assertEqual(account_name, username, '登录成功后招呼栏的用户名错误') # 点击进入角色管理 self.role_management.click_role_manage() # 输入搜索关键词进行搜索 self.role_management.search_role(search_role['search_name']) # 获取搜索结果 num = int(self.role_management.get_search_result_num()) role_name = self.role_management.get_search_result_all() # 数据库查询搜索结果 role_name_by_sql = self.role_management.get_search_result_rolename_by_sql( search_role['account'], search_role['search_name']) num_by_sql = self.role_management.get_search_result_num_by_sql( search_role['account'], search_role['search_name']) # 验证搜索结果是否一致 self.assertEqual(num, num_by_sql) self.assertEqual(set(role_name), set(role_name_by_sql)) # 跳出外层frame self.role_management.switch_to_default_content() # 退出登录 self.user_center.logout() csv_file.close()
class TestCase01OrgManageAddRole(unittest.TestCase): # 测试角色管理新增角色 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.role_management = RoleManagement(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.role_management_read_csv = RoleManagementReadCsv() 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_add_role(self): # 通过csv测试新增角色功能 csv_file = self.role_management_read_csv.read_csv('add_role.csv') csv_data = csv.reader(csv_file) for row in csv_data: add_role = { "account": row[0], "password": row[1], "add_role_name": row[2], "add_role_description": row[3], "add_role_limit": row[4], } # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.user_login(add_role['account'], add_role['password']) # 判断登录成功后招呼栏的用户名是否正确 username = self.user_center.get_username() # 从数据库获取登录账号的用户名 account_info = self.user_center.get_account_info_by_sql( add_role['account']) print(account_info) account_name = account_info[1] self.assertEqual(account_name, username, '登录成功后招呼栏的用户名错误') # 点击进入角色管理 self.role_management.click_role_manage() # 点击创建角色 self.role_management.click_add_role() # 切入内层frame self.role_management.switch_to_2_frame() # 输入角色名称 self.role_management.input_add_role_name(add_role['add_role_name']) # 输入角色描述 self.role_management.input_add_role_description( add_role['add_role_description']) # 选择角色权限 self.role_management.choose_add_role_limit( add_role['add_role_limit']) # 点击取消 self.role_management.click_add_role_dismiss() # 从数据库查询验证角色未创建成功 new_role_name_01 = self.role_management.get_add_role_by_sql( add_role['account']) self.assertNotEqual(new_role_name_01, add_role['add_role_name']) self.driver.wait(1) # 点击创建角色 self.role_management.click_add_role() # 切入内层frame self.role_management.switch_to_2_frame() # 输入角色名称 self.role_management.input_add_role_name(add_role['add_role_name']) # 输入角色描述 self.role_management.input_add_role_description( add_role['add_role_description']) # 选择角色权限 self.role_management.choose_add_role_limit( add_role['add_role_limit']) # 点击关闭按钮 self.role_management.click_add_role_close() # 从数据库查询验证角色未创建成功 new_role_name_02 = self.role_management.get_add_role_by_sql( add_role['account']) self.assertNotEqual(new_role_name_02, add_role['add_role_name']) self.driver.wait(1) # 点击创建角色 self.role_management.click_add_role() # 切入内层frame self.role_management.switch_to_2_frame() # 输入角色名称 self.role_management.input_add_role_name(add_role['add_role_name']) # 输入角色描述 self.role_management.input_add_role_description( add_role['add_role_description']) # 选择角色权限 self.role_management.choose_add_role_limit( add_role['add_role_limit']) # 点击保存按钮 self.role_management.click_add_role_save() # 跳出最外层frame self.role_management.switch_to_default_content() # 从数据库查询验证角色创建成功 new_role_name_03 = self.role_management.get_add_role_by_sql( add_role['account']) self.assertEqual(new_role_name_03, add_role['add_role_name']) self.driver.wait(1) # 退出登录 self.user_center.logout() csv_file.close()
class TestCase02LoginException(unittest.TestCase): # 测试登录异常情况 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.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_user_login_exception(self): '''测试用户账户登录异常''' # 打开风控首页-登录页 self.base_page.open_page() # 第一种,密码和账号都为空 self.login_page.account_input('') self.login_page.password_input('') self.login_page.login_button_click() self.driver.wait() self.assertEqual('登录账号不能为空', self.login_page.get_exception_text()) # 第二种,密码和账号其中一个不为空 self.login_page.account_input('syntest') self.login_page.password_input('') self.login_page.login_button_click() self.driver.wait() self.assertEqual('登陆密码不能为空', self.login_page.get_exception_text()) self.login_page.account_input('') self.login_page.password_input('jimi123') self.login_page.login_button_click() self.driver.wait() self.assertEqual('登录账号不能为空', self.login_page.get_exception_text()) # 第三种,账号不存在 self.login_page.account_input('abdwerewf') self.login_page.password_input('123') self.login_page.login_button_click() self.driver.wait() self.assertEqual('账号不存在或者已经停用', self.login_page.get_exception_text()) # 第四种,密码错误 self.login_page.account_input('syntest') self.login_page.password_input('jimi') self.login_page.login_button_click() self.driver.wait() self.assertEqual('登录密码验证错误', self.login_page.get_exception_text())
def classSetup(self, oneTimeSetUp): self.lp = LoginPage(self.driver) self.ts = StatusTest(self.driver)
class TestCase02LoanReport(unittest.TestCase): # 逾期还款统计 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.statistics_report = StatisticsReport(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.statistics_report_read_csv = StatisticsReportReadCsv() 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_loan_report(self): # 测试逾期还款统计 # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.test_statistics_login_user_normal() # 获取当前登录账号 log_in_account = self.user_center.get_login_account() print(log_in_account) # 从数据库获取登录账号的客户名称、电话 account_info = self.user_center.get_account_info_by_sql(log_in_account) print(account_info) # 获取修改资料里面的信息 user_info = self.user_center.get_user_info() # 断言 self.assertEqual(log_in_account, user_info['login_account']) self.assertEqual(account_info[1], user_info['name']) self.assertEqual(account_info[2], user_info['tel']) # 点击统计报表 self.statistics_report.click_statistics_report() # 点击进入逾期还款报表 self.statistics_report.click_loan() # 切入frame self.statistics_report.switch_to_myframe() csv_file = self.statistics_report_read_csv.read_csv('loan_info.csv') csv_data = csv.reader(csv_file) for row in csv_data: loan_info = { "times": row[0], } # 勾选包含下级车主 self.statistics_report.click_contain_lower() # 选择逾期次数 self.statistics_report.choose_loan_times(loan_info['times']) # 点击搜索 self.statistics_report.click_loan_search() # 获取搜索结果 result_info = self.statistics_report.get_loan_search_result() print(result_info) # 获取数据库查询结果 info = self.statistics_report.get_loan_search_result_by_sql( log_in_account) print(info) # 验证搜索结果是否一致 self.assertEqual(result_info, info) # 跳出frame self.statistics_report.switch_default() # 退出登录 self.user_center.logout()
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 TestCase01LoanCustomerInput(unittest.TestCase): # 贷款客户信息录入 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.loan_customer = LoanCustomer(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.loan_customer_read_csv = LoanCustomerReadCsv() self.driver.set_window_max() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_user_center_modify_info(self): # 通过csv测试贷款客户信息录入 csv_file = self.loan_customer_read_csv.read_csv('loan_customer_input_info.csv') csv_data = csv.reader(csv_file) for row in csv_data: loan_customer_input_info = { "name": row[0], "tel": row[1], "type": row[2], "ID": row[3], "sex": row[4], "com": row[5], "car_num": row[6], "model": row[7], "engi_num": row[8], "frame_num": row[9], "car_type": row[10], "loan_money": row[11], "loan_deadline": row[12], "current_balance": row[13], "pay_type": row[14], "pay_date": row[15], "contract_number": row[16], "imei": row[17], "install_address": row[18], "install_person": row[19], } # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.test_user_login() # 获取当前登录账号 log_in_account = self.user_center.get_login_account() print(log_in_account) # 从数据库获取登录账号的客户名称、电话 account_info = self.user_center.get_account_info_by_sql(log_in_account) print(account_info) # 获取修改资料里面的信息 user_info = self.user_center.get_user_info() # 断言 self.assertEqual(log_in_account, user_info['login_account']) self.assertEqual(account_info[1], user_info['name']) self.assertEqual(account_info[2], user_info['tel']) # 点击进入贷款客户录入 self.loan_customer.click_loan_customer_input() # 切入外层frame self.loan_customer.switch_to_1_frame() # 录入车主信息 # 录入车主姓名 self.loan_customer.input_owner_name(loan_customer_input_info['name']) # 录入车主电话 self.loan_customer.input_owner_tel(loan_customer_input_info['tel']) # 选择车主证件类型 self.loan_customer.choose_owner_ID_type(loan_customer_input_info['type']) # 输入车主证件号 self.loan_customer.input_owner_ID(loan_customer_input_info['ID']) # 选择车主性别 self.loan_customer.choose_owner_sex(loan_customer_input_info['sex']) # 选择车主贷款单位 self.loan_customer.choose_owner_loan_com(loan_customer_input_info['com']) # 保存 self.loan_customer.save_owner_info() # 验证是否保存成功 # 录入车辆信息 # 输入车牌号 self.loan_customer.input_car_num(loan_customer_input_info['car_num']) # 输入车型 self.loan_customer.input_car_model(loan_customer_input_info['model']) # 输入发动机号 self.loan_customer.input_car_engi_num(loan_customer_input_info['engi_num']) # 输入车架号 self.loan_customer.input_car_frame_num(loan_customer_input_info['frame_num']) # 选择车辆类型 self.loan_customer.choose_car_type(loan_customer_input_info['car_type']) # 保存车辆信息 self.loan_customer.save_car_info() # 验证是否保存成功 # 录入贷款信息 # 输入贷款日期 self.loan_customer.input_loan_date() # 输入贷款金额 self.loan_customer.input_loan_money(loan_customer_input_info['loan_money']) # 输入贷款期限 self.loan_customer.input_loan_deadline(loan_customer_input_info['loan_deadline']) # 输入应还金额 self.loan_customer.input_current_balance(loan_customer_input_info['current_balance']) # 选择还款方式 self.loan_customer.choose_pay_type(loan_customer_input_info['pay_type']) # 选择还款日 self.loan_customer.choose_pay_date(loan_customer_input_info['pay_date']) # 输入合同编号 self.loan_customer.input_contract_number(loan_customer_input_info['contract_number']) # 保存贷款信息 self.loan_customer.save_loan_info() # 验证是否保存成功 # 录入安装设备 # 点击安装设备 self.loan_customer.click_install_dev() # 输入Imei self.loan_customer.input_dev_imei(loan_customer_input_info['imei']) # 选择安装时间 self.loan_customer.choose_install_time() # 输入安装地址 self.loan_customer.input_install_address(loan_customer_input_info['install_address']) # 输入安装人员 self.loan_customer.input_install_person(loan_customer_input_info['install_person']) # 保存安装信息 self.loan_customer.save_install_info() # 跳出frame1 self.loan_customer.switch_out_frame1() # 验证是否保存成功 # 退出登录 self.user_center.logout() csv_file.close()
class TestCase03UserCenterModifyPassword(unittest.TestCase): # 测试个人中心修改密码 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.driver.set_window_max() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_user_center_modify_password(self): # 通过csv测试修改密码功能 csv_file = self.user_center_read_csv.read_csv( 'user_to_modify_password.csv') csv_data = csv.reader(csv_file) for row in csv_data: user_to_modify_password = { "account": row[0], "old_passwd": row[1], "new_passwd": row[2], } # 打开途强在线首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.user_login(user_to_modify_password['account'], user_to_modify_password['old_passwd']) # 修改密码 self.user_center.click_edit_password() self.user_center.input_old_password( user_to_modify_password['old_passwd']) self.user_center.input_new_password( user_to_modify_password['new_passwd']) self.user_center.input_password_again( user_to_modify_password['new_passwd']) # 确认 self.user_center.click_edit_password_confirm() self.driver.wait() # 用旧密码登录,验证提示 self.login_page.user_login(user_to_modify_password['account'], user_to_modify_password['old_passwd']) exception_text = self.login_page.get_exception_text() self.assertEqual('登录密码验证错误', exception_text) self.driver.wait() # 用新密码登录,验证是否修改成功 self.login_page.user_login(user_to_modify_password['account'], user_to_modify_password['new_passwd']) # 判断登录成功后招呼栏的用户名是否正确 username = self.user_center.get_username() # 从数据库获取登录账号的用户名 account_info = self.user_center.get_account_info_by_sql( user_to_modify_password['account']) print(account_info) account_name = account_info[1] self.assertEqual(account_name, username, '登录成功后招呼栏的用户名错误') # 退出登录 self.user_center.logout() csv_file.close()
class TestCase02UserManageAddUserException1(unittest.TestCase): # 测试用户管理新增用户功能异常情况 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.user_management = UserManagement(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.user_management_read_csv = UserManagementReadCsv() self.driver.set_window_max() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.test_user_login() def tearDown(self): self.driver.quit_browser() def test_add_user_exception1(self): # 通过csv测试新增用户功能异常情况 # 获取当前登录账户 log_in_account = self.user_center.get_login_account() print(log_in_account) csv_file = self.user_management_read_csv.read_csv('add_user_exception1.csv') csv_data = csv.reader(csv_file) for row in csv_data: add_user_exception = { "add_user_name": row[0], "add_login_user": row[1], "add_login_passwd": row[2], "add_user_phone": row[3], "add_user_role":row[4], "exception_text": row[5], } # 点击进入用户管理 self.user_management.click_user_manage() # 点击新增用户 self.user_management.click_add_user() # 切入内层frame self.user_management.switch_to_2_frame() # 输入新增用户名 self.user_management.input_add_user_name(add_user_exception['add_user_name']) # 输入登陆账号 self.user_management.input_add_login_user(add_user_exception['add_login_user']) # 输入登录密码 self.user_management.input_add_login_passwd(add_user_exception['add_login_passwd']) # 输入手机号码 self.user_management.input_add_user_phone(add_user_exception['add_user_phone']) # 判断分配用户角色 if add_user_exception['add_user_role'] == '1': self.user_management.input_add_user_role() # 选择所属公司部门 self.user_management.choose_add_user_org() # 点击保存按钮 self.user_management.click_add_user_save() # 获取异常提示 text = self.user_management.get_add_user_exception1() self.assertEqual(add_user_exception['exception_text'], text) # 关闭新增用户框 self.user_management.click_add_user_close() # 跳出最外层frame self.user_management.switch_to_default_content() # 从数据库查询验证新增失败 new_user_name = self.user_management.get_add_user_by_sql(log_in_account) self.assertNotEqual(new_user_name, add_user_exception['add_user_name']) self.driver.wait(1) csv_file.close() # 退出登录 self.user_center.logout()
class TestCase02UserCenterModifyInfoException(unittest.TestCase): # 测试个人中心修改资料 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.driver.set_window_max() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) # 打开途强在线首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.test_user_login() def tearDown(self): self.driver.quit_browser() def test_user_center_modify_info_exception(self): # 测试修改资料异常 # 1.特殊字符 special_char = "/\^<>!~%*" # 在电话中输入特殊字符 self.user_center.edit_user_info_exception('孙燕妮测试用户', special_char) # 验证 # 获取到电话的异常提醒 phone_text = self.user_center.get_phone_exception_text() self.assertEqual('请输入正确的手机号码',phone_text) # 关闭修改资料弹框 self.user_center.click_close_edit_info() # 获取修改后的当前用户电话 phone_text = self.user_center.get_user_info()['tel'] self.assertNotEqual(phone_text,special_char) # 2.验证用户名称、电话必填 # 用户名称、电话输入为空 self.user_center.edit_user_info_exception('', '') # 获取到用户名称、电话为空的异常提醒 all_null_text = self.user_center.get_name_and_phone_null_text() self.assertEqual('请输入用户名称',all_null_text) # 关闭修改资料弹框 self.user_center.click_close_edit_info() # 获取修改后的当前用户名 username_null_text = self.user_center.get_user_info()['name'] self.assertNotEqual(username_null_text, '') # 获取修改后的当前用户电话 phone_null_text = self.user_center.get_user_info()['tel'] self.assertNotEqual(phone_null_text, '') # 用户名称输入为空、电话输入正确 phone_01 = '13852654587' self.user_center.edit_user_info_exception('', phone_01) # 获取到用户名称为空的异常提醒 username_text = self.user_center.get_name_null_text() self.assertEqual('请输入用户名称',username_text) # 关闭修改资料弹框 self.user_center.click_close_edit_info() # 获取修改后的当前用户名 name_null_only_text = self.user_center.get_user_info()['name'] self.assertNotEqual(name_null_only_text, '') # 获取修改后的当前用户电话 phone01 = self.user_center.get_user_info()['tel'] self.assertNotEqual(phone01,phone_01) # 用户名输入正确、电话为空 name_01 = '孙燕妮测试用户' self.user_center.edit_user_info_exception(name_01, '') # 获取到电话为空的异常提醒 phone_null_text = self.user_center.get_phone_null_text() self.assertEqual('请输入正确的手机号码',phone_null_text) # 关闭修改资料弹框 self.user_center.click_close_edit_info() # 获取修改后的当前用户名 name01 = self.user_center.get_user_info()['name'] self.assertNotEqual(name01, name_01) # 获取修改后的当前用户电话 phone02 = self.user_center.get_user_info()['tel'] self.assertNotEqual(phone02, '') # 3.验证用户名称、电话长度限制 long_char = 'fsaffsdafsadfvczxfsdsafdfasdfasdfsdfsdfasdfasdffffffff' long_tel = '123456789456' short_tel = '1234567894' # 用户名输入超出字符长度限制、电话输入正确 tel = '13582698666' self.user_center.edit_user_info_exception(long_char, tel) # 获取到用户名超长的异常提醒 username_long_text = self.user_center.get_username_long_text() self.assertEqual('用户名称不能大于50个字符',username_long_text) # 关闭修改资料弹框 self.user_center.click_close_edit_info() # 获取修改后的当前用户名 name03 = self.user_center.get_user_info()['name'] self.assertNotEqual(name03, long_char) # 获取修改后的当前用户电话 phone03 = self.user_center.get_user_info()['tel'] self.assertNotEqual(phone03, tel) # 用户名输入正确、电话输入超出长度限制 name_04 = '孙燕妮测试' self.user_center.edit_user_info_exception(name_04, long_tel) # 获取到电话输入超长的异常提醒 long_tel_text = self.user_center.get_phone_exception_text() self.assertEqual('请输入正确的手机号码',long_tel_text) # 关闭修改资料弹框 self.user_center.click_close_edit_info() # 获取修改后的当前用户名 name04 = self.user_center.get_user_info()['name'] self.assertNotEqual(name04, name_04) # 获取修改后的当前用户电话 phone04 = self.user_center.get_user_info()['tel'] self.assertNotEqual(phone04, long_tel) # 用户名输入正确、电话输入低于正常限制 name_05 = '孙燕妮测试' self.user_center.edit_user_info_exception(name_05, short_tel) # 获取到电话输入超长的异常提醒 short_tel_text = self.user_center.get_phone_exception_text() self.assertEqual('请输入正确的手机号码', short_tel_text) # 关闭修改资料弹框 self.user_center.click_close_edit_info() # 获取修改后的当前用户名 name05 = self.user_center.get_user_info()['name'] self.assertNotEqual(name05, name_05) # 获取修改后的当前用户电话 phone05 = self.user_center.get_user_info()['tel'] self.assertNotEqual(phone05, short_tel) # 退出登录 self.user_center.logout()
class TestCase102LoginSuccessWithOrdinaryUser(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.assert_text = AssertText() 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() current_handle = self.driver.get_current_window_handle() self.base_page.change_windows_handle(current_handle) # 判断登录成功后跳转页面是否正确 actual_url = self.driver.get_current_url() expect_url = self.base_url + "/nomalUserCenter" self.assertEqual(expect_url, actual_url, "登录成功后页面跳转错误") # 验证模块 module = self.account_center_page_navi_bar.get_page_module() self.assertEqual(data, module, "用户账号登录,模块显示错误") # 判断登录成功后招呼栏的用户名是否正确 usr_info_account = self.account_center_page_navi_bar.usr_info_account( ) company_name = self.login_page.get_company_name() user_account = self.login_page.get_user_account() user_type = self.login_page.get_user_type() user_phone = self.login_page.get_user_phone() expect_usr = user_to_login["account"] self.assertEqual(expect_usr, usr_info_account) self.assertEqual(expect_usr, user_account) # 数据库获取登录账号信息 connect = self.connect_sql.connect_tuqiang_sql() cursor = connect.cursor() sql = "SELECT o.account,o.type,o.phone,o.companyName FROM user_info o WHERE o.account = '" + user_to_login[ "account"] + "';" cursor.execute(sql) user_info = cursor.fetchall() current_user_info = [] for range1 in 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[1]) self.assertEqual(type, user_type) # 当前客户公司名 if current_user_info[3] == '': self.assertEqual('', company_name) else: self.assertEqual(current_user_info[3], company_name) # 当前客户电话 if current_user_info[2] == '': self.assertEqual('', user_phone) else: self.assertEqual(current_user_info[2], user_phone) 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) 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) # 获取上级客户的信息 up_user_account = self.login_page.get_up_user_account() up_user_contact = self.login_page.get_up_user_contact() up_user_phone = self.login_page.get_up_user_phone() self.assertEqual(up_user_info[0], up_user_account) self.assertEqual(up_user_info[1], up_user_contact) self.assertEqual(up_user_info[2], up_user_phone) # 成功退出系统 sleep(2) self.account_center_page_navi_bar.usr_log_out() # 判断是否成功退出到登录页 self.assertEqual(self.base_url + "/", self.driver.get_current_url(), "退出系统失败") cursor.close() connect.close() csv_file.close()
def login(self, oneTimeSetUp): self.home = HomePage(self.driver) self.login = LoginPage(self.driver) self.login.acceptEula() self.login.loginWith("blablaUser")
def objectSetup(self, oneTimeSetUp): self.lp = LoginPage (self.driver) self.ts = TestStatus(self.driver)
class TestCase04AccountLog(unittest.TestCase): # 账号管理记录 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.operation_log = OperationLog(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.operation_log_read_csv = OperationLogReadCsv() self.driver.set_window_max() self.connect_sql = ConnectSql() self.driver.wait(1) self.driver.clear_cookies() self.driver.wait(1) def tearDown(self): self.driver.quit_browser() def test_account_log(self): # 测试账号管理记录 # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.test_log_login_user_normal() # 获取当前登录账号 log_in_account = self.user_center.get_login_account() print(log_in_account) # 从数据库获取登录账号的客户名称、电话 account_info = self.user_center.get_account_info_by_sql(log_in_account) print(account_info) # 获取修改资料里面的信息 user_info = self.user_center.get_user_info() # 断言 self.assertEqual(log_in_account, user_info['login_account']) self.assertEqual(account_info[1], user_info['name']) self.assertEqual(account_info[2], user_info['tel']) # 点击设置 self.operation_log.click_setup() # 点击进入操作日志 self.operation_log.click_operation_log() # 切入frame self.operation_log.switch_to_myframe() # 点击账号管理记录 self.operation_log.click_account_log() csv_file = self.operation_log_read_csv.read_csv('account_log.csv') csv_data = csv.reader(csv_file) for row in csv_data: account_log = { "start_time": row[0], "end_time": row[1], "type": row[2], } # 输入时间段 self.operation_log.account_input_time(account_log['start_time'], account_log['end_time']) # 选择类型 self.operation_log.account_choose_type(account_log['type']) # 点击搜索 self.operation_log.account_click_search() '''# 获取搜索结果 result_info = self.operation_log.get_account_log_search_result() print(result_info) # 获取数据库查询结果 info = self.operation_log.get_account_log_search_result_by_sql(log_in_account,account_log['start_time'],account_log['end_time']) # 验证搜索结果是否一致 self.assertEqual(result_info,info)''' # 点击重置 self.operation_log.account_click_reset() # 跳出frame self.operation_log.switch_default() # 退出登录 self.user_center.logout()
class 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()
class TestCase410CustomerManagementEditUserWebLoginLimit(unittest.TestCase): # 测试编辑客户 -- 修改用户web登录权限 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.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.assert_text2 = AssertText2() 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_edit_user_web_login_limit(self): # 打开途强在线首页-登录页 self.base_page.open_page() # 登录 self.log_in_base.log_in() # 进入客户管理页面 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) # 搜索一个客户 self.cust_manage_lower_account_page.input_search_info('abc12344') # 搜索 self.cust_manage_lower_account_page.click_search_btn() user_account = self.cust_manage_basic_info_and_add_cust_page.get_user_account_in_customer_page( ) # 点击编辑 - 取消 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_buttons( ) # 点击取消 self.cust_manage_basic_info_and_add_cust_page.click_cancel_edit() # 点击编辑 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_buttons( ) # 获取web登录权限的 self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe() web_login_status = self.cust_manage_basic_info_and_add_cust_page.get_web_login_status( ) self.driver.default_frame() if web_login_status == True: # 点击 self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe() self.cust_manage_basic_info_and_add_cust_page.click_web_login_status_ins( ) self.driver.default_frame() # 确定 self.cust_manage_basic_info_and_add_cust_page.click_ensure() # 退出登录 self.account_center_page_navi_bar.usr_logout() # 登录刚刚的账号 self.log_in_base.log_in_with_csv(user_account, 'jimi123') self.assertEqual(self.assert_text2.login_no_permissions(), self.login_page.get_exception_text()) # 登录 self.log_in_base.log_in() current_handle_01 = 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_01) # 搜索一个客户 self.cust_manage_lower_account_page.input_search_info('abc12344') # 搜索 self.cust_manage_lower_account_page.click_search_btn() # 点击编辑 - 取消 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_buttons( ) # 点击取消 self.cust_manage_basic_info_and_add_cust_page.click_cancel_edit() # 点击编辑 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_buttons( ) # 点击 self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe() self.cust_manage_basic_info_and_add_cust_page.click_web_login_status_ins( ) self.driver.default_frame() self.cust_manage_basic_info_and_add_cust_page.click_ensure() # 退出登录 self.account_center_page_navi_bar.usr_logout() # 登录刚刚的账号 self.log_in_base.log_in_with_csv(user_account, 'jimi123') hello_usr = self.account_center_page_navi_bar.usr_info_account() self.assertIn(user_account, hello_usr) elif web_login_status == False: # 点击 self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe() self.cust_manage_basic_info_and_add_cust_page.click_web_login_status_ins( ) self.driver.default_frame() self.cust_manage_basic_info_and_add_cust_page.click_ensure() # 退出登录 self.account_center_page_navi_bar.usr_logout() # 登录刚刚的账号 self.log_in_base.log_in_with_csv(user_account, 'jimi123') hello_usr = self.account_center_page_navi_bar.usr_info_account() self.assertIn(user_account, hello_usr) # 退出登录 self.account_center_page_navi_bar.usr_logout() self.log_in_base.log_in() current_handle_02 = 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_02) # 搜索一个客户 self.cust_manage_lower_account_page.input_search_info('abc12344') # 搜索 self.cust_manage_lower_account_page.click_search_btn() # 点击编辑 - 取消 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_buttons( ) # 点击取消 self.cust_manage_basic_info_and_add_cust_page.click_cancel_edit() # 点击编辑 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_buttons( ) # 点击 self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe() self.cust_manage_basic_info_and_add_cust_page.click_web_login_status_ins( ) self.driver.default_frame() # 确定 self.cust_manage_basic_info_and_add_cust_page.click_ensure() # 退出登录 self.account_center_page_navi_bar.usr_logout() # 登录刚刚的账号 self.log_in_base.log_in_with_csv(user_account, 'jimi123') self.assertEqual(self.assert_text2.login_no_permissions(), self.login_page.get_exception_text()) self.log_in_base.log_in() current_handle_03 = 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_03) # 搜索一个客户 self.cust_manage_lower_account_page.input_search_info('abc12344') # 搜索 self.cust_manage_lower_account_page.click_search_btn() # 点击编辑 - 取消 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_buttons( ) # 点击取消 self.cust_manage_basic_info_and_add_cust_page.click_cancel_edit() # 点击编辑 self.cust_manage_basic_info_and_add_cust_page.click_edit_account_buttons( ) # 点击 self.cust_manage_basic_info_and_add_cust_page.locate_to_iframe() self.cust_manage_basic_info_and_add_cust_page.click_web_login_status_ins( ) self.driver.default_frame() # 确定 self.cust_manage_basic_info_and_add_cust_page.click_ensure()
class TestCase06RoleManageDeleteRole(unittest.TestCase): # 测试角色管理删除角色 def setUp(self): self.driver = AutomateDriver() self.base_url = self.driver.base_url self.base_page = BasePage(self.driver, self.base_url) self.login_page = LoginPage(self.driver, self.base_url) self.user_center = UserCenter(self.driver, self.base_url) self.role_management = RoleManagement(self.driver, self.base_url) self.log_in_page_read_csv = LogInPageReadCsv() self.user_center_read_csv = UserCenterReadCsv() self.role_management_read_csv = RoleManagementReadCsv() 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_delete_role(self): # 通过csv测试删除角色功能 csv_file = self.role_management_read_csv.read_csv('delete_role.csv') csv_data = csv.reader(csv_file) for row in csv_data: delete_role = { "account": row[0], "passwd": row[1], "delete_role_name": row[2], } # 打开风控首页-登录页 self.base_page.open_page() sleep(1) # 登录账号 self.login_page.user_login(delete_role['account'], delete_role['passwd']) # 点击进入角色管理 self.role_management.click_role_manage() # 按名称查找角色 self.role_management.search_role(delete_role['delete_role_name']) # 点击删除 self.role_management.click_delete_role() # 跳出frame self.role_management.switch_to_default_content() # 点击取消 self.role_management.delete_role_dismiss() # 切入frame self.role_management.switch_to_1_frame() # 点击删除 self.role_management.click_delete_role() # 跳出frame self.role_management.switch_to_default_content() # 点击关闭 self.role_management.delete_role_close() # 切入frame self.role_management.switch_to_1_frame() # 点击删除 self.role_management.click_delete_role() # 跳出frame self.role_management.switch_to_default_content() # 点击确认 self.role_management.delete_role_accept() # 数据库查找验证部门是否删除成功 # 数据库查找角色 role_name_after_delete = self.role_management.get_search_result_rolename_by_sql( delete_role['account'], '') self.assertNotIn(delete_role['delete_role_name'], role_name_after_delete) # 退出登录 self.user_center.logout() csv_file.close()