Example #1
0
class TestAdress():
    # setup
    def setup_class(self):
        # 实例化统一入口类
        self.page = PageIn()
        # 调用 封装的page_login登录方法
        self.page.page_get_login().page_login_address()
        # 实例化 地址管理页面
        self.address = self.page.page_get_address()
        # 点击地址管理
        self.address.page_address_manage()

    # teardown
    def teardown_class(self):
        self.page.driver.quit()

    # test_new_address
    @pytest.mark.run(order=1)
    @pytest.mark.parametrize("name,phone,sheng,shi,qu,addressinfo,postcode",
                             get_data("add"))
    def test_new_address(self, name, phone, sheng, shi, qu, addressinfo,
                         postcode):
        # 点击新增地址
        self.address.page_address_add_new_btn()
        # 输入收件人
        self.address.page_address_receipt_name(name)
        # 输入手机号
        self.address.page_address_add_phone(phone)
        # 点击选择区域
        self.address.page_address_province(sheng, shi, qu)
        # 输入详细地址
        self.address.page_address_detail_addr_info(addressinfo)
        # 输入邮编
        self.address.page_address_post_code(postcode)
        # 点击默认
        self.address.page_address_default()
        # 点击保存
        self.address.page_click_save()
        # 断言
        try:
            # 组装字符串 格式:"张三  18610000000"
            name_phone = name + "  " + phone
            print("组装后的字符串格式:", name_phone)
            # 获取所有收件人 电话
            text_list = self.address.page_get_list_text()
            print("所有收件人电话为:", text_list)
            assert name_phone in text_list
        except:
            # 截图
            self.address.base_get_screenshot()
            # 失败图片写入报告
            with open("./Image/faild.png", "rb") as f:
                allure.attach("失败原因请查看附加图:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise

    @pytest.mark.run(order=2)
    @pytest.mark.parametrize("name,phone,sheng,shi,qu,addressinfo,postcode",
                             get_data("update"))
    def test_update_address(self, name, phone, sheng, shi, qu, addressinfo,
                            postcode):
        # 点击编辑
        self.address.page_click_edit()
        # 点击修改
        self.address.page_click_update()
        # 输入收件人
        self.address.page_address_receipt_name(name)
        # 输入手机号
        self.address.page_address_add_phone(phone)
        # 点击选择区域
        self.address.page_address_province(sheng, shi, qu)
        # 输入详细地址
        self.address.page_address_detail_addr_info(addressinfo)
        # 输入邮编
        self.address.page_address_post_code(postcode)
        # 保存
        self.address.page_click_save()
        # 断言
        try:
            # 组装字符串 格式:"张三  18610000000"
            name_phone = name + "  " + phone
            # 获取所有收件人 电话
            assert name_phone in self.address.page_get_list_text()
        except:
            # 截图
            self.address.base_get_screenshot()
            # 失败图片写入报告
            with open("./Image/faild.png", "rb") as f:
                allure.attach("失败原因请查看附加图:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise

    @pytest.mark.run(order=3)
    def test_delete_address(self):
        # 调用删除方法
        self.address.page_delete_address()
        try:
            # 断言 列表地址是否删除干净
            assert self.address.page_is_delete_ok()
        except:

            # 截图
            self.address.base_get_screenshot()
            # 失败图片写入报告
            with open("./Image/faild.png", "rb") as f:
                allure.attach("失败原因请查看附加图:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise
Example #2
0
class TestAddress():
    def setup_class(self):
        # 登录成功
        self.page = PageIn()
        self.page.page_get_login().page_login("18610453007", "123456")
        # 点击设置
        self.page.page_get_login().page_click_setting()
        # 实例化 PageAddress
        self.address = self.page.page_get_address()
        # 点击地址管理
        self.address.page_click_address_manage()

    def teardown_class(self):
        # 关闭 驱动对象
        self.page.driver.quit()

    # 新增地址
    @pytest.mark.run(order=1)
    @pytest.mark.parametrize(
        "receipt_name,phone,sheng,shi,qu,address,postcode", get_data("add"))
    def test_add_address(self, receipt_name, phone, sheng, shi, qu, address,
                         postcode):
        addr = self.address
        # 点击 新增地址
        addr.page_click_new_address()
        # 输入 收件人
        addr.page_input_receipt_name(receipt_name)
        # 输入 手机号
        addr.page_input_phone(phone)
        # 选择 所在区域
        addr.page_click_area(sheng, shi, qu)

        # 选择 所在区域2
        # addr.page_click_area_zhixia("北京","海淀")

        # 输入 详细地址
        addr.page_input_detail_address(address)
        # 输入 邮编
        addr.page_input_post_code(postcode)
        # 点击 设为默认地址
        addr.page_click_default_address()
        # 点击 保存
        addr.page_click_save()
        try:
            # 断言 是否新增成功
            # print("获取新增地址联系人和电话为:",addr.page_get_recipit_and_phone())
            # assert receipt_name in addr.page_get_recipit_and_phone()
            """第二种实现断言方法:通过后去地址列表所有的收件和电话"""
            # 组装字符串,模拟获取文本后的格式:  "张三  18600000000"
            name_phont = receipt_name + "  " + phone
            assert name_phont in addr.page_get_elements_text()
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败描述:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise

    # 更新地址
    @pytest.mark.run(order=2)
    @pytest.mark.parametrize(
        "receipt_name,phone,sheng,shi,qu,address,postcode,toast_expect",
        get_data("update"))
    def test_update_address(self, receipt_name, phone, sheng, shi, qu, address,
                            postcode, toast_expect):
        addr = self.address
        # 点击 编辑
        self.address.page_click_edit_btn()
        # 点击 修改
        self.address.page_click_update()
        """输入 修改信息"""
        # 输入 收件人
        addr.page_input_receipt_name(receipt_name)
        # 输入 手机号
        addr.page_input_phone(phone)
        # 选择 所在区域
        addr.page_click_area(sheng, shi, qu)
        # 输入 详细地址
        addr.page_input_detail_address(address)
        # 输入 邮编
        addr.page_input_post_code(postcode)
        # 点击 保存
        addr.page_click_save_btn()
        try:
            """第一种断言更新是否成功:断言更新后的用户名+电话,是否在地址列表中"""
            name_phont = receipt_name + "  " + phone
            assert name_phont in addr.page_get_elements_text()
            """第二种断言更新是否成功:根据toast消息  保存成功"""
            assert toast_expect in self.address.base_get_toast(toast_expect)
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败描述:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise

    # 删除地址
    @pytest.mark.run(order=3)
    def test_delete_address(self):
        # 删除地址操作  默认删除第一个地址
        self.address.page_delete_address()
        try:
            # 断言
            assert self.address.page_is_delete()
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败描述:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise
Example #3
0
class TestAddress():
    def setup_class(self):
        # 实例化 登录页面类
        self.page = PageIn(get_driver())
        self.page.page_get_login().page_login("zhangsan", "123456")
        # 实例化 PageAddress
        self.address = self.page.page_get_address()
        # 点击设置
        self.address.page_address_btn_image()
        # 点击地址管理
        self.address.page_address_manage()

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

    # 地址管理 数据添加
    @pytest.mark.run(order=1)
    @pytest.mark.parametrize("receipt_name,add_phone,sheng,shi,qu,detail_addr,post_code", get_data("add"))
    def test_add_address(self, receipt_name, add_phone, sheng, shi, qu, detail_addr, post_code):
        # 点击新增
        self.address.page_address_add_new()
        # 输入 收件人
        self.address.page_address_receipt_name(receipt_name)
        #  输入 手机号
        self.address.page_address_add_phone(add_phone)
        # 选择 所在区域
        self.address.page_address_province(sheng, shi, qu)
        #  输入 详细地址
        self.address.page_address_detail_addr(detail_addr)
        # # 输入 邮编
        self.address.page_address_post_code(post_code)
        # 点击 设置默认地址
        self.address.page_address_default()
        # # 点击 保存
        self.address.page_address_button_send()
        try:
            # 断言 是否新增成功
            # print("获取新增地址联系人和电话为:",self.address.page_get_recipit_and_phone())
            assert receipt_name in self.address.page_get_recipit_and_phone()
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败描述:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise

    # 地址管理 数据修改
    @pytest.mark.run(order=2)
    @pytest.mark.parametrize("receipt_name,add_phone,sheng,shi,qu,detail_addr,post_code", get_data("update"))
    def test_update_address(self, receipt_name, add_phone, sheng, shi, qu, detail_addr, post_code):
        # 点击编辑
        self.address.page_address_right_btn()
        # 点击修改
        self.address.page_address_modify()
        """ 修改内容"""
        # 输入 收件人
        self.address.page_address_receipt_name(receipt_name)
        # 输入 手机号
        self.address.page_address_add_phone(add_phone)
        # 选择 所在区域
        self.address.page_address_province(sheng, shi, qu)
        # 输入 详细地址
        self.address.page_address_detail_addr(detail_addr)
        # 输入 邮编
        self.address.page_address_post_code(post_code)
        # 点击 保存
        self.address.page_address_button_send()
        try:
            # 断言 是否修改成功
            assert receipt_name in self.address.page_get_recipit_and_phone()
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败描述:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise

    # 地址管理 数据删除
    @pytest.mark.run(order=3)
    def test_delect_address(self):
        # 点击编辑
        self.address.page_address_right_btn()
        # 点击删除
        self.address.page_address_delete()
        # 确认删除
        self.address.page_address_delete_ok()
        try:
            # 断言 是否修改成功
            assert self.address.page_is_delete()
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败描述:", f.read(), allure.attach_type.PNG)
            # 抛异常
            raise
class TestAddress():
    def setup_class(self):
        # 登录成功
        self.page = PageIn(get_driver())
        self.page.page_get_login().page_login('18610453007', '123456')
        # 点击设置
        self.page.page_get_login().page_click_setting()
        # 实例化 地址管理页面类 PageAddress
        self.address = self.page.page_get_address()
        # 点击 地址管理
        self.address.page_click_address_massage()

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

    '''【地址增加】'''

    @pytest.mark.run(order=1)
    @pytest.mark.parametrize(
        "receipt_name,add_phone,sheng,shi,qu,address,postcode", get_data03())
    def test_add_address(self, receipt_name, add_phone, sheng, shi, qu,
                         address, postcode):
        addr = self.address
        # 点击 新增地址
        addr.page_click_new_address()
        # 输入 收件人
        addr.page_input_receipt_name(receipt_name)
        # 输入 手机号
        addr.page_input_add_phone(add_phone)
        # 选择 所在区域
        addr.page_click_area(sheng, shi, qu)

        # 选择 所在区域 - -直辖市
        # addr.page_click_area02("北京","海淀区")

        # 输入 详细地址
        addr.page_input_detail_address(address)
        # 输入 邮编
        addr.page_input_post_code(postcode)
        # 点击 设置默认地址
        addr.page_click_default()
        # 点击 保存
        addr.page_click_button_save()

        try:
            # print('新增地址联系人和电话为:',addr.page_get_receipt_and_phone())
            # (断言新增 方法一:)
            # assert receipt_name in addr.page_get_receipt_and_phone()
            """方法二:通过后去地址列表所有的收件和电话"""
            name_phont = receipt_name + "  " + add_phone
            assert name_phont in addr.page_get_elements_text()
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败:", f.read(), allure.attach_type.PNG)
            raise

    '''【地址修改】'''

    @pytest.mark.run(order=2)
    @pytest.mark.parametrize(
        "receipt_name,add_phone,sheng,shi,qu,address,postcode,toast_expect",
        get_data04())
    def test_xiugai_address(self, receipt_name, add_phone, sheng, shi, qu,
                            address, postcode, toast_expect):
        addr = self.address
        # 点击编辑
        addr.page_click_cymtitlebar_right_btn()
        # 点击修改
        addr.page_click_xiugai()
        # 输入 收件人
        addr.page_input_receipt_name(receipt_name)
        # 输入 手机号
        addr.page_input_add_phone(add_phone)
        # 选择 所在区域
        addr.page_click_area(sheng, shi, qu)
        # 输入 详细地址
        addr.page_input_detail_address(address)
        # 输入 邮编
        addr.page_input_post_code(postcode)
        # 点击 保存
        addr.page_click_address_save_btn()
        try:
            """方法一:更新后的用户名+电话,是否在地址列表中"""
            # name_phont=receipt_name+"  "+add_phone
            # assert name_phont in addr.page_get_elements_text()
            """第二种断言更新是否成功:根据toast消息  保存成功"""
            assert toast_expect in self.address.base_get_toast(toast_expect)
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败:", f.read(), allure.attach_type.PNG)
            raise

    '''【地址删除】'''

    @pytest.mark.run(order=3)
    def test_del_address(self):
        addr = self.address
        # 删除
        addr.page_click_del()
        try:
            assert addr.page_is_del()
        except:
            # 截图
            self.login.base_getImage()
            with open("./Image/faild.png", "rb") as f:
                allure.attach("断言失败:", f.read(), allure.attach_type.PNG)
            raise
Example #5
0
class TestAdress():
    # setup
    def setup_class(self):
        # 实例化统一入口类
        self.page = PageIn()
        # 调用 封装的page_login登录方法
        self.page.page_get_login().page_login_address()
        # 实例化 地址管理页面
        self.address = self.page.page_get_address()
        # 点击地址管理
        self.address.page_address_manage()

    # teardown
    def teardown_class(self):
        self.page.driver.quit()

    # test_new_address
    # @pytest.mark.parametrize("name,phone,sheng,shi,qu,addressinfo,postcode",get_data("add"))
    # def test_new_address(self,name,phone,sheng,shi,qu,addressinfo,postcode):
    def test_new_address(self,
                         name="张三",
                         phone="18600000000",
                         sheng="河南",
                         shi="郑州",
                         qu="二七",
                         addressinfo="某某路梧桐街38号",
                         postcode="472721"):
        点击新增地址
        self.address.page_address_add_new_btn()
        # 输入收件人
        self.address.page_address_receipt_name(name)
        # 输入手机号
        self.address.page_address_add_phone(phone)
        # 点击选择区域
        self.address.page_address_province(sheng, shi, qu)
        # 输入详细地址
        self.address.page_address_detail_addr_info(addressinfo)
        # 输入邮编
        self.address.page_address_post_code(postcode)
        # 点击默认
        self.address.page_address_default()
        # 点击保存
        self.address.page_click_save()

    #     # 断言
    #     try:
    #         # 组装字符串 格式:"张三  18610000000"
    #         name_phone=name+"  "+phone
    #         print("组装后的字符串格式:",name_phone)
    #         # 获取所有收件人 电话
    #         text_list=self.address.page_get_list_text()
    #         print("所有收件人电话为:",text_list)
    #         assert name_phone in text_list
    #     except:
    #         # 截图
    #         self.login.base_get_screenshot()
    #         # 失败图片写入报告
    #         with open("./Image/faild.png", "rb") as f:
    #             allure.attach("失败原因请查看附加图:", f.read(), allure.attach_type.PNG)
    #         # 抛异常
    #         raise
    @pytest.mark.parametrize("name,phone,sheng,shi,qu,addressinfo,postcode",
                             get_data("update"))
    def test_update_address(self, name, phone, sheng, shi, qu, addressinfo,
                            postcode):
        # 点击编辑
        self.address.page_click_edit()
        # 点击修改
        self.address.page_click_update()
        # 输入收件人
        self.address.page_address_receipt_name(name)
        # 输入手机号
        self.address.page_address_add_phone(phone)
        # 点击选择区域
        self.address.page_address_province(sheng, shi, qu)
        # 输入详细地址
        self.address.page_address_detail_addr_info(addressinfo)
        # 输入邮编
        self.address.page_address_post_code(postcode)
        # 保存
        self.address.page_click_save()