Ejemplo n.º 1
0
class TestJoinVip:
    def setup(self):
        self.driver = BaseDriver().get_driver(noReset=False)
        self.pagelogin = PageLogin(driver=self.driver)
        self.pagejoinvip = PageJoinVip(driver=self.driver)
        self.findkeyword = FindKeyWord(driver=self.driver)

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

    @pytest.mark.parametrize("args",
                             to_para(filename="data_vip.yaml",
                                     test_key="test_vip"))
    def test_join_vip(self, args):
        keyword = args["keyword"]
        expect = args["expect"]
        # 如果没有登陆 必须要有先登录
        self.pagelogin.page_login_state()
        # 组合方分为了两个部分
        self.pagejoinvip.pagejoinvip_1()
        # 切换到浏览器的环境
        self.driver.switch_to.context("WEBVIEW_com.yunmall.lc")
        # 发送验证码
        self.pagejoinvip.pagejoinvip_2(value=keyword)
        try:
            # 断言"邀请码输入不正确" 是否存在,如果存在就代表没有成为VIP
            assert self.findkeyword.is_key_word_exit_in_page_source(
                key_word=expect)
        except Exception as ex:
            raise ex

        self.driver.switch_to.context("NATIVE_APP")
Ejemplo n.º 2
0
class TestLogin:
    @allure.step(title="setup")
    def setup(self):
        self.driver = BaseDriver().get_driver()
        self.page = Page(self.driver)

    @allure.step(title="teardown")
    def teardown(self):
        sleep(3)
        self.driver.quit()

    @pytest.mark.parametrize(("account", "password", "result", "status"),
                             read_data())
    def test_login(self, account, password, result, status):
        try:
            sleep(2)
            self.page.home.page_home()
            self.page.mine.page_click_mine()
            self.page.login.page_login(account, password)
            if status == True:
                username = self.page.mine.page_get_login_info()
                # print("{}登录成功".format(username))
                self.page.mine.page_click_setting()
                self.page.setting.page_click_logout()
                assert username == account
                print("{}登录成功".format(username))

            else:
                error = self.page.login.page_result(account, password)
                assert error == result
                print("登录失败提示是是:{}".format(error))
        except Exception as e:
            print("error是:{}".format(e))
Ejemplo n.º 3
0
class TestAddress:
    def setup(self):
        logging.info("正在获取driver对象")
        self.driver = BaseDriver().get_driver()
        self.page = Page(self.driver)

    def teardown(self):
        logging.info("关闭浏览器")
        self.driver.quit()

    def test_address(self):
        self.page.home.page_click_login_link()
        self.page.login.page_login("*****@*****.**", "1234qwer")
        self.page.home.page_click_my_account()
        self.page.my_account.page_new_address()
        if self.page.my_address.page_if_address():
            print("地址存在,不用新建了")
            logging.info("有地址")

        else:
            self.page.my_address.page_click_new_address_btn()
            sleep(1)
            self.page.edit_address.page_select_area()
            self.page.edit_address.page_input_address("test address")
            self.page.edit_address.page_save_address_btn()
            assert self.page.edit_address.page_save_result() == "已保存地址"
Ejemplo n.º 4
0
class TestLogin:
    def setup(self):
        self.driver = BaseDriver().get_driver(noReset=False)
        self.pagelogin = PageLogin(driver=self.driver)
        self.pageaddshopcart = PageAddShopCart(driver=self.driver)

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

    def test_add_shop_cart(self):
        self.pagelogin.page_login_state()
        self.pageaddshopcart.pageaddshopcart()
Ejemplo n.º 5
0
class TestNewMsg:
    def setup(self):
        self.driver=BaseDriver().base_driver()
        self.page=Page(self.driver)

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

    @pytest.mark.parametrize("args",base_analyse("new_msg.yaml","test_new_msg"))
    def test_new_msg(self,args):
        self.page.page_list().page_click_new_msg()
        self.page.page_new().page_input_recipient(args["recipient"])
        self.page.page_new().page_input_msg_text(args["text"])
        sleep(2)
        self.page.page_new().page_send_btn()
