Пример #1
0
import time

from selenium.webdriver.common.by import By

from Base.page import Page
from Base.get_driver import get_driver

# 实例化统一入口类
page_obj = Page(
    get_driver("com.yunmall.lc",
               "com.yunmall.ymctoc.ui.activity.MainActivity"))

# 点击首页我
page_obj.get_home_page().click_home_my_btn()
# 点击已有账户去登录
page_obj.get_sign_page().click_sign_exits_btn()
# 登录操作
page_obj.get_login_page().login("13488834010", "159357li123")


def get_toast(tos):
    # 获取消息
    xpath_data = (By.XPATH, "//*[contains(@text,'%s')]" % tos)

    toast_text = page_obj.get_setting_page().search_element(xpath_data,
                                                            timeout=3,
                                                            poll_frequency=0.5)

    print(toast_text.text)

Пример #2
0
class Test_Login:
    def setup_class(self):
        self.driver = get_driver(
            "com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity")
        # 实例化Page类
        self.page_obj = Page(self.driver)

    def teardown_class(self):
        self.driver.quit()

    @pytest.fixture(autouse=True)  # 解决依赖条件
    def in_login_page(self):
        # 点击我
        self.page_obj.get_home_page().click_my_btn()
        # 点击已有账号去登录
        self.page_obj.get_sign_page().click_exits_accout()

    @pytest.mark.parametrize("user, pwd, exp", get_login_data().get("suc"))
    def test_succ_login(self, user, pwd, exp):

        # 登录
        self.page_obj.get_login_page().login(user, pwd)
        try:
            # 取我的优惠券
            coupons_text = self.page_obj.get_person_page().get_coupons_text()
            try:
                assert exp == coupons_text
            except AssertionError:
                # 截图
                self.page_obj.get_person_page().screen_shot(name="登录成功")
                assert False

            finally:
                # 点击设置按钮
                self.page_obj.get_person_page().click_setting_btn()
                # 执行退出操作
                self.page_obj.get_setting_page().logout()

        except TimeoutException:
            # 关闭登录页面
            self.page_obj.get_login_page().close_login_page()
            assert False

    @pytest.mark.parametrize("user, pwd, toast, exp",
                             get_login_data().get("fail"))
    def test_fail_login(self, user, pwd, toast, exp):

        # 登录
        self.page_obj.get_login_page().login(user, pwd)
        # 断言
        try:
            # 获取提示消息
            toast_data = self.page_obj.get_setting_page().get_toast(toast)
            try:
                # 断言提示消息 和 登录按钮
                assert toast_data == exp and self.page_obj.get_login_page(
                ).if_login_btn()
            except AssertionError:
                self.page_obj.get_setting_page().screen_shot(name="登录失败")
                assert False
            finally:
                # 关闭登录页面
                self.page_obj.get_login_page().close_login_page()
        except TimeoutException:
            # 截图
            self.page_obj.get_person_page().screen_shot()
            try:
                # 点击设置按钮
                self.page_obj.get_person_page().click_setting_btn()
                # 执行退出操作
                self.page_obj.get_setting_page().logout()
            except TimeoutException:
                self.page_obj.get_login_page().close_login_page()
Пример #3
0
 def home_click_my_btn(self):
     """首页点击我 -一次"""
     # 首页 -点击稍后更新
     Page.get_home_page().click_update_later()
     # 首页 -点击我的
     Page.get_home_page().click_mine()
Пример #4
0
class Test_login:
    def setup_class(self):
        # 声明driver
        self.driver = get_driver(
            "com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity")
        # 实例化统一入口类
        self.page_obj = Page(self.driver)

    def teardown_class(self):
        # 退出driver
        self.driver.quit()

    @pytest.fixture(autouse=True)
    def in_lobin_page(self):
        """每个方法执行一次"""
        # 点击首页我
        self.page_obj.get_home_page().click_home_my_btn()
        # 点击注册页面已有账号去登录
        self.page_obj.get_sign_page().click_sign_exits_btn()

    @pytest.mark.parametrize("case_num, username, passwd, exp_data",
                             get_login_data().get("suc"))
    def test_suc_login(self, case_num, username, passwd, exp_data):
        """预期成功测试用例"""
        # 登录操作
        self.page_obj.get_login_page().login(username, passwd)
        try:
            # 获取我的优惠券
            coup = self.page_obj.get_person_page().get_coupons_text()
            try:
                assert coup == exp_data
            except AssertionError:
                # 截图 TODO
                self.page_obj.get_login_page().screen_png()
                # 显示断言失败
                assert False
            finally:
                # 点击个人中心设置按钮
                self.page_obj.get_person_page().click_setting_btn()
                # 设置页面执行退出操作
                self.page_obj.get_setting_page().logout('y')
        except TimeoutException:
            # 截图 TODO
            self.page_obj.get_login_page().screen_png()
            """新功能的增加不会选择更改老功能元素属性"""
            # try:
            #     # 执行退出操作
            #     self.page_obj.get_person_page().click_setting_btn()
            #     self.page_obj.get_setting_page().logout('y')
            #
            # except TimeoutException:
            #     # 关闭登录页面--页面还停留在登录页
            #     self.page_obj.get_login_page().close_login_page()
            # 关闭登录页面--页面还停留在登录页
            self.page_obj.get_login_page().close_login_page()
            # 显示断言失败
            assert False

    @pytest.mark.parametrize("case_num, username, passwd, toast_mes, exp_data",
                             get_login_data().get("fail"))
    def test_fail_login(self, case_num, username, passwd, toast_mes, exp_data):
        """预期失败测试用例"""
        # 登录操作
        self.page_obj.get_login_page().login(username, passwd)
        try:
            # 获取toast消息
            message = self.page_obj.get_setting_page().get_toast(toast_mes)
            try:
                # 断言
                assert message == exp_data and self.page_obj.get_login_page(
                ).is_login_btn()
            except TimeoutException:
                # 截图 TODO
                self.page_obj.get_login_page().screen_png()
                assert False
            finally:
                # 关闭登录页面
                self.page_obj.get_login_page().close_login_page()
        except TimeoutException:
            # 截图 TODO
            self.page_obj.get_login_page().screen_png()
            try:
                # 找我的优惠券 ---作为个人中心退出操作
                self.page_obj.get_person_page().get_coupons_text()
                # 点击设置
                self.page_obj.get_person_page().click_setting_btn()
                # 执行退出
                self.page_obj.get_setting_page().logout('y')
            except TimeoutException:
                # 关闭登录页面
                self.page_obj.get_login_page().close_login_page()
            assert False
Пример #5
0
from Base.driver import Driver
from Base.page import Page
from selenium.common.exceptions import TimeoutException

# 首页 -稍后更新
Page.get_home_page().click_update_later()

# 首页 -点击我的
Page.get_home_page().click_mine()

# 个人中心 -登录/注册
Page.get_person_page().click_login_sign_btn()

# 登录页面 -登录
Page.get_login_page().login('13048122192', 'Qq123456')

# 登录页面 -登录确认
Page.get_login_page().click_login_success_btn()

# 个人中心 -获取用户名
print(Page.get_person_page().get_user_name())

# 个人中心 -点击设置
Page.get_person_page().click_setting_btn()

# 设置页面 -确认退出
Page.get_setting_page().logout()

# 退出driver
Driver.quit_app_driver()