提交 b0055b18ca49895ae6458867d42ec7be5280556e

作者 Shishutong
1 个父辈 9cadee9a

版本:1.0.4

1.新增实践课程用例
2。新增学生相关的用例
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <project version="4">
3 3 <component name="ChangeListManager">
4   - <list default="true" id="129454fc-5415-4c7e-9855-d0293355ede5" name="Default Changelist" comment="1.0.2&#10;1.新增的专业与新增的院系id做关联&#10;2。新增教师用例&#10;3。已知bug优化">
5   - <change afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_course.xlsx" afterDir="false" />
6   - <change afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" afterDir="false" />
  4 + <list default="true" id="129454fc-5415-4c7e-9855-d0293355ede5" name="Default Changelist" comment="版本:1.0.3&#10;1.新增班级逻辑判断&#10;2.新增实践课程逻辑判断&#10;3.补充Excel-班级&#10;4.补充Excel-实践课程&#10;4.补充Excel-教师">
7 5 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
8   - <change beforePath="$PROJECT_DIR$/conf/config.ini" beforeDir="false" afterPath="$PROJECT_DIR$/conf/config.ini" afterDir="false" />
9 6 <change beforePath="$PROJECT_DIR$/data/system/test_02_department.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_department.xlsx" afterDir="false" />
10 7 <change beforePath="$PROJECT_DIR$/data/system/test_02_specialty.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_specialty.xlsx" afterDir="false" />
11 8 <change beforePath="$PROJECT_DIR$/data/system/test_02_term.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_term.xlsx" afterDir="false" />
12 9 <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_class.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_class.xlsx" afterDir="false" />
  10 + <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_course.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_course.xlsx" afterDir="false" />
  11 + <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" afterDir="false" />
13 12 <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_teacher.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_teacher.xlsx" afterDir="false" />
14 13 <change beforePath="$PROJECT_DIR$/data/test_01_login.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/test_01_login.xlsx" afterDir="false" />
15   - <change beforePath="$PROJECT_DIR$/instruction_book.md" beforeDir="false" afterPath="$PROJECT_DIR$/instruction_book.md" afterDir="false" />
16   - <change beforePath="$PROJECT_DIR$/logs/log.log" beforeDir="false" />
17   - <change beforePath="$PROJECT_DIR$/logs/log.log.2022-12-15" beforeDir="false" />
18 14 <change beforePath="$PROJECT_DIR$/report/history.json" beforeDir="false" afterPath="$PROJECT_DIR$/report/history.json" afterDir="false" />
19 15 <change beforePath="$PROJECT_DIR$/report/report.html" beforeDir="false" afterPath="$PROJECT_DIR$/report/report.html" afterDir="false" />
20 16 <change beforePath="$PROJECT_DIR$/run.py" beforeDir="false" afterPath="$PROJECT_DIR$/run.py" afterDir="false" />
21   - <change beforePath="$PROJECT_DIR$/testcase/test_02_system_management.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_02_system_management.py" afterDir="false" />
22 17 <change beforePath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" afterDir="false" />
23   - <change beforePath="$PROJECT_DIR$/tools/fixture.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/fixture.py" afterDir="false" />
24   - <change beforePath="$PROJECT_DIR$/tools/handle_token.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/handle_token.py" afterDir="false" />
25 18 </list>
26 19 <option name="SHOW_DIALOG" value="false" />
27 20 <option name="HIGHLIGHT_CONFLICTS" value="true" />
... ... @@ -167,8 +160,8 @@
167 160 <item itemvalue="Python.run" />
168 161 <item itemvalue="Python.fixture (1)" />
169 162 <item itemvalue="Python tests.Unittests in test_03_teaching_affairs.py" />
170   - <item itemvalue="Python tests.Unittests in test_02_system_management.py" />
171 163 <item itemvalue="Python tests.Unittests in test_01_login.py" />
  164 + <item itemvalue="Python tests.Unittests in test_02_system_management.py" />
172 165 </list>
173 166 <recent_temporary>
174 167 <list>
... ... @@ -195,7 +188,8 @@
195 188 <workItem from="1671612709033" duration="18069000" />
196 189 <workItem from="1671637473856" duration="5050000" />
197 190 <workItem from="1671683905863" duration="32432000" />
198   - <workItem from="1671858161931" duration="13359000" />
  191 + <workItem from="1671858161931" duration="14040000" />
  192 + <workItem from="1672107155517" duration="11052000" />
199 193 </task>
200 194 <task id="LOCAL-00001" summary="1.0.0&#10;首次提交">
201 195 <created>1671544396986</created>
... ... @@ -225,7 +219,14 @@
225 219 <option name="project" value="LOCAL" />
226 220 <updated>1671721946433</updated>
227 221 </task>
228   - <option name="localTasksCounter" value="5" />
  222 + <task id="LOCAL-00005" summary="版本:1.0.3&#10;1.新增班级逻辑判断&#10;2.新增实践课程逻辑判断&#10;3.补充Excel-班级&#10;4.补充Excel-实践课程&#10;4.补充Excel-教师">
  223 + <created>1671885330125</created>
  224 + <option name="number" value="00005" />
  225 + <option name="presentableId" value="LOCAL-00005" />
  226 + <option name="project" value="LOCAL" />
  227 + <updated>1671885330125</updated>
  228 + </task>
  229 + <option name="localTasksCounter" value="6" />
