def setup_class(self): # 实例化 登录页面类 self.login = PageIn().page_get_login() # 点击我 self.login.page_click_me() # 点击已有账号去登录 self.login.page_click_info()
def setup_class(self): #实例化 登陆页面类 self.login=PageIn(get_driver()).page_get_login() #点击我 self.login.page_click_me() #点击已有账户去登陆 self.login.page_click_info()
def setup_class(self): # 初始化driver self.driver = get_driver('com.android.settings', '.Settings') # 实例化PageIn self.pagein = PageIn(self.driver) # 获取setting对象 self.setting = self.pagein.page_get_page_setting()
def setup_class(self): # 实例化统一入口类 page = PageIn() # 调用登录 方法 page.page_get_pagelogin().page_login_and_setting() # 获取 PageAddress对象 self.address = page.page_get_pageaddress()
def setup_class(self): # 实例化 统一入口类 allure.attach("步骤描述:", "实例化统一入口类") self.page = PageIn() allure.attach("步骤描述:", "实例化login页面对象") """ PageIn():统一入口类,可以通过此类获取Page页面对象 self.page:为PageIn()实例化对象引用名称 page_get_login(): PageIn()类内的一个获取PageLogin页面对象方法 传参数: 1. 封装的时候所定义的参数,都为形参(虚拟占位符) 2. 在应用函数的时候,如果发现有参数站位符号,调用的时候必须传进来 """ self.login = self.page.page_get_login() """ 说明:使用统一入口类的时候,调用页面对象的方法是匿名调用的好,还是实名实例化好? 1. 如果此类只用一次,一定推荐匿名 2. 如果此类需要用多次,推荐实名 """ """说明:由于8条用例,任何一条都有一个共同点,就是必须先点击我,再点击、已有账号去登录""" # 点击我 allure.attach("步骤描述:", "点击 我") self.login.page_click_me() # 点击 已有账号去登录 allure.attach("步骤描述:", "点击已有账号去登录") self.login.page_click_name_ok_link()
def setup_class(self): # 获取driver self.driver = get_driver() # 实例化PageIn self.page = PageIn(self.driver) # 获取PageSetting实例化对象 为什么要拿到setting对象??? self.setting = self.page.page_get_page_setting()
def setup_class(self): # 实例化 统一入口类 self.login = PageIn().page_get_pagelogin() # 点击 我 self.login.page_click_me() # 点击 已有账号,去登录 self.login.page_click_user_link()
def setup_class(self): self.page = PageIn(get_driver()) self.page.page_get_login().page_login("13805489414", "123456") #点击设置 self.page.page_get_login().page_click_setting() #点击地址管理 self.address = self.page.page_get_setting() self.address.page_address_manage()
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()
def setup_class(self): # 实例化 统一入口类 self.page = PageIn() self.login = self.page.page_get_login() """说明:由于8条用例,任何一条都有一个共同点,就是必须先点击我,再点击、已有账号去登录""" # 点击我 self.login.page_click_me() # 点击 已有账号去登录 self.login.page_click_name_ok_link()
def setup_class(self): # 实例化 PageIn self.page = PageIn() self.login = self.page.page_get_login() # 点击 我 self.login.page_click_login_me() # 点击 已有账号,登录 self.login.page_login_name_ok_link()
def setup_class(self): # 实例化 登录页面类 self.login = PageIn(get_driver()).page_get_login() allure.attach("点击我") # 点击我 self.login.page_click_me() # 点击已有账号去登录 allure.attach("点击已有账号去登录") self.login.page_click_info()
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 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 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 setup_class(self): # ------ 实例化 PageLogin # self.login = PageLogin(get_driver()) # self.toast = PageToast(get_driver()) self.login = PageIn().page_get_login() self.toast = PageIn().page_get_toast() # self.login.page_click_skip() self.login.page_click_me() self.login.page_click_go_login()
def setup_class(self): # 获取driver self.driver = get_driver() # 实例化统一入口类 self.page = PageIn(self.driver) # 实例化登录页面对象 self.login = self.page.page_get_login() # 实例化设置页面对象 self.setting = self.page.page_get_setting() # 点击我的 self.login.page_click_me() # 点击已有账号去登录 self.login.page_click_login_link()
def setup_class(self): # 实例化 统一入口类 self.page = PageIn() self.login = self.page.page_get_login() """ 说明:使用统一入口类的时候,调用页面对象的方法是匿名调用的好,还是实名实例化好? 1. 如果此类只用一次,一定推荐匿名 2. 如果此类需要用多次,推荐实名 """ """说明:由于8条用例,任何一条都有一个共同点,就是必须先点击我,再点击、已有账号去登录""" # 点击我 self.login.page_click_me() # 点击 已有账号去登录 self.login.page_click_name_ok_link()
def setup_class(self): # 实例化统一入口类 allure.attach("步骤描述", "实例化统一入口类") self.page = PageIn() allure.attach("步骤描述", "实例化login页面对象") self.login = self.page.page_get_login() """ 说明,使用统一入口类,调用页面对象的方法是匿名调用的好?还是实名实例化的好 1.如果此类只用一次,一定推荐匿名 2.如果此类使用多次,推荐使用实名 """ allure.attach("步骤描述:", "点击我") self.login.page_click_me() allure.attach("步骤描述:", "点击已有账号去登录") self.login.page_click_name_ok_link()
def setup_class(self): print("获取数据驱动的添加地址格式:", get_data("add")) print("获取数据驱动的编辑址格式:", get_data("edit")) # 获取driver self.driver = get_driver() # 获取统一入口类 self.page = PageIn(self.driver) # 获取设置页面对象 self.setting = self.page.page_get_setting() allure.attach("描述", "地址管理前登陆") # 登录 +点击设置 self.page.page_get_login().page_login_address() allure.attach("描述", "点击地址管理") # 点击地址管理 self.setting.page_click_address_manage()
class TestSetting(): def setup_class(self): # 初始化driver self.driver = get_driver('com.android.settings', '.Settings') # 实例化PageIn self.pagein = PageIn(self.driver) # 获取setting对象 self.setting = self.pagein.page_get_page_setting() def teardown_class(self): # 关闭页面 self.driver.quit() @pytest.mark.parametrize("text", get_data()) @allure.step('1.设置页面,点击搜索按钮') @allure.step('2.设置页面,输入搜索内容') @allure.step('3.设置页面,点击返回按钮') def test_setting(self, text): # setting对象调用点击搜索方法 allure.attach('搜索按钮','点击搜索,成功跳转') self.setting.page_click_search() # setting对象调用输入文本方法 allure.attach('搜索框输入文本', '填写搜索内容,搜索成功') self.setting.page_input(text) # setting对象调用点击回退方法 allure.attach('回退按钮', '点击回退,回退成功') self.setting.page_click_back()
class TestSetting(): # setup_class def setup_class(self): # 获取driver self.driver = get_driver() # 实例化PageIn self.page = PageIn(self.driver) # 获取PageSetting实例化对象 为什么要拿到setting对象??? self.setting = self.page.page_get_page_setting() # teardown_class def teardown_class(self): # 关闭驱动对象 self.driver.quit() # 测试方法 @pytest.mark.parametrize("text", get_data()) def test_search(self, text): """按照操作步骤完成""" # 点击搜索按钮 self.setting.page_click_search() # 输入信息 self.setting.page_input(text) # 点击返回按钮 self.setting.page_click_back_btn()
def setup_class(self): # 实例化 统一入口类 self.page = PageIn() # 点击我 self.login.page_click_me() # 点击 已有账号去登录 self.login.page_click_name_ok_link()
class TestSetting(): def setup_class(self): # 实例化统一入口类 self.setting = PageIn().page_get_setting() def teardown_class(self): self.setting.driver.quit() #测试方法 @pytest.mark.parametrize("value,except_result", [("l", "移动网络"), ("a", "壁纸"), ("w", "wlan")]) def test_setting(self, except_result, value='wlan'): #点击搜索按钮 self.setting.page_click_search_btn() #输入 self.setting.page_input_search(value) #断言 try: #获取当前搜索结果的列表 list_text = self.setting.page_get_elements() assert except_result in list_text print("获取的列表文本为", list_text) print("断言成功") except: print('断言失败') #点击返回 self.setting.page_click_back()
def setup_class(self): # 实例化 统一入口类 allure.attach("步骤描述:", "实例化统一入口类") self.page = PageIn() allure.attach("步骤描述:", "实例化login页面对象") self.login = self.page.page_get_login() """ 说明:使用统一入口类的时候,调用页面对象的方法是匿名调用的好,还是实名实例化好? 1. 如果此类只用一次,一定推荐匿名 2. 如果此类需要用多次,推荐实名 """ """说明:由于8条用例,任何一条都有一个共同点,就是必须先点击我,再点击、已有账号去登录""" # 点击我 allure.attach("步骤描述:", "点击 我") self.login.page_click_me() # 点击 已有账号去登录 allure.attach("步骤描述:", "点击已有账号去登录") self.login.page_click_name_ok_link()
class TestLogin(): @allure.step('执行登录操作') #初始化 def setup_class(self): #实例化PageLogin self.login = PageIn().page_get_login() @allure.step('退出') def teardown_class(self): self.login.driver.quit() """ def page_param_data(self): arrs=[] yaml_data = #没写完 @pytest.mark.parametrize('username,password,expect_toast',[]) """ def test_login(self, value1, value2): allure.attach('输入用户名') #啦啦啦 #输入用户名 self.login.page_input_usename(value1) allure.attach('输入密码') #输入密码 self.login.page_input_pwd(value2) #点击的登陆陆 self.login.page_click_log_btn()
class TestSetting02(): def setup_class(self): # 实例化统一入口类 self.setting = PageIn().page_get_setting() def teardown_class(self): self.setting.driver.quit() def test_setting02(self,value='wlan'): # 点击搜索按钮 self.setting.page_search_button() # 输入内容 self.setting.page_input_search(value) # 点击返回 self.setting.page_back_button()
def setup_class(self): self.login = PageIn(get_driver()).page_get_login() self.login.page_click_me() self.login.page_click_info()
class TestLogin(): def setup_class(self): self.login = PageIn(get_driver()).page_get_login() self.login.page_click_me() self.login.page_click_info() def teardown_class(self): self.login.driver.quit() @pytest.mark.parametrize("username,password,expect,toast_expect",get_data()) def test_login(self,username,password,expect,toast_expect): if expect: try: self.login.page_input_user(username) self.login.page_input_pwd(password) self.login.page_click_login_btn() assert expect in self.login.page_get_nickname() allure.attach('断言描述:','登录成功') self.login.page_login_logout() self.login.page_click_me() self.login.page_click_info() except: self.login.base_getImage() with open("./Image/faild.png","rb")as f: allure.attach('失败描述:',f.read(),allure.attach_type.PNG) raise else: try: # 输入用户名 self.login.page_input_user(username) # 输入密码 self.login.page_input_pwd(password) # 点击登录 self.login.page_click_login_btn() # 断言toast消息 assert toast_expect in self.login.base_get_toast(toast_expect) allure.attach('断言描述:','失败断言成功') except: # 截图 self.login.base_getImage() with open("./Image/faild.png", "rb") as f: allure.attach("失败描述:", f.read(), allure.attach_type.PNG) # 抛异常 raise
class TestLogin(): def setup_class(self): # 实例化 统一入口类 self.login = PageIn().page_get_pagelogin() # 点击 我 self.login.page_click_me() # 点击 已有账号,去登录 self.login.page_click_user_link() def teardown_class(self): # 退出 driver self.login.driver.quit() # @pytest.mark.parametrize("username,password,expect_result,expect_toast",get_data()) # 以txt形式去读取 @pytest.mark.parametrize("username,password,expect_result,expect_toast", get_data_txt()) @allure.step('我是test_login') def test_login(self, username, password, expect_result, expect_toast): if expect_result: try: # 输入 用户名 self.login.page_input_username(username) # 输入 密码 self.login.page_input_password(password) # 点击 登录 self.login.page_click_login_btn() # 获取 昵称 进行断言 assert expect_result in self.login.page_get_nickname() # 点击 设置 self.login.page_click_setting() # 拖拽 消息推送--》修改密码 self.login.page_drag_and_drop() # 点击退出 self.login.page_click_logout() # 确认退出 self.login.page_click_logout_ok() # 点击 我 self.login.page_click_me() # 点击 已有账号,去登录 self.login.page_click_user_link() except: # 截图 self.login.base_getImage() raise else: try: # 输入 用户名 self.login.page_input_username(username) # 输入 密码 self.login.page_input_password(password) # 点击 登录 self.login.page_click_login_btn() # 断言 assert expect_toast == self.login.base_get_toast(expect_toast) except: # 截图 self.login.base_getImage() # 打开图片写入报告 with open("./Image/faild.png", "rb") as f: allure.attach("失败原因请附图:", f.read(), allure.attach_type.PNG) # 抛出异常 raise