Ejemplo n.º 6
0
class TestCart:
    def setup(self):
        self.driver = BaseDriver().get_driver()
        self.page = Page(self.driver)

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

    def test_add_to_cart(self):
        try:
            self.page.home.page_click_login_link()
            self.page.login.page_login("*****@*****.**", "1234qwer")
            self.page.home.page_input_keywords("skii")
            self.page.home.page_click_search_btn()
            self.page.search_result.page_click_product()
            self.page.search_result.page_switch_handle()
            sleep(2)
            self.page.product_detail.page_click_add_to_cart()
            info = self.page.product_detail.page_get_cart_info()
            assert info == "商品已加入购物车", "加入购物车失败,请检查"

        except Exception as e:
            logging.error(e)

    def test_total_price(self):
        try:
            self.page.home.page_click_login_link()
            self.page.login.page_login("*****@*****.**", "1234qwer")
            self.page.home.page_click_cart()
            self.page.cart.page_if_check_all()
            calculate_total_price = self.page.cart.page_calculate_total_price()
            total_price_display = self.page.cart.page_total_price_display()
            print(calculate_total_price, total_price_display)
            assert total_price_display == calculate_total_price, "总价不一致,请检查"
        except Exception as e:
            logging.error("error出现了:{}".format(e))

    def test_part_total_price(self):
        self.page.home.page_click_login_link()
        self.page.login.page_login("*****@*****.**", "1234qwer")
        self.page.home.page_click_cart()
        calculate_part_total_price = self.page.cart.page_calculate_part_total_price(
        )
        total_price_display = self.page.cart.page_total_price_display()
        logging.info("比较2个总价{},{}".format(total_price_display,
                                          calculate_part_total_price))
        assert total_price_display == calculate_part_total_price, "总价不一致,请检查"
Ejemplo n.º 7
0
class TestLogin:
    def setup(self):
        self.driver = BaseDriver().get_driver(noReset=False)
        self.pagelogin = PageLogin(driver=self.driver)
        self.pageupdateapp = PageUpdateApp(driver=self.driver)

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

    def test_update_app(self):
        # 判断当前是否登录,因为更改设置需要登录状态才能进行修改
        self.pagelogin.page_login_state()
        self.pageupdateapp.pageupdateapp(msg="关于百年奥莱")
        try:
            assert self.pageupdateapp.pageupdateapp_update_success() == True
            print("测试更新应用成功")
        except Exception as ex:
            print("测试更新应用失败", ex)
Ejemplo n.º 8
0
class TestLogin:
    def setup(self):
        # 再base_driver中设置一个默认的参数,在这里调整就可以选应用不在重置
        self.driver = BaseDriver().get_driver(noReset=False)
        self.pagelogin = PageLogin(driver=self.driver)
        self.clearcaches = PageClearCaches(self.driver)

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

    def test_clearcaches(self):
        self.pagelogin.page_login_state()
        try:
            self.clearcaches.pageclearcaches(msg="清理缓存")
            print(self.clearcaches.get_toast_text(msg="清理缓存"))
            assert self.clearcaches.get_toast_text(msg="清理缓存")
        except Exception as ex:
            print(ex)
Ejemplo n.º 9
0
class TestLogin:
    def setup(self):
        # 再base_driver中设置一个默认的参数,在这里调整就可以选应用不在重置
        self.driver = BaseDriver().get_driver(noReset=False)
        self.pagelogin = PageLogin(driver=self.driver)

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

    # @pytest.mark.parametrize("account,pwd",
    #                          [("itheima_test", "itheima"), ("itheima_test123", "itheima"), ("itheima_test", "123")])
    # @pytest.mark.parametrize("account,pwd",
    #                          [("itheima_test", "itheima")])

    @pytest.mark.parametrize("args",
                             to_para(filename="data_login.yaml",
                                     test_key="test_ship_to_addr"))
    def test_login(self, args):
        # 解析yaml数据
        account = args["account"]
        pwd = args["pwd"]
        toast = args["toast"]
        self.pagelogin.pagelogin(account=account, pwd=pwd)

        try:
            if toast is None:
                print("\n", self.pagelogin.page_login_sucess_info())
                assert self.pagelogin.page_login_sucess_info(
                ) == "itheima_test", "用户名前后不一致"
            else:
                print("获取应用的提示信息:",
                      self.pagelogin.page_login_toast_info(msg=toast))
                print("data_login.yaml的toast信息:", toast)
                assert self.pagelogin.page_login_toast_info(msg=toast) == toast

        except Exception as ex:
            raise ex

    # 测试登录状态函数
    def test_login_state(self):
        self.pagelogin.page_login_state()
