Commit bccd5bf6 by linguangwei

mainpage拆分为多个allure.step步骤

parent 466f225a
......@@ -7,9 +7,8 @@
<list default="true" id="00f4febb-36b6-426d-bfe6-b023876a617e" name="Default Changelist" comment="review">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/framework/common.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/framework/common.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/testcase/test_LoginPage.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/testcase/test_LoginPage.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/testcase/test_WhiteBoardPage.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/testcase/test_WhiteBoardPage.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/pageobject/mainpage.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/pageobject/mainpage.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/testcase/test_MainPage.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/testcase/test_MainPage.py" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
......@@ -160,7 +159,7 @@
<recent name="C:\Users\Administrator\PycharmProjects\xm-uitest-live" />
</key>
</component>
<component name="RunManager" selected="Python tests.pytest for test_WhiteBoardPage.TestLivePage.testWhiteBoard">
<component name="RunManager" selected="Python.main">
<configuration name="main" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="xm-uitest-live" />
<option name="INTERPRETER_OPTIONS" value="" />
......@@ -183,7 +182,7 @@
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="pytest for test_LoginPage.TestLoginPage.testLogin" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<configuration name="pytest for test_MainPage.TestMainPage" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<module name="xm-uitest-live" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
......@@ -195,11 +194,11 @@
<option name="_new_keywords" value="&quot;&quot;" />
<option name="_new_parameters" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;test_LoginPage.TestLoginPage.testLogin&quot;" />
<option name="_new_target" value="&quot;test_MainPage.TestMainPage&quot;" />
<option name="_new_targetType" value="&quot;PYTHON&quot;" />
<method v="2" />
</configuration>
<configuration name="pytest for test_WhiteBoardPage.TestLivePage.testWhiteBoard" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<configuration name="pytest for test_MainPage.TestMainPage.test_2_StartLive" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<module name="xm-uitest-live" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
......@@ -211,11 +210,11 @@
<option name="_new_keywords" value="&quot;&quot;" />
<option name="_new_parameters" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;test_WhiteBoardPage.TestLivePage.testWhiteBoard&quot;" />
<option name="_new_target" value="&quot;test_MainPage.TestMainPage.test_2_StartLive&quot;" />
<option name="_new_targetType" value="&quot;PYTHON&quot;" />
<method v="2" />
</configuration>
<configuration name="pytest in test_LoginPage.py" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<configuration name="pytest for test_MainPage.TestMainPage.test_3_ReviewLive" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<module name="xm-uitest-live" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
......@@ -227,11 +226,11 @@
<option name="_new_keywords" value="&quot;&quot;" />
<option name="_new_parameters" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;$PROJECT_DIR$/src/testcase/test_LoginPage.py&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
<option name="_new_target" value="&quot;test_MainPage.TestMainPage.test_3_ReviewLive&quot;" />
<option name="_new_targetType" value="&quot;PYTHON&quot;" />
<method v="2" />
</configuration>
<configuration name="pytest in test_MainPage.py" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<configuration name="pytest for test_WhiteBoardPage.TestLivePage.testWhiteBoard" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<module name="xm-uitest-live" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
......@@ -243,17 +242,17 @@
<option name="_new_keywords" value="&quot;&quot;" />
<option name="_new_parameters" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;$PROJECT_DIR$/src/testcase/test_MainPage.py&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
<option name="_new_target" value="&quot;test_WhiteBoardPage.TestLivePage.testWhiteBoard&quot;" />
<option name="_new_targetType" value="&quot;PYTHON&quot;" />
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Python tests.pytest for test_WhiteBoardPage.TestLivePage.testWhiteBoard" />
<item itemvalue="Python.main" />
<item itemvalue="Python tests.pytest for test_LoginPage.TestLoginPage.testLogin" />
<item itemvalue="Python tests.pytest in test_LoginPage.py" />
<item itemvalue="Python tests.pytest in test_MainPage.py" />
<item itemvalue="Python tests.pytest for test_MainPage.TestMainPage.test_2_StartLive" />
<item itemvalue="Python tests.pytest for test_MainPage.TestMainPage" />
<item itemvalue="Python tests.pytest for test_MainPage.TestMainPage.test_3_ReviewLive" />
<item itemvalue="Python tests.pytest for test_WhiteBoardPage.TestLivePage.testWhiteBoard" />
</list>
</recent_temporary>
</component>
......@@ -395,7 +394,14 @@
<option name="project" value="LOCAL" />
<updated>1624426645130</updated>
</task>
<option name="localTasksCounter" value="18" />
<task id="LOCAL-00018" summary="review">
<created>1624433942468</created>
<option name="number" value="00018" />
<option name="presentableId" value="LOCAL-00018" />
<option name="project" value="LOCAL" />
<updated>1624433942468</updated>
</task>
<option name="localTasksCounter" value="19" />
<servers />
</component>
<component name="TestHistory">
......
......@@ -5,7 +5,7 @@ from src.framework import common
if __name__ == '__main__':
htmlPath = "./report/AI-XM_Report{}.html".format(common.year_to_minute())
pytest.main(["-v", '--alluredir={}'.format(htmlPath), './src/testcase/test_WhiteBoardPage', "--durations=0"])
pytest.main(["-v", '--alluredir={}'.format(htmlPath), './src/testcase/test_MainPage.py', "--durations=0"])
os.system('allure generate {} -o ./report/output --clean'.format(htmlPath))
# # 定义报告输出路径
......
......@@ -60,6 +60,16 @@ class MainPage(LoginPage):
self.in_live_btn = (By.XPATH, """//div[text()="{}"]/..//button[@class="ant-btn ant-btn-primary"]""".format(coursename))
self.click(self.in_live_btn)
# 点击'查看回放'
def click_review_live_btn(self, coursename):
self.in_live_btn = (By.XPATH, """//div[text()="{}"]/..//button[@class="ant-btn"]""".format(coursename))
while True:
self.keys_down()
ele = EC.presence_of_element_located(self.in_live_btn)
if ele:
break
self.click(self.in_live_btn)
def click_camera_btn(self):
self.click(self.camera_btn)
......
......@@ -11,78 +11,96 @@ from src.framework.appDriver import get_app_driver
from config import readConfig
@pytest.mark.usefixtures("before_test")
class TestMainPage(object):
logger = Logger('main page').getlog()
cloud_class_location = readConfig.test_location()
time.sleep(15)
live_course_name = create_a_live(start_time=25, start_time2=1)
@pytest.fixture(scope="module")
def before_test(self):
print("before_test")
self.logger = Logger('main page').getlog()
self.cloud_class_location = readConfig.test_location()
self.live_course_name = create_a_live(start_time=25, start_time2=1)
time.sleep(15)
return self.cloud_class_location, self.live_course_name
def setup_method(self):
@pytest.fixture(scope="function")
def before_test_case(self, before_test):
print("before_test_case")
# 指定客户端的本地路径,在/config/config.ini配置
self.cloud_class_location = before_test[0]
self.live_course_name = before_test[1]
self.sleep_time = 2
self.driver = get_app_driver(self.cloud_class_location)
def teardown_method(self):
self.main_page = MainPage(driver=self.driver)
# 这里停15s是因为setUP里创建直播间获取token登录了一次,限制两次登录需间隔15s
self.main_page.login()
yield self.driver
self.driver.quit()
@pytest.mark.usefixtures("before_test")
@pytest.mark.usefixtures("before_test_case")
@allure.title("测试主页-进入未开启直播")
def test_1_UnStartLive(self):
driver = self.driver
main_page = MainPage(driver=driver)
# 这里停15s是因为setUP里创建直播间获取token登录了一次,限制两次登录需间隔15s
main_page.sleep(15)
main_page.login()
main_page.sleep(2)
main_page.page_down(self.live_course_name[0])
main_page.sleep(1)
main_page.click_in_live_btn(self.live_course_name[0])
main_page.sleep(5)
main_page.change_window(main_page.camera_btn)
main_page.sleep(2)
assert main_page.ifElementExist(main_page.camera_btn)
main_page.sleep(3)
self.main_page.sleep(self.sleep_time)
self.main_page.page_down(self.live_course_name[0])
self.main_page.sleep(self.sleep_time)
self.main_page.click_in_live_btn(self.live_course_name[0])
self.main_page.sleep(self.sleep_time)
self.main_page.change_window(self.main_page.camera_btn)
self.main_page.sleep(self.sleep_time)
assert self.main_page.ifElementExist(self.main_page.camera_btn)
self.main_page.sleep(self.sleep_time)
@allure.step("第一步:进入直播间")
def enter_start_live(self):
print(self.live_course_name)
self.main_page.sleep(60)
self.main_page.page_down(self.live_course_name[1])
self.main_page.sleep(self.sleep_time)
self.main_page.click_in_live_btn(self.live_course_name[1])
self.main_page.sleep(self.sleep_time)
@allure.step("第二步:二次确认开启直播")
def twice_start_live(self):
self.main_page.change_window(self.main_page.start_live_btn)
self.main_page.start_live()
self.main_page.sleep(self.sleep_time)
@allure.step("第三步:关闭直播")
def close_live(self):
self.main_page.change_window(self.main_page.camera_btn)
self.main_page.stop_live()
self.main_page.sleep(self.sleep_time)
self.main_page.change_window(self.main_page.cancel_stop_live_btn)
@allure.step("第四步:确认结束直播")
def end_live(self):
self.main_page.sleep(self.sleep_time)
self.main_page.stop_live()
self.main_page.sleep(self.sleep_time)
self.main_page.change_window(self.main_page.live_list)
assert "查看回放" == self.main_page.get_btn_text(self.live_course_name[1])
self.main_page.sleep(self.sleep_time)
@pytest.mark.usefixtures("before_test")
@pytest.mark.usefixtures("before_test_case")
@allure.title("测试主页-进入已开启直播")
def test_2_StartLive(self):
driver = self.driver
main_page = MainPage(driver=driver)
print(self.live_course_name)
# 这里停15s是因为setUP里创建直播间获取token登录了一次,限制两次登录需间隔15s
main_page.sleep(15)
main_page.login()
main_page.sleep(60)
main_page.page_down(self.live_course_name[1])
main_page.sleep(3)
main_page.click_in_live_btn(self.live_course_name[1])
main_page.sleep(5)
# 二次确认开启直播
main_page.change_window(main_page.start_live_btn)
main_page.start_live()
main_page.sleep(5)
# 关闭直播
main_page.change_window(main_page.camera_btn)
main_page.stop_live()
main_page.sleep(5)
main_page.change_window(main_page.cancel_stop_live_btn)
# 确认结束直播
main_page.stop_live()
main_page.sleep(3)
main_page.change_window(main_page.live_list)
assert "查看回放" == main_page.get_btn_text(self.live_course_name[1])
main_page.sleep(3)
self.enter_start_live()
self.twice_start_live()
self.close_live()
self.end_live()
@pytest.mark.skip()
@pytest.mark.usefixtures("before_test")
@pytest.mark.usefixtures("before_test_case")
@allure.title("测试回放")
def test_3_ReviewLive(self):
driver = self.driver
main_page = MainPage(driver=driver)
print(self.live_course_name)
# 这里停15s是因为setUP里创建直播间获取token登录了一次,限制两次登录需间隔15s
main_page.sleep(15)
main_page.login()
main_page.sleep(5)
main_page.page_down(self.live_course_name[1])
main_page.sleep(1)
main_page.click_in_live_btn(self.live_course_name[1])
main_page.sleep(5)
self.main_page.sleep(self.sleep_time)
self.main_page.page_down(self.live_course_name[1])
self.main_page.sleep(self.sleep_time)
self.main_page.click_review_live_btn(self.live_course_name[1])
self.main_page.sleep(self.sleep_time)
if __name__ == '__main__':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment