提交 9cadee9aebc7edfc1c3084a37d666fd04a21c8fb

作者 Shishutong
1 个父辈 676ef25a

版本:1.0.3

1.新增班级逻辑判断
2.新增实践课程逻辑判断
3.补充Excel-班级
4.补充Excel-实践课程
4.补充Excel-教师
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.1&#10;&#10;1.新增发送邮件">
5   - <change afterPath="$PROJECT_DIR$/data/system/test_02_specialty.xlsx" afterDir="false" />
6   - <change afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_class.xlsx" afterDir="false" />
7   - <change afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_teacher.xlsx" afterDir="false" />
  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" />
8 7 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
9   - <change beforePath="$PROJECT_DIR$/common/handle_excel.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/handle_excel.py" afterDir="false" />
  8 + <change beforePath="$PROJECT_DIR$/conf/config.ini" beforeDir="false" afterPath="$PROJECT_DIR$/conf/config.ini" afterDir="false" />
10 9 <change beforePath="$PROJECT_DIR$/data/system/test_02_department.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_department.xlsx" afterDir="false" />
11   - <change beforePath="$PROJECT_DIR$/data/system/test_03_specialty.xlsx" beforeDir="false" />
12   - <change beforePath="$PROJECT_DIR$/data/system/test_04_term.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_term.xlsx" afterDir="false" />
  10 + <change beforePath="$PROJECT_DIR$/data/system/test_02_specialty.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_specialty.xlsx" afterDir="false" />
  11 + <change beforePath="$PROJECT_DIR$/data/system/test_02_term.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_term.xlsx" afterDir="false" />
  12 + <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" />
  13 + <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" />
13 14 <change beforePath="$PROJECT_DIR$/data/test_01_login.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/test_01_login.xlsx" afterDir="false" />
14   - <change beforePath="$PROJECT_DIR$/logs/log.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/log.log" 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" />
15 18 <change beforePath="$PROJECT_DIR$/report/history.json" beforeDir="false" afterPath="$PROJECT_DIR$/report/history.json" afterDir="false" />
16 19 <change beforePath="$PROJECT_DIR$/report/report.html" beforeDir="false" afterPath="$PROJECT_DIR$/report/report.html" afterDir="false" />
17 20 <change beforePath="$PROJECT_DIR$/run.py" beforeDir="false" afterPath="$PROJECT_DIR$/run.py" afterDir="false" />
18   - <change beforePath="$PROJECT_DIR$/testcase/test_01_login.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_01_login.py" afterDir="false" />
19 21 <change beforePath="$PROJECT_DIR$/testcase/test_02_system_management.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_02_system_management.py" afterDir="false" />
20 22 <change beforePath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" afterDir="false" />
21 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" />
22 25 </list>
23 26 <option name="SHOW_DIALOG" value="false" />
24 27 <option name="HIGHLIGHT_CONFLICTS" value="true" />
... ... @@ -44,12 +47,6 @@
44 47 </option>
45 48 </component>
46 49 <component name="Git.Settings">
47   - <option name="PUSH_TAGS">
48   - <GitPushTagMode>
49   - <option name="argument" value="--tags" />
50   - <option name="title" value="All" />
51   - </GitPushTagMode>
52   - </option>
53 50 <option name="RECENT_BRANCH_BY_REPOSITORY">
54 51 <map>
55 52 <entry key="$PROJECT_DIR$" value="master" />
... ... @@ -168,16 +165,16 @@
168 165 </configuration>
169 166 <list>
170 167 <item itemvalue="Python.run" />
171   - <item itemvalue="Python tests.Unittests in test_02_system_management.py" />
172   - <item itemvalue="Python tests.Unittests in test_01_login.py" />
173 168 <item itemvalue="Python.fixture (1)" />
174 169 <item itemvalue="Python tests.Unittests in test_03_teaching_affairs.py" />
  170 + <item itemvalue="Python tests.Unittests in test_02_system_management.py" />
  171 + <item itemvalue="Python tests.Unittests in test_01_login.py" />
175 172 </list>
176 173 <recent_temporary>
177 174 <list>
178 175 <item itemvalue="Python.run" />
179   - <item itemvalue="Python tests.Unittests in test_02_system_management.py" />
180 176 <item itemvalue="Python tests.Unittests in test_03_teaching_affairs.py" />
  177 + <item itemvalue="Python tests.Unittests in test_02_system_management.py" />
181 178 <item itemvalue="Python.fixture (1)" />
182 179 <item itemvalue="Python tests.Unittests in test_01_login.py" />
183 180 </list>
... ... @@ -197,7 +194,8 @@
197 194 <workItem from="1671612580435" duration="100000" />
198 195 <workItem from="1671612709033" duration="18069000" />
199 196 <workItem from="1671637473856" duration="5050000" />
200   - <workItem from="1671683905863" duration="21393000" />
  197 + <workItem from="1671683905863" duration="32432000" />
  198 + <workItem from="1671858161931" duration="13359000" />
201 199 </task>
202 200 <task id="LOCAL-00001" summary="1.0.0&#10;首次提交">
203 201 <created>1671544396986</created>
... ... @@ -220,7 +218,14 @@
220 218 <option name="project" value="LOCAL" />
221 219 <updated>1671638407457</updated>
222 220 </task>
223   - <option name="localTasksCounter" value="4" />
  221 + <task id="LOCAL-00004" summary="1.0.2&#10;1.新增的专业与新增的院系id做关联&#10;2。新增教师用例&#10;3。已知bug优化">
  222 + <created>1671721946433</created>
  223 + <option name="number" value="00004" />
  224 + <option name="presentableId" value="LOCAL-00004" />
  225 + <option name="project" value="LOCAL" />
  226 + <updated>1671721946433</updated>
  227 + </task>
  228 + <option name="localTasksCounter" value="5" />
224 229 <servers />
225 230 </component>
226 231 <component name="TypeScriptGeneratedFilesManager">
... ... @@ -254,19 +259,20 @@
254 259 <MESSAGE value="1.0.0&#10;首次提交" />
255 260 <MESSAGE value="1.0.1&#10;&#10;1.新增fixture.py&#10;2.新增查看院系接口测试用例&#10;4.新增整理Excel表格数据入参问题&#10;3.代码优化" />
256 261 <MESSAGE value="1.0.1&#10;&#10;1.新增发送邮件" />
257   - <option name="LAST_COMMIT_MESSAGE" value="1.0.1&#10;&#10;1.新增发送邮件" />
  262 + <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优化" />
258 264 </component>
259 265 <component name="XDebuggerManager">
260 266 <breakpoint-manager>
261 267 <breakpoints>
262 268 <line-breakpoint suspend="THREAD" type="python-line">
263 269 <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url>
264   - <line>148</line>
  270 + <line>147</line>
265 271 <option name="timeStamp" value="5" />
266 272 </line-breakpoint>
267 273 <line-breakpoint suspend="THREAD" type="python-line">
268 274 <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url>
269   - <line>184</line>
  275 + <line>183</line>
270 276 <option name="timeStamp" value="10" />
271 277 </line-breakpoint>
272 278 <line-breakpoint suspend="THREAD" type="python-line">
... ... @@ -289,31 +295,41 @@
289 295 <line>37</line>
290 296 <option name="timeStamp" value="14" />
291 297 </line-breakpoint>
292   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
293   - <url>file://$PROJECT_DIR$/tools/fixture.py</url>
294   - <line>31</line>
295   - <option name="timeStamp" value="16" />
296   - </line-breakpoint>
297   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
298   - <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url>
299   - <line>90</line>
300   - <option name="timeStamp" value="22" />
301   - </line-breakpoint>
302   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  298 + <line-breakpoint suspend="THREAD" type="python-line">
303 299 <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url>
304   - <line>107</line>
  300 + <line>108</line>
305 301 <option name="timeStamp" value="23" />
306 302 </line-breakpoint>
307   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  303 + <line-breakpoint suspend="THREAD" type="python-line">
308 304 <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url>
309   - <line>178</line>
  305 + <line>177</line>
310 306 <option name="timeStamp" value="24" />
311 307 </line-breakpoint>
312   - <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  308 + <line-breakpoint suspend="THREAD" type="python-line">
313 309 <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url>
314   - <line>176</line>
  310 + <line>175</line>
315 311 <option name="timeStamp" value="25" />
316 312 </line-breakpoint>
  313 + <line-breakpoint suspend="THREAD" type="python-line">
  314 + <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url>
  315 + <line>258</line>
  316 + <option name="timeStamp" value="26" />
  317 + </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">
  324 + <url>file://$PROJECT_DIR$/tools/fixture.py</url>
  325 + <line>28</line>
  326 + <option name="timeStamp" value="33" />
  327 + </line-breakpoint>
  328 + <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
  329 + <url>file://$PROJECT_DIR$/tools/fixture.py</url>
  330 + <line>35</line>
  331 + <option name="timeStamp" value="34" />
  332 + </line-breakpoint>
317 333 </breakpoints>
318 334 <default-breakpoints>
319 335 <breakpoint type="python-exception">
... ... @@ -326,12 +342,12 @@
326 342 </component>
327 343 <component name="com.intellij.coverage.CoverageDataManagerImpl">
328 344 <SUITE FILE_PATH="coverage/yxly$fixture__1_.coverage" NAME="fixture (1) Coverage Results" MODIFIED="1671721079921" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" />
329   - <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_02_system_management_py.coverage" NAME="Unittests in test_02_system_management.py Coverage Results" MODIFIED="1671721675550" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" />
  345 + <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_02_system_management_py.coverage" NAME="Unittests in test_02_system_management.py Coverage Results" MODIFIED="1671781789426" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" />
330 346 <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" />
331 347 <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" />
332 348 <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" />
333   - <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_03_teaching_affairs_py.coverage" NAME="Unittests in test_03_teaching_affairs.py Coverage Results" MODIFIED="1671721363914" 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" />
334 350 <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" />
335   - <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1671721748026" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
  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$" />
336 352 </component>
337 353 </project>
\ No newline at end of file
... ...
... ... @@ -4,6 +4,7 @@
4 4 [url]
5 5 ;测试环境
6 6 url_ip = http://47.110.250.177:8000
  7 +;url_ip = https://api-isx.workai.com.cn
7 8 login_token = {"Authorization": "Basic"+" "+"d29ya2FpOjEyMzQ1Ng=="}
8 9
9 10
... ...
... ... @@ -45,9 +45,20 @@ testcase:测试用例
45 45 > 3.签章管理
46 46 >
47 47 > 4.模版库
48   ->
  48 +#### 三.test_03_teaching_affairs.py: 实习教务管理用例
  49 +>1.学生信息管理
  50 +>
  51 +> 2.教职员工管理
  52 +>
  53 +> 3.班级管理
  54 +>
  55 +> 4.实践课程管理
  56 +>
49 57 tools:工具
50 58 ----------
  59 +>1.fixture: 获取json数据
  60 +>
  61 +>2.handle_token: 登陆获取token
51 62
52 63 run.py:运行文件
53 64 ----------
... ...
此 diff 太大无法显示。
此 diff 太大无法显示。
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"}]
\ 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
... ...
... ... @@ -156,15 +156,15 @@
156 156 </li>
157 157 <li class="list-group-item">
158 158 <button type="button" class="btn btn-success">开始时间</button>
159   - <span class="text-dark">2022-12-22 23:09:09</span>
  159 + <span class="text-dark">2022-12-24 20:30:36</span>
160 160 </li>
161 161 <li class="list-group-item">
162 162 <button type="button" class="btn btn-success">执行时间</button>
163   - <span class="text-dark">15.15 S</span>
  163 + <span class="text-dark">24.88 S</span>
164 164 </li>
165 165 <li class="list-group-item">
166 166 <button type="button" class="btn btn-success">用例总数</button>
167   - <span class="text-dark">26</span>
  167 + <span class="text-dark">33</span>
168 168 </li>
169 169
170 170
... ... @@ -175,11 +175,11 @@
175 175
176 176 <li class="list-group-item">
177 177 <button type="button" class="btn btn-success">成功用例</button>
178   - <span class="text-success">10</span>
  178 + <span class="text-success">33</span>
179 179 </li>
180 180 <li class="list-group-item">
181 181 <button type="button" class="btn btn-warning">失败用例</button>
182   - <span class="text-warning">16</span>
  182 + <span class="text-warning">0</span>
183 183 </li>
184 184 <li class="list-group-item">
185 185 <button type="button" class="btn btn-danger">错误用例</button>
... ... @@ -225,9 +225,11 @@
225 225 <select id="testClass">
226 226 <option>所有</option>
227 227
  228 + <option>Test03Course</option>
  229 +
228 230 <option>TestLogin</option>
229 231
230   - <option>Test01CTeacher</option>
  232 + <option>Test02Class</option>
231 233
232 234 <option>Test02Specialty</option>
233 235
... ... @@ -235,6 +237,8 @@
235 237
236 238 <option>Test03Year</option>
237 239
  240 + <option>Test01CTeacher</option>
  241 +
238 242 </select>
239 243
240 244 </th>
... ... @@ -264,7 +268,7 @@
264 268 <td class="TestLogin">TestLogin</td>
265 269 <td>test_login_1</td>
266 270 <td>登陆成功</td>
267   - <td>0.522s</td>
  271 + <td>0.411s</td>