Ejemplo n.º 10
0
class TestLogin:
    mydriver = None
    homepage = None
    loginpage = None

    def setup_class(self):
        self.mydriver = BaseDriver('http://localhost/')
        self.mydriver.set_max_window()
        self.mydriver.set_imp_wait(10)

    def teardown_class(self):
        time.sleep(2)
        self.mydriver.quit()

    # @pytest.mark.skip
    @allure.title('进入主页后跳转至登录页')
    @pytest.mark.run(order=1)
    def test_to_loginpage(self):
        self.homepage = HomeHandle(self.mydriver)
        self.homepage.go_2_loginpage()

    # @pytest.mark.skip
    @allure.title("登录")
    @allure.description("用例描述:测试登录的各种异常情况")
    @pytest.mark.parametrize(
        ("username", "password", "veriycode", "dialog_text"), build_data())
    @pytest.mark.run(order=2)
    def test_login_error(self, username, password, veriycode, dialog_text):
        self.loginpage = LoginHandle(self.mydriver)
        self.loginpage.input_username(username)
        self.loginpage.input_password(password)
        self.loginpage.input_veriycode(veriycode)
        self.loginpage.click_login()
        dialog_text = self.loginpage.get_dialog_text()
        time.sleep(1)
        self.loginpage.click_dialog_yes_bg()
        assert dialog_text == dialog_text
Ejemplo n.º 11
0
class TestFileManage:
    def setup(self):
        self.driver = BaseDriver().get_driver()
        print("获取驱动成功")
        self.FileManagePage = FileManagePage(self.driver)

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

    def test_file_manage(self):
        self.FileManagePage.create_folder()
        self.FileManagePage.create_file()
        self.FileManagePage.move_files()
        num = self.FileManagePage.get_moved_files_num()
        print(num)
        assert num == 20
    
    def test_1(self):
        print(1)
        assert 1
        
    def test_2(self):
        print(2)
        assert 0
        
    def test_3(self):
        print(3)
        assert 0
        
    def test_4(self):
        print(4)
        assert 1

    def test_chizi(self):
        print("丹丹lllll")
        print("哈哈哈哈")
        assert 1
Ejemplo n.º 12
0
class TestLogin:
    def setup(self):
        self.driver=BaseDriver().get_driver()
        self.page=Page(self.driver)

    def teardown(self):
        logging.info("完成测试")
        self.driver.quit()

    @pytest.mark.parametrize(("email","password","account_name","error"),BaseData().read_data("login.txt"))
    def test_login(self,email,password,account_name,error):
        logging.info("点击登录链接")
        self.page.home.page_click_login_link()
        sleep(2)
        if error == None:
            self.page.login.page_login(email, password)
            display_name = self.page.home.page_get_account_name()
            assert display_name==account_name,"登录失败"
            print("{}登录成功".format(display_name))
        else:
            try:
                self.page.login.page_login(email, password)
            except Exception:
                assert error==self.page.login.page_get_error_text(),"断言有问题,请检查"
Ejemplo n.º 13
0
class TestLogin:
    driver = None

    def setup_class(self):
        self.driver = BaseDriver('http://localhost/')
        self.driver.set_max_window()
        self.driver.set_imp_wait(10)

    def teardown_class(self):
        time.sleep(2)
        self.driver.quit()
        pass

    @allure.title("主页")
    @allure.description("用例描述:从主页跳转至登录页")
    @pytest.mark.run(order=1)
    def test_to_loginpage(self):
        homehandle = HomeHandle(self.driver)
        homehandle.go_2_loginpage()

    @allure.title("登录页")
    @allure.description("用例描述:成功登录")
    @pytest.mark.parametrize(("username", "password", "veriycode"),
                             [("18588581997", "123456", "8888")])
    @pytest.mark.run(order=2)
    def test_login(self, username, password, veriycode):
        loginhandle = LoginHandle(self.driver)
        loginhandle.input_username(username)
        loginhandle.input_password(password)
        loginhandle.input_veriycode(veriycode)
        loginhandle.click_login()

    @allure.title("我的订单页")
    @allure.description("用例描述:进入我的订单页")
    @pytest.mark.run(order=3)
    def test_to_myorderpage(self):
        userhandle = UserHandle(self.driver)
        userhandle.to_orderpage()

    # @pytest.mark.skip
    @allure.title("地址管理页")
    @allure.description("用例描述:地址管理页进入添加界面")
    @pytest.mark.run(order=4)
    def test_to_addresspage(self):
        # 切换窗口
        time.sleep(5)
        windows = self.driver.get_window_handles()
        self.driver.switch_window(windows[-1])
        orderhandle = OrderHandle(self.driver)
        self.driver.scroll(0, 200)
        orderhandle.to_addresspage()

    old_address_count = None

    # @pytest.mark.skip
    @allure.title("添加地址页")
    @allure.description("用例描述:进行添加地址操作,并验证结果")
    @pytest.mark.run(order=5)
    @pytest.mark.parametrize(
        ("receiver", "province", "city", "district", "twon", "address",
         "phone"),
        [("张先生", "北京市", "市辖区", "朝阳区", "三里屯街道", "xxx小区x单元xxx号", "15888888888")])
    def test_add_address(self, receiver, province, city, district, twon,
                         address, phone):
        addresshandle = AddressHandle(self.driver)
        self.old_address_count = addresshandle.get_address_count()
        addresshandle.to_add_address_frame()
        time.sleep(2)
        # 切换frame
        self.driver.switch_frame(NewAddresspage.page_frame_tag)
        creataddresshandle = CreatAddressHandle(self.driver)
        # 写入数据
        creataddresshandle.input_receiver(receiver)
        creataddresshandle.input_province(province)
        creataddresshandle.input_city(city)
        creataddresshandle.input_district(district)
        creataddresshandle.input_twon(twon)
        creataddresshandle.input_address(address)
        creataddresshandle.input_phone(phone)
        creataddresshandle.click_submit()

        time.sleep(2)
        now_address_count = addresshandle.get_address_count()
        assert now_address_count > self.old_address_count, '最新地址条数是否大于之前,如成立则表示添加地址成功'
