class TestMpArticle: # 1. 初始化 def setup_class(self): # 1. 获取driver driver = GetDriver.get_web_driver(uiAutoTestHmtt.page.url_mp) # 2. 获取统一入口类对象 self.page_in = PageIn(driver) # 3. 获取PageMpLogin对象并调用成功登录依赖方法 self.page_in.page_get_PageMpLogin().page_mp_login_success() # 4. 获取PageMpArticle页面对象 self.article = self.page_in.page_get_PageMpArticle() # 2. 结束 def teardown_class(self): GetDriver.quit_web_driver() # 3. 测试发布文章方法 @pytest.mark.parametrize("title,content,expect,channel", read_yaml("mp_article.yaml")) def test_mp_article(self, title, content, expect, channel): print("发布文章所属频道为:", channel) # 调用发布文章业务方法 self.article.page_mp_article(title, content) try: # 断言 assert expect == self.article.page_get_info() except Exception as e: # 日志 log.error(e) # 截图 self.article.base_get_img() # 抛异常 raise
class TestAppArticle: # 1. 初始化 def setup_class(self): # 1. 获取driver driver = GetDriver.get_app_driver() # 2. 获取统一入口对象 self.page_in = PageIn(driver) # 3. 调用登录方法 self.page_in.page_get_PageAppLogin().page_app_login_success() # 4. 获取发布文章页面对象 self.article = self.page_in.page_get_PageAppArticle() # 2. 结束 def teardown_class(self): # 关闭driver GetDriver.quit_app_driver() # 3. 文章测试方法 @pytest.mark.parametrize("click_text,title", read_yaml("app_article.yaml")) def test_app_article(self, click_text, title): try: # 调用发布文章业务方法 self.article.page_app_article(click_text, title) except Exception as e: # 1. 日志 log.error(e) # 2. 截图 self.article.base_get_img() # 3. 抛异常 raise
class TestMpLogin: # 初始化 def setup_class(self): # 1. 获取driver driver = GetDriver.get_web_driver(uiAutoTestHmtt.page.url_mp) # 2. 通过统一入口类获取PageMpLogin对象 self.mp = PageIn(driver).page_get_PageMpLogin() # 结束 def teardown_class(self): # 调用关闭driver GetDriver.quit_web_driver() # 测试业务方法 @pytest.mark.parametrize("username,code,expect", read_yaml("mp_login.yaml")) def test_mp_login(self, username, code, expect): # 调用登录业务方法 self.mp.page_mp_login(username, code) try: # 断言 assert expect == self.mp.page_get_nickname() except Exception as e: log.error("断言出错,错误信息:{}".format(e)) print("错误原因:", e) # 截图 self.mp.base_get_img() # 抛异常 raise
class TestMisLogin: # 1. 初始化 def setup_class(self): # 1. 获取driver driver = GetDriver.get_web_driver(uiAutoTestHmtt.page.url_mis) # 2. 通过统一入口类对象获取PageMisLogin self.mis = PageIn(driver).page_get_PageMisLogin() # 2. 结束 def teardown_class(self): # 关闭driver GetDriver.quit_web_driver() # 3. 登录测试业务方法 @pytest.mark.parametrize("username,pwd,expect", read_yaml("mis_login.yaml")) def test_mis_login(self, username, pwd, expect): # 1. 调用登录业务方法 self.mis.page_mis_login(username, pwd) try: # 2. 调试断言信息 assert expect in self.mis.page_get_nickname() except Exception as e: # 日志 log.error(e) # 截图 self.mis.base_get_img() # 抛异常 raise
class TestAppLogin: # 1. 初始化 def setup_class(self): # 1. 获取driver driver = GetDriver.get_app_driver() # 2. 通过统一入口对象获取PageAppLogin对象 self.login = PageIn(driver).page_get_PageAppLogin() # 2. 结束 def teardown_class(self): # 关闭driver GetDriver.quit_app_driver() # 3. app登录测试业务方法 @pytest.mark.parametrize("phone,code", read_yaml("app_login.yaml")) def test_app_login(self, phone, code): # 调用app登录业务方法 self.login.page_app_login(phone, code) try: # 断言 assert self.login.page_is_login_success() except Exception as e: # 1. 日志 log.error(e) # 2. 截图 self.login.base_get_img() # 3. 抛异常 raise
from selenium.webdriver.common.by import By from uiAutoTestHmtt.tools.read_yaml import read_yaml """以下数据为自媒体、后台管理url""" # 自媒体url url_mp = "http://ttmp.research.itcast.cn/#/login" # 后台管理url url_mis = "http://ttmis.research.itcast.cn/#/" """以下为文章相关配置数据""" title = read_yaml("mp_article.yaml")[0][0] print("文章的title为:", title) channle = read_yaml("mp_article.yaml")[0][3] print("文章所属频道为:", channle) """以下数据为自媒体模块配置数据""" # 用户名 mp_username = (By.CSS_SELECTOR, "[placeholder='请输入手机号']") # 验证码 mp_code = (By.CSS_SELECTOR, "[placeholder='验证码']") # 登录按钮 mp_login_btn = (By.CSS_SELECTOR, ".el-button--primary") # 昵称 mp_nickname = (By.CSS_SELECTOR, ".user-name") # 内容管理 mp_content_manage = By.XPATH, "//span[text()='内容管理']/.." # 发布文章 mp_publish_article = By.XPATH, "//*[contains(text(),'发布文章')]" # 文章title mp_title = By.CSS_SELECTOR, "[placeholder='文章名称']" # iframe mp_iframe = By.CSS_SELECTOR, "#publishTinymce_ifr" # 文章内容 定位body,勿定位到p标题