268 272
269 273 <td class="text-success">成功</td>
270 274
... ... @@ -280,7 +284,7 @@
280 284
281 285 <pre>用例入参:{'way': 'name', 'password': 'f85eea0e15e424aba8675f8848e2cb83', 'type': 'teacher', 'username': '17301249975'}
282 286 预期结果:{'msg': 'success', 'code': 200}
283   -实际结果:{'msg': 'success', 'code': 200, 'data': {'access_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRUeXBlIjoiIiwiYnJva2VySWQiOiIiLCJocm9Vc2VyVG9rZW4iOm51bGwsInVzZXJfbmFtZSI6IjE3MzAxMjQ5OTc1IiwiYXV0aFN0YXR1cyI6IiIsImF1dGhlbnRpY2F0aW9uSWRlbnRpdHkiOiJsb2dpbiIsInR5cGUiOiJ0ZWFjaGVyIiwidXNlcklkIjoiMTUxOTk1OTIwODUyOTg2Njc1MyIsImNsaWVudF9pZCI6IndvcmthaSIsInN0dWRlbnRJZCI6IiIsInRlYWNoZXJJZCI6IjE1MTk5NTkyMDkyNzY0NTI4NjUiLCJ0ZW5hbnROYW1lIjoiIiwicGhvbmUiOiIxNzMwMTI0OTk3NSIsInNjb3BlIjpbImFsbCJdLCJzY2hvb2xJZCI6IjE1MTk5NTg1NjYxMzAyNTc5MjIiLCJ0ZW5hbnRJZCI6IiIsIm5hbWUiOiLmoKHplb8iLCJzdHVkZW50U3RhdHVzIjoiIiwiZXhwIjoxNjcxNzU3NzQ5LCJzY2hvb2xOYW1lIjoi5rWL6K-V5aSn5a2mIiwianRpIjoiMDliZGY3YmItMjQ1OS00MzFkLWJkMjctYzlkNDAzZDJmNWU5Iiwic3RhdHVzIjoiYWN0aXZlIn0.SL0fKv0hKIY0754w_Ms-mcQeTyWntEiDqsblj6HqGluYqdNO8gpGp2cuA-k0LqgtUNpYHoWzHtwkUyEJ8qJW8XZl0cTZQwJxnPcQYHyug-YcNn9lBumeKd-NnmgPDvAZYW81IYYugNRYxExn9pTmscFAe3z6sLLwg8XDnXYGOoGtMQ8bbcjc-CAmB0Ppb9Pmy_hF2rSvAfKgtqM59bxJT3yEKePY4LLXTSBWty-aGvuvnyGRN2yrQt4-N0hrGHtk9ZjsFCCOxaZuWQotJDOc8hMCh4YGhVvfuAvT-Z8uxIfiJj7vx4aR88zq3SDUae3zWsbPzQ4dUN5d7pBIK71Q7w', 'token_type': 'bearer', 'refresh_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRUeXBlIjoiIiwiYnJva2VySWQiOiIiLCJocm9Vc2VyVG9rZW4iOm51bGwsInVzZXJfbmFtZSI6IjE3MzAxMjQ5OTc1IiwiYXV0aFN0YXR1cyI6IiIsImF1dGhlbnRpY2F0aW9uSWRlbnRpdHkiOiJsb2dpbiIsInR5cGUiOiJ0ZWFjaGVyIiwidXNlcklkIjoiMTUxOTk1OTIwODUyOTg2Njc1MyIsImNsaWVudF9pZCI6IndvcmthaSIsInN0dWRlbnRJZCI6IiIsInRlYWNoZXJJZCI6IjE1MTk5NTkyMDkyNzY0NTI4NjUiLCJ0ZW5hbnROYW1lIjoiIiwicGhvbmUiOiIxNzMwMTI0OTk3NSIsInNjb3BlIjpbImFsbCJdLCJzY2hvb2xJZCI6IjE1MTk5NTg1NjYxMzAyNTc5MjIiLCJhdGkiOiIwOWJkZjdiYi0yNDU5LTQzMWQtYmQyNy1jOWQ0MDNkMmY1ZTkiLCJ0ZW5hbnRJZCI6IiIsIm5hbWUiOiLmoKHplb8iLCJzdHVkZW50U3RhdHVzIjoiIiwiZXhwIjoxNjcxNzkzNzQ5LCJzY2hvb2xOYW1lIjoi5rWL6K-V5aSn5a2mIiwianRpIjoiYzk5ZDRmOTktZmNmMS00YzkyLThmMmQtYTRmY2JjYjAyMjE2Iiwic3RhdHVzIjoiYWN0aXZlIn0.WAYJK0CJtF1lJZcU4APZMllGn7mL5UKWKAgQEHbmbleGw2vcC8_mG0l1UkYqa2FCJ20AjLuLwEeo2LctfXecSnkuEegTV4_uICr1Uay4EjSCfvQYc4co-ztGPczBiNvHbW3SqMJ8XSOEtDilJPTaHti28Fb9gYwUdhki11rpnqFZkrx900gkr57WqA20VB2yEtQc1OG8Eb64FLqsC-2YURzz4yoCmxlCIo3t6b49YyuLJOoHTgY7lwPKyVdH9IleICPeUYsHSF0rCh3sYKfKkmKOLODhXDZynRaf0nHUr9nC8y0fVhKpD3N_6-RI563UCc9KUFyX8qEE0e3CiwrW8Q', 'expires_in': 35999, 'scope': 'all', 'tenantType': '', 'brokerId': '', 'hroUserToken': None, 'authStatus': '', 'authenticationIdentity': 'login', 'type': 'teacher', 'userId': '1519959208529866753', 'studentId': '', 'teacherId': '1519959209276452865', 'tenantName': '', 'phone': '17301249975', 'schoolId': '1519958566130257922', 'tenantId': '', 'name': '校长', 'studentStatus': '', 'schoolName': '测试大学', 'status': 'active', 'jti': '09bdf7bb-2459-431d-bd27-c9d403d2f5e9'}}
  287 +实际结果:{'msg': 'success', 'code': 200, 'data': {'access_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRUeXBlIjoiIiwiYnJva2VySWQiOiIiLCJocm9Vc2VyVG9rZW4iOm51bGwsInVzZXJfbmFtZSI6IjE3MzAxMjQ5OTc1IiwiYXV0aFN0YXR1cyI6IiIsImF1dGhlbnRpY2F0aW9uSWRlbnRpdHkiOiJsb2dpbiIsInR5cGUiOiJ0ZWFjaGVyIiwidXNlcklkIjoiMTUxOTk1OTIwODUyOTg2Njc1MyIsImNsaWVudF9pZCI6IndvcmthaSIsInN0dWRlbnRJZCI6IiIsInRlYWNoZXJJZCI6IjE1MTk5NTkyMDkyNzY0NTI4NjUiLCJ0ZW5hbnROYW1lIjoiIiwicGhvbmUiOiIxNzMwMTI0OTk3NSIsInNjb3BlIjpbImFsbCJdLCJzY2hvb2xJZCI6IjE1MTk5NTg1NjYxMzAyNTc5MjIiLCJ0ZW5hbnRJZCI6IiIsIm5hbWUiOiLmoKHplb8iLCJzdHVkZW50U3RhdHVzIjoiIiwiZXhwIjoxNjcxOTIxMDM3LCJzY2hvb2xOYW1lIjoi5rWL6K-V5aSn5a2mIiwianRpIjoiYmIxMjY3NWUtMWQ5NS00MzNjLThiY2UtNzI3Y2NiMjRiZGU5Iiwic3RhdHVzIjoiYWN0aXZlIn0.J68PkXm2fCncaIUm6bHn8vy5KS2F4NZVpqa3CV4enlJk_S7fcxlVykSDmWytmed_wO48cIPh25BCsRz3ZxrGebyYCUtTSQlywoMsOSJuu60MH0SKShu2FYxPHqfltGd09SRhQ53iXs7dS4FBB-eBqtvEatxUk3oCLTVmxvjGkvuf8mmdLodBarvi__5nGvZY10HV1AB5X30mZGQKKm2jSYdPVSrKzTXkq7dHqcnq9G3hT5t2JYpPxz9WRTuki47CL8mp8rT9cO8x1rNmn6ujRArUWJy9VevIzBrZx_ntz2alhWTHRUvKhVmTQ8PxxH-ci7bUe0qj46uI-GzeOsro2w', 'token_type': 'bearer', 'refresh_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRUeXBlIjoiIiwiYnJva2VySWQiOiIiLCJocm9Vc2VyVG9rZW4iOm51bGwsInVzZXJfbmFtZSI6IjE3MzAxMjQ5OTc1IiwiYXV0aFN0YXR1cyI6IiIsImF1dGhlbnRpY2F0aW9uSWRlbnRpdHkiOiJsb2dpbiIsInR5cGUiOiJ0ZWFjaGVyIiwidXNlcklkIjoiMTUxOTk1OTIwODUyOTg2Njc1MyIsImNsaWVudF9pZCI6IndvcmthaSIsInN0dWRlbnRJZCI6IiIsInRlYWNoZXJJZCI6IjE1MTk5NTkyMDkyNzY0NTI4NjUiLCJ0ZW5hbnROYW1lIjoiIiwicGhvbmUiOiIxNzMwMTI0OTk3NSIsInNjb3BlIjpbImFsbCJdLCJzY2hvb2xJZCI6IjE1MTk5NTg1NjYxMzAyNTc5MjIiLCJhdGkiOiJiYjEyNjc1ZS0xZDk1LTQzM2MtOGJjZS03MjdjY2IyNGJkZTkiLCJ0ZW5hbnRJZCI6IiIsIm5hbWUiOiLmoKHplb8iLCJzdHVkZW50U3RhdHVzIjoiIiwiZXhwIjoxNjcxOTU3MDM3LCJzY2hvb2xOYW1lIjoi5rWL6K-V5aSn5a2mIiwianRpIjoiYjZiYTlhN2ItZDA3NS00Njk1LTllMTItOWVhMWJjMTQwNTJhIiwic3RhdHVzIjoiYWN0aXZlIn0.UAdfMPkTUyNtAtPtPftd2Cyt27K0zdouMIq_OS84o4hsxPtlRRigakiSUcLqbzau6O70K4qaGdT5OlRlw1LtHsU_xlLMmz8rFDxE3BxElh89o5gAFZRsPTR4hmpLnjupuOZNTpcUaH51b2yEH9w9-yJZcJjy1lE9Sc8r0qIge1Dgw6J41pfqAmCiegeDgE2fgiqC1aWtjXpuHlHkIg2Wfvz30iGC7LZgivxhuOvWkK4dnSHxnzcO6gm3K1QGlMhB-8F4S92ZzF8Ngj294sKOohW133uV43m6x2LKI-n0ds9YknBxC-gLV0-oxZtRmSKK_yWbOFwKc24wnPltIwEi5w', 'expires_in': 35999, 'scope': 'all', 'tenantType': '', 'brokerId': '', 'hroUserToken': None, 'authStatus': '', 'authenticationIdentity': 'login', 'type': 'teacher', 'userId': '1519959208529866753', 'studentId': '', 'teacherId': '1519959209276452865', 'tenantName': '', 'phone': '17301249975', 'schoolId': '1519958566130257922', 'tenantId': '', 'name': '校长', 'studentStatus': '', 'schoolName': '测试大学', 'status': 'active', 'jti': 'bb12675e-1d95-433c-8bce-727ccb24bde9'}}
284 288 test_login_1 (test_01_login.TestLogin)执行——>【通过】
285 289 </pre>
286 290
... ... @@ -293,9 +297,9 @@ test_login_1 (test_01_login.TestLogin)銵>
293 297 <td class="TestLogin">TestLogin</td>
294 298 <td>test_login_2</td>
295 299 <td>手机号填写错误的</td>
296   - <td>0.22s</td>
  300 + <td>0.267s</td>
297 301
298   - <td class="text-warning">失败</td>
  302 + <td class="text-success">成功</td>
299 303
300 304 <td>
301 305 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -307,61 +311,10 @@ test_login_1 (test_01_login.TestLogin)銵>
307 311 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
308 312
309 313
310   - <pre>用例入参:{'username': '17301149975', 'password': 'f85eea0e15e424aba8675f8848e2cb83', 'type': 'teacher'}
  314 + <pre>用例入参:{'way': 'name', 'username': '17301149975', 'password': 'f85eea0e15e424aba8675f8848e2cb83', 'type': 'teacher'}
311 315 预期结果:{'code': 500, 'data': None, 'msg': '用户不存在'}
312   -实际结果:{'code': 500, 'data': None, 'msg': '参数不正确'}
313   -test_login_2 (test_01_login.TestLogin)执行——>【失败】
314   -</pre>
315   -
316   -
317   - <pre>Traceback (most recent call last):
318   -</pre>
319   -
320   -
321   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
322   - yield
323   -</pre>
324   -
325   -
326   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
327   - testMethod()
328   -</pre>
329   -
330   -
331   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
332   - return func(self, *args, **kwargs)
333   -</pre>
334   -
335   -
336   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_01_login.py", line 57, in test_login
337   - raise e
338   -</pre>
339   -
340   -
341   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_01_login.py", line 49, in test_login
342   - self.assertEqual(expected['msg'], res['msg'])
343   -</pre>
344   -
345   -
346   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
347   - assertion_func(first, second, msg=msg)
348   -</pre>
349   -
350   -
351   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
352   - self.fail(self._formatMessage(msg, standardMsg))
353   -</pre>
354   -
355   -
356   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
357   - raise self.failureException(msg)
358   -</pre>
359   -
360   -
361   - <pre>AssertionError: '用户不存在' != '参数不正确'
362   -- 用户不存在
363   -+ 参数不正确
364   -
  316 +实际结果:{'code': 500, 'data': None, 'msg': '用户不存在'}
  317 +test_login_2 (test_01_login.TestLogin)执行——>【通过】
365 318 </pre>
366 319
367 320
... ... @@ -373,9 +326,9 @@ test_login_2 (test_01_login.TestLogin)銵>仃韐乓
373 326 <td class="TestLogin">TestLogin</td>
374 327 <td>test_login_3</td>
375 328 <td>手机号不进行填写</td>
376   - <td>0.214s</td>
  329 + <td>0.239s</td>
377 330
378   - <td class="text-warning">失败</td>
  331 + <td class="text-success">成功</td>
379 332
380 333 <td>
381 334 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -387,61 +340,10 @@ test_login_2 (test_01_login.TestLogin)銵>仃韐乓
387 340 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
388 341
389 342
390   - <pre>用例入参:{'username': '', 'password': 'f85eea0e15e424aba8675f8848e2cb83', 'type': 'teacher'}
  343 + <pre>用例入参:{'way': 'name', 'username': '', 'password': 'f85eea0e15e424aba8675f8848e2cb83', 'type': 'teacher'}
