Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xm-uitest-sow
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiamai-test
xm-uitest-sow
Commits
e1ff8f18
Commit
e1ff8f18
authored
Jun 19, 2021
by
linguangwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
review
parent
cc22c038
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
60 additions
and
241 deletions
+60
-241
.idea/workspace.xml
+39
-10
main.py
+0
-1
report/AI-XM_Report20210618182932.html
+0
-0
src/framework/logger.py
+6
-0
src/pageobject/liveCourseTable/__init__.py
+0
-0
src/pageobject/liveCourseTable/classStatus.py
+0
-22
src/pageobject/liveCourseTable/enterClass.py
+0
-28
src/pageobject/liveCourseTable/startClass.py
+0
-24
src/pageobject/liveCourseTable/today.py
+0
-22
src/pageobject/liveCourseTable/weekDay.py
+0
-22
src/pageobject/liveCourseTable/weekName.py
+0
-22
src/pageobject/liveRoom/__init__.py
+0
-0
src/pageobject/liveRoom/coursewareTab.py
+0
-22
src/pageobject/liveRoom/roomName.py
+0
-22
src/pageobject/liveRoom/startPrompt.py
+0
-22
src/pageobject/mainpage.py
+8
-0
src/testcase/testLoginPage.py
+1
-1
src/testcase/testMainPage.py
+6
-23
No files found.
.idea/workspace.xml
View file @
e1ff8f18
...
...
@@ -4,10 +4,24 @@
<option
name=
"autoReloadType"
value=
"SELECTIVE"
/>
</component>
<component
name=
"ChangeListManager"
>
<list
default=
"true"
id=
"00f4febb-36b6-426d-bfe6-b023876a617e"
name=
"Default Changelist"
comment=
"修改回放按钮元素"
>
<change
beforePath=
"$PROJECT_DIR$/case/__init__.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/case/test_enter.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/basepage.py"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/src/pageobject/basepage.py"
afterDir=
"false"
/>
<list
default=
"true"
id=
"00f4febb-36b6-426d-bfe6-b023876a617e"
name=
"Default Changelist"
comment=
"添加转换窗口方法"
>
<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$/report/AI-XM_Report20210618182932.html"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/framework/logger.py"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/src/framework/logger.py"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveCourseTable/__init__.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveCourseTable/classStatus.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveCourseTable/enterClass.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveCourseTable/startClass.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveCourseTable/today.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveCourseTable/weekDay.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveCourseTable/weekName.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveRoom/__init__.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveRoom/coursewareTab.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveRoom/roomName.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/pageobject/liveRoom/startPrompt.py"
beforeDir=
"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/testLoginPage.py"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/src/testcase/testLoginPage.py"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/src/testcase/testMainPage.py"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/src/testcase/testMainPage.py"
afterDir=
"false"
/>
</list>
<option
name=
"SHOW_DIALOG"
value=
"false"
/>
...
...
@@ -157,7 +171,7 @@
<recent
name=
"C:\Users\Administrator\PycharmProjects\xm-uitest-live"
/>
</key>
</component>
<component
name=
"RunManager"
selected=
"Python
tests.pytest for testLoginPage.TestLoginPage.testLog
in"
>
<component
name=
"RunManager"
selected=
"Python
.ma
in"
>
<configuration
name=
"main"
type=
"PythonConfigurationType"
factoryName=
"Python"
temporary=
"true"
nameIsGenerated=
"true"
>
<module
name=
"xm-uitest-live"
/>
<option
name=
"INTERPRETER_OPTIONS"
value=
""
/>
...
...
@@ -250,21 +264,21 @@
</configuration>
<recent_temporary>
<list>
<item
itemvalue=
"Python.main"
/>
<item
itemvalue=
"Python tests.pytest for testLoginPage.TestLoginPage.testLogin"
/>
<item
itemvalue=
"Python tests.pytest for testMainPage.TestMainPage.test_2_StartLive"
/>
<item
itemvalue=
"Python.main"
/>
<item
itemvalue=
"Python tests.pytest for testMainPage.TestMainPage.test_4_StartLive"
/>
<item
itemvalue=
"Python tests.pytest for testMainPage.TestMainPage"
/>
</list>
</recent_temporary>
</component>
<component
name=
"SpellCheckerSettings"
RuntimeDictionaries=
"0"
Folders=
"0"
CustomDictionaries=
"0"
DefaultDictionary=
"application-level"
UseSingleDictionary=
"true"
transferred=
"
fals
e"
/>
<component
name=
"SpellCheckerSettings"
RuntimeDictionaries=
"0"
Folders=
"0"
CustomDictionaries=
"0"
DefaultDictionary=
"application-level"
UseSingleDictionary=
"true"
transferred=
"
tru
e"
/>
<component
name=
"SvnConfiguration"
>
<configuration>
C:\Users\Administrator\AppData\Roaming\Subversion
</configuration>
</component>
<component
name=
"TaskManager"
>
<task
active=
"true"
id=
"Default"
summary=
"Default task"
>
<changelist
id=
"
f091fe1a-072c-4ac2-a8ca-080be739597a"
name=
"Default Changelist"
comment=
"
"
/>
<changelist
id=
"
00f4febb-36b6-426d-bfe6-b023876a617e"
name=
"Default Changelist"
comment=
"添加转换窗口方法
"
/>
<created>
1620807921250
</created>
<option
name=
"number"
value=
"Default"
/>
<option
name=
"presentableId"
value=
"Default"
/>
...
...
@@ -333,7 +347,21 @@
<option
name=
"project"
value=
"LOCAL"
/>
<updated>
1624007701385
</updated>
</task>
<option
name=
"localTasksCounter"
value=
"9"
/>
<task
id=
"LOCAL-00009"
summary=
"添加转换窗口方法"
>
<created>
1624011986682
</created>
<option
name=
"number"
value=
"00009"
/>
<option
name=
"presentableId"
value=
"LOCAL-00009"
/>
<option
name=
"project"
value=
"LOCAL"
/>
<updated>
1624011986682
</updated>
</task>
<task
id=
"LOCAL-00010"
summary=
"添加转换窗口方法"
>
<created>
1624012198851
</created>
<option
name=
"number"
value=
"00010"
/>
<option
name=
"presentableId"
value=
"LOCAL-00010"
/>
<option
name=
"project"
value=
"LOCAL"
/>
<updated>
1624012198851
</updated>
</task>
<option
name=
"localTasksCounter"
value=
"11"
/>
<servers
/>
</component>
<component
name=
"TestHistory"
>
...
...
@@ -435,7 +463,8 @@
<MESSAGE
value=
"rename"
/>
<MESSAGE
value=
"同步"
/>
<MESSAGE
value=
"登录-开课-结束课程-关闭客户端"
/>
<option
name=
"LAST_COMMIT_MESSAGE"
value=
"登录-开课-结束课程-关闭客户端"
/>
<MESSAGE
value=
"添加转换窗口方法"
/>
<option
name=
"LAST_COMMIT_MESSAGE"
value=
"添加转换窗口方法"
/>
</component>
<component
name=
"editorHistoryManager"
>
<entry
file=
"file://$PROJECT_DIR$/server.log"
/>
...
...
main.py
View file @
e1ff8f18
...
...
@@ -11,7 +11,6 @@ if __name__ == '__main__':
testunit
=
unittest
.
TestSuite
()
testunit
.
addTest
(
TLP
(
'testLogin'
))
testunit
.
addTests
([
TMP
(
'test_1_UnStartLive'
),
TMP
(
'test_2_StartLive'
),
TMP
(
'test_3_ReviewLive'
)])
# testunit.addTests([TWP('testWordsEvaluation'), TWP('testWordReinforcement'), TWP('test_unit'), TWP('testOfflineDictation'), TWP('testPreview'), TWP('testShorthand'), TWP('testDictation'), TWP('testMemoryWrite'), TWP('testPostTest'), TWP('testReview'), TWP('testxiaoxiaole')])
# 定义报告输出路径
htmlPath
=
"./report/AI-XM_Report{}.html"
.
format
(
common
.
year_to_minute
())
...
...
report/AI-XM_Report20210618182932.html
deleted
100644 → 0
View file @
cc22c038
src/framework/logger.py
View file @
e1ff8f18
...
...
@@ -16,6 +16,12 @@ class Logger(object):
rq
=
common
.
year_to_minute
()
today
=
common
.
year_to_day
()
report_path
=
common
.
file_abspath
()
+
'/report/'
if
not
os
.
path
.
exists
(
report_path
):
os
.
mkdir
(
report_path
)
log_path_dir
=
common
.
file_abspath
()
+
'/logs/'
if
not
os
.
path
.
exists
(
log_path_dir
):
os
.
mkdir
(
log_path_dir
)
log_dir
=
common
.
file_abspath
()
+
'/logs/'
+
today
+
'/'
# log_dir = os.path.abspath(__file__).split('src')[0] + '/logs/' + today + '/'
if
not
os
.
path
.
exists
(
log_dir
):
...
...
src/pageobject/liveCourseTable/__init__.py
deleted
100644 → 0
View file @
cc22c038
src/pageobject/liveCourseTable/classStatus.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 直播课状态
def
classStatus
(
driver
):
driver
.
implicitly_wait
(
10
)
classStatusElement
=
driver
.
find_element_by_class_name
(
"classStatus"
)
print
(
classStatusElement
)
print
(
classStatusElement
)
print
(
classStatusElement
)
return
classStatusElement
if
__name__
==
'__main__'
:
classStatus
(
driver
)
\ No newline at end of file
src/pageobject/liveCourseTable/enterClass.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 进入直播间
def
enter_class
(
driver
):
driver
.
implicitly_wait
(
5
)
enter_btn
=
driver
.
find_element_by_class_name
(
"ant-btn"
)
print
(
enter_btn
)
driver
.
find_element_by_class_name
(
"ant-btn"
)
.
click
()
driver
.
implicitly_wait
(
3
)
btn
=
driver
.
find_element_by_css_selector
(
"button[class='ant-btn']"
)
print
(
btn
.
size
)
print
(
btn
.
text
)
return
enter_btn
if
__name__
==
'__main__'
:
enter_class
(
driver
)
src/pageobject/liveCourseTable/startClass.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
from
time
import
sleep
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 进入直播间
def
start_class
(
driver
):
sleep
(
3
)
driver
.
find_element_by_class_name
(
"ant-btn"
)
.
click
()
sleep
(
3
)
driver
.
find_element_by_class_name
(
"ant-btn"
)
.
click
()
return
start_class
if
__name__
==
'__main__'
:
start_class
(
driver
)
src/pageobject/liveCourseTable/today.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 课表-今天
def
today
(
driver
):
driver
.
implicitly_wait
(
10
)
todyElement
=
driver
.
find_element_by_class_name
(
"today"
)
print
(
todyElement
)
print
(
todyElement
.
size
)
print
(
todyElement
.
text
)
return
todyElement
if
__name__
==
'__main__'
:
today
(
driver
)
\ No newline at end of file
src/pageobject/liveCourseTable/weekDay.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 日历按钮-日期
def
weekDay
(
driver
):
driver
.
implicitly_wait
(
10
)
weekDayElement
=
driver
.
find_element_by_class_name
(
"weekday"
)
print
(
weekDayElement
)
print
(
weekDayElement
.
size
)
print
(
weekDayElement
.
text
)
return
weekDayElement
if
__name__
==
'__main__'
:
weekDay
(
driver
)
\ No newline at end of file
src/pageobject/liveCourseTable/weekName.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 日历按钮-星期
def
weekName
(
driver
):
driver
.
implicitly_wait
(
20
)
element
=
driver
.
find_element_by_class_name
(
"weekName"
)
print
(
element
)
print
(
element
.
size
)
print
(
element
.
text
)
return
element
if
__name__
==
'__main__'
:
weekName
(
driver
)
src/pageobject/liveRoom/__init__.py
deleted
100644 → 0
View file @
cc22c038
src/pageobject/liveRoom/coursewareTab.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 添加课件
def
coursewareTab
(
driver
):
driver
.
implicitly_wait
(
10
)
coursewareTabElement
=
driver
.
find_element_by_class_name
(
"CoursewareTab"
)
print
(
coursewareTabElement
)
print
(
coursewareTabElement
)
print
(
coursewareTabElement
)
return
coursewareTabElement
if
__name__
==
'__main__'
:
coursewareTab
(
driver
)
\ No newline at end of file
src/pageobject/liveRoom/roomName.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 直播间header-课程名称
def
roomName
(
driver
):
driver
.
implicitly_wait
(
10
)
roomNameElement
=
driver
.
find_element_by_class_name
(
"roomName"
)
print
(
roomNameElement
)
print
(
roomNameElement
)
print
(
roomNameElement
)
return
roomNameElement
if
__name__
==
'__main__'
:
roomName
(
driver
)
\ No newline at end of file
src/pageobject/liveRoom/startPrompt.py
deleted
100644 → 0
View file @
cc22c038
from
commom.appDriver
import
get_app_driver
from
commom.login
import
app_login
driver
=
get_app_driver
(
r'C:\Users\Administrator\AppData\Local\Programs\xmqxy\小麦企学院.exe'
)
app_login
(
driver
)
# 直播时间已到,提示是否开始上课-是/否
def
startPromt
(
driver
):
driver
.
implicitly_wait
(
10
)
startPromtElement
=
driver
.
find_element_by_class_name
(
"ant-btn"
)
print
(
startPromtElement
)
print
(
startPromtElement
)
print
(
startPromtElement
)
return
startPromtElement
if
__name__
==
'__main__'
:
startPromt
(
driver
)
\ No newline at end of file
src/pageobject/mainpage.py
View file @
e1ff8f18
from
src.pageobject.loginpage
import
LoginPage
from
selenium.webdriver.support
import
expected_conditions
as
EC
from
selenium.webdriver.common.by
import
By
...
...
@@ -75,3 +76,10 @@ class MainPage(LoginPage):
def
get_btn_text
(
self
,
coursename
):
self
.
in_live_btn
=
(
By
.
XPATH
,
"""//div[text()="{}"]/..//button[@class="ant-btn"]"""
.
format
(
coursename
))
return
self
.
get_text
(
self
.
in_live_btn
)
def
page_down
(
self
,
coursename
):
while
True
:
self
.
keys_down
()
ele
=
EC
.
presence_of_element_located
((
By
.
XPATH
,
"""//div[text()={}]/..//button[@class="ant-btn ant-btn-primary"]"""
.
format
(
coursename
)))
if
ele
:
break
src/testcase/testLoginPage.py
View file @
e1ff8f18
...
...
@@ -14,7 +14,7 @@ class TestLoginPage(unittest.TestCase):
def
setUp
(
self
)
->
None
:
print
(
11111
)
# 指定
Pc
端的本地路径,在/config/config.ini配置
# 指定
客户
端的本地路径,在/config/config.ini配置
self
.
driver
=
get_app_driver
(
self
.
cloud_class_location
)
def
tearDown
(
self
)
->
None
:
...
...
src/testcase/testMainPage.py
View file @
e1ff8f18
...
...
@@ -3,10 +3,6 @@ from src.pageobject.mainpage import MainPage
from
src.framework.common
import
create_a_live
from
src.framework.appDriver
import
get_app_driver
from
selenium.webdriver.support.ui
import
WebDriverWait
from
selenium.webdriver.support
import
expected_conditions
as
EC
from
selenium.webdriver.common.by
import
By
from
config
import
readConfig
import
unittest
...
...
@@ -18,7 +14,7 @@ class TestMainPage(unittest.TestCase):
live_course_name
=
create_a_live
(
start_time
=
25
,
start_time2
=
1
)
def
setUp
(
self
)
->
None
:
# 指定
Pc
端的本地路径,在/config/config.ini配置
# 指定
客户
端的本地路径,在/config/config.ini配置
self
.
driver
=
get_app_driver
(
self
.
cloud_class_location
)
def
tearDown
(
self
)
->
None
:
...
...
@@ -32,17 +28,12 @@ class TestMainPage(unittest.TestCase):
main_page
.
sleep
(
15
)
main_page
.
login
()
main_page
.
sleep
(
2
)
while
True
:
main_page
.
keys_down
()
ele
=
EC
.
presence_of_element_located
((
By
.
XPATH
,
"""//div[text()={}]/..//button[@class="ant-btn ant-btn-primary"]"""
.
format
(
self
.
live_course_name
[
0
])))
if
ele
:
break
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
)
driver
=
self
.
driver
var
=
driver
.
window_handles
driver
.
switch_to_window
(
var
[
-
1
])
main_page
.
change_window
(
main_page
.
camera_btn
)
main_page
.
sleep
(
2
)
self
.
assertTrue
(
main_page
.
ifElementExist
(
main_page
.
camera_btn
))
main_page
.
sleep
(
3
)
...
...
@@ -55,11 +46,7 @@ class TestMainPage(unittest.TestCase):
main_page
.
sleep
(
15
)
main_page
.
login
()
main_page
.
sleep
(
60
)
while
True
:
main_page
.
keys_down
()
ele
=
EC
.
presence_of_element_located
((
By
.
XPATH
,
"""//div[text()={}]/..//button[@class="ant-btn ant-btn-primary"]"""
.
format
(
self
.
live_course_name
[
1
])))
if
ele
:
break
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
)
...
...
@@ -88,11 +75,7 @@ class TestMainPage(unittest.TestCase):
main_page
.
sleep
(
15
)
main_page
.
login
()
main_page
.
sleep
(
5
)
while
True
:
main_page
.
keys_down
()
ele
=
EC
.
presence_of_element_located
((
By
.
XPATH
,
"""//div[text()={}]/..//button[@class="ant-btn"]"""
.
format
(
self
.
live_course_name
[
1
])))
if
ele
:
break
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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment