Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
04352cbf
提交
04352cbf
authored
1月 02, 2025
作者:
彭甘宇
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加测试数据和测试报告截图输出。
上级
b789fc6f
隐藏空白字符变更
内嵌
并排
正在显示
32 个修改的文件
包含
441 行增加
和
509 行删除
+441
-509
_2024_12_25_15_22____.xml
.idea/shelf/_2024_12_25_15_22____.xml
+0
-4
_2024_12_25_15_28____.xml
.idea/shelf/_2024_12_25_15_28____.xml
+0
-4
shelved.patch
...helf/在进行更新之前于_2024_12_25_15_22_取消提交了更改_[更改]/shelved.patch
+0
-66
shelved.patch
...helf/在进行更新之前于_2024_12_25_15_28_取消提交了更改_[更改]/shelved.patch
+0
-27
encodings.xml
运维集控/项目测试/运维标准版/.idea/encodings.xml
+0
-7
Project_Default.xml
运维集控/项目测试/运维标准版/.idea/inspectionProfiles/Project_Default.xml
+0
-20
profiles_settings.xml
...项目测试/运维标准版/.idea/inspectionProfiles/profiles_settings.xml
+0
-7
misc.xml
运维集控/项目测试/运维标准版/.idea/misc.xml
+0
-8
modules.xml
运维集控/项目测试/运维标准版/.idea/modules.xml
+0
-9
管理员登录.py
运维集控/项目测试/运维标准版/cases/01登录模块/管理员登录.py
+35
-28
01新增用户.py
运维集控/项目测试/运维标准版/cases/02用户管理/01新增用户.py
+86
-86
02查询用户.py
运维集控/项目测试/运维标准版/cases/02用户管理/02查询用户.py
+8
-11
03编辑用户.py
运维集控/项目测试/运维标准版/cases/02用户管理/03编辑用户.py
+20
-26
04删除用户.py
运维集控/项目测试/运维标准版/cases/02用户管理/04删除用户.py
+7
-20
__st__.py
运维集控/项目测试/运维标准版/cases/02用户管理/__st__.py
+8
-5
01新增区域分组.py
运维集控/项目测试/运维标准版/cases/03区域分组/01新增区域分组.py
+46
-17
02编辑区域分组.py
运维集控/项目测试/运维标准版/cases/03区域分组/02编辑区域分组.py
+22
-23
03删除区域分组.py
运维集控/项目测试/运维标准版/cases/03区域分组/03删除区域分组.py
+12
-10
01新增区域类型.py
运维集控/项目测试/运维标准版/cases/04区域类型/01新增区域类型.py
+27
-13
02编辑区域类型.py
运维集控/项目测试/运维标准版/cases/04区域类型/02编辑区域类型.py
+10
-6
03删除区域类型.py
运维集控/项目测试/运维标准版/cases/04区域类型/03删除区域类型.py
+10
-6
01新增区域功能.py
运维集控/项目测试/运维标准版/cases/05区域功能/01新增区域功能.py
+37
-19
02编辑区域功能.py
运维集控/项目测试/运维标准版/cases/05区域功能/02编辑区域功能.py
+24
-13
03删除区域功能.py
运维集控/项目测试/运维标准版/cases/05区域功能/03删除区域功能.py
+17
-8
__st__.py
运维集控/项目测试/运维标准版/cases/05区域功能/__st__.py
+4
-4
base.py
运维集控/项目测试/运维标准版/lib/base.py
+1
-3
登录信息.csv
运维集控/项目测试/运维标准版/testdata/01登录模块/登录信息.csv
+8
-7
新增用户.csv
运维集控/项目测试/运维标准版/testdata/02用户管理/新增用户.csv
+11
-11
新增区域分组.csv
运维集控/项目测试/运维标准版/testdata/03区域分组/新增区域分组.csv
+14
-14
新增区域类型.csv
运维集控/项目测试/运维标准版/testdata/04区域类型/新增区域类型.csv
+9
-7
新增区域功能.csv
运维集控/项目测试/运维标准版/testdata/05区域功能/新增区域功能.csv
+9
-7
新增区域.csv
运维集控/项目测试/运维标准版/testdata/06区域管理/新增区域.csv
+16
-13
没有找到文件。
.idea/shelf/_2024_12_25_15_22____.xml
deleted
100644 → 0
浏览文件 @
b789fc6f
<changelist
name=
"在进行更新之前于_2024_12_25_15_22_取消提交了更改_[更改]"
date=
"1735111481056"
recycled=
"true"
deleted=
"true"
>
<option
name=
"PATH"
value=
"$PROJECT_DIR$/.idea/shelf/在进行更新之前于_2024_12_25_15_22_取消提交了更改_[更改]/shelved.patch"
/>
<option
name=
"DESCRIPTION"
value=
"在进行更新之前于 2024/12/25 15:22 取消提交了更改 [更改]"
/>
</changelist>
\ No newline at end of file
.idea/shelf/_2024_12_25_15_28____.xml
deleted
100644 → 0
浏览文件 @
b789fc6f
<changelist
name=
"在进行更新之前于_2024_12_25_15_28_取消提交了更改_[更改]"
date=
"1735111722258"
recycled=
"true"
deleted=
"true"
>
<option
name=
"PATH"
value=
"$PROJECT_DIR$/.idea/shelf/在进行更新之前于_2024_12_25_15_28_取消提交了更改_[更改]/shelved.patch"
/>
<option
name=
"DESCRIPTION"
value=
"在进行更新之前于 2024/12/25 15:28 取消提交了更改 [更改]"
/>
</changelist>
\ No newline at end of file
.idea/shelf/在进行更新之前于_2024_12_25_15_22_取消提交了更改_[更改]/shelved.patch
deleted
100644 → 0
浏览文件 @
b789fc6f
Index: .idea/workspace.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+><?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<project version=\"4\">\r\n <component name=\"AutoImportSettings\">\r\n <option name=\"autoReloadType\" value=\"SELECTIVE\" />\r\n </component>\r\n <component name=\"ChangeListManager\">\r\n <list default=\"true\" id=\"7af2ddda-4337-4bd9-adfd-87ab868c08f9\" name=\"更改\" comment=\"重新提交运维相关脚本代码\">\r\n <change beforePath=\"$PROJECT_DIR$/.idea/misc.xml\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/.idea/misc.xml\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/运维集控/项目测试/运维标准版/cases/05区域功能/01新增区域功能.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/运维集控/项目测试/运维标准版/cases/05区域功能/01新增区域功能.py\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/.idea/workspace.xml\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/.idea/workspace.xml\" afterDir=\"false\" />\r\n </list>\r\n <option name=\"SHOW_DIALOG\" value=\"false\" />\r\n <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\r\n <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\r\n <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\r\n </component>\r\n <component name=\"Git.Settings\">\r\n <option name=\"RECENT_GIT_ROOT_PATH\" value=\"$PROJECT_DIR$\" />\r\n <option name=\"UPDATE_TYPE\" value=\"REBASE\" />\r\n </component>\r\n <component name=\"ProjectColorInfo\">{\r\n "associatedIndex": 6\r\n}</component>\r\n <component name=\"ProjectId\" id=\"2qefK5jFULEB70ZGZl73iacPsCN\" />\r\n <component name=\"ProjectViewState\">\r\n <option name=\"hideEmptyMiddlePackages\" value=\"true\" />\r\n <option name=\"showLibraryContents\" value=\"true\" />\r\n </component>\r\n <component name=\"PropertiesComponent\">{\r\n "keyToString": {\r\n "RunOnceActivity.ShowReadmeOnStart": "true",\r\n "git-widget-placeholder": "develop",\r\n "last_opened_file_path": "C:/Users/EDY/Desktop/git/ubains-module-test/ubains-module-test"\r\n }\r\n}</component>\r\n <component name=\"SharedIndexes\">\r\n <attachedChunks>\r\n <set>\r\n <option value=\"bundled-python-sdk-6a3326d57233-c546a90a8094-com.jetbrains.pycharm.community.sharedIndexes.bundled-PC-242.24807.21\" />\r\n </set>\r\n </attachedChunks>\r\n </component>\r\n <component name=\"SpellCheckerSettings\" RuntimeDictionaries=\"0\" Folders=\"0\" CustomDictionaries=\"0\" DefaultDictionary=\"应用程序级\" UseSingleDictionary=\"true\" transferred=\"true\" />\r\n <component name=\"TaskManager\">\r\n <task active=\"true\" id=\"Default\" summary=\"默认任务\">\r\n <changelist id=\"7af2ddda-4337-4bd9-adfd-87ab868c08f9\" name=\"更改\" comment=\"\" />\r\n <created>1735027895112</created>\r\n <option name=\"number\" value=\"Default\" />\r\n <option name=\"presentableId\" value=\"Default\" />\r\n <updated>1735027895112</updated>\r\n </task>\r\n <task id=\"LOCAL-00001\" summary=\"重新提交运维相关脚本代码\">\r\n <option name=\"closed\" value=\"true\" />\r\n <created>1735028100490</created>\r\n <option name=\"number\" value=\"00001\" />\r\n <option name=\"presentableId\" value=\"LOCAL-00001\" />\r\n <option name=\"project\" value=\"LOCAL\" />\r\n <updated>1735028100490</updated>\r\n </task>\r\n <option name=\"localTasksCounter\" value=\"2\" />\r\n <servers />\r\n </component>\r\n <component name=\"Vcs.Log.Tabs.Properties\">\r\n <option name=\"TAB_STATES\">\r\n <map>\r\n <entry key=\"MAIN\">\r\n <value>\r\n <State>\r\n <option name=\"FILTERS\">\r\n <map>\r\n <entry key=\"branch\">\r\n <value>\r\n <list>\r\n <option value=\"develop\" />\r\n </list>\r\n </value>\r\n </entry>\r\n </map>\r\n </option>\r\n </State>\r\n </value>\r\n </entry>\r\n </map>\r\n </option>\r\n </component>\r\n <component name=\"VcsManagerConfiguration\">\r\n <MESSAGE value=\"重新提交运维相关脚本代码\" />\r\n <option name=\"LAST_COMMIT_MESSAGE\" value=\"重新提交运维相关脚本代码\" />\r\n </component>\r\n</project>
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
--- a/.idea/workspace.xml (revision b57d56b8584255c28e848a0ed183e36a51541a57)
+++ b/.idea/workspace.xml (date 1735111282242)
@@ -4,11 +4,7 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
- <list default="true" id="7af2ddda-4337-4bd9-adfd-87ab868c08f9" name="更改" comment="重新提交运维相关脚本代码">
- <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/运维集控/项目测试/运维标准版/cases/05区域功能/01新增区域功能.py" beforeDir="false" afterPath="$PROJECT_DIR$/运维集控/项目测试/运维标准版/cases/05区域功能/01新增区域功能.py" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/.idea/workspace.xml" afterDir="false" />
- </list>
+ <list default="true" id="7af2ddda-4337-4bd9-adfd-87ab868c08f9" name="更改" comment="修正提交" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -16,12 +12,14 @@
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
- <option name="UPDATE_TYPE" value="REBASE" />
</component>
<component name="ProjectColorInfo">{
"associatedIndex": 6
}</component>
<component name="ProjectId" id="2qefK5jFULEB70ZGZl73iacPsCN" />
+ <component name="ProjectLevelVcsManager">
+ <OptionsSetting value="false" id="Update" />
+ </component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
@@ -57,7 +55,15 @@
<option name="project" value="LOCAL" />
<updated>1735028100490</updated>
</task>
- <option name="localTasksCounter" value="2" />
+ <task id="LOCAL-00002" summary="修正提交">
+ <option name="closed" value="true" />
+ <created>1735111241853</created>
+ <option name="number" value="00002" />
+ <option name="presentableId" value="LOCAL-00002" />
+ <option name="project" value="LOCAL" />
+ <updated>1735111241853</updated>
+ </task>
+ <option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@@ -85,6 +91,7 @@
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="重新提交运维相关脚本代码" />
- <option name="LAST_COMMIT_MESSAGE" value="重新提交运维相关脚本代码" />
+ <MESSAGE value="修正提交" />
+ <option name="LAST_COMMIT_MESSAGE" value="修正提交" />
</component>
</project>
\ No newline at end of file
.idea/shelf/在进行更新之前于_2024_12_25_15_28_取消提交了更改_[更改]/shelved.patch
deleted
100644 → 0
浏览文件 @
b789fc6f
Index: .idea/workspace.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+><?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<project version=\"4\">\r\n <component name=\"AutoImportSettings\">\r\n <option name=\"autoReloadType\" value=\"SELECTIVE\" />\r\n </component>\r\n <component name=\"ChangeListManager\">\r\n <list default=\"true\" id=\"923e4366-b26b-44a4-9a8e-7655702750f8\" name=\"更改\" comment=\"\">\r\n <change beforePath=\"$PROJECT_DIR$/.idea/workspace.xml\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/.idea/workspace.xml\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/README.md\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/README.md\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/cases/会议历史记录/01历史记录筛选.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/cases/会议历史记录/01历史记录筛选.py\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/cases/会议历史记录/02历史记录再次预定.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/cases/会议历史记录/02历史记录再次预定.py\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/cases/会议审批/01审批会议创建.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/cases/会议审批/01审批会议创建.py\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/cases/会议模板/01会议模板查询.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/cases/会议模板/01会议模板查询.py\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/cases/会议模板/02会议模板再次预定.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/cases/会议模板/02会议模板再次预定.py\" afterDir=\"false\" />\r\n </list>\r\n <option name=\"SHOW_DIALOG\" value=\"false\" />\r\n <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\r\n <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\r\n <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\r\n </component>\r\n <component name=\"FileTemplateManagerImpl\">\r\n <option name=\"RECENT_TEMPLATES\">\r\n <list>\r\n <option value=\"Python Script\" />\r\n </list>\r\n </option>\r\n </component>\r\n <component name=\"Git.Settings\">\r\n <option name=\"RECENT_GIT_ROOT_PATH\" value=\"$PROJECT_DIR$\" />\r\n </component>\r\n <component name=\"ProjectColorInfo\"><![CDATA[{\r\n \"customColor\": \"\",\r\n \"associatedIndex\": 0\r\n}]]></component>\r\n <component name=\"ProjectId\" id=\"2qel6dw2JSIg22RV44sfGJ83Ng2\" />\r\n <component name=\"PropertiesComponent\"><![CDATA[{\r\n \"keyToString\": {\r\n \"Python.安卓信息-消息监听.executor\": \"Run\",\r\n \"git-widget-placeholder\": \"develop\",\r\n \"last_opened_file_path\": \"D:/GithubData/自动化/ubains-module-test/预定系统/cases/会议审批\",\r\n \"node.js.detected.package.eslint\": \"true\",\r\n \"node.js.detected.package.tslint\": \"true\",\r\n \"node.js.selected.package.eslint\": \"(autodetect)\",\r\n \"node.js.selected.package.tslint\": \"(autodetect)\"\r\n }\r\n}]]></component>\r\n <component name=\"RecentsManager\">\r\n <key name=\"CopyFile.RECENT_KEYS\">\r\n <recent name=\"D:\\GithubData\\自动化\\ubains-module-test\\预定系统\\cases\\会议审批\" />\r\n <recent name=\"D:\\GithubData\\自动化\\ubains-module-test\\预定系统\\测试数据\\会议模板\" />\r\n <recent name=\"D:\\GithubData\\自动化\\ubains-module-test\\预定系统\\测试数据\\会议历史记录\" />\r\n </key>\r\n </component>\r\n <component name=\"RunManager\">\r\n <configuration name=\"安卓信息-消息监听\" type=\"PythonConfigurationType\" factoryName=\"Python\" temporary=\"true\" nameIsGenerated=\"true\">\r\n <module name=\"ubains-module-test\" />\r\n <option name=\"ENV_FILES\" value=\"\" />\r\n <option name=\"INTERPRETER_OPTIONS\" value=\"\" />\r\n <option name=\"PARENT_ENVS\" value=\"true\" />\r\n <envs>\r\n <env name=\"PYTHONUNBUFFERED\" value=\"1\" />\r\n </envs>\r\n <option name=\"SDK_HOME\" value=\"\" />\r\n <option name=\"WORKING_DIRECTORY\" value=\"$PROJECT_DIR$/预定系统/cases/设备管理\" />\r\n <option name=\"IS_MODULE_SDK\" value=\"true\" />\r\n <option name=\"ADD_CONTENT_ROOTS\" value=\"true\" />\r\n <option name=\"ADD_SOURCE_ROOTS\" value=\"true\" />\r\n <EXTENSION ID=\"PythonCoverageRunConfigurationExtension\" runner=\"coverage.py\" />\r\n <option name=\"SCRIPT_NAME\" value=\"$PROJECT_DIR$/预定系统/cases/设备管理/安卓信息-消息监听.py\" />\r\n <option name=\"PARAMETERS\" value=\"\" />\r\n <option name=\"SHOW_COMMAND_LINE\" value=\"false\" />\r\n <option name=\"EMULATE_TERMINAL\" value=\"false\" />\r\n <option name=\"MODULE_MODE\" value=\"false\" />\r\n <option name=\"REDIRECT_INPUT\" value=\"false\" />\r\n <option name=\"INPUT_FILE\" value=\"\" />\r\n <method v=\"2\" />\r\n </configuration>\r\n <recent_temporary>\r\n <list>\r\n <item itemvalue=\"Python.安卓信息-消息监听\" />\r\n </list>\r\n </recent_temporary>\r\n </component>\r\n <component name=\"TaskManager\">\r\n <servers />\r\n </component>\r\n <component name=\"com.intellij.coverage.CoverageDataManagerImpl\">\r\n <SUITE FILE_PATH=\"coverage/ubains_module_test$_.coverage\" NAME=\"安卓信息-消息监听 覆盖结果\" MODIFIED=\"1735034725544\" SOURCE_PROVIDER=\"com.intellij.coverage.DefaultCoverageFileProvider\" RUNNER=\"coverage.py\" COVERAGE_BY_TEST_ENABLED=\"false\" COVERAGE_TRACING_ENABLED=\"false\" WORKING_DIRECTORY=\"$PROJECT_DIR$/预定系统/cases/设备管理\" />\r\n </component>\r\n</project>
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
--- a/.idea/workspace.xml (revision a74bfa17dd939dc6790e420e64b1e73aba2262d4)
+++ b/.idea/workspace.xml (date 1735111706578)
@@ -4,15 +4,7 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
- <list default="true" id="923e4366-b26b-44a4-9a8e-7655702750f8" name="更改" comment="">
- <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/README.md" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/cases/会议历史记录/01历史记录筛选.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/cases/会议历史记录/01历史记录筛选.py" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/cases/会议历史记录/02历史记录再次预定.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/cases/会议历史记录/02历史记录再次预定.py" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/cases/会议审批/01审批会议创建.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/cases/会议审批/01审批会议创建.py" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/cases/会议模板/01会议模板查询.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/cases/会议模板/01会议模板查询.py" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/cases/会议模板/02会议模板再次预定.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/cases/会议模板/02会议模板再次预定.py" afterDir="false" />
- </list>
+ <list default="true" id="923e4366-b26b-44a4-9a8e-7655702750f8" name="更改" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
运维集控/项目测试/运维标准版/.idea/encodings.xml
浏览文件 @
04352cbf
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"Encoding"
>
<file
url=
"file://$PROJECT_DIR$/测试数据/登录用户数据.csv"
charset=
"GBK"
/>
</component>
</project>
\ No newline at end of file
运维集控/项目测试/运维标准版/.idea/inspectionProfiles/Project_Default.xml
浏览文件 @
04352cbf
<component
name=
"InspectionProjectProfileManager"
>
<profile
version=
"1.0"
>
<option
name=
"myName"
value=
"Project Default"
/>
<inspection_tool
class=
"PyPep8Inspection"
enabled=
"true"
level=
"WEAK WARNING"
enabled_by_default=
"true"
>
<option
name=
"ignoredErrors"
>
<list>
<option
value=
"W292"
/>
</list>
</option>
</inspection_tool>
<inspection_tool
class=
"PyPep8NamingInspection"
enabled=
"true"
level=
"WEAK WARNING"
enabled_by_default=
"true"
>
<option
name=
"ignoredErrors"
>
<list>
<option
value=
"N812"
/>
</list>
</option>
</inspection_tool>
</profile>
</component>
\ No newline at end of file
运维集控/项目测试/运维标准版/.idea/inspectionProfiles/profiles_settings.xml
浏览文件 @
04352cbf
<component
name=
"InspectionProjectProfileManager"
>
<settings>
<option
name=
"USE_PROJECT_PROFILE"
value=
"false"
/>
<version
value=
"1.0"
/>
</settings>
</component>
\ No newline at end of file
运维集控/项目测试/运维标准版/.idea/misc.xml
浏览文件 @
04352cbf
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"Black"
>
<option
name=
"sdkName"
value=
"Python 3.12"
/>
</component>
<component
name=
"ProjectRootManager"
version=
"2"
project-jdk-name=
"Python 3.10"
project-jdk-type=
"Python SDK"
/>
</project>
\ No newline at end of file
运维集控/项目测试/运维标准版/.idea/modules.xml
浏览文件 @
04352cbf
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"ProjectModuleManager"
>
<modules>
<module
fileurl=
"file://$PROJECT_DIR$/.idea/运维标准版.iml"
filepath=
"$PROJECT_DIR$/.idea/运维标准版.iml"
/>
</modules>
</component>
</project>
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/01登录模块/管理员登录.py
浏览文件 @
04352cbf
import
sys
import
os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
#构建当前项目路径
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
# 构建 CSV 文件的绝对路径
csv_path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'testdata'
,
'01登录模块'
,
'登录信息.csv'
))
class
User_Login
:
tags
=
[
'用户登录'
,
'管理员登录'
]
#构建框架的数据集格式
ddt_cases
=
read_csv_data
(
csv_path
)
class
user_login_001
:
name
=
'login_test_01'
def
teststeps
(
self
):
# 获取 WebDriver 实例
wd
=
GSTORE
[
'wd'
]
# 读取 CSV 文件
csv_path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'testdata'
,
'01登录模块'
,
'登录信息.csv'
))
with
open
(
csv_path
,
newline
=
''
,
encoding
=
'utf-8'
)
as
csvfile
:
reader
=
csv
.
DictReader
(
csvfile
)
for
row
in
reader
:
username
=
row
[
'username'
]
password
=
row
[
'password'
]
captcha
=
row
[
'captcha'
]
STEP
(
1
,
f
'用户 {username} 登录'
)
user_login
(
username
,
password
,
captcha
)
STEP
(
2
,
'验证是否登录成功'
)
try
:
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现弹窗'
,
get_menu1
==
"操作成功!"
)
except
Exception
as
e
:
print
(
f
"登录失败,原因是: {get_menu1}"
)
\ No newline at end of file
#从self.para中解构出数据
name
=
self
.
name
username
,
password
,
captcha
,
info
=
self
.
para
# 记录当前测试步骤:用户登录
STEP
(
1
,
f
'{username} 用户登录测试'
)
# 使用从 CSV 读取的数据进行登录
user_login
(
username
,
password
,
captcha
)
#记录当前测试步骤:输出提示内容
STEP
(
2
,
f
'预期提示内容为:{info}'
)
# 记录当前测试步骤:验证是否登录成功
STEP
(
3
,
'获取登录提示内容'
)
# 等待系统首页的特定元素(如图片)可见
get_menu
=
WebDriverWait
(
wd
,
5
)
.
until
(
EC
.
visibility_of_element_located
((
By
.
XPATH
,
"//p[@class='el-message__content']"
))
)
get_text
=
get_menu
.
text
# 检查点:验证是否跟预定结果一致
CHECK_POINT
(
'校验提示内容是否跟预定结果一致'
,
get_text
==
info
)
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
运维集控/项目测试/运维标准版/cases/02用户管理/01新增用户.py
浏览文件 @
04352cbf
import
sys
import
os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
#构建当前项目路径
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
# 构建 CSV 文件的绝对路径
csv_path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'testdata'
,
'02用户管理'
,
'新增用户.csv'
))
class
UserAdd
:
tags
=
[
'新增用户'
]
#构建框架的数据集格式
ddt_cases
=
read_csv_data
(
csv_path
)
class
UserAdd001
:
name
=
'user_add_001'
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
#从self.para中解构出数据
name
=
self
.
name
account
,
user_name
,
new_passwd
,
comfire_passwd
,
authority
,
user_number
,
phone
,
email
,
remark
,
info
=
self
.
para
STEP
(
1
,
'点击新增按钮'
)
user_add
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='company-edmit-right']//span[contains(text(),'新增')]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"//div[@class='company-edmit-right']//span[contains(text(),'新增')]"
))
)
user_add
.
click
()
sleep
(
2
)
STEP
(
2
,
'填写登录名
'
)
STEP
(
2
,
f
'填写登录名: {account}
'
)
account_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='登录名以字母开头,长度在5-18之间,只能包含字母、数字和下划线、@']"
))
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='登录名以字母开头,长度在5-18之间,只能包含字母、数字和下划线、@']"
))
)
account_input
.
clear
()
account_input
.
send_keys
(
"admin@test1"
)
account_input
.
send_keys
(
account
)
STEP
(
3
,
'填写用户名称'
)
account_name_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[@class='el-input el-input--suffix']//input[@placeholder='请输入用户名称']"
))
STEP
(
3
,
f
'填写用户名称: {user_name}'
)
user_name_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//div[@class='el-input el-input--suffix']//input[@placeholder='请输入用户名称']"
))
)
account
_name_input
.
clear
()
account_name_input
.
send_keys
(
"admin@test1"
)
user
_name_input
.
clear
()
user_name_input
.
send_keys
(
user_name
)
STEP
(
4
,
'填写新密码
'
)
passwd_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
STEP
(
4
,
f
'填写新的密码: {new_passwd}
'
)
new_
passwd_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='必须包含字母(不区分大小写)、数字和特殊字符,至少8个字符']"
))
)
passwd_input
.
clear
()
passwd_input
.
send_keys
(
"ub@123456"
)
new_
passwd_input
.
clear
()
new_passwd_input
.
send_keys
(
new_passwd
)
STEP
(
5
,
'填写确认密码
'
)
se
passwd_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
STEP
(
5
,
f
'填写确认密码: {comfire_passwd}
'
)
comfire_
passwd_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='请确认密码']"
))
)
sepasswd_input
.
clear
()
sepasswd_input
.
send_keys
(
"ub@123456"
)
comfire_passwd_input
.
clear
()
comfire_passwd_input
.
send_keys
(
comfire_passwd
)
STEP
(
6
,
f
'选择权限: {authority}'
)
authority_select
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//span[@class='el-radio__label'][contains(text(),'普通用户')]"
))
)
authority_select
.
click
()
STEP
(
7
,
f
'填写用户工号: {user_number}'
)
user_number_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='请输入工号']"
))
)
user_number_input
.
clear
()
user_number_input
.
send_keys
(
user_number
)
STEP
(
6
,
'点击确认'
)
STEP
(
8
,
f
'填写手机号: {phone}'
)
phone_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='请输入手机号码']"
))
)
phone_input
.
clear
()
phone_input
.
send_keys
(
phone
)
STEP
(
9
,
f
'填写邮箱: {email}'
)
email_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='请输入邮箱']"
))
)
email_input
.
clear
()
email_input
.
send_keys
(
email
)
STEP
(
10
,
f
'填写备注: {remark}'
)
remark_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='备注']"
))
)
remark_input
.
clear
()
remark_input
.
send_keys
(
remark
)
STEP
(
11
,
'点击“确认”按钮'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@aria-label='新增']//span[contains(text(),'确 定')]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"//div[@aria-label='新增']//span[contains(text(),'确 定')]"
))
)
commit
.
click
()
STEP
(
7
,
'验证是否新增成功'
)
STEP
(
12
,
f
'预期提示内容为:{info}'
)
STEP
(
13
,
'获取页面实际提示内容'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
visibility_of_element_located
((
By
.
XPATH
,
"//p[@class='el-message__content']"
))
EC
.
visibility_of_element_located
(
(
By
.
XPATH
,
"//p[@class='el-message__content']"
))
)
get_menu1
=
get_menu
.
text
INFO
(
get_menu1
)
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
# class UserAdd002:
# name = 'user_add_002'
# def teststeps(self):
# wd = GSTORE['wd']
#
# STEP(1, '点击新增按钮')
# user_add = WebDriverWait(wd, 10).until(
# EC.element_to_be_clickable((By.XPATH, "//div[@class='company-edmit-right']//span[contains(text(),'新增')]"))
# )
# user_add.click()
# sleep(2)
#
# STEP(2, '填写登录名')
# account_input = WebDriverWait(wd, 10).until(
# EC.presence_of_element_located((By.XPATH, "//input[@placeholder='登录名以字母开头,长度在5-18之间,只能包含字母、数字和下划线、@']"))
# )
# account_input.clear()
# account_input.send_keys("admin@test1")
#
# STEP(3, '填写用户名称')
# account_name_input = WebDriverWait(wd, 10).until(
# EC.presence_of_element_located((By.XPATH, "//div[@class='el-input el-input--suffix']//input[@placeholder='请输入用户名称']"))
# )
# account_name_input.clear()
# account_name_input.send_keys("测试用户2")
#
# STEP(4, '填写新密码')
# passwd_input = WebDriverWait(wd, 10).until(
# EC.presence_of_element_located(
# (By.XPATH, "//input[@placeholder='必须包含字母(不区分大小写)、数字和特殊字符,至少8个字符']"))
# )
# passwd_input.clear()
# passwd_input.send_keys("ub@123456")
#
# STEP(5, '填写确认密码')
# sepasswd_input = WebDriverWait(wd, 10).until(
# EC.presence_of_element_located(
# (By.XPATH, "//input[@placeholder='请确认密码']"))
# )
# sepasswd_input.clear()
# sepasswd_input.send_keys("ub@123456")
#
# STEP(6, '点击确认')
# commit = WebDriverWait(wd, 10).until(
# EC.element_to_be_clickable((By.XPATH, "//div[@aria-label='新增']//span[contains(text(),'确 定')]"))
# )
# commit.click()
#
# STEP(7, '验证是否正常提示')
# get_menu = WebDriverWait(wd, 10).until(
# EC.presence_of_element_located((By.CSS_SELECTOR, '.el-message__content'))
# )
# get_menu1 = get_menu.text
# # CHECK_POINT('检查是否出现错误提示弹窗', get_menu1 == "登录名已存在,请重新输入")
# CHECK_POINT('检查是否出现成功提示弹窗', get_menu1 == "操作成功!")
# sleep(2)
CHECK_POINT
(
'校验实际提示内容和预期提示内容是否一致'
,
get_menu1
==
info
)
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/02用户管理/02查询用户.py
浏览文件 @
04352cbf
...
...
@@ -4,8 +4,8 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '.
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
Userquery
001
:
name
=
'user_query
_001
'
class
Userquery
:
name
=
'user_query'
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
...
...
@@ -14,23 +14,21 @@ class Userquery001:
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//input[@placeholder='请输入用户名称']"
))
)
user_query
.
click
()
sleep
(
2
)
STEP
(
2
,
'填写登录名'
)
account_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='请输入用户名称']"
))
)
account_input
.
clear
()
account_input
.
send_keys
(
"
admin@test
1"
)
account_input
.
send_keys
(
"
test_user
1"
)
STEP
(
3
,
'校验是否成功检索用户'
)
get_user
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[normalize-space()='
admin@test
1']"
))
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[normalize-space()='
test_user
1']"
))
)
get_username
=
get_user
.
text
CHECK_POINT
(
'校验是否成功检索用户'
,
get_username
==
"admin@test1"
)
sleep
(
2
)
CHECK_POINT
(
'校验是否成功检索用户'
,
get_username
==
"test_user1"
)
# 调用钉钉输出测试报告
# get_reportfile_send_dingding("123213_测试报告", "http://192.168.1.251")
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
wd
.
refresh
()
运维集控/项目测试/运维标准版/cases/02用户管理/03编辑用户.py
浏览文件 @
04352cbf
...
...
@@ -13,40 +13,31 @@ class UserModify001:
user_query
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//input[@placeholder='请输入用户名称']"
))
)
user_query
.
click
()
sleep
(
2
)
STEP
(
2
,
'填写登录名'
)
account_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='请输入用户名称']"
))
)
account_input
.
clear
()
account_input
.
send_keys
(
"admin@test1"
)
user_query
.
clear
()
user_query
.
send_keys
(
"test_user1"
)
STEP
(
3
,
'勾选用户'
)
STEP
(
2
,
'勾选用户'
)
select_click
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//t
body//tr//td//div//label//span//span
"
))
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//t
h[contains(@class,'is-leaf el-table__cell')]//span[contains(@class,'el-checkbox__inner')]
"
))
)
select_click
.
click
()
sleep
(
2
)
STEP
(
4
,
'点击编辑按钮'
)
STEP
(
3
,
'点击编辑按钮'
)
user_update
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//
div[contains(@class,'company-edmit-right')]//
span[contains(text(),'编辑')]"
))
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//span[contains(text(),'编辑')]"
))
)
user_update
.
click
()
sleep
(
2
)
STEP
(
5
,
'填写
用户名称'
)
STEP
(
4
,
'修改
用户名称'
)
account_name_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[
@class='el-input el-input--suffix']//input[@placeholder='请输入用户名称'
]"
))
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[
contains(@class,'dialog-input')]//input[contains(@placeholder,'请输入用户名称')
]"
))
)
account_name_input
.
clear
()
account_name_input
.
send_keys
(
"
admin@
update"
)
account_name_input
.
send_keys
(
"
test_
update"
)
STEP
(
6
,
'勾选修改密码按钮'
)
STEP
(
5
,
'勾选修改密码按钮'
)
user_passwd_click
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//
div[contains(@class,'dialog-input')]//span[contains(@class,'el-checkbox__inner')
]"
))
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//
span[@class='el-checkbox__label'
]"
))
)
user_passwd_click
.
click
()
sleep
(
2
)
...
...
@@ -54,7 +45,7 @@ class UserModify001:
STEP
(
6
,
'填写当前用户密码'
)
current_passwd
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[
contains(@placeholder,'请输当前登录用户的密码')
]"
))
(
By
.
XPATH
,
"//input[
@placeholder='请输当前登录用户的密码'
]"
))
)
current_passwd
.
clear
()
current_passwd
.
send_keys
(
"ub@123456"
)
...
...
@@ -62,7 +53,7 @@ class UserModify001:
STEP
(
7
,
'填写新密码'
)
newpasswd
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[
contains(@placeholder,'必须包含字母(不区分大小写)、数字和特殊字符,至少8个字符')
]"
))
(
By
.
XPATH
,
"//input[
@placeholder='必须包含字母(不区分大小写)、数字和特殊字符,至少8个字符'
]"
))
)
newpasswd
.
clear
()
newpasswd
.
send_keys
(
"ub@12345678"
)
...
...
@@ -109,14 +100,17 @@ class UserModify001:
STEP
(
12
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[
contains(@aria-label,'编辑')
]//span[contains(text(),'确 定')]"
))
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[
@aria-label='编辑'
]//span[contains(text(),'确 定')]"
))
)
commit
.
click
()
STEP
(
13
,
'验证是否编辑成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
visibility_of_element_located
((
By
.
XPATH
,
"//p[
@class='el-message__content'
]"
))
EC
.
visibility_of_element_located
((
By
.
XPATH
,
"//p[
contains(@class,'el-message__content')
]"
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/02用户管理/04删除用户.py
浏览文件 @
04352cbf
...
...
@@ -12,29 +12,20 @@ class Userdelete001:
user_query
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//input[@placeholder='请输入用户名称']"
))
)
user_query
.
cl
ick
()
sleep
(
2
)
user_query
.
cl
ear
()
user_query
.
send_keys
(
"test_user3"
)
STEP
(
2
,
'填写登录名'
)
account_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='请输入用户名称']"
))
)
account_input
.
clear
()
account_input
.
send_keys
(
"admin@test1"
)
STEP
(
3
,
'勾选用户'
)
STEP
(
2
,
'勾选用户'
)
select_click
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//t
body//tr//td//div//label//span//span
"
))
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//t
h[contains(@class,'is-leaf el-table__cell')]//span[contains(@class,'el-checkbox__inner')]
"
))
)
select_click
.
click
()
sleep
(
2
)
STEP
(
4
,
'点击删除按钮'
)
user_update
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//span[contains(text(),'删除')]"
))
)
user_update
.
click
()
sleep
(
2
)
STEP
(
5
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -42,16 +33,13 @@ class Userdelete001:
)
commit
.
click
()
STEP
(
6
,
'验证是否删除成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
visibility_of_element_located
((
By
.
XPATH
,
"//p[@class='el-message__content']"
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
# 本地启动http微服务
# python - m http.server 80 - -directory log
# 输出报告到钉钉
get_reportfile_send_dingding
(
"用户管理模块_测试报告"
,
"http://192.168.1.251"
)
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
wd
.
refresh
()
运维集控/项目测试/运维标准版/cases/02用户管理/__st__.py
浏览文件 @
04352cbf
...
...
@@ -8,10 +8,13 @@ def suite_setup():
user_login
(
"admin@pgy"
,
"ub@123456"
,
"csba"
)
enter_system
()
enter_manage
()
enter_user_manage
()
enter_user_manage
()
# 修正缩进
# def suite_teardown():
# INFO('进行清除操作')
# wd = GSTORE['wd']
# wd.quit()
def
suite_teardown
():
wd
=
GSTORE
[
'wd'
]
wd
.
quit
()
# 本地启动http微服务
# python - m http.server 80 - -directory log
# 输出报告到钉钉
# get_reportfile_send_dingding("用户管理模块_测试报告", "http://192.168.1.251")
运维集控/项目测试/运维标准版/cases/03区域分组/01新增区域分组.py
浏览文件 @
04352cbf
...
...
@@ -3,39 +3,64 @@ import os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
AreagroupAdd001
:
name
=
'Areagroup_add_001'
#构建当前项目路径
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
# 构建 CSV 文件的绝对路径
csv_path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'testdata'
,
'03区域分组'
,
'新增区域分组.csv'
))
class
AreagroupAdd
:
tag
=
[
'新增区域分组'
]
ddt_cases
=
read_csv_data
(
csv_path
)
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
# 从self.para中解构出数据
name
=
self
.
name
area_group
,
group_name
,
group_address
,
remark
,
info
=
self
.
para
STEP
(
1
,
'点击新增按钮'
)
areagroup_add
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='company-edmit-right']//span[contains(text(),'新增')]"
))
)
areagroup_add
.
click
()
sleep
(
2
)
STEP
(
2
,
'填写分组名称'
)
group_name
=
WebDriverWait
(
wd
,
10
)
.
until
(
STEP
(
2
,
f
'查看并选择区域分组:{area_group}'
)
if
area_group
:
area_group_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"// input[ @ placeholder = '请选择分组']"
))
)
area_group_input
.
clear
()
area_group_input
.
send_keys
(
area_group
)
sleep
(
1
)
#默认选择第一个内容
area_group_select
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[@class='el-cascader__suggestion-panel el-scrollbar']//li[1]//span[1]"
))
)
area_group_select
.
click
()
else
:
print
(
"group_name 为空,不执行选择区域分组的操作"
)
STEP
(
3
,
f
'填写分组名称:{group_name}'
)
group_name_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='长度1-20个字符']"
))
)
group_name
.
clear
()
group_name
.
send_keys
(
"测试区域1"
)
group_name
_input
.
clear
()
group_name
_input
.
send_keys
(
group_name
)
STEP
(
3
,
'填写分组地址
'
)
group_address
=
WebDriverWait
(
wd
,
10
)
.
until
(
STEP
(
4
,
f
'填写分组地址:{group_address}
'
)
group_address
_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='输入地址不能大于50个字符']"
))
)
group_address
.
clear
()
group_address
.
send_keys
(
"顺恒利大厦"
)
group_address
_input
.
clear
()
group_address
_input
.
send_keys
(
group_address
)
STEP
(
4
,
'填写分组备注
'
)
STEP
(
5
,
f
'填写分组备注:{remark}
'
)
group_remark
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='请输入备注']"
))
)
group_remark
.
clear
()
group_remark
.
send_keys
(
"测试分组备注"
)
group_remark
.
send_keys
(
remark
)
STEP
(
6
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -45,8 +70,13 @@ class AreagroupAdd001:
STEP
(
7
,
'验证是否新增成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility_of_element_located
((
By
.
XPATH
,
"//p[@class='el-message__content']"
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
info
)
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
sleep
(
1
)
wd
.
refresh
()
运维集控/项目测试/运维标准版/cases/03区域分组/02编辑区域分组.py
浏览文件 @
04352cbf
...
...
@@ -3,41 +3,36 @@ import os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
AreagroupMod
001
:
name
=
'Areagroup_modify
_001
'
class
AreagroupMod
:
name
=
'Areagroup_modify'
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
STEP
(
1
,
'勾选分组,点击“编辑”按钮'
)
try
:
# 等待页面加载,并查找包含文本“测试”的元素旁边的复选框
checkbox
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//span[contains(text(), '测试区域1')]//span[@class='el-checkbox__inner']"
))
)
areagroup_select
=
checkbox
.
find_element
(
By
.
XPATH
,
"./ancestor::span[contains(@class, 'el-checkbox__input')]//input"
)
# 勾选复选框
if
not
areagroup_select
.
is_selected
():
areagroup_select
.
click
()
finally
:
areagroup_modify
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//span[contains(text(),'编辑')]"
))
)
areagroup_modify
.
click
()
sleep
(
2
)
areagroup_select
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"(//span[@class='el-checkbox__inner'])[2]"
))
)
areagroup_select
.
click
()
areagroup_modify
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//span[contains(text(),'编辑')]"
))
)
areagroup_modify
.
click
()
sleep
(
1
)
STEP
(
2
,
'修改分组名称'
)
group_name
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='长度1-20个字符']"
))
)
group_name
.
clear
()
group_name
.
send_keys
(
"
测试区域
1-已修改"
)
group_name
.
send_keys
(
"
深圳分组
1-已修改"
)
STEP
(
3
,
'修改分组地址'
)
group_address
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='输入地址不能大于50个字符']"
))
)
group_address
.
clear
()
group_address
.
send_keys
(
"
顺恒利大厦
-已修改"
)
group_address
.
send_keys
(
"
深圳
-已修改"
)
STEP
(
4
,
'修改分组备注'
)
group_remark
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -45,7 +40,7 @@ class AreagroupMod001:
(
By
.
XPATH
,
"//input[@placeholder='请输入备注']"
))
)
group_remark
.
clear
()
group_remark
.
send_keys
(
"修改
测试
分组"
)
group_remark
.
send_keys
(
"修改
深圳
分组"
)
STEP
(
5
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -55,8 +50,12 @@ class AreagroupMod001:
STEP
(
6
,
'验证是否修改成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
sleep
(
1
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/03区域分组/03删除区域分组.py
浏览文件 @
04352cbf
...
...
@@ -3,25 +3,24 @@ import os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
AreagroupDel
001
:
name
=
'Areagroup_delete
_001
'
class
AreagroupDel
:
name
=
'Areagroup_delete'
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
STEP
(
1
,
'勾选分组'
)
checkbox
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"
//span[contains(text(), '测试区域1')]//span[@class='el-checkbox__inner'
]"
))
areagroup_select
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"
(//span[@class='el-checkbox__inner'])[2
]"
))
)
areagroup_select
=
checkbox
.
find_element
(
By
.
XPATH
,
"./ancestor::span[contains(@class, 'el-checkbox__input')]//input"
)
areagroup_select
.
click
()
sleep
(
2
)
sleep
(
1
)
STEP
(
2
,
'点击“删除”按钮'
)
areagroup_modify
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//span[contains(text(),'删除')]"
))
)
areagroup_modify
.
click
()
sleep
(
2
)
sleep
(
1
)
STEP
(
3
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -31,8 +30,11 @@ class AreagroupDel001:
STEP
(
6
,
'验证是否修改成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/04区域类型/01新增区域类型.py
浏览文件 @
04352cbf
...
...
@@ -3,39 +3,49 @@ import os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
AreatypeAdd001
:
name
=
'Areatype_add_001'
# 构建 CSV 文件的绝对路径
csv_path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'testdata'
,
'04区域类型'
,
'新增区域类型.csv'
))
class
AreatypeAdd
:
tag
=
[
'新增区域类型'
]
ddt_cases
=
read_csv_data
(
csv_path
)
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
#从self.para中解构出数据
name
=
self
.
name
area_type
,
sort
,
remark
,
info
=
self
.
para
STEP
(
1
,
'点击新增按钮'
)
areatype_add
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='company-edmit-right']//span[contains(text(),'新增')]"
))
)
areatype_add
.
click
()
sleep
(
2
)
sleep
(
1
)
STEP
(
2
,
'填写区域类型
'
)
STEP
(
2
,
f
'填写区域类型: {area_type}
'
)
type_name
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[@class='el-input el-input--suffix']//input[@placeholder='请输入区域类型']"
))
)
type_name
.
clear
()
type_name
.
send_keys
(
"测试类型1"
)
type_name
.
send_keys
(
area_type
)
STEP
(
3
,
'填写排序
'
)
STEP
(
3
,
f
'填写排序:{sort}
'
)
type_sort
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='排序']"
))
)
type_sort
.
clear
()
type_sort
.
send_keys
(
"123"
)
type_sort
.
send_keys
(
sort
)
STEP
(
4
,
'填写备注
'
)
STEP
(
4
,
f
'填写备注:{remark}
'
)
type_remark
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='备注']"
))
)
type_remark
.
clear
()
type_remark
.
send_keys
(
"类型备注测试"
)
type_remark
.
send_keys
(
remark
)
STEP
(
5
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -45,8 +55,12 @@ class AreatypeAdd001:
STEP
(
6
,
'验证是否新增成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
info
)
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
sleep
(
1
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/04区域类型/02编辑区域类型.py
浏览文件 @
04352cbf
...
...
@@ -3,7 +3,7 @@ import os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
AreatypeMod
001
:
class
AreatypeMod
:
name
=
'Areatype_mod_001'
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
...
...
@@ -13,7 +13,7 @@ class AreatypeMod001:
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"(//input[contains(@placeholder,'请输入区域类型')])[1]"
))
)
areatype_search
.
clear
()
areatype_search
.
send_keys
(
"
测试类型1
"
)
areatype_search
.
send_keys
(
"
会议室
"
)
STEP
(
2
,
'勾选区域类型'
)
areatype_select
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -33,7 +33,7 @@ class AreatypeMod001:
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[@class='el-input el-input--suffix']//input[@placeholder='请输入区域类型']"
))
)
type_name
.
clear
()
type_name
.
send_keys
(
"修改-
测试类型1
"
)
type_name
.
send_keys
(
"修改-
会议室
"
)
STEP
(
5
,
'修改排序'
)
type_sort
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -58,8 +58,12 @@ class AreatypeMod001:
STEP
(
8
,
'验证是否修改成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
sleep
(
1
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/04区域类型/03删除区域类型.py
浏览文件 @
04352cbf
...
...
@@ -3,7 +3,7 @@ import os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
AreatypeDel
001
:
class
AreatypeDel
:
name
=
'Areatype_del_001'
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
...
...
@@ -13,7 +13,7 @@ class AreatypeDel001:
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"(//input[contains(@placeholder,'请输入区域类型')])[1]"
))
)
areatype_search
.
clear
()
areatype_search
.
send_keys
(
"修改-
测试类型1
"
)
areatype_search
.
send_keys
(
"修改-
会议室
"
)
STEP
(
2
,
'勾选区域类型'
)
areatype_select
=
WebDriverWait
(
wd
,
10
)
.
until
(
...
...
@@ -30,14 +30,18 @@ class AreatypeDel001:
STEP
(
4
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"
//div[@class='dialog-footer']//span[contains(text(),'确 定')
]"
))
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"
(//span[contains(text(),'确 定')])[3
]"
))
)
commit
.
click
()
STEP
(
5
,
'验证是否修改成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility
_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
sleep
(
1
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/05区域功能/01新增区域功能.py
浏览文件 @
04352cbf
...
...
@@ -3,50 +3,68 @@ import os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
AreafuntionAdd001
:
name
=
'Areafuntion_add_001'
# 构建 CSV 文件的绝对路径
csv_path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'testdata'
,
'05区域功能'
,
'新增区域功能.csv'
))
class
AreafuntionAdd
:
tag
=
[
'新增区域功能'
]
ddt_cases
=
read_csv_data
(
csv_path
)
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
#从self.para中解构出数据
name
=
self
.
name
funtion_name
,
sort
,
remark
,
info
=
self
.
para
STEP
(
1
,
'点击新增按钮'
)
areafuntion_add
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='company-edmit-right']//span[contains(text(),'新增')]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"//div[@class='company-edmit-right']//span[contains(text(),'新增')]"
))
)
areafuntion_add
.
click
()
sleep
(
2
)
sleep
(
1
)
STEP
(
2
,
'填写功能名称'
)
funtion_name
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[@class='el-input el-input--suffix']//input[@placeholder='请输入功能名称']"
))
STEP
(
2
,
f
'填写功能名称:{funtion_name}'
)
funtion_name_input
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//div[@class='el-input el-input--suffix']//input[@placeholder='请输入功能名称']"
))
)
funtion_name
.
clear
()
funtion_name
.
send_keys
(
"测试功能1"
)
funtion_name
_input
.
clear
()
funtion_name
_input
.
send_keys
(
funtion_name
)
STEP
(
3
,
'填写排序
'
)
STEP
(
3
,
f
'填写排序:{sort}
'
)
funtion_sort
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='排序']"
))
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='排序']"
))
)
funtion_sort
.
clear
()
funtion_sort
.
send_keys
(
"123"
)
funtion_sort
.
send_keys
(
sort
)
STEP
(
4
,
'填写备注
'
)
STEP
(
4
,
f
'填写备注:{remark}
'
)
funtion_remark
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[@placeholder='备注']"
))
)
funtion_remark
.
clear
()
funtion_remark
.
send_keys
(
"功能备注测试"
)
funtion_remark
.
send_keys
(
remark
)
STEP
(
5
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='dialog-footer']//span[contains(text(),'确 定')]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"//div[@class='dialog-footer']//span[contains(text(),'确 定')]"
))
)
commit
.
click
()
STEP
(
6
,
'验证是否新增成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility_of_element_located
(
(
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
info
)
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
sleep
(
1
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/05区域功能/02编辑区域功能.py
浏览文件 @
04352cbf
...
...
@@ -3,41 +3,46 @@ import os
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'..'
,
'..'
,
'..'
,
'..'
)))
from
运维集控
.
项目测试
.
运维标准版
.
lib
.
base
import
*
class
areafuntionMod
001
:
name
=
'areafuntion_mod
_001
'
class
areafuntionMod
:
name
=
'areafuntion_mod'
def
teststeps
(
self
):
wd
=
GSTORE
[
'wd'
]
STEP
(
1
,
'搜索对应的区域功能'
)
areafuntion_search
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"(//input[contains(@placeholder,'请输入区域功能')])[1]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"//input[@placeholder='请输入功能名称']"
))
)
areafuntion_search
.
clear
()
areafuntion_search
.
send_keys
(
"
测试功能1
"
)
areafuntion_search
.
send_keys
(
"
语音翻译
"
)
STEP
(
2
,
'勾选区域功能'
)
areafuntion_select
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"(//span[contains(@class,'el-checkbox__inner')])[2]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"(//span[@class='el-checkbox__inner'])[2]"
))
)
areafuntion_select
.
click
()
STEP
(
3
,
'点击编辑按钮'
)
areafuntion_mod
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='company-edmit-right']//span[contains(text(),'编辑')]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"//span[contains(text(),'编辑')]"
))
)
areafuntion_mod
.
click
()
sleep
(
2
)
sleep
(
1
)
STEP
(
4
,
'修改区域功能内容'
)
funtion_name
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//div[@class='el-input el-input--suffix']//input[@placeholder='请输入区域功能']"
))
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//div[contains(@class,'dialog-input')]//input[contains(@placeholder,'请输入功能名称')]"
))
)
funtion_name
.
clear
()
funtion_name
.
send_keys
(
"修改-测试功能1"
)
STEP
(
5
,
'修改排序'
)
funtion_sort
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
XPATH
,
"//input[@placeholder='排序']"
))
EC
.
presence_of_element_located
(
(
By
.
XPATH
,
"//input[contains(@placeholder,'排序')]"
))
)
funtion_sort
.
clear
()
funtion_sort
.
send_keys
(
"999"
)
...
...
@@ -52,14 +57,20 @@ class areafuntionMod001:
STEP
(
7
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='dialog-footer']//span[contains(text(),'确 定')]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"(//span[contains(text(),'确 定')])[2]"
))
)
commit
.
click
()
STEP
(
8
,
'验证是否修改成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility_of_element_located
(
(
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
sleep
(
1
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/05区域功能/03删除区域功能.py
浏览文件 @
04352cbf
...
...
@@ -10,34 +10,43 @@ class areafuntionDel001:
STEP
(
1
,
'搜索对应的区域功能'
)
areafuntion_search
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"(//input[contains(@placeholder,'请输入区域功能')])[1]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"//input[@placeholder='请输入功能名称']"
))
)
areafuntion_search
.
clear
()
areafuntion_search
.
send_keys
(
"修改-测试功能1"
)
STEP
(
2
,
'勾选区域功能'
)
areafuntion_select
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"(//span[contains(@class,'el-checkbox__inner')])[2]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"(//span[@class='el-checkbox__inner'])[2]"
))
)
areafuntion_select
.
click
()
STEP
(
3
,
'点击删除按钮'
)
areafuntion_mod
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='company-edmit-right']//span[contains(text(),'删除')]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"//span[contains(text(),'删除')]"
))
)
areafuntion_mod
.
click
()
sleep
(
2
)
sleep
(
1
)
STEP
(
4
,
'点击确认'
)
commit
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
element_to_be_clickable
((
By
.
XPATH
,
"//div[@class='dialog-footer']//span[contains(text(),'确 定')]"
))
EC
.
element_to_be_clickable
(
(
By
.
XPATH
,
"(//span[contains(text(),'确 定')])[3]"
))
)
commit
.
click
()
STEP
(
5
,
'验证是否修改成功'
)
get_menu
=
WebDriverWait
(
wd
,
10
)
.
until
(
EC
.
presence_of_element_located
((
By
.
CSS_SELECTOR
,
'.el-message__content'
))
EC
.
visibility_of_element_located
(
(
By
.
CSS_SELECTOR
,
'.el-message__content'
))
)
get_menu1
=
get_menu
.
text
CHECK_POINT
(
'检查是否出现成功提示弹窗'
,
get_menu1
==
"操作成功!"
)
sleep
(
2
)
\ No newline at end of file
# 截图并保存
SELENIUM_LOG_SCREEN
(
wd
,
"50
%
"
)
sleep
(
1
)
wd
.
refresh
()
\ No newline at end of file
运维集控/项目测试/运维标准版/cases/05区域功能/__st__.py
浏览文件 @
04352cbf
...
...
@@ -10,8 +10,8 @@ def suite_setup():
enter_manage
()
enter_areafuntion_manage
()
#
def suite_teardown():
#
INFO('进行清除操作')
#
wd = GSTORE['wd']
#
wd.quit()
def
suite_teardown
():
INFO
(
'进行清除操作'
)
wd
=
GSTORE
[
'wd'
]
wd
.
quit
()
运维集控/项目测试/运维标准版/lib/base.py
浏览文件 @
04352cbf
...
...
@@ -24,7 +24,7 @@ from time import sleep
logging
.
basicConfig
(
level
=
logging
.
INFO
,
format
=
'
%(asctime)
s -
%(levelname)
s -
%(message)
s'
)
def
open_browser
():
INFO
(
'打开浏览器'
)
INFO
(
'打开
默认
浏览器'
)
# wd = webdriver.Chrome()
edge_options
=
Options
()
edge_options
.
add_argument
(
'--ignore-certificate-errors'
)
...
...
@@ -349,10 +349,8 @@ def get_reportfile_send_dingding(report_title, report_url_prefix):
def
read_csv_data
(
csv_file_path
):
"""
读取CSV文件中的数据,并将其转换为一个包含字典的列表,每个字典代表一行测试用例数据。
参数:
csv_file_path (str): CSV文件的路径。
返回:
list: 包含字典的列表,每个字典包含测试用例的名称和参数。
"""
...
...
运维集控/项目测试/运维标准版/testdata/01登录模块/登录信息.csv
浏览文件 @
04352cbf
username,password,captcha
test_user1,ub@1234567,csba
test_user2,ub@123,csba
test_user3,,csba
test_user4,ub@1234567,
,ub@1234567,csba
\ No newline at end of file
num,username,password,captcha,info
用户登录-001-登录账号为空,,ub@1234567,csba,请输入登录账号
用户登录-002-登录密码为空,test_user3,,csba,请输入登录密码
用户登录-003-验证码为空,test_user4,ub@1234567,,请输入验证码(区分大小写)
用户登录-004-登录账号不存在,test_user1,ub@1234567,csba,请检则用户名或密码是否正确!
用户登录-005-登录密码错误,admin@pgy,ub@1234567,csba,输入的用户或密码不一致,
用户登录-006-正常登录,admin@pgy,ub@123456,csba,登录成功
\ No newline at end of file
运维集控/项目测试/运维标准版/testdata/02用户管理/新增用户.csv
浏览文件 @
04352cbf
account,user_name,new_passwd,comfire_passwd,limits,user_number,phone,email,remark
test_user1,test_user1,Ubains@123,Ubains@123,1,13579,13169678901,test1@qq.com,test1
test_user2,test_user2,Ubains@123,Ubains@123,1,13580,13169678902,test2@qq.com,test2
test_user3,test_user3,Ubains@123,Ubains@123,1,13581,13169678903,test3@qq.com,test3
test_user4,test_user4,Ubains@123,Ubains@123,3,13582,13169678904,test4@qq.com,test4
test_user5,test_user5,Ubains@123,Ubains@123,3,13583,13169678905,test5@qq.com,test5
test_user6,test_user6,Ubains@123,Ubains@123,3,13584,13169678906,test6@qq.com,test6
test_user7,test_user7,Ubains@123,Ubains@123,4,13585,13169678907,test7@qq.com,test7
test_user8,test_user8,Ubains@123,Ubains@123,4,13586,13169678908,test8@qq.com,test8
test_user9,test_user9,Ubains@123,Ubains@123,4,13587,13169678909,test9@qq.com,test9
\ No newline at end of file
name,account,user_name,new_passwd,comfire_passwd,authority,user_number,phone,email,remark,info
新增用户-001-登录名为空,,test_user1,Ubains@123,Ubains@123,普通用户,13579,13169678901,test1@qq.com,test1,请输入登录名
新增用户-002-用户名称为空,test_user1,,Ubains@123,Ubains@123,普通用户,13579,13169678901,test1@qq.com,test1,请输入用户名称
新增用户-003-密码为空,test_user1,test_user1,,Ubains@123,普通用户,13579,13169678901,test1@qq.com,test1,密码至少8个字符
新增用户-004-确认密码为空,test_user1,test_user1,Ubains@123,,普通用户,13579,13169678901,test1@qq.com,test1,两次密码不一致
新增用户-005-密码和账号相同,test_user1,test_user1,test_user1,Ubains@123,普通用户,13579,13169678901,test1@qq.com,test1,密码不能和账号相同
新增用户-006-正常创建1,test_user1,test_user1,Ubains@123,Ubains@123,普通用户,13580,13169678902,test2@qq.com,test1,操作成功!
新增用户-007-登录名重复,test_user1,test_user1,Ubains@123,Ubains@123,普通用户,13581,13169678902,test2@qq.com,test1,登录名已存在,请重新输入
新增用户-008-正常创建用户2,test_user2,test_user2,Ubains@123,Ubains@123,普通用户,13582,13169678903,test3@qq.com,test2,操作成功!
新增用户-009-正常创建用户3,test_user3,test_user3,Ubains@123,Ubains@123,普通用户,13583,13169678904,test4@qq.com,test3,操作成功!
\ No newline at end of file
运维集控/项目测试/运维标准版/testdata/03区域分组/新增区域分组.csv
浏览文件 @
04352cbf
area_group,group_name,group_address,remark
,测试分组1,深圳,第一层级
测试分组1,测试分组1-1,深圳,第二层级
测试分组1-1,测试分组1-2,深圳,第三层级
测试分组1-2,测试分组1-3,深圳,第四层级
,测试分组2,广州,第一层级
测试分组2,测试分组2-1,广州,第二层级
测试分组2-1,测试分组2-2,广州,第三层级
测试分组2-2,测试分组2-3,广州,第四层级
,测试分组3,上海,第一层级
测试分组3,测试分组3-1,上海,第二层级
测试分组3-1,测试分组3-2,上海,第三层级
测试分组3-2,测试分组3-3,上海,第四层级
\ No newline at end of file
name,area_group,group_name,group_address,remark,info
新增分组-002-创建一级分组-深圳分组1,,深圳分组1,深圳,第一层级,操作成功!
新增分组-003-创建二级分组-深圳分组2,深圳分组1,深圳分组2,深圳,第二层级,操作成功!
新增分组-004-创建三级分组-深圳分组3,深圳分组2,深圳分组3,深圳,第三层级,操作成功!
新增分组-005-创建四级分组-深圳分组4,深圳分组3,深圳分组4,深圳,第四层级,操作成功!
新增分组-006-创建一级分组-广州分组1,,广州分组1,广州,第一层级,操作成功!
新增分组-007-创建二级分组-广州分组2,广州分组1,广州分组2,广州,第二层级,操作成功!
新增分组-008-创建三级分组-广州分组3,广州分组2,广州分组3,广州,第三层级,操作成功!
新增分组-009-创建四级分组-广州分组4,广州分组3,广州分组4,广州,第四层级,操作成功!
新增分组-010-创建一级分组-上海分组1,,上海分组1,上海,第一层级,操作成功!
新增分组-011-创建二级分组-上海分组2,上海分组1,上海分组2,上海,第二层级,操作成功!
新增分组-012-创建三级分组-上海分组3,上海分组2,上海分组3,上海,第三层级,操作成功!
新增分组-013-创建四级分组-上海分组4,上海分组3,上海分组4,上海,第四层级,操作成功!
\ No newline at end of file
运维集控/项目测试/运维标准版/testdata/04区域类型/新增区域类型.csv
浏览文件 @
04352cbf
area_type,sort,remark
办公室,1,办公室
大会议室,2,大会议室
小会议室,3,小会议室
培训室,4,培训室
展览室,5,展览室
\ No newline at end of file
name,area_type,sort,remark,info
新增区域类型-001-名称为空,,1,会议室,请输入类型名称
新增区域类型-002-排序为空,会议室,,会议室,请输入排序
新增区域类型-003-会议室,会议室,1,会议室,操作成功!
新增区域类型-004-大会议室,大会议室,2,大会议室,操作成功!
新增区域类型-005-小会议室,小会议室,3,小会议室,操作成功!
新增区域类型-006-培训室,培训室,4,培训室,操作成功!
新增区域类型-007-展览室,展览室,5,展览室,操作成功!
\ No newline at end of file
运维集控/项目测试/运维标准版/testdata/05区域功能/新增区域功能.csv
浏览文件 @
04352cbf
funtion_name,sort,remark
摄像头,1,摄像头
ideahub,2,IdeaHub
语音转录,3,语音转录
语音识别,4,语音识别
语音翻译,5,语音翻译
语音合成,6,语音合成
name,funtion_name,sort,remark,info
新增区域功能-001-名称为空,,1,摄像头,请输入类型名称
新增区域功能-002-排序为空,摄像头,,摄像头,请输入排序
新增区域功能-003-摄像头,摄像头,1,摄像头,操作成功!
新增区域功能-004-ideahub,ideahub,2,IdeaHub,操作成功!
新增区域功能-005-语音转录,语音转录,3,语音转录,操作成功!
新增区域功能-006-语音识别,语音识别,4,语音识别,操作成功!
新增区域功能-007-语音翻译,语音翻译,5,语音翻译,操作成功!
新增区域功能-008-语音合成,语音合成,6,语音合成,操作成功!
运维集控/项目测试/运维标准版/testdata/06区域管理/新增区域.csv
浏览文件 @
04352cbf
area_group,area_type,area_name,area_ip,remark
测试分组1,办公室,测试区域1,192.168.1.1,测试区域1
测试分组1-1,大会议室,测试区域2,192.168.1.2,测试区域2
测试分组1-2,小会议室,测试区域3,192.168.1.3,测试区域3
测试分组1-3,培训室,测试区域4,192.168.1.4,测试区域4
测试分组2,办公室,测试区域5,192.168.1.5,测试区域5
测试分组2-1,大会议室,测试区域6,192.168.1.6,测试区域6
测试分组2-2,小会议室,测试区域7,192.168.1.7,测试区域7
测试分组2-3,培训室,测试区域8,192.168.1.8,测试区域8
测试分组3,办公室,测试区域9,192.168.1.9,测试区域9
测试分组3-1,大会议室,测试区域10,192.168.1.10,测试区域10
测试分组3-2,小会议室,测试区域11,192.168.1.11,测试区域11
测试分组3-3,培训室,测试区域12,192.168.1.12,测试区域12
name,area_group,area_type,area_name,area_ip,remark,info
新增区域-001-区域分组为空,,办公室,测试区域0,192.168.1.0,测试区域0,请选择分组
新增区域-002-区域类型为空,深圳分组1,,测试区域0,192.168.1.0,测试区域0,请选择区域类型
新增区域-003-区域名称为空,深圳分组1,办公室,,192.168.1.0,测试区域0,请输入区域名称
新增区域-004-测试区域1,深圳分组1,办公室,测试区域1,192.168.1.1,测试区域1,操作成功!
新增区域-005-测试区域2,深圳分组2,大会议室,测试区域2,192.168.1.2,测试区域2,操作成功!
新增区域-006-测试区域3,深圳分组3,小会议室,测试区域3,192.168.1.3,测试区域3,操作成功!
新增区域-007-测试区域4,深圳分组4,培训室,测试区域4,192.168.1.4,测试区域4,操作成功!
新增区域-008-测试区域5,广州分组1,办公室,测试区域5,192.168.1.5,测试区域5,操作成功!
新增区域-009-测试区域6,广州分组2,大会议室,测试区域6,192.168.1.6,测试区域6,操作成功!
新增区域-010-测试区域7,广州分组3,小会议室,测试区域7,192.168.1.7,测试区域7,操作成功!
新增区域-011-测试区域8,广州分组4,培训室,测试区域8,192.168.1.8,测试区域8,操作成功!
新增区域-012-测试区域9,上海分组1,办公室,测试区域9,192.168.1.9,测试区域9,操作成功!
新增区域-013-测试区域10,上海分组2,大会议室,测试区域10,192.168.1.10,测试区域10,操作成功!
新增区域-014-测试区域11,上海分组3,小会议室,测试区域11,192.168.1.11,测试区域11,操作成功!
新增区域-015-测试区域12,上海分组4,培训室,测试区域12,192.168.1.12,测试区域12,操作成功!
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论