def test_look_user(self, operator_phone, operator_name, usr): """ 查看用户功能测试用例 。 :param operator_phone:操作者手机号 :param operator_name: 操作者名称 :param usr: 用户手机号或姓名 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(2) self.user_page.click_user_list_menu() # 点击用户列表菜单 time.sleep(2) self.user_page.query_by_name_or_phone(usr) # 查询出指定用户 time.sleep(2) screen_shot(self.driver, "查看用户-用户列表.png") result_num = self.user_page.get_query_result_list_num() if result_num and result_num == 1: # 判断结果列表不为空且只有1条数据,则进行查看用户操作 self.user_page.click_look_btn() # 点击查看按钮 time.sleep(3) self.user_page.switch_window() # 切换窗口 screen_shot(self.driver, "查看用户-用户详情.png") self.assertEqual(usr, self.user_page.get_phone_value()) # 断言用户手机号正确 else: self.fail("用户列表为空或数据不唯一,请检查测试数据!")
def test_query_user(self, operator_phone, operator_name, company, usr, role): """ 用户查询测试用例 。 :param operator_phone: 操作者手机号 :param operator_name: 操作者名称 :param company: 公司名称 :param usr: 用户手机号或姓名 :param role: 角色 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换用户 time.sleep(2) self.user_page.click_user_list_menu() # 点击账号列表菜单 time.sleep(2) if company: # 如果测试数据给了公司名称,则选择公司 self.user_page.sel_query_company(company) self.user_page.type_query_user(usr) # 输入用户手机号或姓名 self.user_page.sel_query_role(role) # 选择用户角色 self.user_page.click_query_btn() # 点击查询按钮 time.sleep(2) screen_shot(self.driver, "用户查询.png") # 截图 if self.user_page.get_query_result_list_num(): data_dic = self.user_page.get_data_dic_of_first() if usr == data_dic["姓名"]: self.assertEqual(usr, data_dic["姓名"]) elif usr == data_dic["电话"]: self.assertEqual(usr, data_dic["电话"]) else: self.fail("查询结果错误!") else: self.fail("没有查询到该用户,请检查测试数据!")
def test_query_student(self, operator_phone, operator_name, company, stname, teacher_name, begin_date, end_date, sex, birthday, parent, parent_phone, parent1, parent1_phone, teacher_phone): """ 学员查询测试用例 """ self.user_page.change_user(operator_phone, operator_name) # 切换账号 time.sleep(2) self.operation_page.click_student_list_menu() # 点击学员列表 time.sleep(2) if company: self.operation_page.sel_query_company(company) # 选择分公司 else: pass self.operation_page.type_query_student(stname) # 输入学员姓名或监护人手机号 self.operation_page.type_query_teacher( teacher_name) # 输入辅导老师姓名或辅导老师手机号 self.operation_page.type_query_begin_date(begin_date) # 输入起始日期 self.operation_page.type_query_end_date(end_date) # 输入结束日期 self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(2) data_dic = self.operation_page.get_data_of_first() self.assertEqual(stname, data_dic["姓名"], msg="学员姓名不正确!") self.assertEqual(company, data_dic["公司"], msg="所属公司不正确!") self.assertEqual(sex, data_dic["性别"], msg="学员性别不正确!") self.assertEqual(birthday, data_dic["生日"], msg="学员生日不正确!") self.assertEqual(parent, data_dic["监护人"], msg="监护人姓名不正确!") self.assertEqual(parent1, data_dic["备用监护人"], msg="备用监护人不正确!") self.assertEqual(parent_phone, data_dic["监护人手机号"], msg="监护人手机不正确!") self.assertEqual(parent1_phone, data_dic["备用监护人手机号"], msg="备用监护人手机不正确!") self.assertEqual(teacher_name, data_dic["辅导老师"], msg="辅导老师姓名不正确!") self.assertEqual(teacher_phone, data_dic["辅导老师手机号"], msg="辅导老师手机号不正确!") screen_shot(self.driver, "学员查询.png")
def test_login(self, phone, username, pwd, expect_value): """ 用户登录测试用例。 :param phone: 用户手机号 :param username: 用户姓名 :param pwd: 用户密码 :param expect_value: 预期值 :return: """ self.lg_page = LoginManagePage(self.driver, self.url) time.sleep(2) self.lg_page.type_username(phone) time.sleep(1) self.lg_page.type_pwd(pwd) time.sleep(2) self.lg_page.click_login_btn() time.sleep(1) screen_shot(self.driver, '登录.png') if self.lg_page.get_title() == "欢迎": time.sleep(2) success_txt = self.lg_page.get_hello_text() self.assertIn(username, success_txt) else: fail_txt = self.lg_page.get_fail_text() self.assertEqual(fail_txt, expect_value)
def test_look_daily_report(self, operator_phone, operator_name, user_name, begin_date, end_date): """ 查看日报测试用例 :param operator_phone: 操作者手机号 :param operator_name: 操作者姓名 :param user_name: 用户姓名 :param begin_date: 开始日期 :param end_date: 结束日期 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(2) self.operation_page.click_daily_report_list_menu() # 点击日报管理页面菜单 time.sleep(2) self.operation_page.query_by_username_date(user_name, begin_date, end_date) # 查询出日报 time.sleep(2) results = self.operation_page.get_query_result_list_num() # 获取结果列表所有行 screen_shot(self.driver, "查看-日报列表.png") if not results: self.fail("未查询到日报,请检查测试数据!") else: self.operation_page.click_look_btn() # 点击查看按钮 time.sleep(2) data_dic = self.operation_page.get_detail_data() # 获取日报详情 screen_shot(self.driver, "查看-日报详情.png") self.assertEqual(user_name, data_dic["user_name"], msg="员工姓名不正确!") self.assertTrue(begin_date in data_dic["report_time"], msg="上报时间不正确!")
def test_d_del_venues(self, operator_phone, operator_name, category, venues_name, expect_value): """ 删除场馆测试用例 。 :param operator_phone: 操作者手机号 :param operator_name: 操作者姓名 :param category: 科目 :param venues_name: 场馆名称 :param expect_value: 预期值 :return: """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(2) self.operation_page.click_venues_list() # 点击场馆列表菜单 time.sleep(2) self.operation_page.sel_category(category) # 选择科目 time.sleep(2) self.operation_page.input_venues(venues_name) # 输入场馆名称 time.sleep(2) self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(3) self.operation_page.click_del_venues() # 点击删除场馆按钮 time.sleep(2) self.operation_page.del_affirm_venues() # 点击确认按钮 time.sleep(2) screen_shot(self.driver, '删除场馆.png') result_num = self.operation_page.get_query_result_list_num() if result_num and result_num == 1: actual_value = self.operation_page.get_del_venues_message() self.assertEqual(expect_value, actual_value, msg="实际结果与预期结果不一致,请查看!!") else: self.fail("查询结果列表为空或者数据不唯一,请检查测试数据!")
def test_b_edit_venues(self, operator_phone, operator_name, query_category, old_venues, new_venues_name, venues_address, longitude, latitude, expect_value): """ 编辑场馆测试用例。 :param operator_phone: 操作者手机号 :param operator_name: 操作者姓名 :param query_category: 查询科目 :param old_venues: 原场馆名称 :param new_venues_name: 新场馆名称 :param venues_address: 场馆地址 :param longitude: 经度 :param latitude: 纬度 :param expect_value: 预期值 :return: """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 self.operation_page.click_venues_menu() # 点击场馆管理菜单 time.sleep(2) self.operation_page.click_venues_list() # 点击场馆列表 time.sleep(4) self.operation_page.sel_category(query_category) # 选择科目 time.sleep(2) self.operation_page.input_venues(old_venues) # 输入场馆名称 time.sleep(2) self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(5) self.operation_page.click_venues_edit() # 点击编辑场馆按钮 time.sleep(2) self.operation_page.input_edit_name(new_venues_name) # 输入场馆名称 time.sleep(2) self.operation_page.input_edit_address(venues_address) # 输入场馆地址 time.sleep(2) self.operation_page.input_edit_longitude(str(longitude)) # 输入经度 time.sleep(2) self.operation_page.input_edit_latitude(str(latitude)) # 输入纬度 time.sleep(2) self.operation_page.click_edit_label() # 勾选场馆类别 time.sleep(2) self.operation_page.click_edit_btn() # 点击确定按钮 time.sleep(4) self.operation_page.click_venues_list() # 点击场馆列表 time.sleep(2) self.operation_page.sel_category(query_category) # 选择科目 time.sleep(2) self.operation_page.input_venues(new_venues_name) # 输入场馆名称 time.sleep(2) self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(2) screen_shot(self.driver, "编辑场馆.png") result_num = self.operation_page.get_query_result_list_num() if result_num and result_num == 1: actual_value = self.operation_page.get_edit_venues_name() self.assertEqual(expect_value, actual_value, msg="实际结果与预期结果不一致,请查看!!!") else: self.fail("查询结果列表为空或者数据不唯一,请检查测试数据!")
def test_query_call(self, operator_phone, operator_name, user_name, custom_name, user_phone, custom_phone, begin_date, end_date, status, expect_num): """ 通话记录查询测试用例。 通过Excel文件获取测试数据,带入测试用例进行测试。 :param operator_phone: 登录用户手机号 :param operator_name: 登录用户姓名 :param user_name: 查询条件-用户姓名 :param custom_name: 查询条件-客户姓名 :param user_phone: 查询条件-用户手机号 :param custom_phone: 查询条件-客户手机号 :param begin_date: 查询条件-开始日期 :param end_date: 查询条件-结束日期 :param status: 查询条件-通话状态 :param expect_num: 预期查询条数 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 self.operation_page.click_call_list_menu() # 点击通话记录菜单 time.sleep(2) if user_name: self.operation_page.type_query_info(user_name) # 输入用户姓名 elif custom_name: self.operation_page.type_query_info(custom_name) # 输入客户姓名 elif user_phone: self.operation_page.type_query_info(user_phone) # 输入用户手机 elif custom_phone: self.operation_page.type_query_info(custom_phone) # 输入客户手机 else: self.operation_page.type_query_info("") # 不输入 self.operation_page.type_query_begin_date(begin_date) # 输入起始日期 self.operation_page.type_query_end_date(end_date) # 输入结束日期 self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(2) if status: self.operation_page.sel_call_status(status) # 选择通话记录状态 time.sleep(2) real_num = self.operation_page.get_query_result_list_num( ) # 获取查询结果列表条数 if real_num: data_dic = self.operation_page.get_data_of_first() # 获取查询结果第一行的数据 if user_name: self.assertEqual(user_name, data_dic["姓名"], msg="姓名不正确!") elif custom_name: self.assertEqual(custom_name, data_dic["客户姓名"], msg="客户姓名不正确!") elif status: self.assertEqual(status, data_dic["status"], msg="通话状态不正确") else: self.fail("预期值全部为空,无法做断言!") self.assertEqual(expect_num, str(real_num), msg="查询结果条数不正确") else: self.fail("查询结果列表为空,请检查测试数据!") screen_shot(self.driver, "通话记录查询.png")
def test_logout(self, phone, pwd): self.lg_page = LoginManagePage(self.driver, self.url) time.sleep(2) self.lg_page.user_login(phone, pwd) time.sleep(3) if self.lg_page.get_title() == 'Login': self.fail("该用户登录失败,请检查测试数据!") else: self.lg_page.user_logout() time.sleep(2) screen_shot(self.driver, '退出登录.png') self.assertEqual('Login', self.lg_page.get_title())
def test_audit_course(self, operator_phone, operator_name, date, status, user_phone_city, user_phone_pianqu, user_phone_head, expect): """ 排课审批用例 :param operator_phone: 操作者手机号 :param operator_name: 操作者姓名 :param date: 日期 :param status: 排课状态 :param user_phone_city: 城市经理手机号 :param user_phone_pianqu: 片区经理手机号 :param user_phone_head: 总裁手机号 :param expect: 预期值 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(1) self.operation_page.click_course_list_menu() # 点击排课列表菜单 time.sleep(2) self.operation_page.query_course(date, date) # 根据日期查询出指定排课 time.sleep(2) self.operation_page.sel_course_status(status) # 选择状态 time.sleep(2) result_num = self.operation_page.get_query_result_list_num() if result_num and result_num == 1: self.operation_page.click_submit_audit_btn() # 点击提交审批 time.sleep(2) self.operation_page.submit_audit_ok() # 确认提交 # 城市经理、片区经理、总裁三个人手机号的列表 users = [user_phone_city, user_phone_pianqu, user_phone_head] for user in users: self.user_page.change_user(user) # 切换到指定账号 self.operation_page.click_course_menu() # 点击排课管理菜单 time.sleep(2) if user == user_phone_city or user == user_phone_pianqu: self.operation_page.click_sub_company_audit() else: self.operation_page.click_head_company_audit( ) # 点击总公司审批菜单项 self.operation_page.audit(operator_name, date, date) # 审批排课 time.sleep(2) self.user_page.change_user(operator_phone, operator_name) # 切换账号 time.sleep(2) self.operation_page.click_course_list_menu() # 点击排课列表菜单 time.sleep(2) self.operation_page.query_course(date, date) # 根据日期查询出指定排课 screen_shot(self.driver, "排课审核.png") time.sleep(2) dic = self.operation_page.get_result_dict_of_first() self.assertEqual(expect, dic["status"]) else: self.fail("排课列表为空或者数量不唯一,请检查测试数据!")
def test_edit_user(self, operator_phone, operator_name, new_name, old_phone, new_phone, new_webchat, new_email, expect): """ 编辑用户功能测试用例。 :param operator_phone: 操作者手机号 :param operator_name: 操作者名称 :param new_name: 新名称 :param old_phone: 原名称 :param new_phone: 新手机号 :param new_webchat: 新微信号 :param new_email: 新邮箱 :param expect: 预期值 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换用户 time.sleep(2) self.user_page.click_user_list_menu() # 点击账号列表菜单 time.sleep(2) self.user_page.query_by_name_or_phone(old_phone) # 通过原手机号查询用户 time.sleep(2) result_num = self.user_page.get_query_result_list_num() if result_num and result_num == 1: # 判断结果列表不为空且只有1条数据,如果存在则编辑该用户 self.user_page.click_edit_btn() # 点击编辑按钮 time.sleep(2) self.user_page.switch_window() # 切换窗口 time.sleep(2) self.user_page.type_user_name(new_name) # 输入用户姓名 self.user_page.type_user_phone(new_phone) # 输入用户电话 self.user_page.type_webchat(new_webchat) # 输入微信 self.user_page.type_email(new_email) # 输入邮箱 self.user_page.click_save_btn() # 点击保存按钮 time.sleep(1) actual_value = self.user_page.get_pop_text() # 获取保存后弹出窗口的文案 screen_shot(self.driver, "编辑用户.png") # 截图 self.assertEqual(expect, actual_value, msg="实际结果与预期结果不一致,请查看!") # 断言弹窗文案是否一致 self.assertEqual( new_phone, self.user_page.get_phone_value()) # 断言修改后手机号是否与新手机号一致 else: screen_shot(self.driver, "编辑用户-用户列表.png") # 截图 self.fail("用户列表为空或数据不唯一,请检查测试数据!") # 结果列表为空,则报失败
def test_a_query_venues(self, operator_phone, operator_name, company_name, category, status, venues_name): """ 查询场馆测试用例。 :param operator_phone: 操作者手机号 :param operator_name: 操作者姓名 :param company_name: 公司名称 :param category: 科目 :param status: 状态 :param venues_name: 场馆名称 :return: """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(2) self.operation_page.click_venues_list() # 点击场馆列表 time.sleep(2) if company_name: self.operation_page.sel_company(company_name) # 选择分公司名称 time.sleep(2) self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(2) self.operation_page.sel_category(category) # 选择科目 time.sleep(2) self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(2) self.operation_page.sel_venues_status(status) # 选择场馆状态 time.sleep(2) self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(2) self.operation_page.input_venues(venues_name) # 输入场馆名称 time.sleep(2) self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(2) screen_shot(self.driver, "查询场馆.png") result_num = self.operation_page.get_query_result_list_num() if result_num and result_num == 1: actual_value = self.operation_page.get_venues_message() self.assertEqual(venues_name, actual_value, msg="实际结果与预期结果不一致,请查看!") else: self.fail("查询结果列表为空或者数据不唯一,请检查测试数据!")
def test_c_venues_add(self, operator_phone, operator_name, venues_name, venues_address, longitude, latitude, status, expect_value): """ 添加场馆测试用例。 :param operator_phone: 操作者手机号 :param operator_name: 操作者姓名 :param venues_name: 场馆名称 :param venues_address: 场馆地址 :param longitude: 经度 :param latitude: 纬度 :param status: 状态 :param expect_value: 预期值 :return: """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(3) self.operation_page.click_venues_add() # 点击添加场馆菜单 time.sleep(3) self.operation_page.input_venues_name(venues_name) # 输入场馆名称 time.sleep(3) self.operation_page.input_venues_address(venues_address) # 输入场馆地址 time.sleep(3) self.operation_page.input_venues_longitude(str(longitude)) # 输入经度 time.sleep(3) self.operation_page.input_venues_latitude(str(latitude)) # 输入纬度 time.sleep(2) self.operation_page.sel_venues_category1() # 选择场馆包含的科目 (篮球) time.sleep(2) self.operation_page.sel_venues_category2() # 选择场馆包含的科目 (羽毛球) time.sleep(2) self.operation_page.sel_venues_category3() # 选择场馆包含的科目 (足球) time.sleep(2) self.operation_page.sele_venues_status(status) # 选择场馆状态 time.sleep(2) self.operation_page.venues_sure_btn() # 点击保存按钮 time.sleep(2) screen_shot(self.driver, '添加场馆.png') # 断言 actual_value = self.operation_page.get_add_venues_message() self.assertEqual(expect_value, actual_value, msg="实际结果与预期结果不一致,请查看!")
def test_reset_pwd(self, operator_phone, operator_name, usr, expect1, expect2): """ 用户密码重置功能测试用例 。 :param operator_phone: 操作者手机号 :param operator_name: 操作者名称 :param usr: 用户手机号或姓名 :param expect1: 是否重置弹窗文案 :param expect2: 确认重置文案 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换账号 time.sleep(2) self.user_page.click_user_list_menu() # 点击账号列表菜单 time.sleep(2) self.user_page.query_by_name_or_phone(usr) # 查询需要重置密码的用户 time.sleep(2) result_num = self.user_page.get_query_result_list_num() if result_num and result_num == 1: # 判断结果列表不为空且只有1条数据,则进行重置操作 self.user_page.click_reset_btn() # 点击重置按钮 time.sleep(2) txt1 = self.user_page.get_reset_text() # 获取是否确认重置文案 screen_shot(self.driver, "重置密码1.png") # 截图 self.user_page.click_reset_ok() # 点击确定按钮 time.sleep(2) screen_shot(self.driver, "重置密码2.png") # 截图 txt2 = self.user_page.get_reset_ok_text() # 获取重置成功文案 self.assertEqual(expect1, txt1) # 断言弹窗文案等于预期值 self.assertEqual(expect2, txt2) # 断言弹窗文案等于预期值 else: screen_shot(self.driver, "重置密码-用户列表.png") self.fail("没有查询到该用户,请检查测试数据!")
def test_look_student(self, operator_phone, operator_name, student_name, birthday, sex, parent): """ 查看学员测试用例 """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(3) self.operation_page.click_student_list_menu() # 点击学员列表 time.sleep(2) self.operation_page.query_by_student_name_or_parent_phone(student_name) time.sleep(2) result_num = self.operation_page.get_query_result_list_num() if result_num and result_num == 1: self.operation_page.click_look_btn() time.sleep(2) data_dic = self.operation_page.get_detail_data_dic() self.assertEqual(student_name, data_dic["姓名:"], msg="学员姓名不正确!") self.assertEqual(sex, data_dic["性别:"], msg="学员性别不正确!") self.assertEqual(birthday, data_dic["生日:"], msg="学员生日不正确!") self.assertEqual(parent, data_dic["监护人姓名:"], msg="监护人姓名不正确!") screen_shot(self.driver, "查看用户-学员详情.png") else: screen_shot(self.driver, "查看用户-学员列表.png") self.fail("未查询到学员,请检查测试数据!")
def test_query_daily_report(self, operator_phone, operator_name, company, user_name, begin_date, end_date, phone, expect_num): """ 日报查询测试用例 :param operator_phone: 操作者手机号 :param operator_name: 操作者姓名 :param company: 公司名称 :param user_name: 用户名称 :param begin_date: 开始日期 :param end_date: 结束日期 :param phone: 手机号 :param expect_num: 预期值 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(2) self.operation_page.click_daily_report_list_menu() # 点击日报管理页面菜单 time.sleep(1) if company: self.operation_page.sel_query_company(company) # 选择分公司 else: pass self.operation_page.type_query_user_name(user_name) # 输入员工姓名 self.operation_page.type_query_begin_date(begin_date) # 输入起始日期 self.operation_page.type_query_end_date(end_date) # 输入结束日期 self.operation_page.click_query_btn() # 点击查询按钮 time.sleep(2) real_num = self.operation_page.get_query_result_list_num() screen_shot(self.driver, "日报查询.png") if real_num: self.assertEqual(real_num, int(expect_num)) data_dic = self.operation_page.get_data_of_first() # 获取查询结果第一行的数据 self.assertEqual(user_name, data_dic['姓名']) else: self.fail("未查询到任何日报,请检查测试数据!")
def test_disable_or_enable_user(self, operator_phone, operator_name, usr, expect1, expect2): """ 用户禁用和启用功能测试用例 。 :param operator_phone: 操作者手机号 :param operator_name: 操作者名称 :param usr: 用户手机号或姓名 :param expect1: 禁用成功预期值 :param expect2: 启用成功预期值 :return: None """ self.user_page.change_user(operator_phone, operator_name) # 切换到操作者账号 time.sleep(2) self.user_page.click_user_list_menu() # 点击账号列表菜单 time.sleep(2) self.user_page.query_by_name_or_phone(usr) # 查询出指定用户 time.sleep(2) result_num = self.user_page.get_query_result_list_num() if result_num and result_num == 1: # 判断结果列表不为空且只有1条数据,则进行禁用或启用操作 if expect1: # 如果禁用按钮可见,则进行禁用操作,否则断言失败用户已处于禁用状态, if self.user_page.is_disable_btn_visible(): self.user_page.click_disable_btn() time.sleep(2) self.assertEqual(expect1, self.user_page.get_disable_ok_text()) self.assertFalse(self.user_page.is_disable_btn_visible()) screen_shot(self.driver, "禁用成功.png") else: self.fail("该用户已被禁用,请检查测试数据!") elif expect2: # 如果禁用按钮可见,则断言失败用户已处于启用状态,否则进行启用操作 if self.user_page.is_disable_btn_visible(): self.fail("该用户已被启用,请检查测试数据!") else: self.user_page.click_enable_btn() self.assertEqual(expect2, self.user_page.get_enable_ok_text()) self.assertTrue(self.user_page.is_disable_btn_visible()) screen_shot(self.driver, "启用成功.png") else: self.fail('没有预期值,无法进行断言,请检查测试数据!') else: screen_shot(self.driver, "禁用用户-用户列表.png") self.fail("没有查询到该用户,请检查测试数据!")