def setup_class(self): #获取驱动 self.driver = Init_driver() #获取统一页面入口对象 self.page = Page(self.driver) self.shouye_po = self.page.ret_shouye_po() self.fabuye_po = self.page.ret_fabuye_po()
def setup_class(self): # self.obj = Login_Page(get_driver()) # # 点击我的 # self.obj.click_btn() self.page_obj = Page(get_driver()) #点击我的 self.page_obj.get_login_page().click_btn()
class Test_Search: def setup_class(self): self.page_obj = Page(get_driver_sc()) # 点击搜索按钮 self.page_obj.get_search_page().click_search() def teardown_class(self): self.page_obj.driver.quit() @pytest.mark.parametrize("input,expect", read_search_data()) def test_search_text(self, input, expect): # print("input:%s\nexpect:%s",(input,expect)) # 搜索输入内容 result = self.page_obj.get_search_page().search_text(input) assert expect in result
class Test_Search: def setup_class(self): #实例化page页面对象 self.page_obj = Page(get_driver_sc()) # 点击搜索按钮 self.page_obj.get_search_page().click_search() def teardown_class(self): #关闭页面驱动对象 self.page_obj.driver.quit() @pytest.mark.parametrize("text_value,expect", [(1, "休眠"), ("ip", "IP地址"), ("mtp", "媒体设备(MTP)")]) # def test_search_input(self, text_value, expect): # 输入搜索内容,获取搜索结果列表 result = self.page_obj.get_search_page().search_text(text_value) # 断言结果 assert expect in result
class Test_Mess: def setup_class(self): self.page_obj = Page(get_driver_mes()) def teardown_class(self): self.page_obj.driver.quit() @pytest.fixture(scope='class', autouse=True) def add_phonenum(self): #点击新建短信 self.page_obj.get_mess_page().add_sms() #输入手机号 self.page_obj.get_mess_page().add_phone('1871788888') @pytest.mark.parametrize("send_ms", ["hello", "你好", "bye"]) def test_mess_send(self, send_ms): #发送短信 send_result = self.page_obj.get_mess_page().send_sms(send_ms) assert send_ms in send_result
class Test_Sms: def setup_class(self): self.page_obj = Page(get_driver()) def teardown_class(self): self.page_obj.driver.quit() @pytest.fixture(scope="class", autouse=True) def in_sms_page(self): self.page_obj.get_sms_page().add_sms() self.page_obj.get_sms_page().add_phone("18310787064") @pytest.mark.parametrize("send_ms", ["hi", "你好", "嘿嘿"]) def test_send_sms(self, send_ms): send_result = self.page_obj.get_sms_page().send_sms(send_ms) assert send_ms in send_result
class Test_01: def setup_class(self): # 实例化统一入口类 self.page_obj = Page(get_driver()) def teardown_class(self): self.page_obj.driver.quit() def get_ph(self): img_name = './phtot/%d.png' % int(time.time()) self.page_obj.driver.get_sereenshot_as_file(img_name) with open(img_name, 'rb') as f: allure.attach("sd", f.read(), allure.attach_type.PNG) def test_01(self): self.page_obj.get_login_page().click_my_btn() assert 0, self.get_ph() def test_02(self): assert 0, self.get_ph()
class Test_deploy_toutiao: def setup_class(self): #获取驱动 self.driver = Init_driver() #获取统一页面入口对象 self.page = Page(self.driver) self.shouye_po = self.page.ret_shouye_po() self.fabuye_po = self.page.ret_fabuye_po() @pytest.mark.skipif(condition=2 > 1, reason="跳过该函数") def test01(self): ''' 1、进入【首页】,点击发布 2、点击发图文按钮 3、进入,【发布页面】,输入文本(上传图片) 4、点击发布 ''' #点击发布 self.shouye_po.click_deploy_button() #点击发图文按钮 self.shouye_po.click_send_imageAndtext_button() #发布内容 text = '你好,我是诸葛维琪' self.fabuye_po.send(text) def test02(self): ''' 搜索头条,发布头条 :return: ''' #点击输入框 self.shouye_po.click_search_input_button() #输入搜索内容 self.shouye_po.send('林峰') #点击搜索按钮 self.shouye_po.click_search_button() time.sleep(5) def teardown_class(self): self.driver.quit()
def test_login_page(self, case_num, text, tag): """ :param case_num: 用例编号 :param text: 输入测试数据 :param tag: 1 标记成功 :return: """ page = Page(self.driver, self.url) page.open() allure.attach("用例编号", "{}".format(case_num)) page.input_text(text)
class Test_search(object): def setup_class(self): self.driver = init_driver() self.search_obj = Page(self.driver).Page_obj() # 点击搜索按钮 self.search_obj.start_search() def teardown_class(self): # 点击返回按钮 self.search_obj.stop_search() #结束搜索 self.driver.quit() @pytest.allure.severity(pytest.allure.severity_level.CRITICAL) @allure.step(title="我是001") @pytest.mark.parametrize('test_id,input_text,expect_data', package_param_data()) def test_2case(self, test_id, input_text, expect_data): allure.attach("描述", "我在001里面") print("test_id", test_id) #输入测试用例 self.search_obj.input_search(input_text) self.driver.get_screenshot_as_file("./screenshot/%s.png" % test_id) assert expect_data == 456
class Test_login: def setup_class(self): # self.obj = Login_Page(get_driver()) # # 点击我的 # self.obj.click_btn() self.page_obj = Page(get_driver()) #点击我的 self.page_obj.get_login_page().click_btn() def teardown_class(self): self.page_obj.driver.quit() @pytest.mark.parametrize( 'test_login_num,username,passwd,get_mess,expect_message,tag', get_data()) def test_login(self, test_login_num, username, passwd, get_mess, expect_message, tag): # 点击登录注册 self.page_obj.get_login_page().click_login_sign_btn() self.page_obj.get_login_page().input_phone(username, passwd) # 分两种去情况 我的订单 和登录失败 # 输入手机号 密码 点击登录 # 输入正确的手机号和密码 if tag: try: # 断言是否登录成功和是否有 我的订单内容 login_toast = self.page_obj.get_login_page().get_toast( get_mess) login_status = self.page_obj.get_login_page( ).if_my_order_status() #点击设置 self.page_obj.get_login_page().click_setting_btn() # 退出登录 点击安全退出 self.page_obj.setting_page().safe_logout() assert login_toast == expect_message and login_status except Exception as e: self.page_obj.get_login_page().get_screen_01() assert False finally: # 点击 登录页面的关闭按钮 self.page_obj.get_login_page().quit_login_page() else: try: mess = self.page_obj.get_login_page().get_toast(get_mess) if mess: assert mess == expect_message else: self.page_obj.get_login_page().get_screen_01() assert False finally: self.page_obj.get_login_page().quit_login_page()
def setup_class(self): # 实例化一个page的统一入口类对象 self.page_obj = Page( get_driver("com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity"))
class Test_Login: def setup_class(self): # 实例化一个page的统一入口类对象 self.page_obj = Page( get_driver("com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity")) def teardown_class(self): self.page_obj.driver.quit() @pytest.mark.parametrize( 'test_num,phone,passwd,tag,tag_message,expect_requst', get_aolai_data()) def test_login(self, test_num, phone, passwd, tag, tag_message, expect_requst): # 点击我的按钮 self.page_obj.get_home_page_obj().click_my_btn() # 点击已有账号去登录 self.page_obj.get_sign_page_obj().click_exits_account_btn() # 进行登录操作 self.page_obj.get_login_page_obj().login(phone, passwd) # 断言是否登录成功,成功就退出,未成功则判断提示信息, if tag == 1: # 预期成功用例 try: # 定位我的优惠券 coupons = self.page_obj.get_person_page_obj().get_coupons_text( ) try: # 断言 定位的我的优惠券文本==预期结果 assert coupons == expect_requst # 元素依然是可以找到的,只是里面的文本可能变了,所以断言时文本不相等 ,但不影响,所以捕获这个异常 except AssertionError as e: print(e.__str__()) # 执行退出操作 # 点击设置按钮 self.page_obj.get_person_page_obj().click_setting_btn() # 向上滑屏,点击退出登录 self.page_obj.get_setting_page().click_logout_btn() # 如果找不到我的优惠券,那么说明本该本成功的用例失败了 except TimeoutException as e: # 关闭登录页面 self.page_obj.get_login_page_obj().close_login_page_btn() # 执行到这里,说明本次用例执行失败,必须抛一个异常,不然会显示本次用例是成功的 assert False else: # 预期失败案例 try: # 获取toast消息 toast_message = self.page_obj.get_person_page_obj( ).get_toast_text(tag_message) print(toast_message) # 获取登录按钮是否存在 if_login_btn = self.page_obj.get_login_page_obj( ).if_login_btn_exits() print(if_login_btn) # 断言取到了toast文本=预期 同时在登录页面 assert if_login_btn and toast_message == expect_requst print(expect_requst) # 如果找不到toast消息,就会超时,所以捕获超时异常 except TimeoutException as e: # 找不到说明和预期不一样,那就是这条用例运行失败,所以必须抛一个异常,不然会显示运行成功 assert False # 不管执行成功还是失败都要把这个页面关闭,才能不影响下一条用例的执行 finally: # 关闭登录页面 self.page_obj.get_login_page_obj().close_login_page_btn()
def setup_class(self): self.driver = init_driver() self.search_obj = Page(self.driver).Page_obj() # 点击搜索按钮 self.search_obj.start_search()
class Test_Login: def setup_class(self): self.page_obj = Page(get_driver()) # 点击我的 self.page_obj.get_login_page().click_my_btn() def teardown_class(self): self.page_obj.driver.quit() @pytest.mark.parametrize("username,passwd,expectx,expect_toast,get_msg",get_login_data()) def test_login(self, username,passwd,expectx,expect_toast,get_msg): # 点击登陆/注册 self.page_obj.get_login_page().click_insert_login() # 登陆操作 self.page_obj.get_login_page().login(username, passwd) if expectx: try: # 登陆成功toast消息 suc_msg = self.page_obj.get_login_page().find_toast(get_msg) # 获取我的订单按钮是否存在 成功返回True 不成功返回False suc_status = self.page_obj.get_login_page().get_suc_login_status() # 断言成功/失败 assert suc_msg == expect_toast and suc_status # 退出操作 # 点击个人中心设置 self.page_obj.get_setting_page().click_setting_btn() # 点击退出登录按钮 self.page_obj.get_setting_page().click_logout_btn() except: # 点击登陆页面关闭按钮 self.page_obj.get_login_page().login_faile_x() assert False else: # 获取toast消息 reslut_msg = self.page_obj.get_login_page().find_toast(get_msg) # 点击登陆页面关闭按钮 self.page_obj.get_login_page().login_faile_x() assert expect_toast == reslut_msg
class Test_01: def setup_class(self): self.Page_obj = Page(get_driver("com.tpshop.malls", ".SPMainActivity")) self.Page_obj.get_login_page().click_my_btn() def teardown_class(self): self.Page_obj.driver.quit() @allure.step("执行测试用例") @pytest.mark.parametrize( "case_num, username, passwd,get_mess,expect_message, tag", get_data()) def test_01_1(self, case_num, username, passwd, get_mess, expect_message, tag): self.Page_obj.get_login_page().click_sign_btn() self.Page_obj.get_login_page().input_mess(username, passwd) self.Page_obj.get_login_page().click_login_btn() if tag: try: order_status = self.Page_obj.get_login_page( ).if_my_order_status() toast = self.Page_obj.get_login_page().get_toast(get_mess) self.Page_obj.get_login_page().click_setting_btn() self.Page_obj.get_setting_page().clcik_exit_btn() assert order_status and toast == expect_message except Exception as e: print(e) self.Page_obj.get_login_page().click_close() assert False else: try: toast = self.Page_obj.get_login_page().get_toast(get_mess) if toast: assert toast == expect_message else: assert False finally: self.Page_obj.get_login_page().click_close()
class Test_Login: def setup_class(self): # 实例化统一入口类 self.page_obj = Page(get_driver()) self.page_obj.get_login_page().click_my_btn() def teardown_class(self): self.page_obj.driver.quit() @pytest.mark.parametrize( "case_num, username, passwd,get_mess,expect_message, tag", get_data()) def test_login_page(self, case_num, username, passwd, get_mess, expect_message, tag): """ :param username: 用户名 :param passwd: 密码 :param get_mess: toast传参 :param expect_message: 预期toast消息 :param tag: 1 标记登陆成功用例 :return: """ # 点击登陆注册 self.page_obj.get_login_page().click_login_sign_btn() # 登陆操作 self.page_obj.get_login_page().login_input_page(username, passwd) if tag: try: # 获取登陆成功toast suc_msg = self.page_obj.get_login_page().get_toast(get_mess) # 获取我的订单状态 order_status = self.page_obj.get_login_page( ).if_my_order_status() # 退出登录 self.page_obj.get_setting_page().logout_page() assert suc_msg == expect_message and order_status except Exception as e: # 关闭登陆信息输入页面 self.page_obj.get_login_page().login_close_page() assert False else: try: # 获取登陆失败toast消息 fail_msg = self.page_obj.get_login_page().get_toast(get_mess) if fail_msg: assert fail_msg == expect_message else: assert False finally: self.page_obj.get_login_page().login_close_page()
class Test_01: def setup_class(self): self.page_obj = Page( get_driver("com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity")) def teardown_class(self): self.page_obj.driver.quit() @pytest.fixture(autouse=True) def in_login(self): # 点击我的 self.page_obj.get_home_page_obj().click_my_btn() # 点击已有账号登录 self.page_obj.get_sign_page_obj().click_exits_account_btn() @pytest.mark.parametrize('test_num,phone,passwd,tag_message,expect_requst', get_login_data().get('scc')) def test_login_scc(self, test_num, phone, passwd, tag_message, expect_requst): """预期正确的用例""" try: coupons = self.page_obj.get_person_page_obj().get_coupons_text() try: assert coupons == expect_requst except AssertionError as e: print(e.__str__()) # 点击设置 self.page_obj.get_person_page_obj().click_setting_btn() # 点击退出 self.page_obj.get_setting_page().click_logout_btn() except TimeoutError as e: # 关闭登录页面 self.page_obj.get_login_page_obj().close_login_page_btn() @pytest.mark.parametrize('test_num,phone,passwd,tag_message,expect_requst', get_login_data().get('s')) def test_login_s(self, test_num, phone, passwd, tag_message, expect_requst): """预期失败的用例""" pass
def setup_class(self): # 实例化统一入口类 self.page_obj = Page(get_driver())
def setup_class(self): # 实例化统一入口类 self.page_obj = Page(get_driver()) self.page_obj.get_login_page().click_my_btn()
from selenium.webdriver.common.by import By from Base.getdriver import get_phone_driver from Page.Page import Page # 实例化driver driver = get_phone_driver("com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity") # 实例化统一入口类 page_obj = Page(driver) # 点击首页我 page_obj.get_homepage().click_my_btn() # 点击注册页面已有账号去登录 page_obj.get_signpage().click_exits_account() # 执行登录操作 page_obj.get_loginpage().login("13488834010", "159357") # 获取提示消息 # 获取错误提示xpath error_message = (By.XPATH, '//*[contains(@text,"错误")]') message = page_obj.get_settingpage().get_element(error_message, timeout=5, poll_frequency=0.5).text print(message) # # 获取我的优惠券 # print("获取结果:{}".format(page_obj.get_personpage().get_shop_cart())) # # 点击设置按钮 # page_obj.get_personpage().click_setting_btn() # 退出操作
class TestLogin: def setup_class(self): # 初始化driver self.driver = get_phone_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 auto_in_login(self): """自动进入登录页面""" # 点击我 self.page_obj.get_homepage().click_my_btn() # 点击已有账号 self.page_obj.get_signpage().click_exits_account() @pytest.mark.parametrize("case_num, account, passwd, exp_data", get_login_data().get("suc")) def test_login_suc(self, case_num, account, passwd, exp_data): """ :param case_num: 用例编号 :param account: 用户名 :param passwd: 密码 :param exp_data: 预期结果 :return: """ # 登录操作 --个人中心 self.page_obj.get_loginpage().login(account, passwd) try: # 获取我的优惠 shop_cart = self.page_obj.get_personpage().get_shop_cart() # 能获取到 ---获取不到-验证完 try: assert exp_data == shop_cart # 断言成功 ---断言失败 except AssertionError: """停留在个人中心,需要执行退出操作""" # 截图 self.page_obj.get_loginpage().screen_page() # --- assert False finally: # 点击设置 self.page_obj.get_personpage().click_setting_btn() # 正向走的 ---获取失败和断言失败 # 退出操作 self.page_obj.get_settingpage().logout() # ---获取失败和断言失败 except TimeoutException: # ----没找到元素 -验证完 # 截图 self.page_obj.get_loginpage().screen_page() # 关闭页面 self.page_obj.get_loginpage().login_close_page() assert False @pytest.mark.parametrize("case_num, account, passwd, toast, exp_data", get_login_data().get("fail")) def test_login_fail(self, case_num, account, passwd, toast, exp_data): """ :param case_num: 用例编号 :param account: 用户名 :param passwd: 密码 :param toast: 获取toast消息参数 :param exp_data: 预期结果 :return: """ # 登录操作 --个人中心 self.page_obj.get_loginpage().login(account, passwd) try: # 获取toast消息 toast_data = self.page_obj.get_settingpage().get_toast(toast) # 成功 失败 try: """登录页面操作""" # 判断登录按钮是否存在 self.page_obj.get_loginpage().if_login_btn() # 断言 assert toast_data == exp_data # 关闭登录页面 self.page_obj.get_loginpage().login_close_page() except TimeoutException: """获取到toast错误提示,但是登录成功""" # 截图 self.page_obj.get_loginpage().screen_page() # 点击设置 self.page_obj.get_personpage().click_setting_btn() # 退出 self.page_obj.get_settingpage().logout() assert False except AssertionError: """登录页面""" # 截图 self.page_obj.get_loginpage().screen_page() # 关闭登录按钮 self.page_obj.get_loginpage().login_close_page() assert False except TimeoutException: """找不到toast消息""" # 截图 self.page_obj.get_settingpage().screen_page() try: """登录页面""" # 登录按钮 self.page_obj.get_loginpage().if_login_btn() # 关闭登录页面 self.page_obj.get_loginpage().login_close_page() except TimeoutException: """个人中心页面""" # 点击设置 self.page_obj.get_personpage().click_setting_btn() # 退出操作 self.page_obj.get_settingpage().logout() assert False
def setup_class(self): self.Page_obj = Page(get_driver("com.tpshop.malls", ".SPMainActivity")) self.Page_obj.get_login_page().click_my_btn()
def setup_class(self): self.page_obj = Page(get_driver_mes())
def setup_class(self): # 初始化driver self.driver = get_phone_driver("com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity") # 初始化统一入口类 self.page_obj = Page(self.driver)
# coding: utf-8 from time import sleep from Page.Page import Page from Base.getdriver import get_phone_driver from Page.UiElements import UiElements """定义一个设备(版本:platformVersion,设备名:deviceName,包名:appPackage, 启动名:appActivity)""" driver = get_phone_driver('5.1.1', '127.0.0.1:62001', 'com.qiaqia', '.cardhome.activity.WelcomeActivity') # driver = get_phone_driver('9','9889d6483158465037','com.qiaqia','.cardhome.activity.WelcomeActivity') page_obj = Page(driver) """关闭三星权限弹框""" # page_obj.get_SamsungSystemPage().click_Samsung_system_permission() """点击消息按钮,跳转到登陆页面""" try: page_obj.get_MyPage().click_my_btn() print("跳转登录页成功") except: print("跳转登录页失败") exit() """登录""" try: page_obj.get_LoginPage().login("18295995951", "123456") print("登录成功") except: print("登录失败") exit() """消息""" page_obj.get_MessagePage().click_message_btn(UiElements.Home_message_btn_id) page_obj.get_MessagePage().click_private_btn() page_obj.get_MessagePage().click_inform_btn() page_obj.get_MessagePage().click_search_btn("1")
def setup_class(self): #实例化page页面对象 self.page_obj = Page(get_driver_sc()) # 点击搜索按钮 self.page_obj.get_search_page().click_search()
class Test_Add_Address(): def setup_class(self): self.pag_obj = Page(get_driver()) # 判断是否登陆 self.pag_obj.get_login_page().if_login() def teardown_class(self): self.pag_obj.driver.quit() @pytest.mark.run(order=3) @pytest.mark.parametrize("name, get_toast, expect_toast", data_list().get("del_data")) def test_delete_addr(self, name, get_toast, expect_toast): # 删除已添加地址 # 地址编辑按钮 self.pag_obj.get_add_addr_page().edit_address() # 点击删除 self.pag_obj.get_add_addr_page().delete_address() # 判断toast消息 assert expect_toast == self.pag_obj.get_add_addr_page().find_toast( get_toast) # 判断列表收货人不包含某个用户名 assert not self.pag_obj.get_add_addr_page().if_addr_name() @pytest.mark.run(order=2) @pytest.mark.parametrize("name, get_toast, expect_toast", data_list().get("edit_data")) def test_edit_address(self, name, get_toast, expect_toast): # 修改收货人 和 取消默认 self.pag_obj.get_add_addr_page().edit_address() # 修改收货人 self.pag_obj.get_add_addr_page().add_recv_name(name) # 关闭默认开关 self.pag_obj.get_add_addr_page().click_default_btn() # 点击保存按钮 self.pag_obj.get_add_addr_page().click_addr_save() # 判断toast消息 assert expect_toast == self.pag_obj.get_add_addr_page().find_toast( get_toast) # 判断收货人 assert name in self.pag_obj.get_add_addr_page().if_addr_name() # 判断默认消失 assert not self.pag_obj.get_add_addr_page().if_addr_default() @pytest.mark.run(order=1) @pytest.mark.parametrize( "name,phone,detail,get_toast,expect_toast,expect_default", data_list().get("add_data")) def test_add_address(self, name, phone, detail, get_toast, expect_toast, expect_default): # 点击收货地址 self.pag_obj.get_add_addr_page().click_recv_addr() # 点击新建地址 self.pag_obj.get_add_addr_page().new_address() # 输入收货人 self.pag_obj.get_add_addr_page().add_recv_name(name) # 输入手机号 self.pag_obj.get_add_addr_page().add_recv_phone(phone) # 选择所在地区 self.pag_obj.get_add_addr_page().add_recv_change_area() # 输入详细地址 self.pag_obj.get_add_addr_page().add_recv_detail(detail) # 点击保存新增地址 self.pag_obj.get_add_addr_page().click_addr_save() # 判断添加成功提示 assert expect_toast == self.pag_obj.get_add_addr_page().find_toast( get_toast) # 判断收货人姓名 assert name in self.pag_obj.get_add_addr_page().if_addr_name() # 判断默认 assert expect_default in self.pag_obj.get_add_addr_page( ).if_addr_default()
def setup_class(self): self.page_obj = Page(get_driver()) # 点击我的 self.page_obj.get_login_page().click_my_btn()
def setup_class(self): self.pag_obj = Page(get_driver()) # 判断是否登陆 self.pag_obj.get_login_page().if_login()