229 230 <servers />
230 231 </component>
231 232 <component name="TypeScriptGeneratedFilesManager">
... ... @@ -260,7 +261,8 @@
260 261 <MESSAGE value="1.0.1&#10;&#10;1.新增fixture.py&#10;2.新增查看院系接口测试用例&#10;4.新增整理Excel表格数据入参问题&#10;3.代码优化" />
261 262 <MESSAGE value="1.0.1&#10;&#10;1.新增发送邮件" />
262 263 <MESSAGE value="1.0.2&#10;1.新增的专业与新增的院系id做关联&#10;2。新增教师用例&#10;3。已知bug优化" />
263   - <option name="LAST_COMMIT_MESSAGE" value="1.0.2&#10;1.新增的专业与新增的院系id做关联&#10;2。新增教师用例&#10;3。已知bug优化" />
  264 + <MESSAGE value="版本:1.0.3&#10;1.新增班级逻辑判断&#10;2.新增实践课程逻辑判断&#10;3.补充Excel-班级&#10;4.补充Excel-实践课程&#10;4.补充Excel-教师" />
  265 + <option name="LAST_COMMIT_MESSAGE" value="版本:1.0.3&#10;1.新增班级逻辑判断&#10;2.新增实践课程逻辑判断&#10;3.补充Excel-班级&#10;4.补充Excel-实践课程&#10;4.补充Excel-教师" />
264 266 </component>
265 267 <component name="XDebuggerManager">
266 268 <breakpoint-manager>
... ... @@ -315,21 +317,36 @@
315 317 <line>258</line>
316 318 <option name="timeStamp" value="26" />
317 319 </line-breakpoint>
318   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
319   - <url>file://$PROJECT_DIR$/tools/fixture.py</url>
320   - <line>36</line>
321   - <option name="timeStamp" value="30" />
322   - </line-breakpoint>
323   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  320 + <line-breakpoint suspend="THREAD" type="python-line">
324 321 <url>file://$PROJECT_DIR$/tools/fixture.py</url>
325 322 <line>28</line>
326 323 <option name="timeStamp" value="33" />
327 324 </line-breakpoint>
328   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  325 + <line-breakpoint suspend="THREAD" type="python-line">
329 326 <url>file://$PROJECT_DIR$/tools/fixture.py</url>
330 327 <line>35</line>
331 328 <option name="timeStamp" value="34" />
332 329 </line-breakpoint>
  330 + <line-breakpoint suspend="THREAD" type="python-line">
  331 + <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url>
  332 + <line>296</line>
  333 + <option name="timeStamp" value="35" />
  334 + </line-breakpoint>
  335 + <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  336 + <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url>
  337 + <line>324</line>
  338 + <option name="timeStamp" value="37" />
  339 + </line-breakpoint>
  340 + <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  341 + <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url>
  342 + <line>368</line>
  343 + <option name="timeStamp" value="38" />
  344 + </line-breakpoint>
  345 + <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  346 + <url>file://$PROJECT_DIR$/tools/fixture.py</url>
  347 + <line>37</line>
  348 + <option name="timeStamp" value="39" />
  349 + </line-breakpoint>
333 350 </breakpoints>
334 351 <default-breakpoints>
335 352 <breakpoint type="python-exception">
... ... @@ -346,8 +363,8 @@
346 363 <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_01_login_py.coverage" NAME="Unittests in test_01_login.py Coverage Results" MODIFIED="1671641941612" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" />
347 364 <SUITE FILE_PATH="coverage/yxly$fixture.coverage" NAME="fixture Coverage Results" MODIFIED="1671628017395" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" />
348 365 <SUITE FILE_PATH="coverage/yxly$Unittests_in_fixture_py.coverage" NAME="Unittests in fixture.py Coverage Results" MODIFIED="1671625806027" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" />
349   - <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_03_teaching_affairs_py.coverage" NAME="Unittests in test_03_teaching_affairs.py Coverage Results" MODIFIED="1671883540019" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" />
  366 + <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_03_teaching_affairs_py.coverage" NAME="Unittests in test_03_teaching_affairs.py Coverage Results" MODIFIED="1672110160877" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" />
350 367 <SUITE FILE_PATH="coverage/yxly$pytest_in_test_02_system_management_py.coverage" NAME="pytest in test_02_system_management.py Coverage Results" MODIFIED="1671617451891" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" />
351   - <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1671885036096" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
  368 + <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1672125478242" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