391 344 预期结果:{'code': 500, 'data': None, 'msg': '用户名和密码不能为空'}
392   -实际结果:{'code': 500, 'data': None, 'msg': '参数不正确'}
393   -test_login_3 (test_01_login.TestLogin)执行——>【失败】
394   -</pre>
395   -
396   -
397   - <pre>Traceback (most recent call last):
398   -</pre>
399   -
400   -
401   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
402   - yield
403   -</pre>
404   -
405   -
406   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
407   - testMethod()
408   -</pre>
409   -
410   -
411   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
412   - return func(self, *args, **kwargs)
413   -</pre>
414   -
415   -
416   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_01_login.py", line 57, in test_login
417   - raise e
418   -</pre>
419   -
420   -
421   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_01_login.py", line 49, in test_login
422   - self.assertEqual(expected['msg'], res['msg'])
423   -</pre>
424   -
425   -
426   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
427   - assertion_func(first, second, msg=msg)
428   -</pre>
429   -
430   -
431   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
432   - self.fail(self._formatMessage(msg, standardMsg))
433   -</pre>
434   -
435   -
436   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
437   - raise self.failureException(msg)
438   -</pre>
439   -
440   -
441   - <pre>AssertionError: '用户名和密码不能为空' != '参数不正确'
442   -- 用户名和密码不能为空
443   -+ 参数不正确
444   -
  345 +实际结果:{'code': 500, 'data': None, 'msg': '用户名和密码不能为空'}
  346 +test_login_3 (test_01_login.TestLogin)执行——>【通过】
445 347 </pre>
446 348
447 349
... ... @@ -453,9 +355,9 @@ test_login_3 (test_01_login.TestLogin)銵>仃韐乓
453 355 <td class="TestLogin">TestLogin</td>
454 356 <td>test_login_4</td>
455 357 <td>密码填写错误</td>
456   - <td>0.199s</td>
  358 + <td>0.355s</td>
457 359
458   - <td class="text-warning">失败</td>
  360 + <td class="text-success">成功</td>
459 361
460 362 <td>
461 363 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -467,61 +369,10 @@ test_login_3 (test_01_login.TestLogin)銵>仃韐乓
467 369 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
468 370
469 371
470   - <pre>用例入参:{'username': '17301249975', 'password': 'f85eea0e115e424aba8675f8848e2cb83', 'type': 'teacher'}
  372 + <pre>用例入参:{'way': 'name', 'username': '17301249975', 'password': 'f85eea0e115e424aba8675f8848e2cb83', 'type': 'teacher'}
471 373 预期结果:{'code': 500, 'data': None, 'msg': '密码不正确'}
472   -实际结果:{'code': 500, 'data': None, 'msg': '参数不正确'}
473   -test_login_4 (test_01_login.TestLogin)执行——>【失败】
474   -</pre>
475   -
476   -
477   - <pre>Traceback (most recent call last):
478   -</pre>
479   -
480   -
481   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
482   - yield
483   -</pre>
484   -
485   -
486   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
487   - testMethod()
488   -</pre>
489   -
490   -
491   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
492   - return func(self, *args, **kwargs)
493   -</pre>
494   -
495   -
496   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_01_login.py", line 57, in test_login
497   - raise e
498   -</pre>
499   -
500   -
501   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_01_login.py", line 49, in test_login
502   - self.assertEqual(expected['msg'], res['msg'])
503   -</pre>
504   -
505   -
506   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
507   - assertion_func(first, second, msg=msg)
508   -</pre>
509   -
510   -
511   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
512   - self.fail(self._formatMessage(msg, standardMsg))
513   -</pre>
514   -
515   -
516   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
517   - raise self.failureException(msg)
518   -</pre>
519   -
520   -
521   - <pre>AssertionError: '密码不正确' != '参数不正确'
522   -- 密码不正确
523   -+ 参数不正确
524   -
  374 +实际结果:{'code': 500, 'data': None, 'msg': '密码不正确'}
  375 +test_login_4 (test_01_login.TestLogin)执行——>【通过】
525 376 </pre>
526 377
527 378
... ... @@ -533,9 +384,9 @@ test_login_4 (test_01_login.TestLogin)銵>仃韐乓
533 384 <td class="TestLogin">TestLogin</td>
534 385 <td>test_login_5</td>
535 386 <td>密码不进行填写</td>
536   - <td>0.217s</td>
  387 + <td>0.243s</td>
537 388
538   - <td class="text-warning">失败</td>
  389 + <td class="text-success">成功</td>
539 390
540 391 <td>
541 392 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -547,61 +398,10 @@ test_login_4 (test_01_login.TestLogin)銵>仃韐乓
547 398 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
548 399
549 400
550   - <pre>用例入参:{'username': '17301249975', 'password': '', 'type': 'teacher'}
  401 + <pre>用例入参:{'way': 'name', 'username': '17301249975', 'password': '', 'type': 'teacher'}
551 402 预期结果:{'code': 500, 'data': None, 'msg': '用户名和密码不能为空'}
552   -实际结果:{'code': 500, 'data': None, 'msg': '参数不正确'}
553   -test_login_5 (test_01_login.TestLogin)执行——>【失败】
554   -</pre>
555   -
556   -
557   - <pre>Traceback (most recent call last):
558   -</pre>
559   -
560   -
561   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
562   - yield
563   -</pre>
564   -
565   -
566   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
567   - testMethod()
568   -</pre>
569   -
570   -
571   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
572   - return func(self, *args, **kwargs)
573   -</pre>
574   -
575   -
576   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_01_login.py", line 57, in test_login
577   - raise e
578   -</pre>
579   -
580   -
581   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_01_login.py", line 49, in test_login
582   - self.assertEqual(expected['msg'], res['msg'])
583   -</pre>
584   -
585   -
586   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
587   - assertion_func(first, second, msg=msg)
588   -</pre>
589   -
590   -
591   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
592   - self.fail(self._formatMessage(msg, standardMsg))
593   -</pre>
594   -
595   -
596   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
597   - raise self.failureException(msg)
598   -</pre>
599   -
600   -
601   - <pre>AssertionError: '用户名和密码不能为空' != '参数不正确'
602   -- 用户名和密码不能为空
603   -+ 参数不正确
604   -
  403 +实际结果:{'code': 500, 'data': None, 'msg': '用户名和密码不能为空'}
  404 +test_login_5 (test_01_login.TestLogin)执行——>【通过】
605 405 </pre>
606 406
607 407
... ... @@ -613,7 +413,7 @@ test_login_5 (test_01_login.TestLogin)銵>仃韐乓
613 413 <td class="Test01Department">Test01Department</td>
614 414 <td>test_add_department_1</td>
615 415 <td>新增院系成功</td>
616   - <td>0.275s</td>
  416 + <td>0.306s</td>
617 417
618 418 <td class="text-success">成功</td>
619 419
... ... @@ -627,7 +427,7 @@ test_login_5 (test_01_login.TestLogin)銵>仃韐乓
627 427 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
628 428
629 429
630   - <pre>用例入参:{'name': 'py自动化院系20221222_23:09:11_1', 'code': 'py_code20221222_23:09:11_1'}
  430 + <pre>用例入参:{'name': 'py自动化院系20221224_20:30:38_1', 'code': 'py_code20221224_20:30:38_1'}
631 431 预期结果: {'msg': 'success', 'code': 200, 'data': True}
632 432 实际结果: {'msg': 'success', 'code': 200, 'data': True}
633 433 test_add_department_1 (test_02_system_management.Test01Department)执行——>【通过】
... ... @@ -642,9 +442,9 @@ test_add_department_1 (test_02_system_management.Test01Department)銵>
642 442 <td class="Test01Department">Test01Department</td>
643 443 <td>test_add_department_2</td>
644 444 <td>院系名称未填写</td>
645   - <td>0.225s</td>
  445 + <td>0.306s</td>
646 446
647   - <td class="text-warning">失败</td>
  447 + <td class="text-success">成功</td>
648 448
649 449 <td>
650 450 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -656,61 +456,10 @@ test_add_department_1 (test_02_system_management.Test01Department)銵>
656 456 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
657 457
658 458
659   - <pre>用例入参:{'name': '', 'code': 'py_code20221222_23:09:11_2'}
660   -预期结果: {'msg': '院系名称未填写', 'code': 500, 'data': None}
661   -实际结果: {'msg': 'size must be between 1 and 30', 'code': 500, 'data': None}
662   -test_add_department_2 (test_02_system_management.Test01Department)执行——>【失败】
663   -</pre>
664   -
665   -
666   - <pre>Traceback (most recent call last):
667   -</pre>
668   -
669   -
670   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
671   - yield
672   -</pre>
673   -
674   -
675   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
676   - testMethod()
677   -</pre>
678   -
679   -
680   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
681   - return func(self, *args, **kwargs)
682   -</pre>
683   -
684   -
685   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 92, in test_add_department
686   - raise e
687   -</pre>
688   -
689   -
690   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 85, in test_add_department
691   - self.assertEqual(expected['msg'], res['msg'])
692   -</pre>
693   -
694   -
695   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
696   - assertion_func(first, second, msg=msg)
697   -</pre>
698   -
699   -
700   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
701   - self.fail(self._formatMessage(msg, standardMsg))
702   -</pre>
703   -
704   -
705   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
706   - raise self.failureException(msg)
707   -</pre>
708   -
709   -
710   - <pre>AssertionError: '院系名称未填写' != 'size must be between 1 and 30'
711   -- 院系名称未填写
712   -+ size must be between 1 and 30
713   -
  459 + <pre>用例入参:{'name': '', 'code': 'py_code20221224_20:30:39_2'}
  460 +预期结果: {'msg': '院系名称不能为空', 'code': 500, 'data': None}
  461 +实际结果: {'msg': '院系名称不能为空', 'code': 500, 'data': None}
  462 +test_add_department_2 (test_02_system_management.Test01Department)执行——>【通过】
714 463 </pre>
715 464
716 465
... ... @@ -722,7 +471,7 @@ test_add_department_2 (test_02_system_management.Test01Department)銵>
722 471 <td class="Test01Department">Test01Department</td>
723 472 <td>test_add_department_3</td>
724 473 <td>院系名称重复</td>
725   - <td>0.282s</td>
  474 + <td>0.275s</td>
726 475
727 476 <td class="text-success">成功</td>
728 477
... ... @@ -736,7 +485,7 @@ test_add_department_2 (test_02_system_management.Test01Department)銵>
736 485 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
737 486
738 487
739   - <pre>用例入参:{'name': '院系1', 'code': 'py_code20221222_23:09:11_3'}
  488 + <pre>用例入参:{'name': '院系1', 'code': 'py_code20221224_20:30:39_3'}
740 489 预期结果: {'msg': '院系名称已存在,请确认', 'code': 500, 'data': None}
741 490 实际结果: {'msg': '院系名称已存在,请确认', 'code': 500, 'data': None}
742 491 test_add_department_3 (test_02_system_management.Test01Department)执行——>【通过】
... ... @@ -751,9 +500,9 @@ test_add_department_3 (test_02_system_management.Test01Department)銵>
751 500 <td class="Test01Department">Test01Department</td>
752 501 <td>test_add_department_4</td>
753 502 <td>院系名称长度不可大于30位</td>
754   - <td>0.222s</td>
  503 + <td>0.297s</td>
755 504
756   - <td class="text-warning">失败</td>
  505 + <td class="text-success">成功</td>
757 506
758 507 <td>
759 508 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -765,61 +514,10 @@ test_add_department_3 (test_02_system_management.Test01Department)銵>
765 514 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
766 515
767 516
768   - <pre>用例入参:{'name': '院系名称长度大于30的测试院系名称长度大于30的测试院系名称长度大于30的测试院系名称长度大于30的测试', 'code': 'py_code20221222_23:09:11_4'}
769   -预期结果: {'msg': '院系名称长度不可大于30', 'code': 500, 'data': None}
770   -实际结果: {'msg': 'size must be between 1 and 30', 'code': 500, 'data': None}
771   -test_add_department_4 (test_02_system_management.Test01Department)执行——>【失败】
772   -</pre>
773   -
774   -
775   - <pre>Traceback (most recent call last):
776   -</pre>
777   -
778   -
779   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
780   - yield
781   -</pre>
782   -
783   -
784   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
785   - testMethod()
786   -</pre>
787   -
788   -
789   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
790   - return func(self, *args, **kwargs)
791   -</pre>
792   -
793   -
794   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 92, in test_add_department
795   - raise e
796   -</pre>
797   -
798   -
799   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 85, in test_add_department
800   - self.assertEqual(expected['msg'], res['msg'])
801   -</pre>
802   -
803   -
804   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
805   - assertion_func(first, second, msg=msg)
806   -</pre>
807   -
808   -
809   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
810   - self.fail(self._formatMessage(msg, standardMsg))
811   -</pre>
812   -
813   -
814   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
815   - raise self.failureException(msg)
816   -</pre>
817   -
818   -
819   - <pre>AssertionError: '院系名称长度不可大于30' != 'size must be between 1 and 30'
820   -- 院系名称长度不可大于30
821   -+ size must be between 1 and 30
822   -
  517 + <pre>用例入参:{'name': '院系名称长度大于30的测试院系名称长度大于30的测试院系名称长度大于30的测试院系名称长度大于30的测试', 'code': 'py_code20221224_20:30:39_4'}
  518 +预期结果: {'msg': '院系名称长度不可大于30位', 'code': 500, 'data': None}
  519 +实际结果: {'msg': '院系名称长度不可大于30位', 'code': 500, 'data': None}
  520 +test_add_department_4 (test_02_system_management.Test01Department)执行——>【通过】
823 521 </pre>
824 522
825 523
... ... @@ -831,9 +529,9 @@ test_add_department_4 (test_02_system_management.Test01Department)銵>
831 529 <td class="Test01Department">Test01Department</td>
832 530 <td>test_add_department_5</td>
833 531 <td>院系代码不能为空</td>
834   - <td>0.216s</td>
  532 + <td>0.296s</td>
835 533
836   - <td class="text-warning">失败</td>
  534 + <td class="text-success">成功</td>
837 535
838 536 <td>
839 537 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -845,61 +543,10 @@ test_add_department_4 (test_02_system_management.Test01Department)銵>
845 543 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
846 544
847 545
848   - <pre>用例入参:{'name': 'py自动化院系20221222_23:09:12_5', 'code': ''}
  546 + <pre>用例入参:{'name': 'py自动化院系20221224_20:30:39_5', 'code': ''}
