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
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
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
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()