# -*- coding: utf-8 -*- # __author__ = 'xinjiu.qiao' import allure from airtest.core.api import * from ui_auto_lego.common import handle_driver from ui_library.page.parent.vispark import login, p_center from ui_library.common.read_config import readconfig from ui_library.operation.parent.vispark.handle_swipe import hd_swipe from ui_library.logic.parent.vispark.login_logic import logic_login from ui_auto_lego.common.handle_action import HandleAction handle_driver_obj = handle_driver.HandleDriver() login_page = login.prLogin() my_lists = p_center.my_lists_or_servers() obj_handle_action = HandleAction() rf_config = readconfig() user_info = eval(rf_config.parent_user) h_swipe = hd_swipe() handle_login = logic_login() @allure.feature('ViSpark home') class TestPcenter(object): poco_driver = handle_login.poco_driver def setup(self): # 启动被测试应用,并且进行登录到首页 handle_login.login() def teardown(self): # 退出被测试应用并清理数据 self.init_mobile_start_app.quit() sleep(5) self.init_mobile_start_app.clear_app() @allure.story("[my_lists(个人中心)--00*]") @allure.title("[my_lists(检查个人中心的我的课时)--00*]") def test_my_lists_credits(self): with allure.step("用户进入me"): # 用户登录后,点击me allure.attach('点击me进入个人设置页面') obj_handle_action.click_by_poco(self.poco_driver, login_page.get_me_button_by_poco()) # 点击我的课时按钮 allure.attach('点击我的课时,进入我的课时页面') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_my_class_credit_by_poco()) # 检查我的课时页面是否正常 list_my = [] for i in self.poco_driver(textMatches="My.*?"): list_my.append(i.get_text()) allure.attach('我的课时页面获取所有关于My*的元素text') if "My Class Credits" in list_my: assert True else: assert False, "我的课时页面获取标题失败" # todo 检查课时是否正常 # 点击返回 obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) @allure.story("[my_lists(个人中心)--00*]") @allure.title("[my_lists(检查个人中心的我的订阅)--00*]") def test_my_lists_subscribe(self): # with allure.step("判断是否在me的这个界面,如果不在则点击进入"): # if not obj_handle_action.is_exists_by_poco(poco=self.poco_driver, ssion="Spark Student"): # obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) with allure.step("用户进入me"): # 用户登录后,点击me allure.attach('点击me进入个人设置页面') obj_handle_action.click_by_poco(self.poco_driver, login_page.get_me_button_by_poco()) # 点击我的课时按钮 allure.attach('点击我的订阅,进入我的订阅页面') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_subscriptions_by_poco()) # 检查我的订阅信息页面是否正常 list_my = [] for i in self.poco_driver(textMatches="Subscription.*?"): list_my.append(i.get_text()) allure.attach('我的订阅页面获取所有关于Subscription*的元素text') if "Subscription" in list_my: assert True else: assert False, "我的订阅页面获取标题失败" # todo 检查课时是否正常 # 点击返回 obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) @allure.story("[my_lists(个人中心)--00*]") @allure.title("[my_lists(检查个人中心的我的邮寄地址)--00*]") def test_my_lists_deliveries(self): # with allure.step("判断是否在me的这个界面,如果不在则点击进入"): # if not obj_handle_action.is_exists_by_poco(poco=self.poco_driver, ssion="Spark Student"): # obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) with allure.step("用户进入me"): # 用户登录后,点击me allure.attach('点击me进入个人设置页面') obj_handle_action.click_by_poco(self.poco_driver, login_page.get_me_button_by_poco()) # 点击我的邮寄地址按钮 allure.attach('点击我的邮寄地址,进入我的邮寄地址页面') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_delieveries_by_poco()) # 检查我的邮寄地址信息页面是否正常 list_my = [] for i in self.poco_driver(textMatches="My.*?"): list_my.append(i.get_text()) allure.attach('我的邮寄地址页面获取所有关于My*的元素text') if "My Delivery List" in list_my: assert True else: assert False, "我的邮寄地址页面获取标题失败" # todo 检查课时是否正常 # 点击返回 obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) @allure.story("[my_lists(个人中心)--00*]") @allure.title("[my_lists(检查个人中心的我的优惠劵)--00*]") def test_my_lists_coupons(self): # with allure.step("判断是否在me的这个界面,如果不在则点击进入"): # if not obj_handle_action.is_exists_by_poco(poco=self.poco_driver, ssion="Spark Student"): # obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) with allure.step("用户进入me"): # 用户登录后,点击me allure.attach('点击me进入个人设置页面') obj_handle_action.click_by_poco(self.poco_driver, login_page.get_me_button_by_poco()) # 点击我的邮寄地址按钮 allure.attach('点击我的优惠劵,进入我的优惠劵页面') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_coupons_by_poco()) # 检查我的邮寄地址信息页面是否正常 list_my = [] for i in self.poco_driver(textMatches="My.*?"): list_my.append(i.get_text()) allure.attach('我的优惠劵页面获取所有关于My*的元素text') if "My Coupons" in list_my: assert True else: assert False, "我的优惠劵页面获取标题失败" allure.attach('在我的优惠劵界面,分别点击不可用,可用,失效的优惠劵table') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_unused_coupons_by_poco()) #todo 需要加入不可用优惠劵的检查点 obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_used_coupons_by_poco()) #todo 需要加入可用的优惠劵的检查点 obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_expired_coupons_by_poco()) #todo 需要加入失效优惠劵的检查点 # 点击返回 obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) @allure.story("[my_lists(个人中心)--00*]") @allure.title("[my_lists(检查个人中心中我的服务的帮助中心)--00*]") def test_my_servers_help(self): # with allure.step("判断是否在me的这个界面,如果不在则点击进入"): # if not obj_handle_action.is_exists_by_poco(poco=self.poco_driver, ssion="Spark Student"): # obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) with allure.step("在当前页面下方,所以需要往上滑动"): handle_driver_obj.swipe_pos([my_lists.swipe_start_by_air()],poco_driver=self.poco_driver,vector=[0.0181, -0.3073]) with allure.step("用户进入me"): # 用户登录后,点击me allure.attach('点击me进入个人设置页面') obj_handle_action.click_by_poco(self.poco_driver, login_page.get_me_button_by_poco()) # 点击我的帮助中心按钮 allure.attach('点击我的帮助中心,进入帮助中心页面') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_help_center_by_poco()) # 检查我的帮助中心信息页面是否正常 list_my = [] for i in self.poco_driver(textMatches="VISPARK.*?"): list_my.append(i.get_text()) allure.attach('我的帮助中心页面获取所有关于VISPARK*的元素text') if "VISPARK-April" in list_my: assert True else: assert False, "我的帮助中心页面获取标题失败" # 点击返回 obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_close_help_center_by_poco()) @allure.story("[my_lists(个人中心)--00*]") @allure.title("[my_lists(检查个人中心中我的服务的意见反馈)--00*]") def test_my_servers_feedback(self): # with allure.step("判断是否在me的这个界面,如果不在则点击进入"): # if not obj_handle_action.is_exists_by_poco(poco=self.poco_driver, ssion="Spark Student"): # obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_by_poco()) with allure.step("在当前页面下方,所以需要往上滑动"): handle_driver_obj.swipe_pos([my_lists.swipe_start_by_air()], poco_driver=self.poco_driver, vector=[0.0181, -0.3073]) with allure.step("用户进入me"): # 用户登录后,点击me allure.attach('点击me进入个人设置页面') obj_handle_action.click_by_poco(self.poco_driver, login_page.get_me_button_by_poco()) # 点击我的意见反馈按钮 allure.attach('点击我的意见反馈,进入意见反馈的页面') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_feedback_by_poco()) # 检查我的意见反馈信息页面是否正常 list_my = [] for i in self.poco_driver(textMatches="History.*?"): list_my.append(i.get_text()) allure.attach('我的意见反馈页面获取所有关于History*的元素text') if "History" in list_my: assert True else: assert False, "我的意见反馈页面获取标题失败" # 提交意见反馈 allure.attach('意见反馈进行提交-1.选择表扬') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_feedback_compliment_by_poco()) allure.attach('意见反馈进行提交-2.录入反馈信息') obj_handle_action.set_text_by_poco(self.poco_driver, my_lists.get_feedback_detail_by_poco(), "auto-feedback") allure.attach('意见反馈进行提交-3.进行提交') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_feedback_submit_by_poco()) allure.attach('意见反馈提交成功后-4.点击确定') obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_feedback_ok_by_poco()) # 提交成功后,需要返回到上级页面,无返回按钮,只能右滑进行返回 handle_driver_obj.swipe_pos([my_lists.swipe_feedback_right_by_air()], poco_driver=self.poco_driver, vector=[0.8162, 0.068]) # 点击History,检查刚刚新增的数据是否存在 allure.attach('意见反馈提交成功后-5.查看历史记录,检查刚刚数据是否存在') time.sleep(2) obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_feedback_history_by_poco()) list_feedback_history = [] for i in self.poco_driver(textMatches="auto-feedback.*?"): list_feedback_history.append(i.get_text()) allure.attach('我的意见反馈页面获取所有关于History*的元素text') if "auto-feedback" in list_feedback_history: assert True else: assert False, "我的意见反馈页面未查询到相应新增数据失败" # 点击返回 obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_feedback_by_poco()) obj_handle_action.click_by_poco(self.poco_driver, my_lists.get_back_feedback_by_poco()) if __name__ == '__main__': # TestLogin().teardown() # TestLogin().setup() # TestLogin().test_us_ap_trial() # TestLogin().test_us_ap_subscribe() # TestLogin().test_us_ap_subscribe_schedule() TestPcenter().test_my_servers_feedback()