849 547 预期结果: {'msg': '院系代码不能为空', 'code': 500, 'data': None}
850   -实际结果: {'msg': 'size must be between 1 and 30', 'code': 500, 'data': None}
851   -test_add_department_5 (test_02_system_management.Test01Department)执行——>【失败】
852   -</pre>
853   -
854   -
855   - <pre>Traceback (most recent call last):
856   -</pre>
857   -
858   -
859   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
860   - yield
861   -</pre>
862   -
863   -
864   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
865   - testMethod()
866   -</pre>
867   -
868   -
869   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
870   - return func(self, *args, **kwargs)
871   -</pre>
872   -
873   -
874   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 92, in test_add_department
875   - raise e
876   -</pre>
877   -
878   -
879   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 85, in test_add_department
880   - self.assertEqual(expected['msg'], res['msg'])
881   -</pre>
882   -
883   -
884   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
885   - assertion_func(first, second, msg=msg)
886   -</pre>
887   -
888   -
889   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
890   - self.fail(self._formatMessage(msg, standardMsg))
891   -</pre>
892   -
893   -
894   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
895   - raise self.failureException(msg)
896   -</pre>
897   -
898   -
899   - <pre>AssertionError: '院系代码不能为空' != 'size must be between 1 and 30'
900   -- 院系代码不能为空
901   -+ size must be between 1 and 30
902   -
  548 +实际结果: {'msg': '院系代码不能为空', 'code': 500, 'data': None}
  549 +test_add_department_5 (test_02_system_management.Test01Department)执行——>【通过】
903 550 </pre>
904 551
905 552
... ... @@ -911,9 +558,9 @@ test_add_department_5 (test_02_system_management.Test01Department)銵>
911 558 <td class="Test01Department">Test01Department</td>
912 559 <td>test_add_department_6</td>
913 560 <td>院系代码长度不可大于30</td>
914   - <td>0.271s</td>
  561 + <td>0.293s</td>
915 562
916   - <td class="text-warning">失败</td>
  563 + <td class="text-success">成功</td>
917 564
918 565 <td>
919 566 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -925,90 +572,39 @@ test_add_department_5 (test_02_system_management.Test01Department)銵>
925 572 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
926 573
927 574
928   - <pre>用例入参:{'name': 'py自动化院系20221222_23:09:12_6', 'code': '院系代码长度大于30的测试院系代码长度大于30的测试院系代码长度大于30的测试'}
929   -预期结果: {'msg': '院系代码不可大于30', 'code': 500, 'data': None}
930   -实际结果: {'msg': 'size must be between 1 and 30', 'code': 500, 'data': None}
931   -test_add_department_6 (test_02_system_management.Test01Department)执行——>【失败】
  575 + <pre>用例入参:{'name': 'py自动化院系20221224_20:30:40_6', 'code': '院系代码长度大于30的测试院系代码长度大于30的测试院系代码长度大于30的测试'}
  576 +预期结果: {'msg': '院系代码长度不可大于30', 'code': 500, 'data': None}
  577 +实际结果: {'msg': '院系代码长度不可大于30', 'code': 500, 'data': None}
  578 +test_add_department_6 (test_02_system_management.Test01Department)执行——>【通过】
932 579 </pre>
933 580
934   -
935   - <pre>Traceback (most recent call last):
936   -</pre>
937 581
  582 + </td>
  583 + </tr>
  584 +
  585 + <tr>
  586 + <td>12</td>
  587 + <td class="Test01Department">Test01Department</td>
  588 + <td>test_select_department_1</td>
  589 + <td>查看院系列表</td>
  590 + <td>0.333s</td>
  591 +
  592 + <td class="text-success">成功</td>
  593 +
  594 + <td>
  595 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  596 + </td>
  597 + </tr>
938 598
939   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
940   - yield
941   -</pre>
  599 + <tr class="test_log">
  600 +
  601 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
942 602
943 603
944   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
945   - testMethod()
946   -</pre>
947   -
948   -
949   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
950   - return func(self, *args, **kwargs)
951   -</pre>
952   -
953   -
954   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 92, in test_add_department
955   - raise e
956   -</pre>
957   -
958   -
959   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 85, in test_add_department
960   - self.assertEqual(expected['msg'], res['msg'])
961   -</pre>
962   -
963   -
964   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
965   - assertion_func(first, second, msg=msg)
966   -</pre>
967   -
968   -
969   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
970   - self.fail(self._formatMessage(msg, standardMsg))
971   -</pre>
972   -
973   -
974   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
975   - raise self.failureException(msg)
976   -</pre>
977   -
978   -
979   - <pre>AssertionError: '院系代码不可大于30' != 'size must be between 1 and 30'
980   -- 院系代码不可大于30
981   -+ size must be between 1 and 30
982   -
983   -</pre>
984   -
985   -
986   - </td>
987   - </tr>
988   -
989   - <tr>
990   - <td>12</td>
991   - <td class="Test01Department">Test01Department</td>
992   - <td>test_add_department_7</td>
993   - <td>新增院系成功</td>
994   - <td>0.301s</td>
995   -
996   - <td class="text-success">成功</td>
997   -
998   - <td>
999   - <button type="button" class="btn btn-success btn_info">查看详情</button>
1000   - </td>
1001   - </tr>
1002   -
1003   - <tr class="test_log">
1004   -
1005   - <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1006   -
1007   -
1008   - <pre>用例入参:{'name': 'py自动化院系20221222_23:09:12_7', 'code': 'py_code20221222_23:09:12_7'}
1009   -预期结果: {'msg': 'success', 'code': 200, 'data': True}
1010   -实际结果: {'msg': 'success', 'code': 200, 'data': True}
1011   -test_add_department_7 (test_02_system_management.Test01Department)执行——>【通过】
  604 + <pre>用例入参:{'pageNumber': '0', 'pageSize': '3'}
  605 +预期结果: {'msg': 'success', 'code': 200}
  606 +实际结果: {'msg': 'success', 'code': 200, 'data': {'records': [{'id': '1606628416684421122', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221224_20:30:38_1', 'code': 'py_code20221224_20:30:38_1', 'createdBy': '1519959209276452865', 'createdTime': 1671885039000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606628162723508226', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221224_20:29:38_1', 'code': 'py_code20221224_20:29:38_1', 'createdBy': '1519959209276452865', 'createdTime': 1671884978000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606245531808821249', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_19:09:11_1', 'code': 'py_code20221223_19:09:11_1', 'createdBy': '1519959209276452865', 'createdTime': 1671793752000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606208847079665666', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_16:43:25_1', 'code': 'py_code20221223_16:43:25_1', 'createdBy': '1519959209276452865', 'createdTime': 1671785006000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606204552531800066', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_16:26:21_1', 'code': 'py_code20221223_16:26:21_1', 'createdBy': '1519959209276452865', 'createdTime': 1671783982000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606204305550209026', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_16:25:22_1', 'code': 'py_code20221223_16:25:22_1', 'createdBy': '1519959209276452865', 'createdTime': 1671783923000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606203250993131521', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_16:21:11_1', 'code': 'py_code20221223_16:21:11_1', 'createdBy': '1519959209276452865', 'createdTime': 1671783672000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606203118486679554', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_16:20:39_1', 'code': 'py_code20221223_16:20:39_1', 'createdBy': '1519959209276452865', 'createdTime': 1671783640000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606192084417900546', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_15:36:49_1', 'code': 'py_code20221223_15:36:49_1', 'createdBy': '1519959209276452865', 'createdTime': 1671781009000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606190781226676225', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_15:31:38_1', 'code': 'py_code20221223_15:31:38_1', 'createdBy': '1519959209276452865', 'createdTime': 1671780698000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606185455395926018', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_15:10:28_1', 'code': 'py_code20221223_15:10:28_1', 'createdBy': '1519959209276452865', 'createdTime': 1671779429000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606184834047537153', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_15:08:00_1', 'code': 'py_code20221223_15:08:00_1', 'createdBy': '1519959209276452865', 'createdTime': 1671779281000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606184430383525890', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_15:06:24_1', 'code': 'py_code20221223_15:06:24_1', 'createdBy': '1519959209276452865', 'createdTime': 1671779184000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606183724666712065', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_15:03:35_1', 'code': 'py_code20221223_15:03:35_1', 'createdBy': '1519959209276452865', 'createdTime': 1671779016000, 'updatedBy': None, 'updatedTime': None}, {'id': '1606183161950498817', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221223_15:01:21_1', 'code': 'py_code20221223_15:01:21_1', 'createdBy': '1519959209276452865', 'createdTime': 1671778882000, 'updatedBy': None, 'updatedTime': None}], 'total': 417, 'size': 15, 'current': 1, 'orders': [], 'optimizeCountSql': True, 'searchCount': True, 'countId': '', 'maxLimit': None, 'pages': 28}}
  607 +test_select_department_1 (test_02_system_management.Test01Department)执行——>【通过】