352 369 </component>
353 370 </project>
\ No newline at end of file
... ...
1   -[{"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "12.67 S", "begin_time": "2022-12-19 17:56:09", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.87 S", "begin_time": "2022-12-19 17:58:06", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.24 S", "begin_time": "2022-12-19 18:17:28", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.45 S", "begin_time": "2022-12-19 18:19:47", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.72 S", "begin_time": "2022-12-19 19:32:22", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "103.32 S", "begin_time": "2022-12-19 20:35:55", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.95 S", "begin_time": "2022-12-20 12:06:06", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.92 S", "begin_time": "2022-12-20 21:34:11", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.77 S", "begin_time": "2022-12-20 21:35:13", "pass_rate": "37.50"}, {"success": 8, "all": 25, "fail": 12, "skip": 0, "error": 5, "runtime": "14.41 S", "begin_time": "2022-12-21 22:40:23", "pass_rate": "32.00"}, {"success": 8, "all": 25, "fail": 12, "skip": 0, "error": 5, "runtime": "14.73 S", "begin_time": "2022-12-21 22:52:34", "pass_rate": "32.00"}, {"success": 9, "all": 25, "fail": 12, "skip": 0, "error": 4, "runtime": "14.49 S", "begin_time": "2022-12-21 22:55:57", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 12, "skip": 0, "error": 4, "runtime": "14.04 S", "begin_time": "2022-12-21 22:57:36", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.09 S", "begin_time": "2022-12-21 23:02:18", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.30 S", "begin_time": "2022-12-21 23:10:55", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.19 S", "begin_time": "2022-12-22 00:05:50", "pass_rate": "36.00"}, {"success": 5, "all": 25, "fail": 16, "skip": 0, "error": 4, "runtime": "13.92 S", "begin_time": "2022-12-22 00:26:21", "pass_rate": "20.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "15.25 S", "begin_time": "2022-12-22 00:32:39", "pass_rate": "36.00"}, {"success": 0, "all": 8, "fail": 0, "skip": 0, "error": 8, "runtime": "0.71 S", "begin_time": "2022-12-22 00:47:52", "pass_rate": "0.00"}, {"success": 8, "all": 25, "fail": 17, "skip": 0, "error": 0, "runtime": "12.65 S", "begin_time": "2022-12-22 00:54:19", "pass_rate": "32.00"}, {"success": 4, "all": 15, "fail": 11, "skip": 0, "error": 0, "runtime": "10.52 S", "begin_time": "2022-12-22 15:54:09", "pass_rate": "26.67"}, {"success": 4, "all": 15, "fail": 11, "skip": 0, "error": 0, "runtime": "10.60 S", "begin_time": "2022-12-22 15:59:15", "pass_rate": "26.67"}, {"success": 7, "all": 26, "fail": 9, "skip": 0, "error": 10, "runtime": "13.48 S", "begin_time": "2022-12-22 23:03:40", "pass_rate": "26.92"}, {"success": 6, "all": 16, "fail": 10, "skip": 0, "error": 0, "runtime": "11.90 S", "begin_time": "2022-12-22 23:08:12", "pass_rate": "37.50"}, {"success": 10, "all": 26, "fail": 16, "skip": 0, "error": 0, "runtime": "15.15 S", "begin_time": "2022-12-22 23:09:09", "pass_rate": "38.46"}, {"success": 11, "all": 26, "fail": 15, "skip": 0, "error": 0, "runtime": "17.06 S", "begin_time": "2022-12-23 11:04:53", "pass_rate": "42.31"}, {"success": 15, "all": 26, "fail": 11, "skip": 0, "error": 0, "runtime": "16.82 S", "begin_time": "2022-12-23 11:10:29", "pass_rate": "57.69"}, {"success": 14, "all": 31, "fail": 14, "skip": 0, "error": 3, "runtime": "16.68 S", "begin_time": "2022-12-23 11:24:23", "pass_rate": "45.16"}, {"success": 14, "all": 31, "fail": 14, "skip": 0, "error": 3, "runtime": "15.31 S", "begin_time": "2022-12-23 11:50:26", "pass_rate": "45.16"}, {"success": 14, "all": 31, "fail": 17, "skip": 0, "error": 0, "runtime": "19.41 S", "begin_time": "2022-12-23 11:53:02", "pass_rate": "45.16"}, {"success": 19, "all": 32, "fail": 13, "skip": 0, "error": 0, "runtime": "18.26 S", "begin_time": "2022-12-23 13:56:17", "pass_rate": "59.38"}, {"success": 21, "all": 32, "fail": 11, "skip": 0, "error": 0, "runtime": "19.63 S", "begin_time": "2022-12-23 14:54:12", "pass_rate": "65.62"}, {"success": 25, "all": 32, "fail": 7, "skip": 0, "error": 0, "runtime": "18.92 S", "begin_time": "2022-12-23 15:00:04", "pass_rate": "78.12"}, {"success": 26, "all": 32, "fail": 6, "skip": 0, "error": 0, "runtime": "18.33 S", "begin_time": "2022-12-23 15:01:19", "pass_rate": "81.25"}, {"success": 7, "all": 16, "fail": 0, "skip": 0, "error": 9, "runtime": "4.59 S", "begin_time": "2022-12-23 15:03:33", "pass_rate": "43.75"}, {"success": 4, "all": 9, "fail": 1, "skip": 0, "error": 4, "runtime": "2.53 S", "begin_time": "2022-12-23 15:04:12", "pass_rate": "44.44"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "19.26 S", "begin_time": "2022-12-23 15:06:22", "pass_rate": "84.38"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "18.92 S", "begin_time": "2022-12-23 15:07:58", "pass_rate": "84.38"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "18.01 S", "begin_time": "2022-12-23 15:10:26", "pass_rate": "84.38"}, {"success": 28, "all": 32, "fail": 4, "skip": 0, "error": 0, "runtime": "19.33 S", "begin_time": "2022-12-23 15:31:35", "pass_rate": "87.50"}, {"success": 28, "all": 32, "fail": 4, "skip": 0, "error": 0, "runtime": "18.24 S", "begin_time": "2022-12-23 15:36:47", "pass_rate": "87.50"}, {"success": 29, "all": 32, "fail": 3, "skip": 0, "error": 0, "runtime": "21.94 S", "begin_time": "2022-12-23 16:20:37", "pass_rate": "90.62"}, {"success": 29, "all": 32, "fail": 3, "skip": 0, "error": 0, "runtime": "20.53 S", "begin_time": "2022-12-23 16:21:09", "pass_rate": "90.62"}, {"success": 31, "all": 32, "fail": 1, "skip": 0, "error": 0, "runtime": "19.00 S", "begin_time": "2022-12-23 16:25:20", "pass_rate": "96.88"}, {"success": 32, "all": 32, "fail": 0, "skip": 0, "error": 0, "runtime": "18.70 S", "begin_time": "2022-12-23 16:26:19", "pass_rate": "100.00"}, {"success": 32, "all": 32, "fail": 0, "skip": 0, "error": 0, "runtime": "18.82 S", "begin_time": "2022-12-23 16:43:23", "pass_rate": "100.00"}, {"success": 30, "all": 31, "fail": 0, "skip": 0, "error": 1, "runtime": "53.09 S", "begin_time": "2022-12-23 19:05:51", "pass_rate": "96.77"}, {"success": 31, "all": 31, "fail": 0, "skip": 0, "error": 0, "runtime": "18.21 S", "begin_time": "2022-12-23 19:09:09", "pass_rate": "100.00"}, {"success": 30, "all": 31, "fail": 1, "skip": 0, "error": 0, "runtime": "15.82 S", "begin_time": "2022-12-23 19:09:46", "pass_rate": "96.77"}, {"success": 3, "all": 3, "fail": 0, "skip": 0, "error": 0, "runtime": "1.54 S", "begin_time": "2022-12-24 17:34:33", "pass_rate": "100.00"}, {"success": 3, "all": 3, "fail": 0, "skip": 0, "error": 0, "runtime": "2.35 S", "begin_time": "2022-12-24 17:36:32", "pass_rate": "100.00"}, {"success": 5, "all": 5, "fail": 0, "skip": 0, "error": 0, "runtime": "8.45 S", "begin_time": "2022-12-24 20:26:29", "pass_rate": "100.00"}, {"success": 32, "all": 33, "fail": 1, "skip": 0, "error": 0, "runtime": "24.90 S", "begin_time": "2022-12-24 20:29:36", "pass_rate": "96.97"}, {"success": 33, "all": 33, "fail": 0, "skip": 0, "error": 0, "runtime": "24.88 S", "begin_time": "2022-12-24 20:30:36", "pass_rate": "100.00"}]
\ No newline at end of file
  1 +[{"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "12.67 S", "begin_time": "2022-12-19 17:56:09", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.87 S", "begin_time": "2022-12-19 17:58:06", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.24 S", "begin_time": "2022-12-19 18:17:28", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.45 S", "begin_time": "2022-12-19 18:19:47", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.72 S", "begin_time": "2022-12-19 19:32:22", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "103.32 S", "begin_time": "2022-12-19 20:35:55", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.95 S", "begin_time": "2022-12-20 12:06:06", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.92 S", "begin_time": "2022-12-20 21:34:11", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.77 S", "begin_time": "2022-12-20 21:35:13", "pass_rate": "37.50"}, {"success": 8, "all": 25, "fail": 12, "skip": 0, "error": 5, "runtime": "14.41 S", "begin_time": "2022-12-21 22:40:23", "pass_rate": "32.00"}, {"success": 8, "all": 25, "fail": 12, "skip": 0, "error": 5, "runtime": "14.73 S", "begin_time": "2022-12-21 22:52:34", "pass_rate": "32.00"}, {"success": 9, "all": 25, "fail": 12, "skip": 0, "error": 4, "runtime": "14.49 S", "begin_time": "2022-12-21 22:55:57", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 12, "skip": 0, "error": 4, "runtime": "14.04 S", "begin_time": "2022-12-21 22:57:36", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.09 S", "begin_time": "2022-12-21 23:02:18", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.30 S", "begin_time": "2022-12-21 23:10:55", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.19 S", "begin_time": "2022-12-22 00:05:50", "pass_rate": "36.00"}, {"success": 5, "all": 25, "fail": 16, "skip": 0, "error": 4, "runtime": "13.92 S", "begin_time": "2022-12-22 00:26:21", "pass_rate": "20.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "15.25 S", "begin_time": "2022-12-22 00:32:39", "pass_rate": "36.00"}, {"success": 0, "all": 8, "fail": 0, "skip": 0, "error": 8, "runtime": "0.71 S", "begin_time": "2022-12-22 00:47:52", "pass_rate": "0.00"}, {"success": 8, "all": 25, "fail": 17, "skip": 0, "error": 0, "runtime": "12.65 S", "begin_time": "2022-12-22 00:54:19", "pass_rate": "32.00"}, {"success": 4, "all": 15, "fail": 11, "skip": 0, "error": 0, "runtime": "10.52 S", "begin_time": "2022-12-22 15:54:09", "pass_rate": "26.67"}, {"success": 4, "all": 15, "fail": 11, "skip": 0, "error": 0, "runtime": "10.60 S", "begin_time": "2022-12-22 15:59:15", "pass_rate": "26.67"}, {"success": 7, "all": 26, "fail": 9, "skip": 0, "error": 10, "runtime": "13.48 S", "begin_time": "2022-12-22 23:03:40", "pass_rate": "26.92"}, {"success": 6, "all": 16, "fail": 10, "skip": 0, "error": 0, "runtime": "11.90 S", "begin_time": "2022-12-22 23:08:12", "pass_rate": "37.50"}, {"success": 10, "all": 26, "fail": 16, "skip": 0, "error": 0, "runtime": "15.15 S", "begin_time": "2022-12-22 23:09:09", "pass_rate": "38.46"}, {"success": 11, "all": 26, "fail": 15, "skip": 0, "error": 0, "runtime": "17.06 S", "begin_time": "2022-12-23 11:04:53", "pass_rate": "42.31"}, {"success": 15, "all": 26, "fail": 11, "skip": 0, "error": 0, "runtime": "16.82 S", "begin_time": "2022-12-23 11:10:29", "pass_rate": "57.69"}, {"success": 14, "all": 31, "fail": 14, "skip": 0, "error": 3, "runtime": "16.68 S", "begin_time": "2022-12-23 11:24:23", "pass_rate": "45.16"}, {"success": 14, "all": 31, "fail": 14, "skip": 0, "error": 3, "runtime": "15.31 S", "begin_time": "2022-12-23 11:50:26", "pass_rate": "45.16"}, {"success": 14, "all": 31, "fail": 17, "skip": 0, "error": 0, "runtime": "19.41 S", "begin_time": "2022-12-23 11:53:02", "pass_rate": "45.16"}, {"success": 19, "all": 32, "fail": 13, "skip": 0, "error": 0, "runtime": "18.26 S", "begin_time": "2022-12-23 13:56:17", "pass_rate": "59.38"}, {"success": 21, "all": 32, "fail": 11, "skip": 0, "error": 0, "runtime": "19.63 S", "begin_time": "2022-12-23 14:54:12", "pass_rate": "65.62"}, {"success": 25, "all": 32, "fail": 7, "skip": 0, "error": 0, "runtime": "18.92 S", "begin_time": "2022-12-23 15:00:04", "pass_rate": "78.12"}, {"success": 26, "all": 32, "fail": 6, "skip": 0, "error": 0, "runtime": "18.33 S", "begin_time": "2022-12-23 15:01:19", "pass_rate": "81.25"}, {"success": 7, "all": 16, "fail": 0, "skip": 0, "error": 9, "runtime": "4.59 S", "begin_time": "2022-12-23 15:03:33", "pass_rate": "43.75"}, {"success": 4, "all": 9, "fail": 1, "skip": 0, "error": 4, "runtime": "2.53 S", "begin_time": "2022-12-23 15:04:12", "pass_rate": "44.44"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "19.26 S", "begin_time": "2022-12-23 15:06:22", "pass_rate": "84.38"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "18.92 S", "begin_time": "2022-12-23 15:07:58", "pass_rate": "84.38"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "18.01 S", "begin_time": "2022-12-23 15:10:26", "pass_rate": "84.38"}, {"success": 28, "all": 32, "fail": 4, "skip": 0, "error": 0, "runtime": "19.33 S", "begin_time": "2022-12-23 15:31:35", "pass_rate": "87.50"}, {"success": 28, "all": 32, "fail": 4, "skip": 0, "error": 0, "runtime": "18.24 S", "begin_time": "2022-12-23 15:36:47", "pass_rate": "87.50"}, {"success": 29, "all": 32, "fail": 3, "skip": 0, "error": 0, "runtime": "21.94 S", "begin_time": "2022-12-23 16:20:37", "pass_rate": "90.62"}, {"success": 29, "all": 32, "fail": 3, "skip": 0, "error": 0, "runtime": "20.53 S", "begin_time": "2022-12-23 16:21:09", "pass_rate": "90.62"}, {"success": 31, "all": 32, "fail": 1, "skip": 0, "error": 0, "runtime": "19.00 S", "begin_time": "2022-12-23 16:25:20", "pass_rate": "96.88"}, {"success": 32, "all": 32, "fail": 0, "skip": 0, "error": 0, "runtime": "18.70 S", "begin_time": "2022-12-23 16:26:19", "pass_rate": "100.00"}, {"success": 32, "all": 32, "fail": 0, "skip": 0, "error": 0, "runtime": "18.82 S", "begin_time": "2022-12-23 16:43:23", "pass_rate": "100.00"}, {"success": 30, "all": 31, "fail": 0, "skip": 0, "error": 1, "runtime": "53.09 S", "begin_time": "2022-12-23 19:05:51", "pass_rate": "96.77"}, {"success": 31, "all": 31, "fail": 0, "skip": 0, "error": 0, "runtime": "18.21 S", "begin_time": "2022-12-23 19:09:09", "pass_rate": "100.00"}, {"success": 30, "all": 31, "fail": 1, "skip": 0, "error": 0, "runtime": "15.82 S", "begin_time": "2022-12-23 19:09:46", "pass_rate": "96.77"}, {"success": 3, "all": 3, "fail": 0, "skip": 0, "error": 0, "runtime": "1.54 S", "begin_time": "2022-12-24 17:34:33", "pass_rate": "100.00"}, {"success": 3, "all": 3, "fail": 0, "skip": 0, "error": 0, "runtime": "2.35 S", "begin_time": "2022-12-24 17:36:32", "pass_rate": "100.00"}, {"success": 5, "all": 5, "fail": 0, "skip": 0, "error": 0, "runtime": "8.45 S", "begin_time": "2022-12-24 20:26:29", "pass_rate": "100.00"}, {"success": 32, "all": 33, "fail": 1, "skip": 0, "error": 0, "runtime": "24.90 S", "begin_time": "2022-12-24 20:29:36", "pass_rate": "96.97"}, {"success": 33, "all": 33, "fail": 0, "skip": 0, "error": 0, "runtime": "24.88 S", "begin_time": "2022-12-24 20:30:36", "pass_rate": "100.00"}, {"success": 33, "all": 33, "fail": 0, "skip": 0, "error": 0, "runtime": "23.42 S", "begin_time": "2022-12-27 10:13:10", "pass_rate": "100.00"}, {"success": 1, "all": 1, "fail": 0, "skip": 0, "error": 0, "runtime": "3.69 S", "begin_time": "2022-12-27 11:04:21", "pass_rate": "100.00"}, {"success": 1, "all": 15, "fail": 0, "skip": 0, "error": 14, "runtime": "6.81 S", "begin_time": "2022-12-27 11:24:50", "pass_rate": "6.67"}, {"success": 7, "all": 15, "fail": 4, "skip": 0, "error": 4, "runtime": "6.84 S", "begin_time": "2022-12-27 11:29:52", "pass_rate": "46.67"}, {"success": 8, "all": 15, "fail": 5, "skip": 0, "error": 2, "runtime": "7.09 S", "begin_time": "2022-12-27 11:30:59", "pass_rate": "53.33"}, {"success": 9, "all": 15, "fail": 5, "skip": 0, "error": 1, "runtime": "7.83 S", "begin_time": "2022-12-27 11:35:03", "pass_rate": "60.00"}, {"success": 10, "all": 15, "fail": 5, "skip": 0, "error": 0, "runtime": "7.92 S", "begin_time": "2022-12-27 11:36:43", "pass_rate": "66.67"}, {"success": 10, "all": 15, "fail": 5, "skip": 0, "error": 0, "runtime": "7.43 S", "begin_time": "2022-12-27 11:38:30", "pass_rate": "66.67"}, {"success": 15, "all": 20, "fail": 5, "skip": 0, "error": 0, "runtime": "17.49 S", "begin_time": "2022-12-27 13:13:59", "pass_rate": "75.00"}, {"success": 15, "all": 20, "fail": 5, "skip": 0, "error": 0, "runtime": "18.16 S", "begin_time": "2022-12-27 13:14:25", "pass_rate": "75.00"}, {"success": 48, "all": 77, "fail": 10, "skip": 0, "error": 19, "runtime": "164.06 S", "begin_time": "2022-12-27 14:17:07", "pass_rate": "62.34"}, {"success": 48, "all": 77, "fail": 10, "skip": 0, "error": 19, "runtime": "34.83 S", "begin_time": "2022-12-27 14:27:15", "pass_rate": "62.34"}, {"success": 16, "all": 45, "fail": 8, "skip": 0, "error": 21, "runtime": "16.68 S", "begin_time": "2022-12-27 14:37:20", "pass_rate": "35.56"}, {"success": 4, "all": 14, "fail": 3, "skip": 0, "error": 7, "runtime": "4.64 S", "begin_time": "2022-12-27 14:38:18", "pass_rate": "28.57"}, {"success": 4, "all": 14, "fail": 3, "skip": 0, "error": 7, "runtime": "4.41 S", "begin_time": "2022-12-27 14:38:36", "pass_rate": "28.57"}, {"success": 5, "all": 14, "fail": 3, "skip": 0, "error": 6, "runtime": "4.97 S", "begin_time": "2022-12-27 14:40:10", "pass_rate": "35.71"}, {"success": 5, "all": 14, "fail": 4, "skip": 0, "error": 5, "runtime": "5.20 S", "begin_time": "2022-12-27 14:41:31", "pass_rate": "35.71"}, {"success": 5, "all": 14, "fail": 9, "skip": 0, "error": 0, "runtime": "6.57 S", "begin_time": "2022-12-27 14:43:50", "pass_rate": "35.71"}, {"success": 20, "all": 45, "fail": 13, "skip": 0, "error": 12, "runtime": "19.22 S", "begin_time": "2022-12-27 14:45:55", "pass_rate": "44.44"}, {"success": 1, "all": 13, "fail": 1, "skip": 0, "error": 11, "runtime": "3.10 S", "begin_time": "2022-12-27 14:48:00", "pass_rate": "7.69"}, {"success": 1, "all": 13, "fail": 1, "skip": 0, "error": 11, "runtime": "3.07 S", "begin_time": "2022-12-27 14:48:31", "pass_rate": "7.69"}, {"success": 2, "all": 13, "fail": 11, "skip": 0, "error": 0, "runtime": "6.09 S", "begin_time": "2022-12-27 14:49:43", "pass_rate": "15.38"}, {"success": 21, "all": 45, "fail": 24, "skip": 0, "error": 0, "runtime": "25.36 S", "begin_time": "2022-12-27 14:51:21", "pass_rate": "46.67"}, {"success": 51, "all": 77, "fail": 26, "skip": 0, "error": 0, "runtime": "39.21 S", "begin_time": "2022-12-27 14:52:13", "pass_rate": "66.23"}, {"success": 50, "all": 77, "fail": 26, "skip": 0, "error": 1, "runtime": "38.96 S", "begin_time": "2022-12-27 15:07:27", "pass_rate": "64.94"}, {"success": 51, "all": 77, "fail": 26, "skip": 0, "error": 0, "runtime": "79.21 S", "begin_time": "2022-12-27 15:10:37", "pass_rate": "66.23"}, {"success": 53, "all": 77, "fail": 24, "skip": 0, "error": 0, "runtime": "76.66 S", "begin_time": "2022-12-27 15:15:12", "pass_rate": "68.83"}, {"success": 54, "all": 77, "fail": 23, "skip": 0, "error": 0, "runtime": "61.72 S", "begin_time": "2022-12-27 15:17:59", "pass_rate": "70.13"}]
