def setUp(self): warnings.simplefilter("ignore", ResourceWarning) # 屏蔽ResourceWarning报警 self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告
class Test007(unittest.TestCase, a07_scene.Scene): # TestCase类,所有测试用例类继承的基本类 """场景测试""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 1、首页-全部场景,无场景,页面提示:无场景 def test_no_scene(self): self.assertTrue(self.no_scene()) # 2、首页-全部场景,创建场景,默认离家名称,场景编辑页面点击保存 def test_create_scene_save(self): self.assertTrue(self.create_scene_save()) # 3、首页-全部场景,创建场景,默认离家名称,场景编辑页面返回 def test_create_scene_back(self): self.assertTrue(self.create_scene_back()) # 4、首页-全部场景,创建场景,默认离家名称,左上取消按钮 def test_create_scene_cancel(self): self.assertFalse(self.create_scene_cancel()) # 5、首页-全部场景,创建场景自定义名称呵呵123 def test_hehe123_scene(self): self.assertTrue(self.hehe123_scene()) # 6、首页-全部场景,创建场景,不输入名称,确定点击无效,还在场景名称与图标页面 def test_no_name_scene(self): self.assertTrue(self.no_name_scene()) # 7、首页-全部场景,创建场景,创建相同名称的场景,toast提示:该场景名称已存在,请换一个 def test_same_name_scene(self): self.assertTrue(self.same_name_scene()) # 8、首页-全部场景,长按场景,取消,编辑框消失 def test_longpress_cancel(self): self.assertFalse(self.longpress_cancel()) # 9、首页-全部场景,长按场景,删除-取消 def test_longpress_delete_cancel(self): self.assertTrue(self.longpress_delete_cancel()) # 10、首页-全部场景,长按场景,删除-确定 def test_longpress_delete(self): self.assertFalse(self.longpress_delete()) # 11、首页-全部场景,长按场景,编辑场景 def test_longpress_edit(self): self.assertTrue(self.longpress_edit())
class Test001(unittest.TestCase, a01_login.Login): # TestCase类,所有测试用例类继承的基本类 """登陆测试""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 1、登陆成功 def test_login_success(self): self.assertTrue(self.login_success()) # 2、账号为空 def test_none_user(self): self.assertFalse(self.none_user()) # 3、密码为空 def test_none_password(self): self.assertFalse(self.none_password()) # 4、错误的账号(toast:账号或密码不正确) def test_wrong_user(self): self.assertTrue(self.wrong_user()) # 5、错误的密码(toast:用户密码错误) def test_wrong_password(self): self.assertTrue(self.wrong_password()) # 6、连续3次密码错误,取消弹窗 def test_wrong_password_3(self): self.assertFalse(self.wrong_password_3()) # 7、连续3次密码错误,找回密码 def test_wrong_password_3_findp(self): self.assertTrue(self.wrong_password_3_findp())
def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告
class Test010(unittest.TestCase, a10_magnetic.Magnetic): # TestCase类,所有测试用例类继承的基本类 """门窗磁探测器""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 设备列表,点击门窗磁探测器,进入详情页 def test_magnetic_page(self): self.assertTrue(self.magnetic_page()) # 设备详情页,点击左上返回按钮,返回设备列表 def test_magnetic_page_back(self): self.assertTrue(self.magnetic_page_back()) # 设备详情页-设防中,点击撤防按钮,变成已撤防 def test_fortification_click(self): self.assertTrue(self.fortification_click()) # 设备详情页-设防中,可以查找到正常(门窗磁闭合状态) def test_fortification_normal(self): self.assertTrue(self.fortification_normal()) # 设备详情页-已撤防,点击设防按钮,变成设防中 def test_withdrawn_click(self): self.assertTrue(self.withdrawn_click()) # 设备详情页-已撤防,查不到正常(门窗磁闭合状态) def test_withdrawn_normal(self): self.assertFalse(self.withdrawn_normal()) # 设备详情页,点击更多按钮,进入更多页面,查找删除设备按钮元素 def test_more_page(self): self.assertTrue(self.more_page()) # 更多页面,点击左上返回按钮,返回设备详情页 def test_more_page_back(self): self.assertTrue(self.more_page_back()) # 更多页面,点击重命名,重命名弹窗 def test_rename(self): self.assertTrue(self.rename()) # 更多页面-重命名弹窗,输入新名称呵呵123,点击取消按钮,弹窗消失,名称未修改 def test_rename_cancel(self): self.assertFalse(self.rename_cancel()) # 更多页面-重命名弹窗,输入新名称呵呵123,点击确定按钮,弹窗消失,名称修改为呵呵123,toast:修改设备名称成功 def test_rename_sure(self): self.assertTrue(self.rename_sure()) time.sleep(1) self.find_id(excel.id_con('item_device_more_rename')).click() # 点击重命名 time.sleep(1) self.find_id(excel.id_con('et_user_info')).send_keys(u'门窗磁探测器') # 输入原名 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮 # 更多页面-重命名弹窗,不输入名称,点击确定无效,查找:请输入设备名 def test_rename_none(self): self.assertTrue(self.rename_none()) # 重命名设备名称,再次设置设备名称为呵呵123,toast提示:设备名称重复! def test_rename_repeat(self): self.assertTrue(self.rename_repeat()) # 更多页面,点击分区,进入分区页面 def test_zone_page(self): self.assertTrue(self.zone_page()) # 更多页面-分区页面,点击左上返回按钮,返回更多页面 def test_zone_page_back(self): self.assertTrue(self.zone_page_back()) # 更多页面-分区页面,前置条件至少有一个分区,点击分区,返回更多页面,toast:修改设备区域成功 def test_change_zone(self): self.assertTrue(self.change_zone()) # 更多页面-分区页面,点击未分区,返回更多页面,未分区可以查找到 def test_zone_page_non(self): self.assertTrue(self.zone_page_non()) # 更多页面-分区页面,点击右上管理分区,进入分区管理页面 def test_zone_manage_page(self): self.assertTrue(self.zone_manage_page()) # 更多页面-分区页面-管理分区页面,点击返回按钮,返回分区页面 def test_zone_manage_page_back(self): self.assertTrue(self.zone_manage_page_back()) # 更多页面,点击设备信息,进入设备信息页面 def test_device_information(self): self.assertTrue(self.device_information()) # 更多页面-设备信息页面,点击左上返回按钮,返回更多页面 def test_device_information_back(self): self.assertTrue(self.device_information_back()) # 更多页面,点击找设备,弹出设备指示灯将闪烁10秒弹窗 def test_finddevice(self): self.assertTrue(self.finddevice()) # 更多页面-设备指示灯将闪烁10秒弹窗,点击已找到,弹窗消失 def test_finddevice_found(self): self.assertFalse(self.finddevice_found()) # 更多页面-设备指示灯将闪烁10秒弹窗,点击再闪烁一次,弹窗还在 def test_finddevice_again(self): self.assertTrue(self.finddevice_again()) # 更多页面,点击报警消息,进入报警消息页面 def test_alarm_message_page(self): self.assertTrue(self.alarm_message_page()) # 更多页面-报警消息页面,点击左上返回按钮,返回更多页面 def test_alarm_message_page_back(self): self.assertTrue(self.alarm_message_page_back()) # 更多页面-报警消息页面,点击按日期查找,弹出日期编辑 def test_alarm_by_date(self): self.assertTrue(self.alarm_by_date()) # 更多页面-报警消息页面,点击按日期查找,弹出日期编辑,再次点击,编辑框隐藏 def test_alarm_by_date_hide(self): self.assertFalse(self.alarm_by_date_hide()) # 更多页面-报警消息页面,点击右上清空记录,弹出清空记录弹窗 def test_alarm_empty(self): self.assertTrue(self.alarm_empty()) # 更多页面-报警消息页面,点击右上清空记录,弹出清空记录弹窗,点击取消按钮,弹窗消失 def test_alarm_empty_cancel(self): self.assertFalse(self.alarm_empty_cancel()) # 更多页面-报警消息页面,点击右上清空记录,弹出清空记录弹窗,点击确定按钮,弹窗消失,消息记录清空,自动返回更多页面 def test_alarm_empty_sure(self): self.assertTrue(self.alarm_empty_sure()) # 更多页面-报警消息页面-清空记录,再次进入报警记录页面,提示:没有报警消息 def test_alarm_empty_sure_again(self): self.assertTrue(self.alarm_empty_sure_again()) # 更多页面,点击日志,进入日志页面 def test_log_page(self): self.assertTrue(self.log_page()) # 更多页面-日志页面,点击左上返回按钮,返回更多页面 def test_log_page_back(self): self.assertTrue(self.log_page_back()) # 更多页面-日志页面,点击按日期查找,弹出日期编辑 def test_log_by_date(self): self.assertTrue(self.log_by_date()) # 更多页面-日志页面,点击按日期查找,弹出日期编辑,再次点击,编辑框隐藏 def test_log_by_date_hide(self): self.assertFalse(self.log_by_date_hide()) # 更多页面-日志页面,点击右上清空记录,弹出清空记录弹窗 def test_log_empty(self): self.assertTrue(self.log_empty()) # 更多页面-日志页面,点击右上清空记录,弹出清空记录弹窗,点击取消按钮,弹窗消失 def test_log_empty_cancel(self): self.assertFalse(self.log_empty_cancel()) # 更多页面-日志页面,点击右上清空记录,弹出清空记录弹窗,点击取消按钮,弹窗消失,消息记录清空,自动返回更多页面 def test_log_empty_sure(self): self.assertTrue(self.log_empty_sure()) # 更多页面-日志页面-清空记录,再次进入日志页面,提示:没有日志消息 def test_log_empty_sure_again(self): self.assertTrue(self.log_empty_sure_again()) # 更多页面-日志页面-清空记录,返回详情页点击设防/撤防两次,再次进入日志消息,查找:已设防 def test_log_fortification(self): self.assertTrue(self.log_fortification()) # 更多页面-日志页面-清空记录,返回详情页点击设防/撤防两次,再次进入日志消息,查找:已撤防 def test_log_withdrawn(self): self.assertTrue(self.log_withdrawn()) # 更多页面,点击删除设备按钮,弹出确定弹窗 def test_delete_device(self): self.assertTrue(self.delete_device()) # 更多页面,点击删除设备按钮,弹出确定弹窗,点击取消按钮,弹窗消息(确定按钮测试不做) def test_delete_device_cancel(self): self.assertFalse(self.delete_device_cancel())
class Test006(unittest.TestCase, a06_zoning_management.Zoning_management ): # TestCase类,所有测试用例类继承的基本类 """分区管理测试""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): warnings.simplefilter("ignore", ResourceWarning) # 屏蔽ResourceWarning报警 self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 1、设备-管理分区,创建分区呵呵,确定 def test_new_zoning(self): self.assertTrue(self.new_zoning()) # 2、设备-管理分区,创建分区哈哈,取消 def test_new_zoning_cancel(self): self.assertFalse(self.new_zoning_cancel()) # 3、设备-管理分区,不输入分区名,确定按钮不可点击 def test_new_zoning_no_name(self): self.assertTrue(self.new_zoning_no_name()) # 4、设备-管理分区,点击编辑按钮,取消,编辑框消失 def test_edit_cancel(self): self.assertFalse(self.edit_cancel()) # 5、设备-管理分区,点击编辑按钮,删除,确定 def test_edit_delete(self): self.assertFalse(self.edit_delete()) # 6、设备-管理分区,点击编辑按钮,删除,取消 def test_edit_delete_cancel(self): self.assertTrue(self.edit_delete_cancel()) # 7、设备-管理分区,点击编辑按钮,修改分区名称,输入分区名哈哈,确定 def test_modefy_the_name(self): self.assertTrue(self.modify_the_name()) # 8、设备-管理分区,点击编辑按钮,修改分区名称,输入分区名哈哈,取消 def test_modefy_the_name_cancel(self): self.assertFalse(self.modify_the_name_cancel()) # 9、设备-管理分区,点击编辑按钮,修改分区名称,输入名称为空,确定按钮点击无效,弹窗修改分区还在 def test_modefy_no_name(self): self.assertTrue(self.modify_no_name()) # 10、设备-管理分区,创建一个分区,添加一个设备 def test_zone_add(self): self.assertTrue(self.zone_add()) # 11、设备-管理分区,创建一个分区,添加一个设备,再删除一个设备 def test_zone_reduce(self): self.assertTrue(self.zone_reduce()) # 12、设备-管理分区,创建一个分区,点击设备-全部分区可以找到 def test_new_zoning_devide(self): self.assertTrue(self.new_zoning_devide()) # 13、设备-管理分区,创建一个分区,删除分区,点击设备-全部分区找不到 def test_new_zoning_delete_devide(self): self.assertFalse(self.new_zoing_delete_devide()) # 14、设备-管理分区,没有分区 def test_no_zone(self): self.assertTrue(self.no_zone()) # 15、设备-管理分区,点击顺序跳转按钮 def test_order_adjustment(self): self.assertTrue(self.order_adjustment())
class Test004(unittest.TestCase, a04_account_login.Account_login): # TestCase类,所有测试用例类继承的基本类 """账号登陆+物联会员+意见反馈+关于+个人信息+网关中心测试""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 1、账号登陆,未绑定网关-首页 def test_home_page(self): self.assertTrue(self.home_page(), '账号登陆首页失败') # 2、账号登陆,未绑定网关-查看小铃铛报警消息 def test_alarm_message(self): self.assertTrue(self.alarm_message()) # 3、账号登陆,未绑定网关-查看小铃铛日志消息 def test_log_message(self): self.assertTrue(self.log_message()) # 4、账号登陆,未绑定网关-点击场景,弹出尚未绑定网关编辑框 def test_click_the_scene(self): self.assertTrue(self.click_the_scene()) # 5、账号登陆,未绑定网关-尚未登录绑定网关编辑框,点击取消按钮,编辑框消失 def test_unlogged_gateway_editbox_cancel(self): self.assertFalse(self.unlogged_gateway_editbox_cancel()) # 6、账号登陆,未绑定网关-点击场景,点击去绑定,进入网关列表页面 def test_clicK_the_scene_binding(self): self.assertTrue(self.click_the_scene_binding()) # 7、账号登陆,未绑定网关-点击场景,点击体验网关试用按钮,toast提示:体验网关会在10分钟后自动解绑 def test_click_trial_gateway(self): self.assertTrue(self.click_trial_gateway()) # 8、账号登陆,未绑定网关-点击设备,暂无设备 def test_click_the_devide(self): self.assertTrue(self.click_the_device()) # 9、账号登陆,未绑定网关-点击发现,Wulian商场 def test_click_the_find(self): self.assertTrue(self.clicK_the_find()) # 10、账号登陆,未绑定网关-绑定网关流程 def test_bound_gateway(self): self.assertNotEqual(self.bound_gateway(), '未登录网关', '网关绑定失败') # 11、账号登陆,未绑定网关-绑定网关流程,不输入账号 def test_bound_gateway_no_id(self): self.assertFalse(self.bound_gateway_no_id()) # 12、账号登陆,未绑定网关-绑定网关流程,不输入密码 def test_bound_gateway_no_password(self): self.assertFalse(self.bound_gateway_no_password()) # 13、账号登陆,未绑定网关-绑定网关流程,输入密码少于6位 def test_bound_gateway_password5(self): self.assertFalse(self.bound_gateway_password5()) # 14、账号登陆,未绑定网关-绑定网关流程,输入错误密码 def test_bound_gateway_wrong_password(self): self.assertTrue(self.bound_gateway_wrong_password()) # 15、我的页面,进入物联会员 def test_wulian_member(self): self.assertTrue(self.wulian_member()) # 16、我的页面,物联会员,进入积分变动记录页面 def test_integral_change(self): self.assertTrue(self.integral_change()) # 17、我的页面,物联会员,签到规则 def test_sign_in_rules(self): self.assertTrue(self.sign_in_rules()) # 18、我的页面,物联会员,会员说明 def test_member_description(self): self.assertTrue(self.member_description()) # 19、我的页面,物联会员,积分说明 def test_integral_explanation(self): self.assertTrue(self.integral_explanantion()) # 20、我的页面,进入意见反馈页面 def test_feed_back(self): self.assertTrue(self.feed_back()) # 21、意见反馈,不输入内容,提交按钮不可点击 def test_feed_back_submit(self): self.assertFalse(self.feed_back_submit()) # 22、意见反馈,提交意见 def test_feed_back_edit(self): self.assertTrue(self.feed_back_edit()) # 23、关于-功能介绍 def test_about_introduction(self): self.assertTrue(self.about_introduction()) # 24、关于-关于物联 def test_about_wulian(self): self.assertTrue(self.about_wulian()) # 25、个人信息-点击头像 def test_head_portrait(self): self.assertTrue(self.head_portrait()) # 26、个人信息-点击头像,点击取消,编辑框消失 def test_head_portrait_cancel(self): self.assertFalse(self.head_portrait_cancel()) # 27、个人信息-修改名称 def test_modify_the_name(self): self.assertTrue(self.modify_the_name()) # 改回名称 time.sleep(1) self.find_id(excel.id_con('setting_manager_item_name')).click() # 点击名称 time.sleep(1) self.find_id(excel.id_con('et_user_info')).send_keys( u'Duke正式服') # 输入新名称 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮 # 28、个人信息-修改名称,取消 def test_modify_the_name_cancel(self): self.assertFalse(self.modify_the_name_cancel()) # 29、个人信息-修改名称,不输入点击确定,点击无效,修改名称弹窗还在 def test_modify_the_name_determine(self): self.assertTrue(self.modify_the_name_determine()) # 30、网关中心-已绑定网关 def test_bound_gateway_list(self): self.assertTrue(self.bound_gateway_list()) # 31、网关中心-已接受分享 def test_acceptance_of_sharing(self): self.assertTrue(self.acceptance_of_sharing()) # 32、网关设置-修改网关昵称 def test_gateway_name(self): self.assertTrue(self.gateway_name()) # 改回昵称 self.find_id( excel.id_con('item_gateway_center_setting')).click() # 点击网关设置 time.sleep(1) self.find_id( excel.id_con('item_gateway_setting_name')).click() # 点击网关昵称 time.sleep(1) self.find_id(excel.id_con('et_user_info')).send_keys(u'呵呵') # 输入网关新昵称 time.sleep(2) self.find_id(excel.id_con('dialog_btn_positive')).click() # 33、网关设置-修改网关昵称,取消 def test_gateway_name_cancel(self): self.assertFalse(self.gateway_name_cancel()) # 34、网关设置-修改网关昵称,不输入点击确定 def test_gateway_no_name(self): self.assertTrue(self.gateway_no_name()) # 35、网关设置-修改密码 def test_change_password(self): self.assertTrue(self.change_password()) # 改回密码 self.find_id(excel.id_con('item_gateway_center')).click() # 点击网关中心 time.sleep(2) self.modify_gateway_password('wl123456789', 'qazwsx1234') # 36、网关设置-修改密码-未填写原始密码 def test_change_no_old_password(self): self.assertFalse(self.change_no_old_password()) # 37、网关设置-修改密码-未填写新密码 def test_change_no_new_password(self): self.assertFalse(self.change_no_new_password()) # 38、网关设置-修改密码-错错的原始密码,toast提示:修改失败 def test_change_wrong_old_password(self): self.assertTrue(self.change_wrong_old_password()) # 39、网关设置-修改密码-新密码全数字,toast提示:密码至少有数字、字母或符号的2种组合 def test_change_number_password(self): self.assertTrue(self.change_number_password()) # 40、网关设置-修改密码-新密码全字母,toast提示:密码至少有数字、字母或符号的2种组合 def test_change_letter_password(self): self.assertTrue(self.change_letter_password()) # 41、网关设置-修改密码-新密码小于6位,toast提示:密码长度不能小于6个字符 def test_change_password_6(self): self.assertTrue(self.change_password_6()) # 42、网关设置-修改密码-新密码与原始密码相同,toast提示:新密码不能和老密码相同 def test_change_same_password(self): self.assertTrue(self.change_same_password())
class Test001(unittest.TestCase, AI01_login.Login): # TestCase类,所有测试用例类继承的基本类 """登陆测试""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 1、账号已有住宅情况,登录成功 def test_login_success(self): self.assertTrue(self.login_success()) # 2、账号没有住宅情况,登陆成功 def test_login_success_no_house(self): self.assertTrue(self.login_success_no_house()) # 3、注册页面 def test_register(self): self.assertTrue(self.register()) # 4、使用条款与免责协议页面 def test_agreement_page(self): self.assertTrue(self.agreement_page()) # 5、注册页面,获取验证码按钮置灰不可点击 def test_register_no_phone(self): self.assertFalse(self.register_no_phone()) # 6、注册页面,输入手机号少一位,获取验证码按钮置灰不可点击 def test_register_phone_10(self): self.assertFalse(self.register_phone_10()) # 7、注册页面,输入手机号,获取验证码按钮可以点击 def test_register_right_phone(self): self.assertTrue(self.register_right_phone()) # 8、注册页面,输入已注册手机号,点击获取验证码按钮,弹窗手机号已被注册 def test_register_phone_used(self): self.assertTrue(self.register_phone_used()) # 9、注册页面手机号已被注册弹窗,点击取消按钮,弹窗消失 def test_register_popup_cancel(self): self.assertFalse(self.register_popup_cancel()) # 10、注册页面手机号已被注册弹窗,点击去登录按钮,进入登录页面 def test_register_land(self): self.assertTrue(self.register_land()) # 11、注册页面,输入未注册手机号,点击获取验证码按钮,进入输入验证码页面 def test_register_code_page(self): self.assertTrue(self.register_code_page()) # 12、注册-输入验证码页面,输入错误验证码,提示验证码错误 def test_code_page_wrongcode(self): self.assertTrue(self.code_page_wrongcode()) # 13、登录页面 def test_sign_in(self): self.assertTrue(self.sign_in()) # 14、登录页面,登录按钮置灰 def test_login_button_gray(self): self.assertFalse(self.login_button_gray()) # 15、登录页面,输入正确账号,不输入密码,登录按钮置灰 def test_login_no_password(self): self.assertFalse(self.login_no_password()) # 16、登录页面,不输入账号,输入正确格式密码,登录按钮置灰 def test_login_no_account(self): self.assertFalse(self.login_no_account()) # 17、登录页面,输入手机号账号少一位(1801398638),输入正确格式密码,登录按钮置灰 def test_login_one_less_cell_phone_number(self): self.assertFalse(self.login_one_less_cell_phone_number()) # 18、登录页面,输入手机号账号多一位(180139863821),输入正确格式密码,登录按钮置灰 def test_login_one_more_cell_phone_number(self): self.assertFalse(self.login_one_more_cell_phone_number()) # 19、登录页面,输入邮箱账号没有@(qwerty126.com),输入正确格式密码,登录按钮置灰 def test_login_wrong_mailbox_account_1(self): self.assertFalse(self.login_wrong_mailbox_account_1()) # 20、登录页面,输入邮箱账号没有‘.’(1234567@126com),输入正确格式密码,登录按钮置灰 def test_login_wrong_mailbox_account_2(self): self.assertFalse(self.login_wrong_mailbox_account_2()) # 21、登录页面,输入正确的账号,输入全数字密码(123456789),登录按钮置灰 def test_login_wrong_password_all_digital(self): self.assertFalse(self.login_wrong_password_all_digital()) # 22、登录页面,输入正确的账号,输入全字母密码(qwertyuiop),登录按钮置灰 def test_login_wrong_password_all_letter(self): self.assertFalse(self.login_wrong_password_all_letter()) # 23、登录页面,输入正确的账号,输入全符号密码(!@#¥%……&*()),登录按钮置灰 def test_login_wrong_password_all_character(self): self.assertFalse(self.login_wrong_password_all_character()) # 24、登录页面,输入正确的账号,输入少于8位密码(@q12345),登录按钮置灰 def test_login_wrong_password_less_8(self): self.assertFalse(self.login_wrong_password_less_8()) # 25、登录页面,输入正确的账号,输入正确密码,登录按钮激活 def test_login_right_account_password(self): self.assertTrue(self.login_right_account_password()) # 26、登录页面,输入未注册账号(18013980000),输入正确密码,点击登录,提示:用户不存在 def test_user_does_not_exist(self): self.assertTrue(self.user_does_not_exist()) # 27、登录页面,输入正确的账号(18013986382),输入错误密码,点击登录,提示,密码错误 def test_wrong_password(self): self.assertTrue(self.wrong_password()) # 28、登录页面,输入正确的账号(17751027576),输入错误密码,连续点击登录3次,弹出找回密码弹窗 def test_wrong_password_3(self): self.assertTrue(self.wrong_password_3()) # 29、登录页面,找回密码弹窗([email protected]),点击取消按钮,弹窗消失 def test_find_password_popup(self): self.assertFalse(self.find_password_popup()) # 30、登录页面,找回密码弹窗([email protected]),点击找回密码按钮,进入找回密码页面 def test_find_password_page_2(self): self.assertTrue(self.find_password_page_2()) # 31、登录页面,找回密码弹窗([email protected]),点击取消后再点击2次登录,弹出安全提示弹窗 def test_safety_tips_popup(self): self.assertTrue(self.safety_tips_popup()) # 32、登录页面,点击验证码登录,进入验证码登录页面 def test_code_login_page(self): self.assertTrue(self.code_login_page()) # 33、验证码登录页面,获取验证码按钮置灰 def test_code_login_page_none(self): self.assertFalse(self.code_login_page_none())
class Test009(unittest.TestCase, a09_housekeeper.Housekeeper): # TestCase类,所有测试用例类继承的基本类 """管家测试""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 管家,进入我的管家页面 def test_housekeeper_page(self): self.assertTrue(self.housekeeper_page()) # 管家-我的管家页面,没有任务情况,提示:还没有创建管家任务,点击右上角“+”创建 def test_no_housekeeper(self): self.assertTrue(self.no_housekeeper()) # 管家-我的管家页面,点击右上角“+”,弹出创建管家任务编辑框 def test_add_housekeeper(self): self.assertTrue(self.add_housekeeper()) # 管家-我的管家页面,点击右上角“+”,弹出创建管家任务编辑框,点击右上“x”,编辑框消失 def test_add_housekeeper_x(self): self.assertFalse(self.add_housekeeper_x()) # 管家-创建管家任务编辑框,点击定时任务,进入定时任务编辑页面,查找:当时间到达------------------------------------------------- def test_timing_editpage(self): self.assertTrue(self.timing_editpage()) # 管家-定时任务编辑页面,点击名称,弹出名称弹窗 def test_timing_name(self): self.assertTrue(self.timing_name()) # 管家-定时任务编辑-名称弹窗,输入名称呵呵123,点击确定,弹窗消失,名称显示为:呵呵123 def test_timing_name_sure(self): self.assertTrue(self.timing_name_sure()) # 管家-定时任务编辑-名称弹窗,输入名称呵呵123,点击取消,弹窗消失,名称显示未变 def test_timing_name_cancel(self): self.assertFalse(self.timing_name_cancel()) # 管家-定时任务编辑页面,点击时间,进入定时编辑页面,查找Sun def test_timing_time(self): self.assertTrue(self.timing_time()) # 管家-定时编辑页面,点击保存,跳转定时任务编辑页面 def test_timing_time_save(self): self.assertTrue(self.timing_time_save()) # 管家-定时任务编辑页面,点击执行以下任务,进入添加任务页面 def test_timetask_page(self): self.assertTrue(self.timetask_page()) # 管家-添加任务页面,点击添加要执行的设备,进入选择设备页面 def test_timetask_device_page(self): self.assertTrue(self.timetask_device_page()) # 管家-选择设备页面,点击全部分区,下拉所以分区,查找元素全部分区 def test_timetask_allzone(self): self.assertTrue(self.timetask_allzone()) # 管家-选择设备页面,点击全部类别,下拉所以类别,查找智能门锁 def test_timetask_allclass(self): self.assertTrue(self.timetask_allclass()) # 管家-选择设备页面,点击批量添加,进入批量添加页面,查找全选 def test_timetask_alladd(self): self.assertTrue(self.timetask_alladd()) # 管家-添加任务页面,点击添加要执行的场景,进入选择场景页面 def test_timetask_scene_page(self): self.assertTrue(self.timetask_scene_page()) # 管家-添加任务页面,点击添加要执行的场景,进入选择场景页面,点击完成,toast提示:请选择一个场景 def test_timetask_scene_finish(self): self.assertTrue(self.timetask_scene_finish()) # 管家-选择设备页面,点击墙面插座,进入设置设备状态页面 def test_setting_devide_status_page(self): self.assertTrue(self.setting_device_status_page()) # 管家-设置设备状态页面,点击开,进入添加延时任务页面 def test_delay_task_page(self): self.assertTrue(self.delay_task_page()) # 管家-添加延时任务页面,点击打开添加延时按钮,弹出延时时间编辑框,查找秒 def test_delay_task_timeopen(self): self.assertTrue(self.delay_task_tiemopen()) # 管家-添加延时任务页面,点击打开添加延时按钮,再次点击按钮,延时时间编辑框隐藏,查找不到秒 def test_delay_task_timeclose(self): self.assertFalse(self.delay_task_timeclose()) # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面 def test_dekay_task_finish(self): self.assertTrue(self.delay_task_finish()) # 管家-添加延时任务页面,左划任务,拉出删除按钮 def test_task_leftswip(self): self.assertTrue(self.task_leftswip()) # 管家-添加延时任务页面,左划任务,拉出删除按钮,点击删除按钮,任务删除 def test_task_delete(self): self.assertFalse(self.task_delete()) # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面,点击左上返回按钮,弹窗是否放弃编辑弹窗 def test_giveup_edit(self): self.assertTrue(self.giveup_edit()) # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面,点击左上返回按钮,弹窗是否放弃编辑弹窗,点击取消,弹窗消失 def test_giveup_edit_cancel(self): self.assertFalse(self.giveup_edit_cancel()) # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面,点击左上返回按钮,弹窗是否放弃编辑弹窗,点击确定,跳转我的管家页面,任务未保存 def test_giveup_edit_sure(self): self.assertFalse(self.giveup_edit_sure()) # 管家-添加延时任务页面,点击完成按钮,跳转定时任务编辑页面,点击保存按钮,跳转我的页面,定时任务保存成功,查找呵呵123 def test_timed_task(self): self.assertTrue(self.timed_task()) # 管家-定时任务编辑页面,点击保存按钮,弹窗提示:执行任务不能为空,请添加 def test_timed_notask(self): self.assertTrue(self.timed_notask()) # 管家-定时任务编辑页面,点击保存按钮,弹窗提示:执行任务不能为空,请添加,点击确定按钮,弹窗消失 def test_timed_notask_sure(self): self.assertFalse(self.timed_notask_sure()) # 管家-新建一个定时任务,点击任务,进入定时任务编辑页面 def test_click_timedtask(self): self.assertTrue(self.click_timedtask()) # 管家-新建一个定时任务,左划任务,拉出编辑按钮 def test_swip_timedtask(self): self.assertTrue(self.swip_timedtask()) # 管家-新建一个定时任务,左划任务,拉出编辑按钮,点击编辑按钮,进入定时任务编辑页面 def test_swip_timedtask_edit(self): self.assertTrue(self.swip_timedtask_edit()) # 管家-新建一个定时任务,左划任务,拉出删除按钮 def test_swip_timedtask_delete(self): self.assertTrue(self.swip_timedtask_delete()) # 管家-新建一个定时任务,左划任务,拉出删除按钮,点击删除按钮,任务被删除 def test_swip_timedtask_deletesure(self): self.assertFalse(self.swip_timedtask_deletesure()) # 管家-创建管家任务编辑框,点击情景任务,进入情景任务编辑页面----------------------------------------------------------------- def test_scenetask_page(self): self.assertTrue(self.scenetask_page()) # 管家-情景任务编辑页面,点击名称,弹出名称弹窗 def test_scenetask_name(self): self.assertTrue(self.scenetask_name()) # 管家-情景任务编辑-名称弹窗,输入名称哈哈123,点击确定,弹窗消失,名称显示为:哈哈123 def test_scenetask_namesure(self): self.assertTrue(self.scenetask_namesure()) # 管家-情景任务编辑-名称弹窗,输入名称哈哈123,点击取消,弹窗消失,名称显示未变 def test_scenetask_namecancel(self): self.assertFalse(self.scenetask_namecancel()) # 管家-情景任务编辑,点击满足任一条件时,进入选择设备页面 def test_condition_page(self): self.assertTrue(self.condition_page()) # 管家-条件任务-选择设备页面,点击全部分区,下拉所以分区,查找元素全部分区 def test_conditionpage_zone(self): self.assertTrue(self.conditionpage_zone()) # 管家-条件任务-选择设备页面,点击全部类别,下拉所以类别,查找智能门锁 def test_conditionpage_categroy(self): self.assertTrue(self.conditionpage_category()) # 管家-条件任务-选择设备页面,点击门窗磁探测器,进入设置设备状态页面 def test_condition_magnetic_page(self): self.assertTrue(self.condition_mannetic_page()) # 管家-条件任务-设置设备状态页面,点击被打开,跳转情景任务编辑页面,查找门窗磁探测器 def test_condition_magnetic_open(self): self.assertTrue(self.condition_magnetic_open()) # 管家-条件任务-设置设备状态页面,点击被关闭,跳转情景任务编辑页面,查找门窗磁探测器 def test_condition_magnetic_close(self): self.assertTrue(self.condition_magnetic_close()) # 管家-条件任务成功-情景任务编辑页面,左划任务,拉出删除按钮,查找删除 def test_condition_swip(self): self.assertTrue(self.condition_swip()) # 管家-条件任务成功-情景任务编辑页面,左划任务,拉出删除按钮,查找删除,点击删除,任务删除成功,查找不到门窗磁探测器 def test_condition_swip_delete(self): self.assertFalse(self.condition_swip_delete()) # 管家-情景任务编辑,点击执行以下任务,情景任务页面,查找添加要执行的设备 def test_implement_page(self): self.assertTrue(self.implement_page()) # 管家-执行任务-情景任务页面,点击添加要执行的设备,进入选择设备页面 def test_implement_devicepage(self): self.assertTrue(self.implement_devicepage()) # 管家-已设置条件-执行任务-情景任务页面,点击添加要执行的场景,进入选择场景页面 def test_implement_scenepage(self): self.assertTrue(self.implement_scenepage()) # 管家-执行任务-情景任务页面,点击添加要执行的场景,进入选择场景页面,点击完成,toast提示:请选择一个场景 def test_implement_scenepage_finish(self): self.assertTrue(self.implement_scenepage_finish()) # 管家-执行任务-选择设备页面,点击全部分区,下拉所以分区,查找元素全部分区 def test_implement_device_zone(self): self.assertTrue(self.implement_device_zone()) # 管家-已设置条件-执行任务-选择设备页面,点击全部类别,下拉所以类别,查找智能门锁 def test_implement_device_categroy(self): self.assertTrue(self.implement_device_categroy()) # 管家-已设置条件-执行任务-选择设备页面,点击批量添加,进入批量添加页面,查找全选 def test_implement_device_add(self): self.assertTrue(self.implement_device_add()) # 管家-执行任务-选择设备页面,点击墙面插座,进入设置设备状态页面 def test_implement_socket_setting(self): self.assertTrue(self.implement_socket_setting()) # 管家-执行任务-设置设备状态页面,点击开,跳转添加延时页面 def test_implement_socket_open(self): self.assertTrue(self.implement_socket_open()) # 管家-执行任务-设置设备状态页面,点击关,跳转添加延时页面 def test_implement_socket_close(self): self.assertTrue(self.implement_socket_close()) # 管家-执行任务-添加延时页面,点击添加延时开关按钮,弹出延时时间编辑框,查找秒 def test_implement_time_open(self): self.assertTrue(self.implement_time_open()) # 管家-执行任务-添加延时页面,点击添加延时开关按钮,弹出延时时间编辑框,再次点击开关按钮,延时时间编辑框隐藏,查找不到秒 def test_implement_time_close(self): self.assertFalse(self.implement_time_close()) # 管家-执行任务-添加延时页面,点击完成按钮,跳转情景任务编辑页面,查找墙面插座 def test_implement_finish(self): self.assertTrue(self.implement_finish()) # 管家-已设置任务,点击执行任务,进入设置设备状态页面 def test_implement_click_firsttask(self): self.assertTrue(self.implement_click_firsttask()) # 管家-已设置任务,左划执行任务,拉出删除按钮,查找删除 def test_implement_swip(self): self.assertTrue(self.implement_swip()) # 管家-已设置任务,左划执行任务,拉出删除按钮,点击删除按钮,任务被删除,查找墙面插座 def test_implement_swip_delete(self): self.assertFalse(self.implement_swip_delete()) # 管家-情景任务编辑页面,点击保存按钮,弹窗提示:执行条件或者执行任务不能为空,请添加 def test_condition_implement_allnone(self): self.assertTrue(self.condition_implement_allnone()) # 管家-情景任务编辑页面,点击保存按钮,弹窗提示:执行条件或者执行任务不能为空,请添加,点击确定按钮,弹窗消失 def test_condition_implement_allnone_sure(self): self.assertFalse(self.condition_implement_allnone_sure()) # 管家-情景任务编辑页面-已设置执行条件,点击保存按钮,弹窗提示:执行条件或者执行任务不能为空,请添加 def test_implement_none(self): self.assertTrue(self.implement_none()) # 管家-情景任务编辑页面-已设置执行任务,点击保存按钮,弹窗提示:执行条件或者执行任务不能为空,请添加 def test_condition_none(self): self.assertTrue(self.condition_none()) # 管家-已设置名称-已设置执行条件-已设置执行任务,点击保存,跳转我的管家页面,查找第一个管家任务元素 def test_scenetask_creat(self): self.assertTrue(self.scenetask_creat()) # 管家-已设置执行任务,点击左上返回按钮,弹窗提示:是否放弃编辑 def test_giveup_edit2(self): self.assertTrue(self.giveup_edit2()) # 管家-已设置执行任务,点击左上返回按钮,弹窗提示:是否放弃编辑,点击取消,弹窗消失 def test_giveup_edit2_cancel(self): self.assertFalse(self.giveup_edit2_cancel()) # 管家-已设置执行任务,点击左上返回按钮,弹窗提示:是否放弃编辑,点击确定,跳转我的管家页面,任务未保存 def test_giveup_edit2_sure(self): self.assertFalse(self.giveup_edit2_sure()) # 管家-情景任务编辑页面,点击生效条件,进入生效条件页面,查找:生效时间条件 def test_precondition_page(self): self.assertTrue(self.precondition_page()) # 管家-生效条件页面,点击生效时间条件,进入生效时段页面 def test_precondition_time(self): self.assertTrue(self.precondition_time()) # 管家-生效条件页面,点击生效设备条件,进入选择设备页面 def test_precondition_device(self): self.assertTrue(self.precondition_device()) # 管家-生效条件页面,点击生效场景条件,进入选择场景页面 def test_precondition_scene(self): self.assertTrue(self.precondition_scene()) # 管家-新建一个情景任务,点击情景任务,进入情景任务编辑页面 def test_click_scenetask(self): self.assertTrue(self.click_scenetask()) # 管家-新建一个情景任务,左划任务,拉出编辑按钮 def test_scenetask_swip_edit(self): self.assertTrue(self.scenetask_swip_edit()) # 管家-新建一个情景任务,左划任务,拉出编辑按钮,点击编辑按钮,进入定时任务编辑页面 def test_scenetask_click_edit(self): self.assertTrue(self.scenetask_click_edit()) # 管家-新建一个情景任务,左划任务,拉出删除按钮 def test_scenetask_swip_delete(self): self.assertTrue(self.scenetask_swip_delete()) # 管家-新建一个情景任务,左划任务,拉出删除按钮,点击删除按钮,任务被删除 def test_scenetask_click_delete(self): self.assertFalse(self.scenetask_click_delete())
class Test008(unittest.TestCase, a08_wall_socket.Wall_socket): # TestCase类,所有测试用例类继承的基本类 """墙面插座测试""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 1、设备,进入墙面插座详情页 def test_details_page(self): self.assertTrue(self.details_page()) # 2、设备-插座详情页,点击返回按钮,返回设备列表页面 def test_details_page_back(self): self.assertTrue(self.details_page_back()) # 3、设备-插座详情页,关闭状态,点击开关按钮,打开插座 def test_open_socket(self): self.assertTrue(self.open_socket()) # 4、设备-插座详情页,打开状态,点击开关按钮,关闭插座 def test_close_socket(self): self.assertTrue(self.close_socket()) # 5、设备-插座详情页,点击更多按钮,进入更多页面 def test_more_pages(self): self.assertTrue(self.more_pages()) # 设备-插座详情页-更多,点击返回按钮,进入设备详情页 def test_more_pages_back(self): self.assertTrue(self.more_pages_back()) # 设备-插座详情页-更多,重命名哈哈123-确定,toast:修改设备名称成功 def test_rename(self): self.assertTrue(self.rename()) # 恢复设备名称 time.sleep(1) self.find_id(excel.id_con('item_device_more_rename')).click() # 点击重命名 time.sleep(1) self.find_id(excel.id_con('et_user_info')).send_keys(u'墙面插座') # 输入新名称 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮 # 设备-插座详情页-更多,重命名哈哈123-确定,返回设备列表,可以查找到新设备名称 def test_rename_back(self): self.assertTrue(self.rename_back()) # 恢复设备名称 self.click_device(u'哈哈') # 点击墙面插座 self.wait_ac(excel.activity_con('device_detail_activity')) time.sleep(1) self.find_xpath(excel.xpath_con('more')).click() # 点击右上更多按钮 time.sleep(1) self.find_id(excel.id_con('item_device_more_rename')).click() # 点击重命名 time.sleep(1) self.find_id(excel.id_con('et_user_info')).send_keys(u'墙面插座') # 输入新名称 self.find_id(excel.id_con('dialog_btn_positive')).click() # 点击确定按钮 # 设备-插座详情页-更多,重命名哈哈123-取消 def test_rename_cancel(self): self.assertTrue(self.rename_cancel()) # 设备-插座详情页-更多,命名已有的设备名称,toast提示:设备名称重复! def test_zzz_raname_repeat(self): self.assertTrue(self.zzz_rename_repeat()) # 设备-插座详情页-更多,重命名-不输入名称,确定按钮点击无效,重命名弹窗还在,查找:请输入设备名 def test_rename_none(self): self.assertTrue(self.rename_none()) # 设备-插座详情页-更多,点击分区,进入分区页面 def test_zone_pages(self): self.assertTrue(self.zone_pages()) # 设备-插座详情页-更多-分区,点击返回按钮,返回更多页面 def test_zone_pages_back(self): self.assertTrue(self.zone_pages_back()) # 设备-插座详情页-更多,前置条件至少有一个分区,点击分区,返回更多页面,toast:修改设备区域成功 def test_modify_zone(self): self.assertTrue(self.modify_zone()) # 设备-插座详情页-更多,点击未分区,返回更多页面,未分区可以查找到 def test_non_zone(self): self.assertTrue(self.non_zone()) # 设备-插座详情页-更多-分区,点击右上管理分区,进入分区管理页面 def test_zoning_pages(self): self.assertTrue(self.zoning_pages()) # 设备-插座详情页-更多-分区-分区管理,点击返回按钮,返回分区页面 def test_zoning_pages_back(self): self.assertTrue(self.zoning_pages_back()) # 设备-插座详情页-更多,点击设备信息,进入设备信息页面,产品名称 def test_device_information(self): self.assertTrue(self.device_information()) # 设备-插座详情页-更多-设备信息,点击返回按钮,返回更多页面 def test_device_information_back(self): self.assertTrue(self.device_information_back()) # 设备-插座详情页-更多,点击找设备,弹窗设备指示灯将闪烁10秒 def test_find_device(self): self.assertTrue(self.find_device()) # 设备-插座详情页-更多-找设备弹窗,点击已找到,弹窗消失 def test_find_device_found(self): self.assertFalse(self.find_device_found()) # 设备-插座详情页-更多-找设备弹窗,点击再闪一次,弹窗还在 def test_find_device_find(self): self.assertTrue(self.find_device_find()) # 设备-插座详情页-更多,点击日志,日志消息页面 def test_log_message_pages(self): self.assertTrue(self.log_message_pages()) # 设备-插座详情页-更多-日志消息,点击返回,返回更多页面 def test_log_message_pages_back(self): self.assertTrue(self.log_message_pages_back()) # 设备-插座详情页-更多-日志消息,点击按日期查找,弹窗查找编辑框 def test_log_search_by_time(self): self.assertTrue(self.log_search_by_time()) # 设备-插座详情页-更多-日志消息,点击清空日志按钮,弹窗确定清空该设备消息记录 def test_emptying_record(self): self.assertTrue(self.emptying_record()) # 设备-插座详情页-更多-日志消息-清空弹窗,点击取消,弹窗消失 def test_emptying_record_cancel(self): self.assertFalse(self.emptying_record_cancel()) # 设备-插座详情页-更多-日志消息-清空弹窗,点击确定,弹窗消失,返回更多页面 def test_emptying_record_sure(self): self.assertTrue(self.emptying_record_sure()) # 设备-插座详情页-更多-日志消息-清空弹窗,清空消息,再返回日志页面,提示:没有日志消息 def test_log_emptying(self): self.assertTrue(self.log_emptying()) # 设备-插座详情页-更多-日志消息-清空弹窗,清空消息,再返返回设备详情页,点击两次开关按钮,再进日志页面,查到已打开 def test_log_open(self): self.assertTrue(self.log_open()) # 设备-插座详情页-更多-日志消息-清空弹窗,清空消息,再返返回设备详情页,点击两次开关按钮,再进日志页面,查到已关闭 def test_log_close(self): self.assertTrue(self.log_close()) # 设备-插座详情页-更多,点击删除设备,弹窗确定删除设备吗? def test_delete_device(self): self.assertTrue(self.delete_device()) # 设备-插座详情页-更多-删除设备弹窗,点击取消按钮,弹窗消失(删除设备用例省略) def test_delete_device_cancel(self): self.assertFalse(self.delete_device_cancel()) # 场景,设置场景打开插座 -------------------------------------------------------------- def test_scene_open_socket(self): self.assertTrue(self.scene_open_socket()) # 关闭插座,点击打开插座场景 def test_click_scene_open_socket(self): self.assertTrue(self.click_scene_open_socket()) # 场景,设置场景关闭插座 def test_scene_close_socket(self): self.assertTrue(self.scene_close_socket()) # 打开插座,点击关闭插座场景 def test_click_scene_close_socket(self): self.assertTrue(self.click_scene_close_socket()) # 场景,添加延时页面,点击延时按钮,弹出延时设置编辑框 def test_scene_time(self): self.assertTrue(self.scene_time()) # 场景,添加延时页面,点击延时按钮,弹出延时设置编辑框,再次点击延时按钮,编辑框隐藏 def test_scene_time_off(self): self.assertFalse(self.scene_time_off()) # 场景,添加延时页面,设置延时任务,编辑场景页面查找?秒后执行 def test_scene_delay(self): self.assertTrue(self.scene_delay()) # 场景,设置场景打开插座,点击返回按钮,弹窗:编辑的场景尚未保存,是否退出 def test_editscene_back(self): self.assertTrue(self.editscene_back()) # 场景,设置场景打开插座,点击返回按钮,点击取消,弹窗消失 def test_editscene_back_cancel(self): self.assertFalse(self.editscene_back_cancel()) # 场景,设置场景打开插座,点击返回按钮,点击退出,任务未保存 def test_editscene_back_exit(self): self.assertFalse(self.editscene_back_exit()) # 场景,设置场景打开插座,点击返回按钮,点击保存并退出,任务保存成功 def test_editscene_back_exitsave(self): self.assertTrue(self.editscene_back_exitsave()) # 场景,设置场景打开插座,左划拉出删除按钮 def test_editscene_delete(self): self.assertTrue(self.editscene_delete()) # 场景,设置场景打开插座,左划拉出删除按钮,点击删除,任务被删除 def test_editscene_delete_click(self): self.assertFalse(self.editscene_delete_click()) # 场景,设置场景打开插座,点击任务,可以重新设置任务,进入设置设备状态页面 def test_editscene_edit(self): self.assertTrue(self.editscene_edit()) # 场景,添加设备页面,点击全部分区,拉出所有分区 def test_editscene_allzone(self): self.assertTrue(self.editscene_allzone()) # 场景,添加设备页面,点击全部类别,拉出所有类别,查找智能门锁 def test_editscene_allcategory(self): self.assertTrue(self.editscene_allcategory()) # 场景,添加设备页面,点击批量添加,进入批量添加页面,查找全选 def test_editscene_batchadd(self): self.assertTrue(self.editscene_batchadd())
class Test005(unittest.TestCase, a05_setting.Setting): # TestCase类,所有测试用例类继承的基本类 """设置测试""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 1、设置-账号安全,身份验证,不填验证码,验证成功后即可换绑手机号按钮不可点击 def test_authentication_button(self): self.assertFalse(self.authentication_button()) # 2、设置-账号按钮,身份验证,错误验证码,toast提示:验证码错误 def test_authentication_wrong_code(self): self.assertTrue(self.authentication_wrong_code()) # 3、设置-账号按钮,身份验证,小于6位验证码,toast提示:验证码错误 def test_authentication_code_6(self): self.assertTrue(self.authentication_code_6()) # 4、设置-账号按钮,更改手机号,不输入手机号,直接点击获取验证码按钮,toast提示:手机号不能为空 def test_phonepage_no_phone(self): self.assertTrue(self.phonepage_no_phone()) # 5、设置-账号按钮,更改手机号,输入手机号,不输入验证码,更改手机号按钮不可点击 def test_phonepage_button_no_code(self): self.assertFalse(self.phonepage_button_no_code()) # 6、设置-账号按钮,更改手机号,输入验证码,不输入手机号,更改手机号按钮不可点击 def test_phonepage_button_no_phone(self): self.assertFalse(self.phonepage_button_no_phone()) # 7、设置-账号按钮,更改手机号,输入错误手机号,输入验证码,点击更改手机号按钮,toast提示:手机号格式错误 def test_phonepage_wrong_phone(self): self.assertTrue(self.phonepage_wrong_phone()) # 8、设置-账号按钮,更改手机号,输入手机号,输入错误验证码,点击更改手机号按钮,toast提示:验证码错误 def test_phonepage_wrong_code(self): self.assertTrue(self.phonepage_wrong_code()) # 9、设置-账号按钮,更改手机号,输入手机号,输入小于6位验证码,点击更改手机号按钮,toast提示:验证码错误 def test_phonepage_code_6(self): self.assertTrue(self.phonepage_code_6()) # 10、设置-账号按钮,更改手机号,输入已注册手机号,输入验证码,点击更改手机号按钮,toast提示:用户已存在 def test_phonepage_old_user(self): self.assertTrue(self.phonepage_old_user()) # 11、设置-账号安全-邮箱,不输入验证码,验证成功后即可换绑邮箱(邮箱验证码没有设置为123456,大部分用例不可翻译,省略,同更改手机号)按钮,不可点击 def test_mail_no_code(self): self.assertFalse(self.mail_no_code()) # 12、设置-账号安全-邮箱,输入错误验证码,toast提示:验证码失效 def test_mail_wrong_code(self): self.assertTrue(self.mail_wrong_code()) # 13、设置-账号安全-修改密码,不输入验证码,验证成功后即可修改密码按钮,不可点击 def test_password_no_code(self): self.assertFalse(self.password_no_code()) # 14、设置-账号安全-修改密码,输入错误密码,点击验证成功后即可修改密码按钮,toast提示:验证码错误 def test_password_wrong_code(self): self.assertTrue(self.password_wrong_code()) # 15、设置-账号安全-修改密码-修改密码,不输入新密码,确定按钮不可点击 def test_password_no_new_password(self): self.assertFalse(self.password_no_new_password()) # 16、设置-账号安全-修改密码-修改密码,输入少于6位新密码,toast提示:密码长度不能小于6个字符 def test_password_new_password_6(self): self.assertTrue(self.password_new_password_6()) # 17、设置-账号安全-修改密码-修改密码,输入全数字新密码,toast提示:密码至少有数字、字母或符号的2种组合 def test_password_new_number_password(self): self.assertTrue(self.password_new_number_password()) # 18、设置-账号安全-修改密码-修改密码,输入全字母新密码,toast提示:密码至少有数字、字母或符号的2种组合 def test_password_new_letter_password(self): self.assertTrue(self.password_new_letter_password()) # 19、设置-账号安全-修改密码-修改密码,输入正确的新密码,返回我的页面 def test_new_password(self): self.assertTrue(self.new_password()) # 20、设置-推送通知,关闭按钮,设备推送管理等隐藏 def test_close_push(self): self.assertFalse(self.close_push()) # 打开推送通知 time.sleep(1) self.find_id(excel.id_con('item_setting_alarm_user')).click() # 21、设置-推送通知,打开按钮,推送时间等展开 def test_open_push(self): self.assertTrue(self.open_push()) # 22、设置-报警语音-报警语音,关闭按钮,语速等隐藏 def test_closing_alarm_speech(self): self.assertFalse(self.closing_alarm_speech()) # 打开报警语音 time.sleep(1) self.find_id( excel.id_con('item_remind_alarm_voice')).click() # 点击报警语音开关按钮,打开 # 23、设置-报警语音-报警语音,打开按钮,语种等展开 def test_open_alarm_speech(self): self.assertTrue(self.open_alarm_speech()) # 24、设置,点击推送时间 def test_push_time(self): self.assertTrue(self.push_time()) # 25、设置,点击设置推送管理 def test_push_manage(self): self.assertTrue(self.push_manage()) # 26、设置,点击换肤中心 def test_setting_skin(self): self.assertTrue(self.setting_skin()) # 27、设置,点击清理缓存 def test_setting_cache(self): self.assertTrue(self.setting_cache()) # 28、设置,点击退出登陆 def test_drop_out(self): self.assertTrue(self.drop_out())
class Test003(unittest.TestCase, a03_register.Register): # TestCase类,所有测试用例类继承的基本类 """注册测试+忘记密码""" # setUp()方法用于测试用例执行前的初始化工作,如打开APP def setUp(self): self.ina = Open_app(self) self.ina.open() self.driver = self.ina.get_driver() self.verificationErrors = [] # 错误信息打印到这个列表 self.accept_next_alert = True # 是否继续接受下个警告 def tearDown(self): time.sleep(2) self.driver.quit() self.assertEqual([], self.verificationErrors) # 1、进入注册页 def test_click_the_regidter(self): self.assertTrue(self.click_the_register()) # 2、手机号格式不正确 def test_incorrect_format(self): self.assertTrue(self.incorrect_format()) # 3、手机号已被注册-用户已存在 def test_account_is_registered(self): self.assertTrue(self.account_is_registered()) # 4、手机号码为空下一步按钮不可点击 def test_next_step_not_clickable(self): self.assertFalse(self.next_step_not_clickable()) # 5、《使用条款与免责协议》 def test_disclaimer_agreement(self): self.assertTrue(self.disclaimer_agreement()) # 6、《使用条款与免责协议》页面返回注册页面 def test_return_register(self): self.assertTrue(self.return_register()) # 7、进入忘记密码页面 def test_forget_the_password(self): self.assertTrue(self.forget_the_password()) # 8、忘记密码,手机号格式不正确 def test_password_incorrect_format(self): self.assertTrue(self.password_incorrect_format()) # 9、未输入手机号,下一步按钮不可点击 def test_password_not_clickable(self): self.assertFalse(self.password_not_clickable()) # 10、新密码设置成功 def test_new_password(self): self.assertTrue(self.new_password()) # 11、输入错误的验证码 def test_error_validation_code(self): self.assertTrue(self.error_validation_code()) # 12、新密码不足6位 def test_password_less_6(self): self.assertTrue(self.password_less_6())