1012 608 </pre>
1013 609
1014 610
... ... @@ -1017,39 +613,10 @@ test_add_department_7 (test_02_system_management.Test01Department)銵>
1017 613
1018 614 <tr>
1019 615 <td>13</td>
1020   - <td class="Test01Department">Test01Department</td>
1021   - <td>test_select_department_1</td>
1022   - <td>查看院系列表</td>
1023   - <td>0.337s</td>
1024   -
1025   - <td class="text-success">成功</td>
1026   -
1027   - <td>
1028   - <button type="button" class="btn btn-success btn_info">查看详情</button>
1029   - </td>
1030   - </tr>
1031   -
1032   - <tr class="test_log">
1033   -
1034   - <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1035   -
1036   -
1037   - <pre>用例入参:{'pageNumber': '0', 'pageSize': '3'}
1038   -预期结果: {'msg': 'success', 'code': 200}
1039   -实际结果: {'msg': 'success', 'code': 200, 'data': {'records': [{'id': '1605943544424820738', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_23:09:12_7', 'code': 'py_code20221222_23:09:12_7', 'createdBy': '1519959209276452865', 'createdTime': 1671721753000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605943538108198913', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_23:09:11_1', 'code': 'py_code20221222_23:09:11_1', 'createdBy': '1519959209276452865', 'createdTime': 1671721751000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605942164523970561', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_23:03:43_7', 'code': 'py_code20221222_23:03:43_7', 'createdBy': '1519959209276452865', 'createdTime': 1671721424000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605942157955690498', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_23:03:41_1', 'code': 'py_code20221222_23:03:41_1', 'createdBy': '1519959209276452865', 'createdTime': 1671721422000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605840585850482690', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_16:20:05_7', 'code': 'py_code20221222_16:20:05_7', 'createdBy': '1519959209276452865', 'createdTime': 1671697205000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605840579781324801', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_16:20:03_1', 'code': 'py_code20221222_16:20:03_1', 'createdBy': '1519959209276452865', 'createdTime': 1671697204000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605839199377158145', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_16:14:34_7', 'code': 'py_code20221222_16:14:34_7', 'createdBy': '1519959209276452865', 'createdTime': 1671696875000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605839193396080641', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_16:14:33_1', 'code': 'py_code20221222_16:14:33_1', 'createdBy': '1519959209276452865', 'createdTime': 1671696873000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605602173553864706', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_00:32:43_7', 'code': 'py_code20221222_00:32:43_7', 'createdBy': '1519959209276452865', 'createdTime': 1671640363000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605602164590637057', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_00:32:41_1', 'code': 'py_code20221222_00:32:41_1', 'createdBy': '1519959209276452865', 'createdTime': 1671640361000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605600586030772226', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_00:26:24_7', 'code': 'py_code20221222_00:26:24_7', 'createdBy': '1519959209276452865', 'createdTime': 1671639985000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605600579462492161', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_00:26:23_1', 'code': 'py_code20221222_00:26:23_1', 'createdBy': '1519959209276452865', 'createdTime': 1671639983000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605595424071479298', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_00:05:54_7', 'code': 'py_code20221222_00:05:54_7', 'createdBy': '1519959209276452865', 'createdTime': 1671638754000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605595417662582785', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_00:05:52_1', 'code': 'py_code20221222_00:05:52_1', 'createdBy': '1519959209276452865', 'createdTime': 1671638753000, 'updatedBy': None, 'updatedTime': None}, {'id': '1605594240384364546', 'schoolId': '1519958566130257922', 'name': 'py自动化院系20221222_00:01:11_7', 'code': 'py_code20221222_00:01:11_7', 'createdBy': '1519959209276452865', 'createdTime': 1671638472000, 'updatedBy': None, 'updatedTime': None}], 'total': 392, 'size': 15, 'current': 1, 'orders': [], 'optimizeCountSql': True, 'searchCount': True, 'countId': '', 'maxLimit': None, 'pages': 27}}
1040   -test_select_department_1 (test_02_system_management.Test01Department)执行——>【通过】
1041   -</pre>
1042   -
1043   -
1044   - </td>
1045   - </tr>
1046   -
1047   - <tr>
1048   - <td>14</td>
1049 616 <td class="Test02Specialty">Test02Specialty</td>
1050 617 <td>test_add_specialty_01</td>
1051 618 <td>新增专业成功</td>
1052   - <td>0.971s</td>
  619 + <td>1.04s</td>
1053 620
1054 621 <td class="text-success">成功</td>
1055 622
... ... @@ -1063,7 +630,7 @@ test_select_department_1 (test_02_system_management.Test01Department)銵
1063 630 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1064 631
1065 632
1066   - <pre>用例入参:{'name': 'py专业23:09:13_1', 'code': 'py_code23:09:13_1', 'departmentId': '1605943544424820738', 'category': 'science'}
  633 + <pre>用例入参:{'name': 'py专业20:30:41_1', 'code': 'py_code20:30:41_1', 'departmentId': '1606628416684421122', 'category': 'science'}
1067 634 预期结果: {'msg': 'success', 'code': 200, 'data': True}
1068 635 实际结果: {'msg': 'success', 'code': 200, 'data': True}
1069 636 test_add_specialty_01 (test_02_system_management.Test02Specialty)执行——>【通过】
... ... @@ -1074,11 +641,11 @@ test_add_specialty_01 (test_02_system_management.Test02Specialty)銵>
1074 641 </tr>
1075 642
1076 643 <tr>
1077   - <td>15</td>
  644 + <td>14</td>
1078 645 <td class="Test02Specialty">Test02Specialty</td>
1079 646 <td>test_add_specialty_02</td>
1080 647 <td>新增专业失败,院系未填写</td>
1081   - <td>0.867s</td>
  648 + <td>0.939s</td>
1082 649
1083 650 <td class="text-success">成功</td>
1084 651
... ... @@ -1092,7 +659,7 @@ test_add_specialty_01 (test_02_system_management.Test02Specialty)銵>
1092 659 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1093 660
1094 661
1095   - <pre>用例入参:{'name': 'py专业23:09:14_2', 'code': 'py_code23:09:14_2', 'departmentId': '', 'category': 'science'}
  662 + <pre>用例入参:{'name': 'py专业20:30:42_2', 'code': 'py_code20:30:42_2', 'departmentId': '', 'category': 'science'}
1096 663 预期结果: {'msg': '院系不能为空', 'code': 500, 'data': None}
1097 664 实际结果: {'msg': '院系不能为空', 'code': 500, 'data': None}
1098 665 test_add_specialty_02 (test_02_system_management.Test02Specialty)执行——>【通过】
... ... @@ -1103,13 +670,13 @@ test_add_specialty_02 (test_02_system_management.Test02Specialty)銵>
1103 670 </tr>
1104 671
1105 672 <tr>
1106   - <td>16</td>
  673 + <td>15</td>
1107 674 <td class="Test02Specialty">Test02Specialty</td>
1108 675 <td>test_add_specialty_03</td>
1109 676 <td>新增专业失败,院系不存在</td>
1110   - <td>0.938s</td>
  677 + <td>1.03s</td>
1111 678
1112   - <td class="text-warning">失败</td>
  679 + <td class="text-success">成功</td>
1113 680
1114 681 <td>
1115 682 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -1121,61 +688,10 @@ test_add_specialty_02 (test_02_system_management.Test02Specialty)銵>
1121 688 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1122 689
1123 690
1124   - <pre>用例入参:{'name': 'py专业23:09:15_3', 'code': 'py_code23:09:15_3', 'departmentId': '1605943544424820738', 'category': 'science'}
  691 + <pre>用例入参:{'name': 'py专业20:30:43_3', 'code': 'py_code20:30:43_3', 'departmentId': '23232333333', 'category': 'science'}
1125 692 预期结果: {'msg': '院系不存在', 'code': 500, 'data': None}
1126   -实际结果: {'msg': 'success', 'code': 200, 'data': True}
1127   -test_add_specialty_03 (test_02_system_management.Test02Specialty)执行——>【失败】
1128   -</pre>
1129   -
1130   -
1131   - <pre>Traceback (most recent call last):
1132   -</pre>
1133   -
1134   -
1135   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
1136   - yield
1137   -</pre>
1138   -
1139   -
1140   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
1141   - testMethod()
1142   -</pre>
1143   -
1144   -
1145   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
1146   - return func(self, *args, **kwargs)
1147   -</pre>
1148   -
1149   -
1150   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 207, in test_add_specialty
1151   - raise e
1152   -</pre>
1153   -
1154   -
1155   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 201, in test_add_specialty
1156   - self.assertEqual(expected["msg"], res["msg"])
1157   -</pre>
1158   -
1159   -
1160   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
1161   - assertion_func(first, second, msg=msg)
1162   -</pre>
1163   -
1164   -
1165   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
1166   - self.fail(self._formatMessage(msg, standardMsg))
1167   -</pre>
1168   -
1169   -
1170   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
1171   - raise self.failureException(msg)
1172   -</pre>
1173   -
1174   -
1175   - <pre>AssertionError: '院系不存在' != 'success'
1176   -- 院系不存在
1177   -+ success
1178   -
  693 +实际结果: {'msg': '院系不存在', 'code': 500, 'data': None}
  694 +test_add_specialty_03 (test_02_system_management.Test02Specialty)执行——>【通过】
1179 695 </pre>
1180 696
1181 697
... ... @@ -1183,13 +699,13 @@ test_add_specialty_03 (test_02_system_management.Test02Specialty)銵>
1183 699 </tr>
1184 700
1185 701 <tr>
1186   - <td>17</td>
  702 + <td>16</td>
1187 703 <td class="Test02Specialty">Test02Specialty</td>
1188 704 <td>test_add_specialty_04</td>
1189 705 <td>新增专业失败,专业名称未填写</td>
1190   - <td>0.867s</td>
  706 + <td>1.02s</td>
1191 707
1192   - <td class="text-warning">失败</td>
  708 + <td class="text-success">成功</td>
1193 709
1194 710 <td>
1195 711 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -1201,61 +717,10 @@ test_add_specialty_03 (test_02_system_management.Test02Specialty)銵>
1201 717 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1202 718
1203 719
1204   - <pre>用例入参:{'name': '', 'code': 'py_code23:09:16_4', 'departmentId': '1605943544424820738', 'category': 'science'}
1205   -预期结果: {'msg': '专业名称未填写', 'code': 500, 'data': None}
1206   -实际结果: {'msg': 'size must be between 1 and 30', 'code': 500, 'data': None}
1207   -test_add_specialty_04 (test_02_system_management.Test02Specialty)执行——>【失败】
1208   -</pre>
1209   -
1210   -
1211   - <pre>Traceback (most recent call last):
1212   -</pre>
1213   -
1214   -
1215   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
1216   - yield
1217   -</pre>
1218   -
1219   -
1220   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
1221   - testMethod()
1222   -</pre>
1223   -
1224   -
1225   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
1226   - return func(self, *args, **kwargs)
1227   -</pre>
1228   -
1229   -
1230   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 207, in test_add_specialty
1231   - raise e
1232   -</pre>
1233   -
1234   -
1235   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 201, in test_add_specialty
1236   - self.assertEqual(expected["msg"], res["msg"])
1237   -</pre>
1238   -
1239   -
1240   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
1241   - assertion_func(first, second, msg=msg)
1242   -</pre>
1243   -
1244   -
1245   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
1246   - self.fail(self._formatMessage(msg, standardMsg))
1247   -</pre>
1248   -
1249   -
1250   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
1251   - raise self.failureException(msg)
1252   -</pre>
1253   -
1254   -
1255   - <pre>AssertionError: '专业名称未填写' != 'size must be between 1 and 30'
1256   -- 专业名称未填写
1257   -+ size must be between 1 and 30
1258   -
  720 + <pre>用例入参:{'name': '', 'code': 'py_code20:30:44_4', 'departmentId': '1606628416684421122', 'category': 'science'}
  721 +预期结果: {'msg': '专业名称不能为空', 'code': 500, 'data': None}
  722 +实际结果: {'msg': '专业名称不能为空', 'code': 500, 'data': None}
  723 +test_add_specialty_04 (test_02_system_management.Test02Specialty)执行——>【通过】
1259 724 </pre>
1260 725
1261 726
... ... @@ -1263,13 +728,13 @@ test_add_specialty_04 (test_02_system_management.Test02Specialty)銵>
1263 728 </tr>
1264 729
1265 730 <tr>
1266   - <td>18</td>
  731 + <td>17</td>
1267 732 <td class="Test02Specialty">Test02Specialty</td>
1268 733 <td>test_add_specialty_05</td>
1269 734 <td>新增专业失败,专业名称长度不能大于30</td>
1270   - <td>0.871s</td>
  735 + <td>1.06s</td>
1271 736
1272   - <td class="text-warning">失败</td>
  737 + <td class="text-success">成功</td>
1273 738
1274 739 <td>
1275 740 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -1281,61 +746,10 @@ test_add_specialty_04 (test_02_system_management.Test02Specialty)銵>
1281 746 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1282 747
1283 748
1284   - <pre>用例入参:{'name': '专业大于301234567890专业大于301234567890', 'code': 'py_code23:09:17_5', 'departmentId': '1605943544424820738', 'category': 'science'}
1285   -预期结果: {'msg': '专业名称不能大于30', 'code': 500, 'data': None}
1286   -实际结果: {'msg': 'size must be between 1 and 30', 'code': 500, 'data': None}
1287   -test_add_specialty_05 (test_02_system_management.Test02Specialty)执行——>【失败】
1288   -</pre>
1289   -
1290   -
1291   - <pre>Traceback (most recent call last):
1292   -</pre>
1293   -
1294   -
1295   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
1296   - yield
1297   -</pre>
1298   -
1299   -
1300   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
1301   - testMethod()
1302   -</pre>
1303   -
1304   -
1305   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
1306   - return func(self, *args, **kwargs)
1307   -</pre>
1308   -
1309   -
1310   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 207, in test_add_specialty
1311   - raise e
1312   -</pre>
1313   -
1314   -
1315   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 201, in test_add_specialty
1316   - self.assertEqual(expected["msg"], res["msg"])
1317   -</pre>
1318   -
1319   -
1320   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
1321   - assertion_func(first, second, msg=msg)
1322   -</pre>
1323   -
1324   -
1325   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
1326   - self.fail(self._formatMessage(msg, standardMsg))
1327   -</pre>
1328   -
1329   -
1330   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
1331   - raise self.failureException(msg)
1332   -</pre>
1333   -
1334   -
1335   - <pre>AssertionError: '专业名称不能大于30' != 'size must be between 1 and 30'
1336   -- 专业名称不能大于30
1337   -+ size must be between 1 and 30
1338   -
  749 + <pre>用例入参:{'name': '专业大于301234567890专业大于301234567890', 'code': 'py_code20:30:45_5', 'departmentId': '1606628416684421122', 'category': 'science'}
  750 +预期结果: {'msg': '专业名称长度不能大于30', 'code': 500, 'data': None}
  751 +实际结果: {'msg': '专业名称长度不能大于30', 'code': 500, 'data': None}
  752 +test_add_specialty_05 (test_02_system_management.Test02Specialty)执行——>【通过】
1339 753 </pre>
1340 754
1341 755
... ... @@ -1343,11 +757,11 @@ test_add_specialty_05 (test_02_system_management.Test02Specialty)銵>
1343 757 </tr>
1344 758
1345 759 <tr>
1346   - <td>19</td>
  760 + <td>18</td>
1347 761 <td class="Test02Specialty">Test02Specialty</td>
1348 762 <td>test_add_specialty_06</td>
1349 763 <td>新增专业失败,专业名称重复</td>
1350   - <td>1.02s</td>
  764 + <td>0.959s</td>
1351 765
1352 766 <td class="text-success">成功</td>
1353 767
... ... @@ -1361,7 +775,7 @@ test_add_specialty_05 (test_02_system_management.Test02Specialty)銵>
1361 775 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1362 776
1363 777
1364   - <pre>用例入参:{'name': '第二个专业-2-1', 'code': 'py_code23:09:18_6', 'departmentId': '1605943544424820738', 'category': 'science'}
  778 + <pre>用例入参:{'name': '第二个专业-2-1', 'code': 'py_code20:30:46_6', 'departmentId': '1606628416684421122', 'category': 'science'}
1365 779 预期结果: {'msg': '专业名称已存在,请确认', 'code': 500, 'data': None}
1366 780 实际结果: {'msg': '专业名称已存在,请确认', 'code': 500, 'data': None}
1367 781 test_add_specialty_06 (test_02_system_management.Test02Specialty)执行——>【通过】
... ... @@ -1372,13 +786,13 @@ test_add_specialty_06 (test_02_system_management.Test02Specialty)銵>
1372 786 </tr>
1373 787
1374 788 <tr>
1375   - <td>20</td>
  789 + <td>19</td>
1376 790 <td class="Test02Specialty">Test02Specialty</td>
1377 791 <td>test_add_specialty_07</td>
1378 792 <td>新增专业失败,专业代码未填写</td>
1379   - <td>0.891s</td>
  793 + <td>0.959s</td>
1380 794
1381   - <td class="text-warning">失败</td>
  795 + <td class="text-success">成功</td>
1382 796
1383 797 <td>
1384 798 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -1390,61 +804,10 @@ test_add_specialty_06 (test_02_system_management.Test02Specialty)銵>
1390 804 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1391 805
1392 806
1393   - <pre>用例入参:{'name': 'py专业23:09:19_7', 'code': '', 'departmentId': '1605943544424820738', 'category': 'science'}
  807 + <pre>用例入参:{'name': 'py专业20:30:47_7', 'code': '', 'departmentId': '1606628416684421122', 'category': 'science'}
1394 808 预期结果: {'msg': '专业代码不能为空', 'code': 500, 'data': None}
1395   -实际结果: {'msg': 'size must be between 1 and 30', 'code': 500, 'data': None}
1396   -test_add_specialty_07 (test_02_system_management.Test02Specialty)执行——>【失败】
1397   -</pre>
1398   -
1399   -
1400   - <pre>Traceback (most recent call last):
1401   -</pre>
1402   -
1403   -
1404   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
1405   - yield
1406   -</pre>
1407   -
1408   -
1409   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
1410   - testMethod()
1411   -</pre>
1412   -
1413   -
1414   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
1415   - return func(self, *args, **kwargs)
1416   -</pre>
1417   -
1418   -
1419   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 207, in test_add_specialty
1420   - raise e
1421   -</pre>
1422   -
1423   -
1424   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 201, in test_add_specialty
1425   - self.assertEqual(expected["msg"], res["msg"])
1426   -</pre>
1427   -
1428   -
1429   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
1430   - assertion_func(first, second, msg=msg)
1431   -</pre>
1432   -
1433   -
1434   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
1435   - self.fail(self._formatMessage(msg, standardMsg))
1436   -</pre>
1437   -
1438   -
1439   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
1440   - raise self.failureException(msg)
1441   -</pre>
1442   -
1443   -
1444   - <pre>AssertionError: '专业代码不能为空' != 'size must be between 1 and 30'
1445   -- 专业代码不能为空
1446   -+ size must be between 1 and 30
1447   -
  809 +实际结果: {'msg': '专业代码不能为空', 'code': 500, 'data': None}
  810 +test_add_specialty_07 (test_02_system_management.Test02Specialty)执行——>【通过】
1448 811 </pre>
1449 812
1450 813
... ... @@ -1452,13 +815,13 @@ test_add_specialty_07 (test_02_system_management.Test02Specialty)銵>
1452 815 </tr>
1453 816
1454 817 <tr>
1455   - <td>21</td>
  818 + <td>20</td>
1456 819 <td class="Test02Specialty">Test02Specialty</td>
1457 820 <td>test_add_specialty_08</td>
1458 821 <td>新增专业失败,专业代码长度不能大于30</td>
1459   - <td>0.933s</td>
  822 + <td>0.918s</td>
1460 823
1461   - <td class="text-warning">失败</td>
  824 + <td class="text-success">成功</td>
1462 825
1463 826 <td>
1464 827 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -1470,61 +833,10 @@ test_add_specialty_07 (test_02_system_management.Test02Specialty)銵>
1470 833 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1471 834
1472 835
1473   - <pre>用例入参:{'name': 'py专业23:09:20_8', 'code': '专业代码大于301234567890专业大于301234567890', 'departmentId': '1605943544424820738', 'category': 'science'}
1474   -预期结果: {'msg': '专业代码不能大于30', 'code': 500, 'data': None}
1475   -实际结果: {'msg': 'size must be between 1 and 30', 'code': 500, 'data': None}
1476   -test_add_specialty_08 (test_02_system_management.Test02Specialty)执行——>【失败】
1477   -</pre>
1478   -
1479   -
1480   - <pre>Traceback (most recent call last):
1481   -</pre>
1482   -
1483   -
1484   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
1485   - yield
1486   -</pre>
1487   -
1488   -
1489   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
1490   - testMethod()
1491   -</pre>
1492   -
1493   -
1494   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
1495   - return func(self, *args, **kwargs)
1496   -</pre>
1497   -
1498   -
1499   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 207, in test_add_specialty
1500   - raise e
1501   -</pre>
1502   -
1503   -
1504   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 201, in test_add_specialty
1505   - self.assertEqual(expected["msg"], res["msg"])
1506   -</pre>
1507   -
1508   -
1509   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
1510   - assertion_func(first, second, msg=msg)
1511   -</pre>
1512   -
1513   -
1514   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
1515   - self.fail(self._formatMessage(msg, standardMsg))
1516   -</pre>
1517   -
1518   -
1519   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
1520   - raise self.failureException(msg)
1521   -</pre>
1522   -
1523   -
1524   - <pre>AssertionError: '专业代码不能大于30' != 'size must be between 1 and 30'
1525   -- 专业代码不能大于30
1526   -+ size must be between 1 and 30
1527   -
  836 + <pre>用例入参:{'name': 'py专业20:30:48_8', 'code': '专业代码大于301234567890专业大于301234567890', 'departmentId': '1606628416684421122', 'category': 'science'}
  837 +预期结果: {'msg': '专业代码长度不能大于30', 'code': 500, 'data': None}
  838 +实际结果: {'msg': '专业代码长度不能大于30', 'code': 500, 'data': None}
  839 +test_add_specialty_08 (test_02_system_management.Test02Specialty)执行——>【通过】
1528 840 </pre>
1529 841
1530 842
... ... @@ -1532,13 +844,13 @@ test_add_specialty_08 (test_02_system_management.Test02Specialty)銵>
1532 844 </tr>
1533 845
1534 846 <tr>
1535   - <td>22</td>
  847 + <td>21</td>
1536 848 <td class="Test02Specialty">Test02Specialty</td>
1537 849 <td>test_add_specialty_09</td>
1538 850 <td>新增专业失败,学科门类未填写</td>
1539   - <td>0.903s</td>
  851 + <td>1.02s</td>
1540 852
1541   - <td class="text-warning">失败</td>
  853 + <td class="text-success">成功</td>
1542 854
1543 855 <td>
1544 856 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -1550,61 +862,10 @@ test_add_specialty_08 (test_02_system_management.Test02Specialty)銵>
1550 862 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1551 863
1552 864
1553   - <pre>用例入参:{'name': 'py专业23:09:20_9', 'code': 'py_code23:09:20_9', 'departmentId': '1605943544424820738', 'category': ''}
  865 + <pre>用例入参:{'name': 'py专业20:30:49_9', 'code': 'py_code20:30:49_9', 'departmentId': '1606628416684421122', 'category': ''}
1554 866 预期结果: {'msg': '学科门类不能为空', 'code': 500, 'data': None}
1555   -实际结果: {'msg': '学科门类不存在', 'code': 500, 'data': None}
1556   -test_add_specialty_09 (test_02_system_management.Test02Specialty)执行——>【失败】
1557   -</pre>
1558   -
1559   -
1560   - <pre>Traceback (most recent call last):
1561   -</pre>
1562   -
1563   -
1564   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
1565   - yield
1566   -</pre>
1567   -
1568   -
1569   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
1570   - testMethod()
1571   -</pre>
1572   -
1573   -
1574   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
1575   - return func(self, *args, **kwargs)
1576   -</pre>
1577   -
1578   -
1579   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 207, in test_add_specialty
1580   - raise e
1581   -</pre>
1582   -
1583   -
1584   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 201, in test_add_specialty
1585   - self.assertEqual(expected["msg"], res["msg"])
1586   -</pre>
1587   -
1588   -
1589   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
1590   - assertion_func(first, second, msg=msg)
1591   -</pre>
1592   -
1593   -
1594   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
1595   - self.fail(self._formatMessage(msg, standardMsg))
1596   -</pre>
1597   -
1598   -
1599   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
1600   - raise self.failureException(msg)
1601   -</pre>
1602   -
1603   -
1604   - <pre>AssertionError: '学科门类不能为空' != '学科门类不存在'
1605   -- 学科门类不能为空
1606   -+ 学科门类不存在
1607   -
  867 +实际结果: {'msg': '学科门类不能为空', 'code': 500, 'data': None}
  868 +test_add_specialty_09 (test_02_system_management.Test02Specialty)执行——>【通过】
1608 869 </pre>
1609 870
1610 871
... ... @@ -1612,11 +873,11 @@ test_add_specialty_09 (test_02_system_management.Test02Specialty)銵>
1612 873 </tr>
1613 874
1614 875 <tr>
1615   - <td>23</td>
  876 + <td>22</td>
1616 877 <td class="Test02Specialty">Test02Specialty</td>
1617 878 <td>test_add_specialty_10</td>
1618 879 <td>新增专业失败,学科门类填写错误</td>
1619   - <td>0.928s</td>
  880 + <td>0.996s</td>
1620 881
1621 882 <td class="text-success">成功</td>
1622 883
... ... @@ -1630,7 +891,7 @@ test_add_specialty_09 (test_02_system_management.Test02Specialty)銵>
1630 891 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1631 892
1632 893
1633   - <pre>用例入参:{'name': 'py专业23:09:21_10', 'code': 'py_code23:09:21_10', 'departmentId': '1605943544424820738', 'category': 'scienwce'}
  894 + <pre>用例入参:{'name': 'py专业20:30:50_10', 'code': 'py_code20:30:50_10', 'departmentId': '1606628416684421122', 'category': 'scienwce'}
1634 895 预期结果: {'msg': '学科门类不存在', 'code': 500, 'data': None}
1635 896 实际结果: {'msg': '学科门类不存在', 'code': 500, 'data': None}
1636 897 test_add_specialty_10 (test_02_system_management.Test02Specialty)执行——>【通过】
... ... @@ -1641,11 +902,11 @@ test_add_specialty_10 (test_02_system_management.Test02Specialty)銵>
1641 902 </tr>
1642 903
1643 904 <tr>
1644   - <td>24</td>
  905 + <td>23</td>
1645 906 <td class="Test03Year">Test03Year</td>
1646 907 <td>test_add_year_1</td>
1647 908 <td>新增学年学期成功</td>
1648   - <td>0.288s</td>
  909 + <td>0.325s</td>
1649 910
1650 911 <td class="text-success">成功</td>
1651 912
... ... @@ -1659,7 +920,7 @@ test_add_specialty_10 (test_02_system_management.Test02Specialty)銵>
1659 920 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1660 921
1661 922
1662   - <pre>用例入参:{'year': 'py学年23:09:23_1', 'remark': 'py_comment备注23:09:23_1', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}]}
  923 + <pre>用例入参:{'year': 'py学年20:30:51_1', 'remark': 'py_comment备注20:30:51_1', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}]}
