提交 4ee731cf authored 作者: 陈泽健's avatar 陈泽健

补充历史会议再次预定、会议模板查询以及再次预定功能的代码处理。

上级 eb07c1d1
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.10" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<changelist name="在进行更新之前于_2024_12_24_16_59_取消提交了更改_[更改]" date="1735030768202" recycled="false" toDelete="true">
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/在进行更新之前于_2024_12_24_16_59_取消提交了更改_[更改]/shelved.patch" />
<option name="DESCRIPTION" value="在进行更新之前于 2024/12/24 16:59 取消提交了更改 [更改]" />
</changelist>
\ No newline at end of file
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=\"1b298f03-b3a2-4f3f-9fa2-7f833ec35924\" name=\"更改\" comment=\"\">\r\n <change afterPath=\"$PROJECT_DIR$/预定系统/测试数据/MQTT心跳上报.csv\" afterDir=\"false\" />\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$/预定系统/base/Mqtt_Send.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/base/Mqtt_Send.py\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/安卓信息模块/安卓信息上报.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/安卓信息模块/安卓信息上报.py\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/毫米波雷达模块/毫米波雷达上报.py\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/毫米波雷达模块/毫米波雷达上报.py\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/测试数据/MQTT安卓上报数据.csv\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/测试数据/MQTT安卓上报数据.csv\" afterDir=\"false\" />\r\n <change beforePath=\"$PROJECT_DIR$/预定系统/测试数据/MQTT毫米波上报数据.csv\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/预定系统/测试数据/MQTT毫米波上报数据.csv\" 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\">{\r\n &quot;associatedIndex&quot;: 0\r\n}</component>\r\n <component name=\"ProjectId\" id=\"2n9KWIVUMNmvuX8Wm4qR3JVKzMd\" />\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\"><![CDATA[{\r\n \"keyToString\": {\r\n \"Python 测试.Python 测试 (LoginBy_ActAndPwd_PyTest.py 内).executor\": \"Run\",\r\n \"Python.安卓信息上报.executor\": \"Run\",\r\n \"Python.毫米波雷达上报.executor\": \"Run\",\r\n \"RunOnceActivity.ShowReadmeOnStart\": \"true\",\r\n \"git-widget-placeholder\": \"develop\",\r\n \"last_opened_file_path\": \"D:/GithubData/ubains-module-test/ubains-module-test\",\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 \"nodejs_package_manager_path\": \"npm\",\r\n \"settings.editor.selected.configurable\": \"com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable\",\r\n \"vue.rearranger.settings.migration\": \"true\"\r\n }\r\n}]]></component>\r\n <component name=\"RecentsManager\">\r\n <key name=\"MoveFile.RECENT_KEYS\">\r\n <recent name=\"D:\\GithubData\\ubains-module-test\\ubains-module-test\\预定系统\\登录模块\" />\r\n <recent name=\"D:\\GithubData\\ubains-module-test\\ubains-module-test\\预定系统\\测试数据\" />\r\n <recent name=\"D:\\GithubData\\ubains-module-test\\ubains-module-test\\预定系统\" />\r\n <recent name=\"D:\\GithubData\\ubains-module-test\\预定系统\" />\r\n </key>\r\n </component>\r\n <component name=\"RunManager\" selected=\"Python.毫米波雷达上报\">\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$/预定系统/安卓信息模块\" />\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$/预定系统/安卓信息模块/安卓信息上报.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 <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$/预定系统/毫米波雷达模块\" />\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$/预定系统/毫米波雷达模块/毫米波雷达上报.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 <item itemvalue=\"Python.安卓信息上报\" />\r\n </list>\r\n </recent_temporary>\r\n </component>\r\n <component name=\"SharedIndexes\">\r\n <attachedChunks>\r\n <set>\r\n <option value=\"bundled-js-predefined-d6986cc7102b-7c0b70fcd90d-JavaScript-PY-242.21829.153\" />\r\n <option value=\"bundled-python-sdk-464836ebc622-b74155a9e76b-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-242.21829.153\" />\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=\"1b298f03-b3a2-4f3f-9fa2-7f833ec35924\" name=\"更改\" comment=\"\" />\r\n <created>1728379882087</created>\r\n <option name=\"number\" value=\"Default\" />\r\n <option name=\"presentableId\" value=\"Default\" />\r\n <updated>1728379882087</updated>\r\n <workItem from=\"1728379883141\" duration=\"132000\" />\r\n <workItem from=\"1728380017193\" duration=\"171000\" />\r\n <workItem from=\"1729481397357\" duration=\"2465000\" />\r\n <workItem from=\"1729519480013\" duration=\"13278000\" />\r\n <workItem from=\"1729685636638\" duration=\"4482000\" />\r\n<<<<<<< HEAD\r\n <workItem from=\"1729690521898\" duration=\"8355000\" />\r\n=======\r\n <workItem from=\"1729690521898\" duration=\"1942000\" />\r\n>>>>>>> 949209b52f0b2ea4a02345aefb25f4daee4ec4bd\r\n </task>\r\n <servers />\r\n </component>\r\n <component name=\"TypeScriptGeneratedFilesManager\">\r\n <option name=\"version\" value=\"3\" />\r\n </component>\r\n <component name=\"XDebuggerManager\">\r\n <breakpoint-manager>\r\n <breakpoints>\r\n <line-breakpoint enabled=\"true\" suspend=\"THREAD\" type=\"python-line\">\r\n <url>file://$PROJECT_DIR$/Meeting2.0/登录模块/Base/Base.py</url>\r\n <option name=\"timeStamp\" value=\"1\" />\r\n </line-breakpoint>\r\n </breakpoints>\r\n </breakpoint-manager>\r\n </component>\r\n <component name=\"com.intellij.coverage.CoverageDataManagerImpl\">\r\n<<<<<<< HEAD\r\n <SUITE FILE_PATH=\"coverage/ubains_module_test$.coverage\" NAME=\"毫米波雷达上报 覆盖结果\" MODIFIED=\"1729761958173\" SOURCE_PROVIDER=\"com.intellij.coverage.DefaultCoverageFileProvider\" RUNNER=\"coverage.py\" COVERAGE_BY_TEST_ENABLED=\"false\" COVERAGE_TRACING_ENABLED=\"false\" WORKING_DIRECTORY=\"$PROJECT_DIR$/预定系统/毫米波雷达模块\" />\r\n=======\r\n <SUITE FILE_PATH=\"coverage/ubains_module_test$.coverage\" NAME=\"安卓信息上报 覆盖结果\" MODIFIED=\"1729740841195\" SOURCE_PROVIDER=\"com.intellij.coverage.DefaultCoverageFileProvider\" RUNNER=\"coverage.py\" COVERAGE_BY_TEST_ENABLED=\"false\" COVERAGE_TRACING_ENABLED=\"false\" WORKING_DIRECTORY=\"$PROJECT_DIR$/预定系统/安卓信息模块\" />\r\n>>>>>>> 949209b52f0b2ea4a02345aefb25f4daee4ec4bd\r\n </component>\r\n</project>
===================================================================
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
--- a/.idea/workspace.xml (revision a88b23bb71d4bed8184904b5bdac0c94ab034b4a)
+++ b/.idea/workspace.xml (date 1735030740525)
@@ -4,117 +4,36 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
- <list default="true" id="1b298f03-b3a2-4f3f-9fa2-7f833ec35924" name="更改" comment="">
- <change afterPath="$PROJECT_DIR$/预定系统/测试数据/MQTT心跳上报.csv" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/base/Mqtt_Send.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/base/Mqtt_Send.py" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/安卓信息模块/安卓信息上报.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/安卓信息模块/安卓信息上报.py" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/毫米波雷达模块/毫米波雷达上报.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/毫米波雷达模块/毫米波雷达上报.py" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/测试数据/MQTT安卓上报数据.csv" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/测试数据/MQTT安卓上报数据.csv" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/预定系统/测试数据/MQTT毫米波上报数据.csv" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/测试数据/MQTT毫米波上报数据.csv" afterDir="false" />
- </list>
+ <list default="true" id="4f117322-925a-4b78-92ec-ebfd85c967ac" name="更改" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
- </component>
- <component name="FileTemplateManagerImpl">
- <option name="RECENT_TEMPLATES">
- <list>
- <option value="Python Script" />
- </list>
- </option>
</component>
<component name="Git.Settings">
+ <option name="RECENT_BRANCH_BY_REPOSITORY">
+ <map>
+ <entry key="$PROJECT_DIR$" value="develop" />
+ </map>
+ </option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+ <option name="UPDATE_TYPE" value="REBASE" />
</component>
- <component name="ProjectColorInfo">{
- &quot;associatedIndex&quot;: 0
-}</component>
- <component name="ProjectId" id="2n9KWIVUMNmvuX8Wm4qR3JVKzMd" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
- "Python 测试.Python 测试 (LoginBy_ActAndPwd_PyTest.py 内).executor": "Run",
- "Python.安卓信息上报.executor": "Run",
- "Python.毫米波雷达上报.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true",
- "git-widget-placeholder": "develop",
- "last_opened_file_path": "D:/GithubData/ubains-module-test/ubains-module-test",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
- "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
- <component name="RecentsManager">
- <key name="MoveFile.RECENT_KEYS">
- <recent name="D:\GithubData\ubains-module-test\ubains-module-test\预定系统\登录模块" />
- <recent name="D:\GithubData\ubains-module-test\ubains-module-test\预定系统\测试数据" />
- <recent name="D:\GithubData\ubains-module-test\ubains-module-test\预定系统" />
- <recent name="D:\GithubData\ubains-module-test\预定系统" />
- </key>
- </component>
- <component name="RunManager" selected="Python.毫米波雷达上报">
- <configuration name="安卓信息上报" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
- <module name="ubains-module-test" />
- <option name="ENV_FILES" value="" />
- <option name="INTERPRETER_OPTIONS" value="" />
- <option name="PARENT_ENVS" value="true" />
- <envs>
- <env name="PYTHONUNBUFFERED" value="1" />
- </envs>
- <option name="SDK_HOME" value="" />
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/预定系统/安卓信息模块" />
- <option name="IS_MODULE_SDK" value="true" />
- <option name="ADD_CONTENT_ROOTS" value="true" />
- <option name="ADD_SOURCE_ROOTS" value="true" />
- <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
- <option name="SCRIPT_NAME" value="$PROJECT_DIR$/预定系统/安卓信息模块/安卓信息上报.py" />
- <option name="PARAMETERS" value="" />
- <option name="SHOW_COMMAND_LINE" value="false" />
- <option name="EMULATE_TERMINAL" value="false" />
- <option name="MODULE_MODE" value="false" />
- <option name="REDIRECT_INPUT" value="false" />
- <option name="INPUT_FILE" value="" />
- <method v="2" />
- </configuration>
- <configuration name="毫米波雷达上报" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
- <module name="ubains-module-test" />
- <option name="ENV_FILES" value="" />
- <option name="INTERPRETER_OPTIONS" value="" />
- <option name="PARENT_ENVS" value="true" />
- <envs>
- <env name="PYTHONUNBUFFERED" value="1" />
- </envs>
- <option name="SDK_HOME" value="" />
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/预定系统/毫米波雷达模块" />
- <option name="IS_MODULE_SDK" value="true" />
- <option name="ADD_CONTENT_ROOTS" value="true" />
- <option name="ADD_SOURCE_ROOTS" value="true" />
- <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
- <option name="SCRIPT_NAME" value="$PROJECT_DIR$/预定系统/毫米波雷达模块/毫米波雷达上报.py" />
- <option name="PARAMETERS" value="" />
- <option name="SHOW_COMMAND_LINE" value="false" />
- <option name="EMULATE_TERMINAL" value="false" />
- <option name="MODULE_MODE" value="false" />
- <option name="REDIRECT_INPUT" value="false" />
- <option name="INPUT_FILE" value="" />
- <method v="2" />
- </configuration>
- <recent_temporary>
- <list>
- <item itemvalue="Python.毫米波雷达上报" />
- <item itemvalue="Python.安卓信息上报" />
- </list>
- </recent_temporary>
- </component>
<component name="SharedIndexes">
<attachedChunks>
<set>
@@ -126,42 +45,27 @@
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="默认任务">
- <changelist id="1b298f03-b3a2-4f3f-9fa2-7f833ec35924" name="更改" comment="" />
- <created>1728379882087</created>
+ <changelist id="4f117322-925a-4b78-92ec-ebfd85c967ac" name="更改" comment="" />
+ <created>1735028684107</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
- <updated>1728379882087</updated>
- <workItem from="1728379883141" duration="132000" />
- <workItem from="1728380017193" duration="171000" />
- <workItem from="1729481397357" duration="2465000" />
- <workItem from="1729519480013" duration="13278000" />
- <workItem from="1729685636638" duration="4482000" />
-<<<<<<< HEAD
- <workItem from="1729690521898" duration="8355000" />
-=======
- <workItem from="1729690521898" duration="1942000" />
->>>>>>> 949209b52f0b2ea4a02345aefb25f4daee4ec4bd
+ <updated>1735028684107</updated>
+ <workItem from="1735028687217" duration="2051000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
- <component name="XDebuggerManager">
- <breakpoint-manager>
- <breakpoints>
- <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
- <url>file://$PROJECT_DIR$/Meeting2.0/登录模块/Base/Base.py</url>
- <option name="timeStamp" value="1" />
- </line-breakpoint>
- </breakpoints>
- </breakpoint-manager>
- </component>
- <component name="com.intellij.coverage.CoverageDataManagerImpl">
-<<<<<<< HEAD
- <SUITE FILE_PATH="coverage/ubains_module_test$.coverage" NAME="毫米波雷达上报 覆盖结果" MODIFIED="1729761958173" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/预定系统/毫米波雷达模块" />
-=======
- <SUITE FILE_PATH="coverage/ubains_module_test$.coverage" NAME="安卓信息上报 覆盖结果" MODIFIED="1729740841195" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/预定系统/安卓信息模块" />
->>>>>>> 949209b52f0b2ea4a02345aefb25f4daee4ec4bd
+ <component name="Vcs.Log.Tabs.Properties">
+ <option name="TAB_STATES">
+ <map>
+ <entry key="MAIN">
+ <value>
+ <State />
+ </value>
+ </entry>
+ </map>
+ </option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="923e4366-b26b-44a4-9a8e-7655702750f8" name="更改" comment="">
<change afterPath="$PROJECT_DIR$/预定系统/cases/会议历史记录/02历史记录再次预定.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/预定系统/cases/会议模板/01会议模板查询.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/预定系统/cases/会议模板/02会议模板再次预定.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/预定系统/cases/会议模板/__st__.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/预定系统/测试数据/会议历史记录/历史会议再次预定.csv" afterDir="false" />
<change afterPath="$PROJECT_DIR$/预定系统/测试数据/会议模板/会议模板再次预定.csv" afterDir="false" />
<change afterPath="$PROJECT_DIR$/预定系统/测试数据/会议模板/会议模板查询.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.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/会议主流程/03会议删除.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/cases/会议主流程/03会议删除.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/预定系统/cases/会议历史记录/01历史记录筛选.py" beforeDir="false" afterPath="$PROJECT_DIR$/预定系统/cases/会议历史记录/01历史记录筛选.py" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Python Script" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo"><![CDATA[{
"customColor": "",
"associatedIndex": 0
}]]></component>
<component name="ProjectId" id="2qel6dw2JSIg22RV44sfGJ83Ng2" />
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"git-widget-placeholder": "develop",
"last_opened_file_path": "D:/GithubData/自动化/ubains-module-test/预定系统/测试数据/会议模板",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)"
}
}]]></component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\GithubData\自动化\ubains-module-test\预定系统\测试数据\会议模板" />
<recent name="D:\GithubData\自动化\ubains-module-test\预定系统\测试数据\会议历史记录" />
</key>
</component>
<component name="TaskManager">
<servers />
</component>
</project>
\ No newline at end of file
File added
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -129,3 +129,4 @@
- 根据实际使用时巡检人员的反馈进行调整,定位会控按钮时增加判断,如定位不到即会控创建失败。
- 调整巡检的执行时间。
- 拆分出MQTT通用工具目录,用于后续开发测试人员进行模拟设备调试以及MQTT相关的程序验证。
- 补充历史会议再次预定、会议模板查询以及再次预定功能的代码处理。
\ No newline at end of file
No preview for this file type
......@@ -20,6 +20,7 @@ csv_file_path = os.path.join(current_dir, '../../测试数据/会议主流程/
time_format = "%H:%M"
class Message_Book_000x:
"""
执行指令:
1.cd 预定系统
......
......@@ -20,6 +20,7 @@ csv_file_path = os.path.join(current_dir, '../../测试数据/会议主流程/
time_format = "%H:%M"
class Message_Update_000x:
"""
执行指令:
1.cd 预定系统
......
......@@ -20,6 +20,7 @@ csv_file_path = os.path.join(current_dir, '../../测试数据/会议主流程/
time_format = "%H:%M"
class Message_Update_000x:
"""
执行指令:
1.cd 预定系统
......
No preview for this file type
No preview for this file type
File added
No preview for this file type
No preview for this file type
......@@ -22,7 +22,7 @@ csv_file_path = os.path.join(current_dir, '../../测试数据/会议历史记录
# 定义时间格式
time_format = "%H:%M"
class History_Book_000x:
class History_Query_000x:
"""
执行指令:
1.cd 预定系统
......@@ -47,9 +47,10 @@ class History_Book_000x:
query_message_name, query_type, check_text = self.para
# 输入会议名称进行筛选
STEP(1, "输入查询文本:{}".format(query_message_name))
STEP(2, "输入查询文本:{}".format(query_message_name))
safe_send_keys((By.XPATH,"//input[@placeholder='输入关键字搜索']"), query_message_name, wd)
send_keyboard((By.XPATH, "//input[@placeholder='输入关键字搜索']"), wd)
SELENIUM_LOG_SCREEN(wd, "50%", "Message_History", "Message_Query", f"{name}_查询结果")
sleep(2)
# 判断查询方式
......
from datetime import datetime, timedelta
from time import sleep
import sys
import os
from selenium.webdriver.support.expected_conditions import element_to_be_clickable
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
from 预定系统.Base.base import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/会议历史记录/历史会议再次预定.csv')
# 定义时间格式
time_format = "%H:%M"
class History_Book_000x:
"""
执行指令:
1.cd 预定系统
2.hytest --report_title 会议预约测试报告 --report_url_prefix http://nat.ubainsyun.com:31133 --test 历史会议再次预定_0**
"""
ddt_cases = read_csv_data(csv_file_path)
def teststeps(self):
"""
执行测试步骤以会议室删除功能。
本函数根据参数输入会议室名称进行搜索并删除会议室,并检查删除后的提示信息是否与预期相符。
字段含义:
name:用例名称
query_message_name:查询的会议名称
check_text:检查提示文本
"""
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
name = self.name
query_message_name, book_start_time, book_end_time, check_text = self.para
# 输入会议名称进行筛选
STEP(2, "输入查询文本:{}".format(query_message_name))
safe_send_keys((By.XPATH, "//input[@placeholder='输入关键字搜索']"), query_message_name, wd)
send_keyboard((By.XPATH, "//input[@placeholder='输入关键字搜索']"), wd)
SELENIUM_LOG_SCREEN(wd, "50%", "Message_History", "Message_Book", f"{name}_查询结果")
sleep(2)
STEP(3, "检查提示文本")
# 检查查询结果
notify_text = elment_get_text((By.CSS_SELECTOR,
"body > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1) > div:nth-child(3) > div:nth-child(3) > table:nth-child(1) > tbody:nth-child(2) > tr:nth-child(1) > td:nth-child(2) > div:nth-child(1)"),
wd)
INFO(f"查询结果为:{notify_text}")
CHECK_POINT("查询结果是否正确", query_message_name in notify_text)
sleep(1)
STEP(4, "点击【再次预定】按钮")
# 点击【再次预定】按钮
safe_click((By.XPATH, "//tbody/tr[1]/td[8]/div[1]/div[1]/button[1]/span[1]"), wd)
sleep(3)
SELENIUM_LOG_SCREEN(wd, "50%", "Message_History", "Message_Book", f"{name}_再次预定")
# 选择会议时间
# 将字符串转换为时间对象
start_time = datetime.strptime(book_start_time, time_format)
end_time = datetime.strptime(book_end_time, time_format)
# 如果需要将时间差转换为分钟数
time_diff_minutes = (end_time - start_time).total_seconds() / 60
INFO(f"时间差为:time_diff_minutes")
# 判断如果开始时间与结束时间相等,则不重复点击
if book_start_time == book_end_time:
INFO(f"开始时间与结束时间相等,选择时间块:{book_start_time}")
# 根据开始时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_start_time}'])[1]"), wd)
elif book_start_time != book_end_time:
INFO(f"开始时间与结束时间不相等,选择时间块:{book_start_time},{book_end_time}")
# 根据开始时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_start_time}'])[1]"), wd)
# 根据结束时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_end_time}'])[1]"), wd)
sleep(2)
# 判断时间差是否大于最大预约时长1小时,即60分钟
if time_diff_minutes > 60:
INFO(f"时间差大于最大预约时长1小时,选择【超出预约时长】")
notify_text = get_notify_text(wd, (By.XPATH, "//p[contains(@class,'el-message__content')]"),
"Message_Manage", "Message_Book", f"{name}_超出预约时长")
INFO(f"提示信息为:{notify_text}")
CHECK_POINT("超出预约时长提示是否正确", "最大预定时间 1 小时" in notify_text)
sleep(2)
# 不选时间点击【下一步】查看提示信息
INFO("不选时间点击【下一步】查看提示信息")
safe_click((By.XPATH, "//div[contains(text(),'下一步')]"), wd)
sleep(1)
notify_text = get_notify_text(wd, (By.XPATH, "//p[contains(@class,'el-message__content')]"),
"Message_Manage", "Message_Book", f"{name}请选择会议时间提示信息")
INFO(f"提示信息为:{notify_text}")
CHECK_POINT("未选时间提示是否正确", "请选择会议时间" in notify_text)
sleep(1)
# 重新选择时间,将字符串转换为时间对象
time_obj = datetime.strptime(book_end_time, time_format)
time_obj_minus_5_minutes = time_obj - timedelta(minutes=30)
# 将时间对象转换回字符串
book_end_time = time_obj_minus_5_minutes.strftime(time_format)
INFO(f"重新选择结束时间为:{book_end_time}")
# 根据开始时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_start_time}'])[1]"), wd)
# 根据结束时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_end_time}'])[1]"), wd)
sleep(2)
STEP(5, "点击【快速预约】按钮")
safe_click((By.XPATH, "//div[@class='header_Quick']"),wd)
sleep(4)
safe_click((By.XPATH, "//button[@type='button']//span[contains(text(),'预定')]"),wd)
sleep(2)
notify_text = get_notify_text(wd, (By.XPATH, "//p[contains(@class,'el-message__content')]"),
"Message_History", "Message_Book", f"{name}预定成功提示信息")
SELENIUM_LOG_SCREEN(wd, "50%", "Message_History", "Message_Book", f"{name}_再次预定提示信息")
INFO(f"预定成功提示信息为:{notify_text}")
CHECK_POINT("预定成功提示是否正确", notify_text == check_text)
\ No newline at end of file
File added
No preview for this file type
No preview for this file type
No preview for this file type
from datetime import datetime, timedelta
from time import sleep
import sys
import os
from selenium.webdriver.support.expected_conditions import element_to_be_clickable
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
from 预定系统.Base.base import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/会议模板/会议模板查询.csv')
# 定义时间格式
time_format = "%H:%M"
class MessageTemplate_Query_000x:
"""
执行指令:
1.cd 预定系统
2.hytest --report_title 会议预约测试报告 --report_url_prefix http://nat.ubainsyun.com:31133 --test 会议模板查询_0**
"""
ddt_cases = read_csv_data(csv_file_path)
def teststeps(self):
"""
执行测试步骤以会议室删除功能。
本函数根据参数输入会议室名称进行搜索并删除会议室,并检查删除后的提示信息是否与预期相符。
字段含义:
name:用例名称
query_message_name:查询的会议名称
check_text:检查提示文本
"""
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
name = self.name
query_template_name, query_type = self.para
STEP(2, f'输入会议模板名称进行搜索:{query_template_name}')
# 输入会议模板名称并进行搜索
safe_send_keys((By.XPATH,"//input[@placeholder='输入关键字搜索']"), query_template_name, wd)
send_keyboard((By.XPATH, "//input[@placeholder='输入关键字搜索']"), wd)
SELENIUM_LOG_SCREEN(wd, "50%", "Message_Template", "Template_Query", f"{name}_查询结果")
sleep(2)
STEP(3, f'检查查询结果')
if query_type == "错误查询":
notify_text = elment_get_text((By.XPATH, "//span[contains(@class,'el-table__empty-text')]"), wd)
INFO(f"查询结果为:{notify_text}")
CHECK_POINT("查询结果是否正确", "暂无数据" in notify_text)
else:
notify_text = elment_get_text(
(By.CSS_SELECTOR, "tbody tr[class='el-table__row'] td:nth-child(1) div:nth-child(1)"), wd)
INFO(f"查询结果为:{notify_text}")
CHECK_POINT("查询结果是否正确", query_template_name in notify_text)
\ No newline at end of file
from datetime import datetime, timedelta
from time import sleep
import sys
import os
from selenium.webdriver.support.expected_conditions import element_to_be_clickable
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
from 预定系统.Base.base import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/会议模板/会议模板再次预定.csv')
# 定义时间格式
time_format = "%H:%M"
class MessageTemplate_Book_000x:
"""
执行指令:
1.cd 预定系统
2.hytest --report_title 会议预约测试报告 --report_url_prefix http://nat.ubainsyun.com:31133 --test 会议模板再次预定_0**
"""
ddt_cases = read_csv_data(csv_file_path)
def teststeps(self):
"""
执行测试步骤以会议室删除功能。
本函数根据参数输入会议室名称进行搜索并删除会议室,并检查删除后的提示信息是否与预期相符。
字段含义:
name:用例名称
query_message_name:查询的会议名称
check_text:检查提示文本
"""
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
name = self.name
query_template_name, book_start_time, book_end_time, check_text = self.para
STEP(2, f'输入会议模板名称进行搜索:{query_template_name}')
# 输入会议模板名称并进行搜索
safe_send_keys((By.XPATH, "//input[@placeholder='输入关键字搜索']"), query_template_name, wd)
send_keyboard((By.XPATH, "//input[@placeholder='输入关键字搜索']"), wd)
SELENIUM_LOG_SCREEN(wd, "50%", "Message_Template", "Template_Book", f"{name}_查询结果")
sleep(2)
notify_text = elment_get_text(
(By.CSS_SELECTOR, "tbody tr[class='el-table__row'] td:nth-child(1) div:nth-child(1)"), wd)
INFO(f"查询结果为:{notify_text}")
CHECK_POINT("查询结果是否正确", query_template_name in notify_text)
STEP(3, f'选择模板点击【再次预定】按钮')
safe_click((By.XPATH, "//span[contains(text(),'再次预定')]"), wd)
sleep(2)
SELENIUM_LOG_SCREEN(wd, "50%", "Message_Template", "Template_Book", f"{name}_再次预定")
# 选择会议时间
# 将字符串转换为时间对象
start_time = datetime.strptime(book_start_time, time_format)
end_time = datetime.strptime(book_end_time, time_format)
# 如果需要将时间差转换为分钟数
time_diff_minutes = (end_time - start_time).total_seconds() / 60
INFO(f"时间差为:time_diff_minutes")
# 判断如果开始时间与结束时间相等,则不重复点击
if book_start_time == book_end_time:
INFO(f"开始时间与结束时间相等,选择时间块:{book_start_time}")
# 根据开始时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_start_time}'])[1]"), wd)
elif book_start_time != book_end_time:
INFO(f"开始时间与结束时间不相等,选择时间块:{book_start_time},{book_end_time}")
# 根据开始时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_start_time}'])[1]"), wd)
# 根据结束时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_end_time}'])[1]"), wd)
sleep(2)
# 判断时间差是否大于最大预约时长1小时,即60分钟
if time_diff_minutes > 60:
INFO(f"时间差大于最大预约时长1小时,选择【超出预约时长】")
notify_text = get_notify_text(wd, (By.XPATH, "//p[contains(@class,'el-message__content')]"),
"Message_Manage", "Message_Book", f"{name}_超出预约时长")
INFO(f"提示信息为:{notify_text}")
CHECK_POINT("超出预约时长提示是否正确", "最大预定时间 1 小时" in notify_text)
sleep(2)
# 不选时间点击【下一步】查看提示信息
INFO("不选时间点击【下一步】查看提示信息")
safe_click((By.XPATH, "//div[contains(text(),'下一步')]"), wd)
sleep(1)
notify_text = get_notify_text(wd, (By.XPATH, "//p[contains(@class,'el-message__content')]"),
"Message_Manage", "Message_Book", f"{name}请选择会议时间提示信息")
INFO(f"提示信息为:{notify_text}")
CHECK_POINT("未选时间提示是否正确", "请选择会议时间" in notify_text)
sleep(1)
# 重新选择时间,将字符串转换为时间对象
time_obj = datetime.strptime(book_end_time, time_format)
time_obj_minus_5_minutes = time_obj - timedelta(minutes=30)
# 将时间对象转换回字符串
book_end_time = time_obj_minus_5_minutes.strftime(time_format)
INFO(f"重新选择结束时间为:{book_end_time}")
# 根据开始时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_start_time}'])[1]"), wd)
# 根据结束时间选择对应时间块,时间格式为:**:**
safe_click((By.XPATH, f"(//div[normalize-space()='{book_end_time}'])[1]"), wd)
sleep(2)
STEP(5, "点击【快速预约】按钮")
safe_click((By.XPATH, "//div[@class='header_Quick']"), wd)
sleep(4)
safe_click((By.XPATH, "//button[@type='button']//span[contains(text(),'预定')]"), wd)
sleep(2)
notify_text = get_notify_text(wd, (By.XPATH, "//p[contains(@class,'el-message__content')]"),
"Message_History", "Message_Book", f"{name}预定成功提示信息")
SELENIUM_LOG_SCREEN(wd, "50%", "Message_History", "Message_Book", f"{name}_再次预定提示信息")
INFO(f"预定成功提示信息为:{notify_text}")
CHECK_POINT("预定成功提示是否正确", notify_text == check_text)
\ No newline at end of file
File added
import sys
import os
from time import sleep
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
from 预定系统.Base.base import *
def suite_setup():
STEP(1, "初始化浏览器")
# login_url = 'https://192.168.5.218/#/login/logindf'
# login_ngrok_url = "https://nat.ubainsyun.com:11046"
login_url = 'http://192.168.5.200:8080/#/login/logindf'
browser_init(login_url)
wd = GSTORE['wd']
admin_login("admin@ZDH", "Ubains@4321")
sleep(2)
# 进入历史记录界面
safe_click((By.XPATH,"//span[contains(text(),'会议模板')]"), wd)
\ No newline at end of file
File added
File added
File added
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
name,query_message_name,book_start_time,book_end_time,check_text
历史会议再次预定_001,哈哈哈哈会议,17:30,17:45,预定成功
\ No newline at end of file
name,query_message_name,book_start_time,book_end_time,check_text
会议模板再次预定_001,自动化会议模板,18:00,18:15,预定成功
\ No newline at end of file
name,query_template_name,query_type
会议模板查询_001,预定会议,模糊查询
会议模板查询_002,自动化会议模板,精确查询
会议模板查询_003,错误的会议,错误查询
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论