Ejemplo n.º 14
0
class TestShipToAddr:
    def setup(self):
        self.driver = BaseDriver().get_driver(noReset=False)
        self.pagelogin = PageLogin(driver=self.driver)
        self.pageshiptoaddr = PageShipToAddr(driver=self.driver)

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

    @pytest.mark.parametrize("args", to_para(filename="data_ship_to_addr.yaml", test_key="test_ship_to_addr"))
    def test_ship_to_addr(self, args):

        name = args["name"]
        phone = args["phone"]
        detailed_address = args["detailed_address"]
        postcode = args["postcode"]
        toast = args["toast"]

        self.pagelogin.page_login_state()
        self.pageshiptoaddr.pageshiptoaddr(recipient=name,
                                           phone_number=phone,
                                           detailed_address=detailed_address,
                                           postcode=postcode)
        try:
            if toast != None:
                # print(self.pageshiptoaddr.base_get_toast(message=toast))
                assert self.pageshiptoaddr.base_assert_toast_info(msg=toast), "保存失败,toast内容和预期不符"
            else:
                assert self.pageshiptoaddr.pageshiptoaddr_addr_same_as_before() == "%s  %s" % (
                    name, phone), "保存成功,但是未在此页面找到保存的姓名和电话,可能没有将刚才输入的地址设置为默认的"
        except Exception as ex:
            raise ex

    # 测试编辑地址功能
    def test_edit_address(self):
        # 先登录
        self.pagelogin.page_login_state()
        # 进入到收货地址管理的界面
        self.pageshiptoaddr.pageshiptoaddr_2()
        # 判断是否有收货地址,如果有就进行修改
        if self.pageshiptoaddr.pageshiptoaddr_if_address_has_one_Addr():
            self.pageshiptoaddr.pageshiptoaddr_edit_address_btn()
            self.pageshiptoaddr.pageshiptoaddr_4(recipient="哈哈哈1",
                                                 phone_number="11111111111",
                                                 detailed_address="2单元  10号",
                                                 postcode="454100")
            print(self.pageshiptoaddr.base_get_toast(message="保存成功"))
            assert self.pageshiptoaddr.pageshiptoaddr_if_edit_address_success("保存成功"), "修改可能失败了"
        #     如果没有,就添加一条地址
        else:
            self.pageshiptoaddr.pageshiptoaddr_3(recipient="天下影音",
                                                 phone_number="13273911234",
                                                 detailed_address="2单元  10号",
                                                 postcode="454100")

    # 测试删除地址的功能
    def test_del_address(self):
        # 先登录
        self.pagelogin.page_login_state()
        # 进入到收货地址管理的界面
        self.pageshiptoaddr.pageshiptoaddr_2()
        # 判断地址栏中是否有“默认”的标签,如果有代表有可以删的地址
        if self.pageshiptoaddr.pageshiptoaddr_if_have_address_to_del():
            self.pageshiptoaddr.pageshiptoaddr_edit_del_and_confirm()
            # 由于不知道有多少个地址需要删除,所以使用while循环
            while True:
                if self.pageshiptoaddr.pageshiptoaddr_if_have_address_to_del():
                    self.pageshiptoaddr.pageshiptoaddr_edit_del_and_confirm()
                else:
                    assert self.pageshiptoaddr.pageshiptoaddr_if_have_address_to_del() is False, "还有没删除完的地址"
                    break
        else:
            assert self.pageshiptoaddr.pageshiptoaddr_if_have_address_to_del() is False, "还有没删除完的地址"