1663 924 预期结果: {'msg': 'success', 'code': 200, 'data': True}
1664 925 实际结果: {'msg': 'success', 'code': 200, 'data': True}
1665 926 test_add_year_1 (test_02_system_management.Test03Year)执行——>【通过】
... ... @@ -1670,13 +931,13 @@ test_add_year_1 (test_02_system_management.Test03Year)銵>
1670 931 </tr>
1671 932
1672 933 <tr>
1673   - <td>25</td>
  934 + <td>24</td>
1674 935 <td class="Test03Year">Test03Year</td>
1675 936 <td>test_add_year_2</td>
1676 937 <td>学年学期开始时间和结束时间不可交叉</td>
1677   - <td>0.231s</td>
  938 + <td>0.306s</td>
1678 939
1679   - <td class="text-warning">失败</td>
  940 + <td class="text-success">成功</td>
1680 941
1681 942 <td>
1682 943 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -1688,61 +949,126 @@ test_add_year_1 (test_02_system_management.Test03Year)銵>
1688 949 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1689 950
1690 951
1691   - <pre>用例入参:{'year': 'py学年23:09:23_2', 'remark': 'py_comment备注23:09:23_2', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}, {'sort': 2, 'startTime': 1667376499000, 'endTime': 1704115459000}]}
  952 + <pre>用例入参:{'year': 'py学年20:30:51_2', 'remark': 'py_comment备注20:30:51_2', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}, {'sort': 2, 'startTime': 1667376499000, 'endTime': 1704115459000}]}
1692 953 预期结果: {'msg': '学期起止时间不能交叉', 'code': 500, 'data': None}
1693   -实际结果: {'msg': 'success', 'code': 200, 'data': True}
1694   -test_add_year_2 (test_02_system_management.Test03Year)执行——>【失败】
  954 +实际结果: {'msg': '学期起止时间不能交叉', 'code': 500, 'data': None}
  955 +test_add_year_2 (test_02_system_management.Test03Year)执行——>【通过】
1695 956 </pre>
1696 957
1697   -
1698   - <pre>Traceback (most recent call last):
1699   -</pre>
1700 958
  959 + </td>
  960 + </tr>
  961 +
  962 + <tr>
  963 + <td>25</td>
  964 + <td class="Test03Year">Test03Year</td>
  965 + <td>test_add_year_3</td>
  966 + <td>学年未填写</td>
  967 + <td>0.283s</td>
  968 +
  969 + <td class="text-success">成功</td>
  970 +
  971 + <td>
  972 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  973 + </td>
  974 + </tr>
1701 975
1702   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
1703   - yield
1704   -</pre>
1705   -
  976 + <tr class="test_log">
1706 977
1707   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
1708   - testMethod()
1709   -</pre>
  978 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1710 979
1711 980
1712   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
1713   - return func(self, *args, **kwargs)
  981 + <pre>用例入参:{'year': '', 'remark': 'py_comment备注20:30:52_3', 'terms': [{'sort': 1, 'startTime': 1667376499000, 'endTime': 1704115459000}]}
  982 +预期结果: {'msg': '学年不能为空', 'code': 500, 'data': None}
  983 +实际结果: {'msg': '学年不能为空', 'code': 500, 'data': None}
  984 +test_add_year_3 (test_02_system_management.Test03Year)执行——>【通过】
1714 985 </pre>
1715 986
1716   -
1717   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 272, in test_add_year
1718   - raise e
1719   -</pre>
1720 987
  988 + </td>
  989 + </tr>
  990 +
  991 + <tr>
  992 + <td>26</td>
  993 + <td class="Test03Year">Test03Year</td>
  994 + <td>test_add_year_4</td>
  995 + <td>学期未填写</td>
  996 + <td>0.323s</td>
  997 +
  998 + <td class="text-success">成功</td>
  999 +
  1000 + <td>
  1001 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  1002 + </td>
  1003 + </tr>
1721 1004
1722   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_02_system_management.py", line 266, in test_add_year
1723   - self.assertEqual(expected["msg"], res["msg"])
1724   -</pre>
  1005 + <tr class="test_log">
  1006 +
  1007 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1725 1008
1726 1009
1727   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
1728   - assertion_func(first, second, msg=msg)
  1010 + <pre>用例入参:{'year': 'py学年20:30:52_4', 'remark': 'py_comment备注20:30:52_4', 'terms': [{'sort': '', 'startTime': 1667376499000, 'endTime': 1704115459000}]}
  1011 +预期结果: {'msg': '学期排序不能为空', 'code': 500, 'data': None}
  1012 +实际结果: {'msg': '学期排序不能为空', 'code': 500, 'data': None}
  1013 +test_add_year_4 (test_02_system_management.Test03Year)执行——>【通过】
1729 1014 </pre>
1730 1015
  1016 +
  1017 + </td>
  1018 + </tr>
  1019 +
  1020 + <tr>
  1021 + <td>27</td>
  1022 + <td class="Test03Year">Test03Year</td>
  1023 + <td>test_add_year_5</td>
  1024 + <td>学期开始时间未填写</td>
  1025 + <td>0.294s</td>
  1026 +
  1027 + <td class="text-success">成功</td>
  1028 +
  1029 + <td>
  1030 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  1031 + </td>
  1032 + </tr>
1731 1033
1732   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
1733   - self.fail(self._formatMessage(msg, standardMsg))
1734   -</pre>
  1034 + <tr class="test_log">
  1035 +
  1036 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1735 1037
1736 1038
1737   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
1738   - raise self.failureException(msg)
  1039 + <pre>用例入参:{'year': 'py学年20:30:52_5', 'remark': 'py_comment备注20:30:52_5', 'terms': [{'sort': 1, 'startTime': '', 'endTime': 1704115459000}]}
  1040 +预期结果: {'msg': '学期开始时间不能为空', 'code': 500, 'data': None}
  1041 +实际结果: {'msg': '学期开始时间不能为空', 'code': 500, 'data': None}
  1042 +test_add_year_5 (test_02_system_management.Test03Year)执行——>【通过】
1739 1043 </pre>
1740 1044
  1045 +
  1046 + </td>
  1047 + </tr>
  1048 +
  1049 + <tr>
  1050 + <td>28</td>
  1051 + <td class="Test03Year">Test03Year</td>
  1052 + <td>test_add_year_6</td>
  1053 + <td>学期结束时间未填写</td>
  1054 + <td>0.289s</td>
  1055 +
  1056 + <td class="text-success">成功</td>
  1057 +
  1058 + <td>
  1059 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  1060 + </td>
  1061 + </tr>
1741 1062
1742   - <pre>AssertionError: '学期起止时间不能交叉' != 'success'
1743   -- 学期起止时间不能交叉
1744   -+ success
  1063 + <tr class="test_log">
  1064 +
  1065 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
  1066 +