\ No newline at end of file
... ...
此 diff 太大无法显示。
... ... @@ -27,19 +27,19 @@ runner = TestRunner(suite=suite,
27 27 desc=conf.get("report", "desc"),
28 28 templates=conf.getint("report", "templates")
29 29 )
30   -runner.run()
  30 +# runner.run()
31 31 # 执行失败重新运行机制
32   -# runner.rerun_run(count=2, interval=3)
  32 +runner.rerun_run(count=2, interval=0.2)
33 33 """
34 34 发送邮件
35 35 """
36 36 # QQ邮箱SMTP服务器地址为“smtp.qq.com”
37 37 # 163邮箱smtp.163.com 465
38 38 # 阿里云smtp.qiye.aliyun.com 465
39   -# runner.send_email(host="smtp.qiye.aliyun.com",
40   -# port=465,
41   -# user="shishut@workai.com.cn",
42   -# password="mKh50p89DqvqJ7pd",
43   -# to_addrs=["shishut@workai.com.cn"]
44   -# # to_addrs=["shishut@workai.com.cn", "wangf@workai.com.cn"]
45   -# )
  39 +runner.send_email(host="smtp.qq.com",
  40 + port=465,
  41 + user="sst_0@foxmail.com",
  42 + password="mKh50p87pd",
  43 + to_addrs=["shishut@workai.com.cn"]
  44 + # to_addrs=["shishut@workai.com.cn", "wangf@workai.com.cn"]
  45 + )