1745 1067
  1068 + <pre>用例入参:{'year': 'py学年20:30:53_6', 'remark': 'py_comment备注20:30:53_6', 'terms': [{'sort': 1, 'startTime': 1704115459000, 'endTime': ''}]}
  1069 +预期结果: {'msg': '学期结束时间不能为空', 'code': 500, 'data': None}
  1070 +实际结果: {'msg': '学期结束时间不能为空', 'code': 500, 'data': None}
  1071 +test_add_year_6 (test_02_system_management.Test03Year)执行——>【通过】
1746 1072 </pre>
1747 1073
1748 1074
... ... @@ -1750,13 +1076,13 @@ test_add_year_2 (test_02_system_management.Test03Year)銵>仃韐乓
1750 1076 </tr>
1751 1077
1752 1078 <tr>
1753   - <td>26</td>
  1079 + <td>29</td>
1754 1080 <td class="Test01CTeacher">Test01CTeacher</td>
1755   - <td>test_add_class_info_1</td>
  1081 + <td>test_add_teacher_info_1</td>
1756 1082 <td>新增教师</td>
1757   - <td>0.239s</td>
  1083 + <td>0.543s</td>
1758 1084
1759   - <td class="text-warning">失败</td>
  1085 + <td class="text-success">成功</td>
1760 1086
1761 1087 <td>
1762 1088 <button type="button" class="btn btn-success btn_info">查看详情</button>
... ... @@ -1768,61 +1094,126 @@ test_add_year_2 (test_02_system_management.Test03Year)銵>仃韐乓
1768 1094 <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1769 1095
1770 1096
1771   - <pre>用例入参:{'name': 'py自动化教师20221222_23:09:24_1', 'number': '17398240152', 'departmentIds': ['1605942164523970561'], 'phone': '17398240152', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '660101198601061863', 'gender': 0, 'entryTime': 1663084800000, 'email': '34662811782@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1605942164523970561'}
  1097 + <pre>用例入参:{'name': 'py自动化教师20221224_20:30:54_1', 'number': '13366742080', 'departmentIds': ['1606628416684421122'], 'phone': '13366742080', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '110101198208191584', 'gender': 0, 'entryTime': 1663084800000, 'email': '57370113422@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1606628416684421122'}
1772 1098 预期结果: {'msg': 'success', 'code': 200, 'data': True}
1773   -实际结果: {'msg': '该身份证号不合法,请确认', 'code': 500, 'data': None}
1774   -test_add_class_info_1 (test_03_teaching_affairs.Test01CTeacher)执行——>【失败】
  1099 +实际结果: {'msg': 'success', 'code': 200, 'data': True}
  1100 +test_add_teacher_info_1 (test_03_teaching_affairs.Test01CTeacher)执行——>【通过】
1775 1101 </pre>
1776 1102
1777   -
1778   - <pre>Traceback (most recent call last):
1779   -</pre>
1780 1103
  1104 + </td>
  1105 + </tr>
  1106 +
  1107 + <tr>
  1108 + <td>30</td>
  1109 + <td class="Test01CTeacher">Test01CTeacher</td>
  1110 + <td>test_add_teacher_info_2</td>
  1111 + <td>教师姓名不能为空</td>
  1112 + <td>0.28s</td>
  1113 +
  1114 + <td class="text-success">成功</td>
  1115 +
  1116 + <td>
  1117 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  1118 + </td>
  1119 + </tr>
1781 1120
1782   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
1783   - yield
1784   -</pre>
1785   -
  1121 + <tr class="test_log">
1786 1122
1787   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
1788   - testMethod()
1789   -</pre>
  1123 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1790 1124
1791 1125
1792   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/common/myddt.py", line 145, in wrapper
1793   - return func(self, *args, **kwargs)
  1126 + <pre>用例入参:{'name': '', 'number': '17320079916', 'departmentIds': ['1606628416684421122'], 'phone': '17320079916', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '620101194711091179', 'gender': 0, 'entryTime': 1663084800000, 'email': '19769147857@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1606628416684421122'}
  1127 +预期结果: {'msg': '教师姓名不能为空', 'code': 500, 'data': None}
  1128 +实际结果: {'msg': '教师姓名不能为空', 'code': 500, 'data': None}
  1129 +test_add_teacher_info_2 (test_03_teaching_affairs.Test01CTeacher)执行——>【通过】
1794 1130 </pre>
1795 1131
1796   -
1797   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_03_teaching_affairs.py", line 106, in test_add_class_info
1798   - raise e
1799   -</pre>
1800 1132
  1133 + </td>
  1134 + </tr>
  1135 +
  1136 + <tr>
  1137 + <td>31</td>
  1138 + <td class="Test01CTeacher">Test01CTeacher</td>
  1139 + <td>test_add_teacher_info_3</td>
  1140 + <td>教师手机号不能为空</td>
  1141 + <td>0.299s</td>
  1142 +
  1143 + <td class="text-success">成功</td>
  1144 +
  1145 + <td>
  1146 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  1147 + </td>
  1148 + </tr>
1801 1149
1802   - <pre> File "/Users/shitou/工作/code/work/workAi/yxly/testcase/test_03_teaching_affairs.py", line 99, in test_add_class_info
1803   - self.assertEqual(expected['msg'], res['msg'])
1804   -</pre>
  1150 + <tr class="test_log">
  1151 +
  1152 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1805 1153
1806 1154
1807   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 839, in assertEqual
1808   - assertion_func(first, second, msg=msg)
  1155 + <pre>用例入参:{'name': 'py自动化教师20221224_20:30:55_3', 'number': '', 'departmentIds': ['1606628416684421122'], 'phone': '', 'classInfoId': '', 'idType': 'identity_card', 'idNumber': '500101194009260414', 'gender': 0, 'entryTime': 1663084800000, 'email': '86463050788@163.com', 'professionalIds': [], 'roleIds': ['968160378070540291'], 'permissionScope': '1606628416684421122'}
  1156 +预期结果: {'msg': '教师手机号不能为空', 'code': 500, 'data': None}
  1157 +实际结果: {'msg': '教师手机号不能为空', 'code': 500, 'data': None}
  1158 +test_add_teacher_info_3 (test_03_teaching_affairs.Test01CTeacher)执行——>【通过】
1809 1159 </pre>
1810 1160
  1161 +
  1162 + </td>
  1163 + </tr>
  1164 +
  1165 + <tr>
  1166 + <td>32</td>
  1167 + <td class="Test02Class">Test02Class</td>
  1168 + <td>test_add_class_info_1</td>
  1169 + <td>新增班级</td>
  1170 + <td>0.33s</td>
  1171 +
  1172 + <td class="text-success">成功</td>
  1173 +
  1174 + <td>
  1175 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  1176 + </td>
  1177 + </tr>
1811 1178
1812   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 1220, in assertMultiLineEqual
1813   - self.fail(self._formatMessage(msg, standardMsg))
1814   -</pre>
  1179 + <tr class="test_log">
  1180 +
  1181 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
1815 1182
1816 1183
1817   - <pre> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 680, in fail
1818   - raise self.failureException(msg)
  1184 + <pre>用例入参:{'name': 'py自动化班级20221224_20:30:58_1', 'educationalSystem': '3', 'startSchoolYear': 2022, 'professionalId': '1606628430462709762', 'teacherId': '1606628483533238273', 'departmentId': '1606628416684421122'}
  1185 +预期结果: {'msg': 'success', 'code': 200, 'data': True}
  1186 +实际结果: {'msg': 'success', 'code': 200, 'data': True}
  1187 +test_add_class_info_1 (test_03_teaching_affairs.Test02Class)执行——>【通过】
1819 1188 </pre>
1820 1189
  1190 +
  1191 + </td>
  1192 + </tr>
  1193 +
  1194 + <tr>
  1195 + <td>33</td>
  1196 + <td class="Test03Course">Test03Course</td>
  1197 + <td>test_add_course_info_1</td>
  1198 + <td>新增课程</td>
  1199 + <td>0.352s</td>
  1200 +
  1201 + <td class="text-success">成功</td>
  1202 +
  1203 + <td>
  1204 + <button type="button" class="btn btn-success btn_info">查看详情</button>
  1205 + </td>
  1206 + </tr>
1821 1207
1822   - <pre>AssertionError: 'success' != '该身份证号不合法,请确认'
1823   -- success
1824   -+ 该身份证号不合法,请确认
  1208 + <tr class="test_log">
  1209 +
  1210 + <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
  1211 +
1825 1212
  1213 + <pre>用例入参:{'name': 'py自动化课程20221224_20:31:01_1', 'practiceType': 'know', 'departmentId': '1606628416684421122', 'credit': 3, 'property': 'elective', 'creditHour': '5', 'termIds': ['1606628470845468674'], 'professionalIds': ['1606628430462709762'], 'yearId': '49'}
  1214 +预期结果: {'msg': 'success', 'code': 200, 'data': True}
  1215 +实际结果: {'msg': 'success', 'code': 200, 'data': True}
  1216 +test_add_course_info_1 (test_03_teaching_affairs.Test03Course)执行——>【通过】
1826 1217 </pre>
1827 1218
1828 1219
... ... @@ -1954,8 +1345,8 @@ test_add_class_info_1 (test_03_teaching_affairs.Test01CTeacher)銵>
1954 1345 show: false
1955 1346 },
1956 1347 data: [
1957   - {value: 10, name: '通过'},
1958   - {value: 16, name: '失败'},
  1348 + {value: 33, name: '通过'},
  1349 + {value: 0, name: '失败'},
1959 1350 {value: 0, name: '错误'},
1960 1351 {value: 0, name: '跳过'}
1961 1352 ]
... ... @@ -1976,8 +1367,8 @@ test_add_class_info_1 (test_03_teaching_affairs.Test01CTeacher)銵>
1976 1367 {
1977 1368 name: '测试结果',
1978 1369 type: 'gauge',
1979   - detail: {formatter: '38.46%'},
1980   - data: [{value: '38.46', name: '用例通过率'}],
  1370 + detail: {formatter: '100.00%'},
  1371 + data: [{value: '100.00', name: '用例通过率'}],
1981 1372 axisLine: {
1982 1373 lineStyle: {
1983 1374 color: [
... ...
... ... @@ -40,5 +40,6 @@ runner.run()
40 40 # port=465,
41 41 # user="shishut@workai.com.cn",
42 42 # password="mKh50p89DqvqJ7pd",
43   -# to_addrs=["1171621168@qq.com", "shishut@workai.com.cn"]
  43 +# to_addrs=["shishut@workai.com.cn"]
  44 +# # to_addrs=["shishut@workai.com.cn", "wangf@workai.com.cn"]
44 45 # )
... ...
... ... @@ -138,7 +138,6 @@ class Test01Department(unittest.TestCase):
138 138 HandleLog.log.info("用例{},执行通过".format(select_case["title"]))
139 139
140 140
141   -
142 141 # ==================专业相关的用例==================
143 142 @myddt.ddt
144 143 class Test02Specialty(unittest.TestCase):
... ... @@ -258,6 +257,7 @@ class Test03Year(unittest.TestCase):
258 257 headers["Authorization"] = self.token
259 258 req = requests.request(method=case["method"], url=url, json=data, headers=headers)
260 259 res = req.json()
  260 +
261 261 print("用例入参:{}".format(data))
262 262 print("预期结果:", expected)
263 263 print("实际结果:", res)
... ...
... ... @@ -23,7 +23,8 @@ from tools.fixture import SelectData
23 23 from tools.handle_token import LoginToken
24 24 from tools.fixture import RandomPhone, RandomIdentification, RandomEmail
25 25
26   -TeachingAffairs_path = os.path.join(DataExcel_Path, "teaching_affairs")
  26 +TeachingAffairs_path = os.path.join(DataExcel_Path, "teaching_affairs") # 教务系统管理列表
  27 +System_path = os.path.join(DataExcel_Path, "system") # 系统管理列表
27 28
28 29
29 30 # ==================教师相关的用例==================
... ... @@ -33,14 +34,6 @@ class Test01CTeacher(unittest.TestCase):
33 34 # ---获取添加教师用例
34 35 add_teacher = Excel(os.path.join(TeachingAffairs_path, "test_03_teacher.xlsx"), "add_teacher")
35 36 add_teacher_case = add_teacher.read_excel()
36   - # ---获取添加院系Excel表格
37   - select_department_excel = Excel(os.path.join(os.path.join(DataExcel_Path, "system"), "test_02_department.xlsx"),
38   - "select_department")
39   - select_url = select_department_excel.read_excel_location("C2")
40   - department_list = SelectData(str(select_url))
41   - department_json = department_list.select_list()
42   - # 获取院系id
43   - department_id = jsonpath(department_json, "$..id")[0]
44 37
45 38 @classmethod
46 39 def setUpClass(cls):
... ... @@ -51,6 +44,15 @@ class Test01CTeacher(unittest.TestCase):
51 44 # 获取token
52 45 cls.token = LoginToken.login_token()
53 46
  47 + # ---获取添加院系Excel表格
  48 + select_department_excel = Excel(os.path.join(System_path, "test_02_department.xlsx"),
  49 + "select_department")
  50 + read_excel = select_department_excel.read_excel_location("C2")
  51 + department_list = SelectData(str(read_excel))
  52 + department_json = department_list.select_list()
  53 + # 获取院系id
  54 + cls.department_id = jsonpath(department_json, "$..id")[0]
  55 +
54 56 def setUp(self):
55 57 """单条用例执行前执行的函数"""
56 58 new_time = time.strftime("%Y%m%d_%H:%M:%S")
... ... @@ -63,7 +65,7 @@ class Test01CTeacher(unittest.TestCase):
63 65 # 新增教师
64 66 # ====================================================================
65 67 @data(*add_teacher_case)
66   - def test_add_class_info(self, case):
  68 + def test_add_teacher_info(self, case):
67 69
68 70 """新增教师用例"""
69 71 url = conf.get("url", "url_ip") + case['url']
... ... @@ -94,7 +96,6 @@ class Test01CTeacher(unittest.TestCase):
94 96 print("预期结果:", expected)
95 97 print("实际结果:", res)
96 98 # 断言
97   - # 断言
98 99 try:
99 100 self.assertEqual(expected['msg'], res['msg'])
100 101 self.assertEqual(expected['code'], res['code'])
... ... @@ -112,7 +113,6 @@ class Test01CTeacher(unittest.TestCase):
112 113 HandleLog.log.info("用例{},执行通过".format(case["title"]))
113 114
114 115
115   -'''
116 116 # ==================班级相关的用例==================
117 117 @ddt
118 118 class Test02Class(unittest.TestCase):
... ... @@ -123,7 +123,259 @@ class Test02Class(unittest.TestCase):
123 123 # ====================================================================
124 124 # 新增班级
125 125 # ====================================================================
  126 + @classmethod
  127 + def setUpClass(cls):
  128 + """
  129 + 用例类执行前执行的函数
  130 + :return:token
  131 + """
  132 + # 获取token
  133 + cls.token = LoginToken.login_token()
  134 +
  135 + # ---获取添加院系Excel表格
  136 + select_department_excel = Excel(os.path.join(System_path, "test_02_department.xlsx"),
  137 + "select_department")
  138 + read_department_excel = select_department_excel.read_excel_location("C2")
  139 + department_list = SelectData(str(read_department_excel))
  140 + department_json = department_list.select_list()
  141 + cls.department_id = jsonpath(department_json, "$..id")[0] # 获取院系id
  142 + # 获取查看专业id
  143 + select_specialty_excel = Excel(os.path.join(System_path, "test_02_specialty.xlsx"),
  144 + "select_specialty")
  145 + read_specialty_excel = select_specialty_excel.read_excel_location("C2")
  146 + specialty_list = SelectData(str(read_specialty_excel))
  147 + specialty_json = specialty_list.select_list()
  148 + cls.professionalId = jsonpath(specialty_json, "$..id")[0] # 获取专业id
  149 + # 获取查看教师id
  150 + select_teacher_excel = Excel(os.path.join(TeachingAffairs_path, "test_03_teacher.xlsx"),
  151 + "select_teacher")
  152 + read_teacher_excel = select_teacher_excel.read_excel_location("C2")
  153 + teacher_list = SelectData(str(read_teacher_excel))
  154 + teacher_json = teacher_list.select_list()
  155 + cls.teacher_id = jsonpath(teacher_json, "$..id")[0] # 获取教师id
  156 +
  157 + def setUp(self):
  158 + """单条用例执行前执行的函数"""
  159 + new_time = time.strftime("%Y%m%d_%H:%M:%S")
  160 + # 随机班级名称
  161 + self.class_name = "py自动化班级" + new_time
  162 +
126 163 @data(*add_class_case)
127 164 def test_add_class_info(self, case):
128 165 """新增班级用例"""
  166 + url = conf.get("url", "url_ip") + case["url"]
  167 + # 准备数据
  168 + if "#name#" in case["data"]:
  169 + case["data"] = case["data"].replace("#name#", str(self.class_name + "_" + str(case["id"])))
  170 + if "#professionalId#" in case["data"]:
  171 + case["data"] = case["data"].replace("#professionalId#", str(self.professionalId))
  172 + if "#teacherId#" in case["data"]:
  173 + case["data"] = case["data"].replace("#teacherId#", str(self.teacher_id))
  174 + if "#departmentId#" in case["data"]:
  175 + case["data"] = case["data"].replace("#departmentId#", str(self.department_id))
  176 + data = json.loads(case["data"])
  177 + expected = json.loads(case["expected"])
  178 + # 调用接口
  179 + headers = {}
  180 + headers["Authorization"] = self.token
  181 + response = requests.request(url=url, method=case["method"], json=data, headers=headers)
  182 + res = response.json()
  183 + print("用例入参:{}".format(data))
  184 + print("预期结果:", expected)
  185 + print("实际结果:", res)
  186 + # 断言
  187 + try:
  188 + self.assertEqual(expected['msg'], res['msg'])
  189 + self.assertEqual(expected['code'], res['code'])
  190 + except AssertionError as e:
  191 + # 写入Excel
  192 + self.add_class.write_excel(row=case["id"] + 1, column=7, value="不通过")
  193 + HandleLog.log.error("用例标题{},不通过".format(case['title']))
  194 + HandleLog.log.exception(e)
  195 + raise e
  196 + else:
  197 + self.add_class.write_excel(row=case["id"] + 1, column=7, value="通过")
  198 + # 将创建使用的数据写入到excel表格中
  199 + self.add_class.write_excel(row=case["id"] + 1, column=9,
  200 + value=case["data"])
  201 + HandleLog.log.info("用例{},执行通过".format(case["title"]))
  202 +
  203 +
  204 +# ==================实践课程相关的用例==================
  205 +@ddt
  206 +class Test03Course(unittest.TestCase):
  207 + """班级相关"""
  208 + add_course = Excel(os.path.join(TeachingAffairs_path, "test_03_course.xlsx"), "add_course")
  209 + add_course_case = add_course.read_excel()
  210 +
  211 + # ====================================================================
  212 + # 新增课程
  213 + # ====================================================================
  214 + @classmethod
  215 + def setUpClass(cls):
  216 + """
  217 + 用例类执行前执行的函数
  218 + :return:token
  219 + """
  220 + # 获取token
  221 + cls.token = LoginToken.login_token()
  222 +
  223 + # ---获取添加院系Excel表格
  224 + select_department_excel = Excel(os.path.join(System_path, "test_02_department.xlsx"),
  225 + "select_department")
  226 + read_department_excel = select_department_excel.read_excel_location("C2")
  227 + department_list = SelectData(str(read_department_excel))
  228 + department_json = department_list.select_list()
  229 + cls.department_id = jsonpath(department_json, "$..id")[0] # 获取院系id
  230 + # 获取查看专业id
  231 + select_specialty_excel = Excel(os.path.join(System_path, "test_02_specialty.xlsx"),
  232 + "select_specialty")
  233 + read_specialty_excel = select_specialty_excel.read_excel_location("C2")
  234 + specialty_list = SelectData(str(read_specialty_excel))
  235 + specialty_json = specialty_list.select_list()
  236 + cls.professionalId = jsonpath(specialty_json, "$..id")[0] # 获取专业id
  237 + # 获取查看学期id
  238 + select_term_excel = Excel(os.path.join(System_path, "test_02_term.xlsx"),
  239 + "select_term")
  240 + read_term_excel = select_term_excel.read_excel_location("C2")
  241 + term_list = SelectData(str(read_term_excel))
  242 + term_json = term_list.select_list()
  243 + cls.terms_id = jsonpath(term_json, "$..id")[0] # 获取学年学期id
  244 +
  245 + def setUp(self):
  246 + """单条用例执行前执行的函数"""
  247 + new_time = time.strftime("%Y%m%d_%H:%M:%S")
  248 + # 随机班级名称
  249 + self.course_name = "py自动化课程" + new_time
  250 +
  251 + @data(*add_course_case)
  252 + def test_add_course_info(self, case):
  253 + """新增课程用例"""
  254 + url = conf.get("url", "url_ip") + case["url"]
  255 + # 准备数据
  256 + if "#name#" in case["data"]:
  257 + case["data"] = case["data"].replace("#name#", str(self.course_name + "_" + str(case["id"])))
  258 + if "#departmentId#" in case["data"]:
  259 + case["data"] = case["data"].replace("#departmentId#", str(self.department_id))
  260 + if "#professionalId#" in case["data"]:
  261 + case["data"] = case["data"].replace("#professionalId#", str(self.professionalId))
  262 + if "#termIds#" in case["data"]:
  263 + case["data"] = case["data"].replace("#termIds#", str(self.terms_id))
  264 +
  265 + data = json.loads(case["data"])
  266 + expected = json.loads(case["expected"])
  267 + # 调用接口
  268 + headers = {}
  269 + headers["Authorization"] = self.token
  270 + response = requests.request(url=url, method=case["method"], json=data, headers=headers)
  271 + res = response.json()
  272 + print("用例入参:{}".format(data))
  273 + print("预期结果:", expected)
  274 + print("实际结果:", res)
  275 + # 断言
  276 + try:
  277 + self.assertEqual(expected['msg'], res['msg'])
  278 + self.assertEqual(expected['code'], res['code'])
  279 + except AssertionError as e:
  280 + # 写入Excel
  281 + self.add_course.write_excel(row=case["id"] + 1, column=7, value="不通过")
  282 + HandleLog.log.error("用例标题{},不通过".format(case['title']))
  283 + HandleLog.log.exception(e)
  284 + raise e
  285 + else:
  286 + self.add_course.write_excel(row=case["id"] + 1, column=7, value="通过")
  287 + # 将创建使用的数据写入到excel表格中
  288 + self.add_course.write_excel(row=case["id"] + 1, column=9,
  289 + value=case["data"])
  290 + HandleLog.log.info("用例{},执行通过".format(case["title"]))
  291 +
  292 +
  293 +'''
  294 +# ==================实践学生相关的用例==================
  295 +@ddt
  296 +class Test03Student(unittest.TestCase):
  297 + """班级相关"""
  298 + add_course = Excel(os.path.join(TeachingAffairs_path, "test_03_student.xlsx"), "add_course")
  299 + add_course_case = add_course.read_excel()
  300 +
  301 + # ====================================================================
  302 + # 新增学生
  303 + # ====================================================================
  304 + @classmethod
  305 + def setUpClass(cls):
  306 + """
  307 + 用例类执行前执行的函数
  308 + :return:token
  309 + """
  310 + # 获取token
  311 + cls.token = LoginToken.login_token()
  312 +
  313 + # ---获取添加院系Excel表格
  314 + select_department_excel = Excel(os.path.join(System_path, "test_02_department.xlsx"),
  315 + "select_department")
  316 + read_department_excel = select_department_excel.read_excel_location("C2")
  317 + department_list = SelectData(str(read_department_excel))
  318 + department_json = department_list.select_list()
  319 + cls.department_id = jsonpath(department_json, "$..id")[0] # 获取院系id
  320 + # 获取查看专业id
  321 + select_specialty_excel = Excel(os.path.join(System_path, "test_02_specialty.xlsx"),
  322 + "select_specialty")
  323 + read_specialty_excel = select_specialty_excel.read_excel_location("C2")
  324 + specialty_list = SelectData(str(read_specialty_excel))
  325 + specialty_json = specialty_list.select_list()
  326 + cls.professionalId = jsonpath(specialty_json, "$..id")[0] # 获取专业id
  327 + # 获取查看学期id
  328 + select_term_excel = Excel(os.path.join(System_path, "test_02_term.xlsx"),
  329 + "select_term")
  330 + read_term_excel = select_term_excel.read_excel_location("C2")
  331 + term_list = SelectData(str(read_term_excel))
  332 + term_json = term_list.select_list()
  333 + cls.terms_id = jsonpath(term_json, "$..id")[0] # 获取学年学期id
  334 +
  335 + def setUp(self):
  336 + """单条用例执行前执行的函数"""
  337 + new_time = time.strftime("%Y%m%d_%H:%M:%S")
  338 + # 随机班级名称
  339 + self.course_name = "py自动化课程" + new_time
  340 +
  341 + @data(*add_course_case)
  342 + def test_add_course_info(self, case):
  343 + """新增课程用例"""
  344 + url = conf.get("url", "url_ip") + case["url"]
  345 + # 准备数据
  346 + if "#name#" in case["data"]:
  347 + case["data"] = case["data"].replace("#name#", str(self.course_name + "_" + str(case["id"])))
  348 + if "#departmentId#" in case["data"]:
  349 + case["data"] = case["data"].replace("#departmentId#", str(self.department_id))
  350 + 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))
  354 +
  355 + data = json.loads(case["data"])
  356 + expected = json.loads(case["expected"])
  357 + # 调用接口
  358 + headers = {}
  359 + headers["Authorization"] = self.token
  360 + response = requests.request(url=url, method=case["method"], json=data, headers=headers)
  361 + res = response.json()
  362 + print("用例入参:{}".format(data))
  363 + print("预期结果:", expected)
  364 + print("实际结果:", res)
  365 + # 断言
  366 + try:
  367 + self.assertEqual(expected['msg'], res['msg'])
  368 + self.assertEqual(expected['code'], res['code'])
  369 + except AssertionError as e:
  370 + # 写入Excel
  371 + self.add_course.write_excel(row=case["id"] + 1, column=7, value="不通过")
  372 + HandleLog.log.error("用例标题{},不通过".format(case['title']))
  373 + HandleLog.log.exception(e)
  374 + raise e
  375 + else:
  376 + self.add_course.write_excel(row=case["id"] + 1, column=7, value="通过")
  377 + # 将创建使用的数据写入到excel表格中
  378 + self.add_course.write_excel(row=case["id"] + 1, column=9,
  379 + value=case["data"])
  380 + HandleLog.log.info("用例{},执行通过".format(case["title"]))
129 381 '''
... ...
... ... @@ -19,11 +19,8 @@ import os
19 19 import time
20 20 import random
21 21
22   -"""
23   -获取json字符串
24   -"""
25   -
26 22
  23 +# ==================获取json字符串==========
27 24 class SelectData(object):
28 25 def __init__(self, url):
29 26 self.url = url
... ... @@ -41,11 +38,7 @@ class SelectData(object):
41 38 return res
42 39
43 40
44   -"""
45   -随机生成手机号
46   -"""
47   -
48   -
  41 +# ==================随机生成手机号==========
49 42 class RandomPhone:
50 43
51 44 # 随机生成手机号
... ... @@ -56,11 +49,7 @@ class RandomPhone:
56 49 return random.choice(prelist) + "".join(random.choice("0123456789") for i in range(8))
57 50
58 51
59   -"""
60   -随机生成身份证号
61   -"""
62   -
63   -
  52 +# ==================随机生成身份证号========
64 53 class RandomIdentification(object):
65 54
66 55 def ran(self):
... ... @@ -104,11 +93,7 @@ class RandomIdentification(object):
104 93 return ran + mat[summat % 11]
105 94
106 95
107   -"""
108   -随机生成邮箱
109   -"""
110   -
111   -
  96 +# ==================随机生成邮箱号==========
112 97 class RandomEmail(object):
113 98 @staticmethod
114 99 def rand_email():
... ... @@ -116,6 +101,7 @@ class RandomEmail(object):
116 101 # print(str(email_len) + "@163.com")
117 102 return str(email_len) + "@163.com"
118 103
  104 +
119 105 if __name__ == '__main__':
120 106 print(RandomIdentification().ran_end())
121 107 # Val(Ran().ran_end())
... ...
... ... @@ -13,6 +13,7 @@ from common.handle_config import conf
13 13 from jsonpath import jsonpath
14 14
15 15
  16 +# ==================获取登陆token========
16 17 class LoginToken:
17 18 def login_token():
18 19 # 登陆获取token
... ...
注册登录 后发表评论