... ...
... ... @@ -82,7 +82,7 @@ class Test01CTeacher(unittest.TestCase):
82 82 # ------判断教师身份证号
83 83 if "#idNumber#" in case["data"]:
84 84 case["data"] = case["data"].replace("#idNumber#", RandomIdentification().ran_end())
85   - # ------判断教师身份证号
  85 + # ------判断教师邮箱
86 86 if "#email#" in case["data"]:
87 87 case["data"] = case["data"].replace("#email#", RandomEmail.rand_email())
88 88 data = json.loads(case["data"])
... ... @@ -204,7 +204,7 @@ class Test02Class(unittest.TestCase):
204 204 # ==================实践课程相关的用例==================
205 205 @ddt
206 206 class Test03Course(unittest.TestCase):
207   - """班级相关"""
  207 + """时间课程相关"""
208 208 add_course = Excel(os.path.join(TeachingAffairs_path, "test_03_course.xlsx"), "add_course")
209 209 add_course_case = add_course.read_excel()
210 210
... ... @@ -290,13 +290,12 @@ class Test03Course(unittest.TestCase):
290 290 HandleLog.log.info("用例{},执行通过".format(case["title"]))
291 291
292 292
293   -'''
294   -# ==================实践学生相关的用例==================
  293 +# ==================学生相关的用例==================
295 294 @ddt
296   -class Test03Student(unittest.TestCase):
  295 +class Test04Student(unittest.TestCase):
297 296 """班级相关"""
298   - add_course = Excel(os.path.join(TeachingAffairs_path, "test_03_student.xlsx"), "add_course")
299   - add_course_case = add_course.read_excel()
  297 + add_student = Excel(os.path.join(TeachingAffairs_path, "test_03_student.xlsx"), "add_student")
  298 + add_student_case = add_student.read_excel()
300 299
301 300 # ====================================================================
302 301 # 新增学生
... ... @@ -310,7 +309,7 @@ class Test03Student(unittest.TestCase):
310 309 # 获取token
311 310 cls.token = LoginToken.login_token()
312 311
313   - # ---获取添加院系Excel表格
  312 + # ---获取添加学生Excel表格
314 313 select_department_excel = Excel(os.path.join(System_path, "test_02_department.xlsx"),
315 314 "select_department")
316 315 read_department_excel = select_department_excel.read_excel_location("C2")
... ... @@ -324,6 +323,13 @@ class Test03Student(unittest.TestCase):
324 323 specialty_list = SelectData(str(read_specialty_excel))
325 324 specialty_json = specialty_list.select_list()
326 325 cls.professionalId = jsonpath(specialty_json, "$..id")[0] # 获取专业id
  326 + # 获取查看班级id
  327 + select_class_excel = Excel(os.path.join(TeachingAffairs_path, "test_03_class.xlsx"),
  328 + "select_class")
  329 + read_class_excel = select_class_excel.read_excel_location("C2")
  330 + class_list = SelectData(str(read_class_excel))
  331 + class_json = class_list.select_list()
  332 + cls.classId = jsonpath(class_json, "$..id")[0] # 获取班级id
327 333 # 获取查看学期id
328 334 select_term_excel = Excel(os.path.join(System_path, "test_02_term.xlsx"),
329 335 "select_term")
... ... @@ -335,22 +341,32 @@ class Test03Student(unittest.TestCase):
335 341 def setUp(self):
336 342 """单条用例执行前执行的函数"""
337 343 new_time = time.strftime("%Y%m%d_%H:%M:%S")
338   - # 随机班级名称
339   - self.course_name = "py自动化课程" + new_time
  344 + # 随机学生名称
  345 + self.student_name = "py自动化学生" + new_time
  346 + # 随机学号
  347 + self.student_number = new_time
340 348
341   - @data(*add_course_case)
342   - def test_add_course_info(self, case):
  349 + @data(*add_student_case)
  350 + def test_add_student_info(self, case):
343 351 """新增课程用例"""
344 352 url = conf.get("url", "url_ip") + case["url"]
345 353 # 准备数据
346 354 if "#name#" in case["data"]:
347   - case["data"] = case["data"].replace("#name#", str(self.course_name + "_" + str(case["id"])))
  355 + case["data"] = case["data"].replace("#name#", str(self.student_name + "_" + str(case["id"]))) # 名称
  356 + if "#number#" in case["data"]:
  357 + case["data"] = case["data"].replace("#number#", str(self.student_number + "_" + str(case["id"]))) # 学号
  358 + if "#phone#" in case["data"]:
  359 + case["data"] = case["data"].replace("#phone#", RandomPhone.random_phone()) # 手机号
  360 + if "#classInfoId#" in case["data"]:
  361 + case["data"] = case["data"].replace("#classInfoId#", str(self.classId)) # 班级id
  362 + if "#IDNumber#" in case["data"]:
  363 + case["data"] = case["data"].replace("#IDNumber#", RandomIdentification().ran_end()) # 学生身份证号
  364 + if "#other#" in case["data"]:
  365 + case["data"] = case["data"].replace("#other#", RandomPhone.random_phone()) # 其他(备注)
348 366 if "#departmentId#" in case["data"]:
349   - case["data"] = case["data"].replace("#departmentId#", str(self.department_id))
  367 + case["data"] = case["data"].replace("#departmentId#", str(self.department_id)) # 院系id
350 368 if "#professionalId#" in case["data"]:
351   - case["data"] = case["data"].replace("#professionalId#", str(self.professionalId))
352   - if "#termIds#" in case["data"]:
353   - case["data"] = case["data"].replace("#termIds#", str(self.terms_id))
  369 + case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) # 专业id
354 370
355 371 data = json.loads(case["data"])
356 372 expected = json.loads(case["expected"])
... ... @@ -368,14 +384,13 @@ class Test03Student(unittest.TestCase):
368 384 self.assertEqual(expected['code'], res['code'])
369 385 except AssertionError as e:
370 386 # 写入Excel
371   - self.add_course.write_excel(row=case["id"] + 1, column=7, value="不通过")
  387 + self.add_student.write_excel(row=case["id"] + 1, column=7, value="不通过")
372 388 HandleLog.log.error("用例标题{},不通过".format(case['title']))
373 389 HandleLog.log.exception(e)
374 390 raise e
375 391 else:
376   - self.add_course.write_excel(row=case["id"] + 1, column=7, value="通过")
  392 + self.add_student.write_excel(row=case["id"] + 1, column=7, value="通过")
377 393 # 将创建使用的数据写入到excel表格中
378   - self.add_course.write_excel(row=case["id"] + 1, column=9,
379   - value=case["data"])
  394 + self.add_student.write_excel(row=case["id"] + 1, column=9,
  395 + value=case["data"])
380 396 HandleLog.log.info("用例{},执行通过".format(case["title"]))
381   -'''
... ...
注册登录 后发表评论