正在显示
18 个修改的文件
包含
207 行增加
和
68 行删除
| 1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <project version="4"> | 2 | <project version="4"> |
| 3 | <component name="ChangeListManager"> | 3 | <component name="ChangeListManager"> |
| 4 | - <list default="true" id="129454fc-5415-4c7e-9855-d0293355ede5" name="Default Changelist" comment="版本:1.0.6 1.支持单独模块用例的执行"> | ||
| 5 | - <change afterPath="$PROJECT_DIR$/data/Internship_preparation/test_04_internship_plan.xlsx" afterDir="false" /> | ||
| 6 | - <change afterPath="$PROJECT_DIR$/testcase/test_04_Internship_preparation.py" afterDir="false" /> | 4 | + <list default="true" id="129454fc-5415-4c7e-9855-d0293355ede5" name="Default Changelist" comment="版本:1.0.6 1.需求院系名称由倒序改成正序排列,代码优化"> |
| 7 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> | 5 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |
| 6 | + <change beforePath="$PROJECT_DIR$/common/handle_path.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/handle_path.py" afterDir="false" /> | ||
| 8 | <change beforePath="$PROJECT_DIR$/conf/config.ini" beforeDir="false" afterPath="$PROJECT_DIR$/conf/config.ini" afterDir="false" /> | 7 | <change beforePath="$PROJECT_DIR$/conf/config.ini" beforeDir="false" afterPath="$PROJECT_DIR$/conf/config.ini" afterDir="false" /> |
| 8 | + <change beforePath="$PROJECT_DIR$/data/Internship_preparation/test_04_internship_plan.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_preparation/test_04_internship_plan.xlsx" afterDir="false" /> | ||
| 9 | <change beforePath="$PROJECT_DIR$/data/system/test_02_department.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_department.xlsx" afterDir="false" /> | 9 | <change beforePath="$PROJECT_DIR$/data/system/test_02_department.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_department.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" /> | 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" /> | 11 | <change beforePath="$PROJECT_DIR$/data/system/test_02_term.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/system/test_02_term.xlsx" afterDir="false" /> |
| @@ -19,8 +19,7 @@ | @@ -19,8 +19,7 @@ | ||
| 19 | <change beforePath="$PROJECT_DIR$/run.py" beforeDir="false" afterPath="$PROJECT_DIR$/run.py" afterDir="false" /> | 19 | <change beforePath="$PROJECT_DIR$/run.py" beforeDir="false" afterPath="$PROJECT_DIR$/run.py" afterDir="false" /> |
| 20 | <change beforePath="$PROJECT_DIR$/testcase/test_02_system_management.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_02_system_management.py" afterDir="false" /> | 20 | <change beforePath="$PROJECT_DIR$/testcase/test_02_system_management.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_02_system_management.py" afterDir="false" /> |
| 21 | <change beforePath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" afterDir="false" /> | 21 | <change beforePath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" afterDir="false" /> |
| 22 | - <change beforePath="$PROJECT_DIR$/tools/fixture.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/fixture.py" afterDir="false" /> | ||
| 23 | - <change beforePath="$PROJECT_DIR$/tools/handle_token.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/handle_token.py" afterDir="false" /> | 22 | + <change beforePath="$PROJECT_DIR$/testcase/test_04_Internship_preparation.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_04_Internship_preparation.py" afterDir="false" /> |
| 24 | </list> | 23 | </list> |
| 25 | <option name="SHOW_DIALOG" value="false" /> | 24 | <option name="SHOW_DIALOG" value="false" /> |
| 26 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> | 25 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> |
| @@ -118,7 +117,7 @@ | @@ -118,7 +117,7 @@ | ||
| 118 | <option name="INPUT_FILE" value="" /> | 117 | <option name="INPUT_FILE" value="" /> |
| 119 | <method v="2" /> | 118 | <method v="2" /> |
| 120 | </configuration> | 119 | </configuration> |
| 121 | - <configuration name="Unittests in test_01_login.py" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true"> | 120 | + <configuration name="Unittests in test_02_system_management.py" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true"> |
| 122 | <module name="yxly2" /> | 121 | <module name="yxly2" /> |
| 123 | <option name="INTERPRETER_OPTIONS" value="" /> | 122 | <option name="INTERPRETER_OPTIONS" value="" /> |
| 124 | <option name="PARENT_ENVS" value="true" /> | 123 | <option name="PARENT_ENVS" value="true" /> |
| @@ -129,11 +128,11 @@ | @@ -129,11 +128,11 @@ | ||
| 129 | <option name="ADD_SOURCE_ROOTS" value="true" /> | 128 | <option name="ADD_SOURCE_ROOTS" value="true" /> |
| 130 | <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> | 129 | <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> |
| 131 | <option name="_new_additionalArguments" value="""" /> | 130 | <option name="_new_additionalArguments" value="""" /> |
| 132 | - <option name="_new_target" value=""$PROJECT_DIR$/testcase/test_01_login.py"" /> | 131 | + <option name="_new_target" value=""$PROJECT_DIR$/testcase/test_02_system_management.py"" /> |
| 133 | <option name="_new_targetType" value=""PATH"" /> | 132 | <option name="_new_targetType" value=""PATH"" /> |
| 134 | <method v="2" /> | 133 | <method v="2" /> |
| 135 | </configuration> | 134 | </configuration> |
| 136 | - <configuration name="Unittests in test_02_system_management.py" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true"> | 135 | + <configuration name="Unittests in test_03_teaching_affairs.py" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true"> |
| 137 | <module name="yxly2" /> | 136 | <module name="yxly2" /> |
| 138 | <option name="INTERPRETER_OPTIONS" value="" /> | 137 | <option name="INTERPRETER_OPTIONS" value="" /> |
| 139 | <option name="PARENT_ENVS" value="true" /> | 138 | <option name="PARENT_ENVS" value="true" /> |
| @@ -144,11 +143,11 @@ | @@ -144,11 +143,11 @@ | ||
| 144 | <option name="ADD_SOURCE_ROOTS" value="true" /> | 143 | <option name="ADD_SOURCE_ROOTS" value="true" /> |
| 145 | <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> | 144 | <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> |
| 146 | <option name="_new_additionalArguments" value="""" /> | 145 | <option name="_new_additionalArguments" value="""" /> |
| 147 | - <option name="_new_target" value=""$PROJECT_DIR$/testcase/test_02_system_management.py"" /> | 146 | + <option name="_new_target" value=""$PROJECT_DIR$/testcase/test_03_teaching_affairs.py"" /> |
| 148 | <option name="_new_targetType" value=""PATH"" /> | 147 | <option name="_new_targetType" value=""PATH"" /> |
| 149 | <method v="2" /> | 148 | <method v="2" /> |
| 150 | </configuration> | 149 | </configuration> |
| 151 | - <configuration name="Unittests in test_03_teaching_affairs.py" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true"> | 150 | + <configuration name="Unittests in test_04_Internship_preparation.py" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true"> |
| 152 | <module name="yxly2" /> | 151 | <module name="yxly2" /> |
| 153 | <option name="INTERPRETER_OPTIONS" value="" /> | 152 | <option name="INTERPRETER_OPTIONS" value="" /> |
| 154 | <option name="PARENT_ENVS" value="true" /> | 153 | <option name="PARENT_ENVS" value="true" /> |
| @@ -159,7 +158,7 @@ | @@ -159,7 +158,7 @@ | ||
| 159 | <option name="ADD_SOURCE_ROOTS" value="true" /> | 158 | <option name="ADD_SOURCE_ROOTS" value="true" /> |
| 160 | <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> | 159 | <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> |
| 161 | <option name="_new_additionalArguments" value="""" /> | 160 | <option name="_new_additionalArguments" value="""" /> |
| 162 | - <option name="_new_target" value=""$PROJECT_DIR$/testcase/test_03_teaching_affairs.py"" /> | 161 | + <option name="_new_target" value=""$PROJECT_DIR$/testcase/test_04_Internship_preparation.py"" /> |
| 163 | <option name="_new_targetType" value=""PATH"" /> | 162 | <option name="_new_targetType" value=""PATH"" /> |
| 164 | <method v="2" /> | 163 | <method v="2" /> |
| 165 | </configuration> | 164 | </configuration> |
| @@ -167,16 +166,16 @@ | @@ -167,16 +166,16 @@ | ||
| 167 | <item itemvalue="Python.run" /> | 166 | <item itemvalue="Python.run" /> |
| 168 | <item itemvalue="Python.fixture (1)" /> | 167 | <item itemvalue="Python.fixture (1)" /> |
| 169 | <item itemvalue="Python tests.Unittests in test_03_teaching_affairs.py" /> | 168 | <item itemvalue="Python tests.Unittests in test_03_teaching_affairs.py" /> |
| 170 | - <item itemvalue="Python tests.Unittests in test_01_login.py" /> | ||
| 171 | <item itemvalue="Python tests.Unittests in test_02_system_management.py" /> | 169 | <item itemvalue="Python tests.Unittests in test_02_system_management.py" /> |
| 170 | + <item itemvalue="Python tests.Unittests in test_04_Internship_preparation.py" /> | ||
| 172 | </list> | 171 | </list> |
| 173 | <recent_temporary> | 172 | <recent_temporary> |
| 174 | <list> | 173 | <list> |
| 175 | <item itemvalue="Python.run" /> | 174 | <item itemvalue="Python.run" /> |
| 175 | + <item itemvalue="Python tests.Unittests in test_04_Internship_preparation.py" /> | ||
| 176 | <item itemvalue="Python tests.Unittests in test_02_system_management.py" /> | 176 | <item itemvalue="Python tests.Unittests in test_02_system_management.py" /> |
| 177 | <item itemvalue="Python tests.Unittests in test_03_teaching_affairs.py" /> | 177 | <item itemvalue="Python tests.Unittests in test_03_teaching_affairs.py" /> |
| 178 | <item itemvalue="Python.fixture (1)" /> | 178 | <item itemvalue="Python.fixture (1)" /> |
| 179 | - <item itemvalue="Python tests.Unittests in test_01_login.py" /> | ||
| 180 | </list> | 179 | </list> |
| 181 | </recent_temporary> | 180 | </recent_temporary> |
| 182 | </component> | 181 | </component> |
| @@ -200,7 +199,8 @@ | @@ -200,7 +199,8 @@ | ||
| 200 | <workItem from="1672129396493" duration="4038000" /> | 199 | <workItem from="1672129396493" duration="4038000" /> |
| 201 | <workItem from="1672191767788" duration="18977000" /> | 200 | <workItem from="1672191767788" duration="18977000" /> |
| 202 | <workItem from="1672235367588" duration="1605000" /> | 201 | <workItem from="1672235367588" duration="1605000" /> |
| 203 | - <workItem from="1672280816359" duration="13561000" /> | 202 | + <workItem from="1672280816359" duration="17752000" /> |
| 203 | + <workItem from="1672364796746" duration="19951000" /> | ||
| 204 | </task> | 204 | </task> |
| 205 | <task id="LOCAL-00001" summary="1.0.0 首次提交"> | 205 | <task id="LOCAL-00001" summary="1.0.0 首次提交"> |
| 206 | <created>1671544396986</created> | 206 | <created>1671544396986</created> |
| @@ -279,7 +279,14 @@ | @@ -279,7 +279,14 @@ | ||
| 279 | <option name="project" value="LOCAL" /> | 279 | <option name="project" value="LOCAL" /> |
| 280 | <updated>1672236669681</updated> | 280 | <updated>1672236669681</updated> |
| 281 | </task> | 281 | </task> |
| 282 | - <option name="localTasksCounter" value="12" /> | 282 | + <task id="LOCAL-00012" summary="版本:1.0.6 1.需求院系名称由倒序改成正序排列,代码优化"> |
| 283 | + <created>1672305081053</created> | ||
| 284 | + <option name="number" value="00012" /> | ||
| 285 | + <option name="presentableId" value="LOCAL-00012" /> | ||
| 286 | + <option name="project" value="LOCAL" /> | ||
| 287 | + <updated>1672305081053</updated> | ||
| 288 | + </task> | ||
| 289 | + <option name="localTasksCounter" value="13" /> | ||
| 283 | <servers /> | 290 | <servers /> |
| 284 | </component> | 291 | </component> |
| 285 | <component name="TypeScriptGeneratedFilesManager"> | 292 | <component name="TypeScriptGeneratedFilesManager"> |
| @@ -321,24 +328,25 @@ | @@ -321,24 +328,25 @@ | ||
| 321 | <MESSAGE value="版本:1.0.5 1.md文档更新" /> | 328 | <MESSAGE value="版本:1.0.5 1.md文档更新" /> |
| 322 | <MESSAGE value="版本:1.0.5 1.优化" /> | 329 | <MESSAGE value="版本:1.0.5 1.优化" /> |
| 323 | <MESSAGE value="版本:1.0.6 1.支持单独模块用例的执行" /> | 330 | <MESSAGE value="版本:1.0.6 1.支持单独模块用例的执行" /> |
| 324 | - <option name="LAST_COMMIT_MESSAGE" value="版本:1.0.6 1.支持单独模块用例的执行" /> | 331 | + <MESSAGE value="版本:1.0.6 1.需求院系名称由倒序改成正序排列,代码优化" /> |
| 332 | + <option name="LAST_COMMIT_MESSAGE" value="版本:1.0.6 1.需求院系名称由倒序改成正序排列,代码优化" /> | ||
| 325 | </component> | 333 | </component> |
| 326 | <component name="XDebuggerManager"> | 334 | <component name="XDebuggerManager"> |
| 327 | <breakpoint-manager> | 335 | <breakpoint-manager> |
| 328 | <breakpoints> | 336 | <breakpoints> |
| 329 | <line-breakpoint suspend="THREAD" type="python-line"> | 337 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 330 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> | 338 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> |
| 331 | - <line>147</line> | 339 | + <line>144</line> |
| 332 | <option name="timeStamp" value="5" /> | 340 | <option name="timeStamp" value="5" /> |
| 333 | </line-breakpoint> | 341 | </line-breakpoint> |
| 334 | <line-breakpoint suspend="THREAD" type="python-line"> | 342 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 335 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> | 343 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> |
| 336 | - <line>183</line> | 344 | + <line>180</line> |
| 337 | <option name="timeStamp" value="10" /> | 345 | <option name="timeStamp" value="10" /> |
| 338 | </line-breakpoint> | 346 | </line-breakpoint> |
| 339 | <line-breakpoint suspend="THREAD" type="python-line"> | 347 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 340 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> | 348 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> |
| 341 | - <line>88</line> | 349 | + <line>85</line> |
| 342 | <option name="timeStamp" value="11" /> | 350 | <option name="timeStamp" value="11" /> |
| 343 | </line-breakpoint> | 351 | </line-breakpoint> |
| 344 | <line-breakpoint suspend="THREAD" type="python-line"> | 352 | <line-breakpoint suspend="THREAD" type="python-line"> |
| @@ -358,17 +366,17 @@ | @@ -358,17 +366,17 @@ | ||
| 358 | </line-breakpoint> | 366 | </line-breakpoint> |
| 359 | <line-breakpoint suspend="THREAD" type="python-line"> | 367 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 360 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | 368 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
| 361 | - <line>108</line> | 369 | + <line>103</line> |
| 362 | <option name="timeStamp" value="23" /> | 370 | <option name="timeStamp" value="23" /> |
| 363 | </line-breakpoint> | 371 | </line-breakpoint> |
| 364 | <line-breakpoint suspend="THREAD" type="python-line"> | 372 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 365 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> | 373 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> |
| 366 | - <line>175</line> | 374 | + <line>172</line> |
| 367 | <option name="timeStamp" value="25" /> | 375 | <option name="timeStamp" value="25" /> |
| 368 | </line-breakpoint> | 376 | </line-breakpoint> |
| 369 | <line-breakpoint suspend="THREAD" type="python-line"> | 377 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 370 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> | 378 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> |
| 371 | - <line>258</line> | 379 | + <line>255</line> |
| 372 | <option name="timeStamp" value="26" /> | 380 | <option name="timeStamp" value="26" /> |
| 373 | </line-breakpoint> | 381 | </line-breakpoint> |
| 374 | <line-breakpoint suspend="THREAD" type="python-line"> | 382 | <line-breakpoint suspend="THREAD" type="python-line"> |
| @@ -378,17 +386,17 @@ | @@ -378,17 +386,17 @@ | ||
| 378 | </line-breakpoint> | 386 | </line-breakpoint> |
| 379 | <line-breakpoint suspend="THREAD" type="python-line"> | 387 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 380 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | 388 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
| 381 | - <line>297</line> | 389 | + <line>291</line> |
| 382 | <option name="timeStamp" value="35" /> | 390 | <option name="timeStamp" value="35" /> |
| 383 | </line-breakpoint> | 391 | </line-breakpoint> |
| 384 | <line-breakpoint suspend="THREAD" type="python-line"> | 392 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 385 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | 393 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
| 386 | - <line>325</line> | 394 | + <line>319</line> |
| 387 | <option name="timeStamp" value="37" /> | 395 | <option name="timeStamp" value="37" /> |
| 388 | </line-breakpoint> | 396 | </line-breakpoint> |
| 389 | <line-breakpoint suspend="THREAD" type="python-line"> | 397 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 390 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | 398 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
| 391 | - <line>369</line> | 399 | + <line>363</line> |
| 392 | <option name="timeStamp" value="38" /> | 400 | <option name="timeStamp" value="38" /> |
| 393 | </line-breakpoint> | 401 | </line-breakpoint> |
| 394 | <line-breakpoint suspend="THREAD" type="python-line"> | 402 | <line-breakpoint suspend="THREAD" type="python-line"> |
| @@ -398,12 +406,7 @@ | @@ -398,12 +406,7 @@ | ||
| 398 | </line-breakpoint> | 406 | </line-breakpoint> |
| 399 | <line-breakpoint suspend="THREAD" type="python-line"> | 407 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 400 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | 408 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
| 401 | - <line>243</line> | ||
| 402 | - <option name="timeStamp" value="43" /> | ||
| 403 | - </line-breakpoint> | ||
| 404 | - <line-breakpoint suspend="THREAD" type="python-line"> | ||
| 405 | - <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> | ||
| 406 | - <line>242</line> | 409 | + <line>237</line> |
| 407 | <option name="timeStamp" value="44" /> | 410 | <option name="timeStamp" value="44" /> |
| 408 | </line-breakpoint> | 411 | </line-breakpoint> |
| 409 | <line-breakpoint suspend="THREAD" type="python-line"> | 412 | <line-breakpoint suspend="THREAD" type="python-line"> |
| @@ -413,9 +416,24 @@ | @@ -413,9 +416,24 @@ | ||
| 413 | </line-breakpoint> | 416 | </line-breakpoint> |
| 414 | <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> | 417 | <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> |
| 415 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> | 418 | <url>file://$PROJECT_DIR$/testcase/test_02_system_management.py</url> |
| 416 | - <line>177</line> | 419 | + <line>174</line> |
| 417 | <option name="timeStamp" value="49" /> | 420 | <option name="timeStamp" value="49" /> |
| 418 | </line-breakpoint> | 421 | </line-breakpoint> |
| 422 | + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> | ||
| 423 | + <url>file://$PROJECT_DIR$/testcase/test_04_Internship_preparation.py</url> | ||
| 424 | + <line>114</line> | ||
| 425 | + <option name="timeStamp" value="50" /> | ||
| 426 | + </line-breakpoint> | ||
| 427 | + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> | ||
| 428 | + <url>file://$PROJECT_DIR$/testcase/test_04_Internship_preparation.py</url> | ||
| 429 | + <line>62</line> | ||
| 430 | + <option name="timeStamp" value="51" /> | ||
| 431 | + </line-breakpoint> | ||
| 432 | + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> | ||
| 433 | + <url>file://$PROJECT_DIR$/testcase/test_04_Internship_preparation.py</url> | ||
| 434 | + <line>76</line> | ||
| 435 | + <option name="timeStamp" value="52" /> | ||
| 436 | + </line-breakpoint> | ||
| 419 | </breakpoints> | 437 | </breakpoints> |
| 420 | <default-breakpoints> | 438 | <default-breakpoints> |
| 421 | <breakpoint type="python-exception"> | 439 | <breakpoint type="python-exception"> |
| @@ -432,8 +450,9 @@ | @@ -432,8 +450,9 @@ | ||
| 432 | <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" /> | 450 | <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" /> |
| 433 | <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" /> | 451 | <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" /> |
| 434 | <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" /> | 452 | <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" /> |
| 453 | + <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_04_Internship_preparation_py.coverage" NAME="Unittests in test_04_Internship_preparation.py Coverage Results" MODIFIED="1672390869984" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | ||
| 435 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_03_teaching_affairs_py.coverage" NAME="Unittests in test_03_teaching_affairs.py Coverage Results" MODIFIED="1672198781295" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | 454 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_03_teaching_affairs_py.coverage" NAME="Unittests in test_03_teaching_affairs.py Coverage Results" MODIFIED="1672198781295" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
| 436 | <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" /> | 455 | <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" /> |
| 437 | - <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1672304771099" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" /> | 456 | + <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1672393153208" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" /> |
| 438 | </component> | 457 | </component> |
| 439 | </project> | 458 | </project> |
| @@ -19,5 +19,10 @@ Report_Path = os.path.join(Base_Path, "report") | @@ -19,5 +19,10 @@ Report_Path = os.path.join(Base_Path, "report") | ||
| 19 | Log_Path = os.path.join(Base_Path, "logs") | 19 | Log_Path = os.path.join(Base_Path, "logs") |
| 20 | # 测试数据的Excel | 20 | # 测试数据的Excel |
| 21 | DataExcel_Path = os.path.join(Base_Path, "data") | 21 | DataExcel_Path = os.path.join(Base_Path, "data") |
| 22 | +# -------------------------------------------- | ||
| 23 | +TeachingAffairs_path = os.path.join(DataExcel_Path, "teaching_affairs") # 教务系统管理列表 | ||
| 24 | +System_path = os.path.join(DataExcel_Path, "system") # 系统管理列表 | ||
| 25 | +Internship_path = os.path.join(DataExcel_Path, "Internship_preparation") # 实习准备目录 | ||
| 26 | +# -------------------------------------------- | ||
| 22 | # 配置文件的路径 | 27 | # 配置文件的路径 |
| 23 | Config_Path = os.path.join(Base_Path, "conf") | 28 | Config_Path = os.path.join(Base_Path, "conf") |
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
| 1 | -[{"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "12.67 S", "begin_time": "2022-12-19 17:56:09", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.87 S", "begin_time": "2022-12-19 17:58:06", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.24 S", "begin_time": "2022-12-19 18:17:28", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.45 S", "begin_time": "2022-12-19 18:19:47", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.72 S", "begin_time": "2022-12-19 19:32:22", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "103.32 S", "begin_time": "2022-12-19 20:35:55", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.95 S", "begin_time": "2022-12-20 12:06:06", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.92 S", "begin_time": "2022-12-20 21:34:11", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.77 S", "begin_time": "2022-12-20 21:35:13", "pass_rate": "37.50"}, {"success": 8, "all": 25, "fail": 12, "skip": 0, "error": 5, "runtime": "14.41 S", "begin_time": "2022-12-21 22:40:23", "pass_rate": "32.00"}, {"success": 8, "all": 25, "fail": 12, "skip": 0, "error": 5, "runtime": "14.73 S", "begin_time": "2022-12-21 22:52:34", "pass_rate": "32.00"}, {"success": 9, "all": 25, "fail": 12, "skip": 0, "error": 4, "runtime": "14.49 S", "begin_time": "2022-12-21 22:55:57", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 12, "skip": 0, "error": 4, "runtime": "14.04 S", "begin_time": "2022-12-21 22:57:36", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.09 S", "begin_time": "2022-12-21 23:02:18", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.30 S", "begin_time": "2022-12-21 23:10:55", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.19 S", "begin_time": "2022-12-22 00:05:50", "pass_rate": "36.00"}, {"success": 5, "all": 25, "fail": 16, "skip": 0, "error": 4, "runtime": "13.92 S", "begin_time": "2022-12-22 00:26:21", "pass_rate": "20.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "15.25 S", "begin_time": "2022-12-22 00:32:39", "pass_rate": "36.00"}, {"success": 0, "all": 8, "fail": 0, "skip": 0, "error": 8, "runtime": "0.71 S", "begin_time": "2022-12-22 00:47:52", "pass_rate": "0.00"}, {"success": 8, "all": 25, "fail": 17, "skip": 0, "error": 0, "runtime": "12.65 S", "begin_time": "2022-12-22 00:54:19", "pass_rate": "32.00"}, {"success": 4, "all": 15, "fail": 11, "skip": 0, "error": 0, "runtime": "10.52 S", "begin_time": "2022-12-22 15:54:09", "pass_rate": "26.67"}, {"success": 4, "all": 15, "fail": 11, "skip": 0, "error": 0, "runtime": "10.60 S", "begin_time": "2022-12-22 15:59:15", "pass_rate": "26.67"}, {"success": 7, "all": 26, "fail": 9, "skip": 0, "error": 10, "runtime": "13.48 S", "begin_time": "2022-12-22 23:03:40", "pass_rate": "26.92"}, {"success": 6, "all": 16, "fail": 10, "skip": 0, "error": 0, "runtime": "11.90 S", "begin_time": "2022-12-22 23:08:12", "pass_rate": "37.50"}, {"success": 10, "all": 26, "fail": 16, "skip": 0, "error": 0, "runtime": "15.15 S", "begin_time": "2022-12-22 23:09:09", "pass_rate": "38.46"}, {"success": 11, "all": 26, "fail": 15, "skip": 0, "error": 0, "runtime": "17.06 S", "begin_time": "2022-12-23 11:04:53", "pass_rate": "42.31"}, {"success": 15, "all": 26, "fail": 11, "skip": 0, "error": 0, "runtime": "16.82 S", "begin_time": "2022-12-23 11:10:29", "pass_rate": "57.69"}, {"success": 14, "all": 31, "fail": 14, "skip": 0, "error": 3, "runtime": "16.68 S", "begin_time": "2022-12-23 11:24:23", "pass_rate": "45.16"}, {"success": 14, "all": 31, "fail": 14, "skip": 0, "error": 3, "runtime": "15.31 S", "begin_time": "2022-12-23 11:50:26", "pass_rate": "45.16"}, {"success": 14, "all": 31, "fail": 17, "skip": 0, "error": 0, "runtime": "19.41 S", "begin_time": "2022-12-23 11:53:02", "pass_rate": "45.16"}, {"success": 19, "all": 32, "fail": 13, "skip": 0, "error": 0, "runtime": "18.26 S", "begin_time": "2022-12-23 13:56:17", "pass_rate": "59.38"}, {"success": 21, "all": 32, "fail": 11, "skip": 0, "error": 0, "runtime": "19.63 S", "begin_time": "2022-12-23 14:54:12", "pass_rate": "65.62"}, {"success": 25, "all": 32, "fail": 7, "skip": 0, "error": 0, "runtime": "18.92 S", "begin_time": "2022-12-23 15:00:04", "pass_rate": "78.12"}, {"success": 26, "all": 32, "fail": 6, "skip": 0, "error": 0, "runtime": "18.33 S", "begin_time": "2022-12-23 15:01:19", "pass_rate": "81.25"}, {"success": 7, "all": 16, "fail": 0, "skip": 0, "error": 9, "runtime": "4.59 S", "begin_time": "2022-12-23 15:03:33", "pass_rate": "43.75"}, {"success": 4, "all": 9, "fail": 1, "skip": 0, "error": 4, "runtime": "2.53 S", "begin_time": "2022-12-23 15:04:12", "pass_rate": "44.44"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "19.26 S", "begin_time": "2022-12-23 15:06:22", "pass_rate": "84.38"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "18.92 S", "begin_time": "2022-12-23 15:07:58", "pass_rate": "84.38"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "18.01 S", "begin_time": "2022-12-23 15:10:26", "pass_rate": "84.38"}, {"success": 28, "all": 32, "fail": 4, "skip": 0, "error": 0, "runtime": "19.33 S", "begin_time": "2022-12-23 15:31:35", "pass_rate": "87.50"}, {"success": 28, "all": 32, "fail": 4, "skip": 0, "error": 0, "runtime": "18.24 S", "begin_time": "2022-12-23 15:36:47", "pass_rate": "87.50"}, {"success": 29, "all": 32, "fail": 3, "skip": 0, "error": 0, "runtime": "21.94 S", "begin_time": "2022-12-23 16:20:37", "pass_rate": "90.62"}, {"success": 29, "all": 32, "fail": 3, "skip": 0, "error": 0, "runtime": "20.53 S", "begin_time": "2022-12-23 16:21:09", "pass_rate": "90.62"}, {"success": 31, "all": 32, "fail": 1, "skip": 0, "error": 0, "runtime": "19.00 S", "begin_time": "2022-12-23 16:25:20", "pass_rate": "96.88"}, {"success": 32, "all": 32, "fail": 0, "skip": 0, "error": 0, "runtime": "18.70 S", "begin_time": "2022-12-23 16:26:19", "pass_rate": "100.00"}, {"success": 32, "all": 32, "fail": 0, "skip": 0, "error": 0, "runtime": "18.82 S", "begin_time": "2022-12-23 16:43:23", "pass_rate": "100.00"}, {"success": 30, "all": 31, "fail": 0, "skip": 0, "error": 1, "runtime": "53.09 S", "begin_time": "2022-12-23 19:05:51", "pass_rate": "96.77"}, {"success": 31, "all": 31, "fail": 0, "skip": 0, "error": 0, "runtime": "18.21 S", "begin_time": "2022-12-23 19:09:09", "pass_rate": "100.00"}, {"success": 30, "all": 31, "fail": 1, "skip": 0, "error": 0, "runtime": "15.82 S", "begin_time": "2022-12-23 19:09:46", "pass_rate": "96.77"}, {"success": 3, "all": 3, "fail": 0, "skip": 0, "error": 0, "runtime": "1.54 S", "begin_time": "2022-12-24 17:34:33", "pass_rate": "100.00"}, {"success": 3, "all": 3, "fail": 0, "skip": 0, "error": 0, "runtime": "2.35 S", "begin_time": "2022-12-24 17:36:32", "pass_rate": "100.00"}, {"success": 5, "all": 5, "fail": 0, "skip": 0, "error": 0, "runtime": "8.45 S", "begin_time": "2022-12-24 20:26:29", "pass_rate": "100.00"}, {"success": 32, "all": 33, "fail": 1, "skip": 0, "error": 0, "runtime": "24.90 S", "begin_time": "2022-12-24 20:29:36", "pass_rate": "96.97"}, {"success": 33, "all": 33, "fail": 0, "skip": 0, "error": 0, "runtime": "24.88 S", "begin_time": "2022-12-24 20:30:36", "pass_rate": "100.00"}, {"success": 33, "all": 33, "fail": 0, "skip": 0, "error": 0, "runtime": "23.42 S", "begin_time": "2022-12-27 10:13:10", "pass_rate": "100.00"}, {"success": 1, "all": 1, "fail": 0, "skip": 0, "error": 0, "runtime": "3.69 S", "begin_time": "2022-12-27 11:04:21", "pass_rate": "100.00"}, {"success": 1, "all": 15, "fail": 0, "skip": 0, "error": 14, "runtime": "6.81 S", "begin_time": "2022-12-27 11:24:50", "pass_rate": "6.67"}, {"success": 7, "all": 15, "fail": 4, "skip": 0, "error": 4, "runtime": "6.84 S", "begin_time": "2022-12-27 11:29:52", "pass_rate": "46.67"}, {"success": 8, "all": 15, "fail": 5, "skip": 0, "error": 2, "runtime": "7.09 S", "begin_time": "2022-12-27 11:30:59", "pass_rate": "53.33"}, {"success": 9, "all": 15, "fail": 5, "skip": 0, "error": 1, "runtime": "7.83 S", "begin_time": "2022-12-27 11:35:03", "pass_rate": "60.00"}, {"success": 10, "all": 15, "fail": 5, "skip": 0, "error": 0, "runtime": "7.92 S", "begin_time": "2022-12-27 11:36:43", "pass_rate": "66.67"}, {"success": 10, "all": 15, "fail": 5, "skip": 0, "error": 0, "runtime": "7.43 S", "begin_time": "2022-12-27 11:38:30", "pass_rate": "66.67"}, {"success": 15, "all": 20, "fail": 5, "skip": 0, "error": 0, "runtime": "17.49 S", "begin_time": "2022-12-27 13:13:59", "pass_rate": "75.00"}, {"success": 15, "all": 20, "fail": 5, "skip": 0, "error": 0, "runtime": "18.16 S", "begin_time": "2022-12-27 13:14:25", "pass_rate": "75.00"}, {"success": 48, "all": 77, "fail": 10, "skip": 0, "error": 19, "runtime": "164.06 S", "begin_time": "2022-12-27 14:17:07", "pass_rate": "62.34"}, {"success": 48, "all": 77, "fail": 10, "skip": 0, "error": 19, "runtime": "34.83 S", "begin_time": "2022-12-27 14:27:15", "pass_rate": "62.34"}, {"success": 16, "all": 45, "fail": 8, "skip": 0, "error": 21, "runtime": "16.68 S", "begin_time": "2022-12-27 14:37:20", "pass_rate": "35.56"}, {"success": 4, "all": 14, "fail": 3, "skip": 0, "error": 7, "runtime": "4.64 S", "begin_time": "2022-12-27 14:38:18", "pass_rate": "28.57"}, {"success": 4, "all": 14, "fail": 3, "skip": 0, "error": 7, "runtime": "4.41 S", "begin_time": "2022-12-27 14:38:36", "pass_rate": "28.57"}, {"success": 5, "all": 14, "fail": 3, "skip": 0, "error": 6, "runtime": "4.97 S", "begin_time": "2022-12-27 14:40:10", "pass_rate": "35.71"}, {"success": 5, "all": 14, "fail": 4, "skip": 0, "error": 5, "runtime": "5.20 S", "begin_time": "2022-12-27 14:41:31", "pass_rate": "35.71"}, {"success": 5, "all": 14, "fail": 9, "skip": 0, "error": 0, "runtime": "6.57 S", "begin_time": "2022-12-27 14:43:50", "pass_rate": "35.71"}, {"success": 20, "all": 45, "fail": 13, "skip": 0, "error": 12, "runtime": "19.22 S", "begin_time": "2022-12-27 14:45:55", "pass_rate": "44.44"}, {"success": 1, "all": 13, "fail": 1, "skip": 0, "error": 11, "runtime": "3.10 S", "begin_time": "2022-12-27 14:48:00", "pass_rate": "7.69"}, {"success": 1, "all": 13, "fail": 1, "skip": 0, "error": 11, "runtime": "3.07 S", "begin_time": "2022-12-27 14:48:31", "pass_rate": "7.69"}, {"success": 2, "all": 13, "fail": 11, "skip": 0, "error": 0, "runtime": "6.09 S", "begin_time": "2022-12-27 14:49:43", "pass_rate": "15.38"}, {"success": 21, "all": 45, "fail": 24, "skip": 0, "error": 0, "runtime": "25.36 S", "begin_time": "2022-12-27 14:51:21", "pass_rate": "46.67"}, {"success": 51, "all": 77, "fail": 26, "skip": 0, "error": 0, "runtime": "39.21 S", "begin_time": "2022-12-27 14:52:13", "pass_rate": "66.23"}, {"success": 50, "all": 77, "fail": 26, "skip": 0, "error": 1, "runtime": "38.96 S", "begin_time": "2022-12-27 15:07:27", "pass_rate": "64.94"}, {"success": 51, "all": 77, "fail": 26, "skip": 0, "error": 0, "runtime": "79.21 S", "begin_time": "2022-12-27 15:10:37", "pass_rate": "66.23"}, {"success": 53, "all": 77, "fail": 24, "skip": 0, "error": 0, "runtime": "76.66 S", "begin_time": "2022-12-27 15:15:12", "pass_rate": "68.83"}, {"success": 54, "all": 77, "fail": 23, "skip": 0, "error": 0, "runtime": "61.72 S", "begin_time": "2022-12-27 15:17:59", "pass_rate": "70.13"}, {"success": 53, "all": 77, "fail": 23, "skip": 0, "error": 1, "runtime": "39.40 S", "begin_time": "2022-12-27 15:38:19", "pass_rate": "68.83"}, {"success": 34, "all": 77, "fail": 42, "skip": 0, "error": 1, "runtime": "38.39 S", "begin_time": "2022-12-27 18:24:36", "pass_rate": "44.16"}, {"success": 35, "all": 77, "fail": 39, "skip": 0, "error": 3, "runtime": "36.32 S", "begin_time": "2022-12-27 18:30:32", "pass_rate": "45.45"}, {"success": 35, "all": 77, "fail": 42, "skip": 0, "error": 0, "runtime": "73.32 S", "begin_time": "2022-12-27 18:32:59", "pass_rate": "45.45"}, {"success": 63, "all": 77, "fail": 14, "skip": 0, "error": 0, "runtime": "66.47 S", "begin_time": "2022-12-28 09:43:06", "pass_rate": "81.82"}, {"success": 67, "all": 77, "fail": 10, "skip": 0, "error": 0, "runtime": "51.57 S", "begin_time": "2022-12-28 09:53:52", "pass_rate": "87.01"}, {"success": 4, "all": 5, "fail": 1, "skip": 0, "error": 0, "runtime": "7.77 S", "begin_time": "2022-12-28 10:21:49", "pass_rate": "80.00"}, {"success": 68, "all": 77, "fail": 9, "skip": 0, "error": 0, "runtime": "57.32 S", "begin_time": "2022-12-28 10:23:02", "pass_rate": "88.31"}, {"success": 0, "all": 5, "fail": 5, "skip": 0, "error": 0, "runtime": "8.49 S", "begin_time": "2022-12-28 11:00:34", "pass_rate": "0.00"}, {"success": 71, "all": 77, "fail": 6, "skip": 0, "error": 0, "runtime": "54.60 S", "begin_time": "2022-12-28 11:01:43", "pass_rate": "92.21"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "47.77 S", "begin_time": "2022-12-28 11:05:20", "pass_rate": "97.40"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "49.33 S", "begin_time": "2022-12-28 11:40:16", "pass_rate": "100.00"}, {"success": 76, "all": 77, "fail": 1, "skip": 0, "error": 0, "runtime": "40.79 S", "begin_time": "2022-12-28 15:13:17", "pass_rate": "98.70"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "41.11 S", "begin_time": "2022-12-28 15:18:51", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "40.24 S", "begin_time": "2022-12-28 15:21:34", "pass_rate": "100.00"}, {"success": 76, "all": 77, "fail": 1, "skip": 0, "error": 0, "runtime": "40.87 S", "begin_time": "2022-12-28 15:23:06", "pass_rate": "98.70"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "41.54 S", "begin_time": "2022-12-28 15:24:48", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "42.31 S", "begin_time": "2022-12-28 15:28:12", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "40.92 S", "begin_time": "2022-12-28 15:33:51", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "42.46 S", "begin_time": "2022-12-28 15:35:37", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "42.98 S", "begin_time": "2022-12-28 15:39:15", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "41.36 S", "begin_time": "2022-12-28 15:40:57", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "41.38 S", "begin_time": "2022-12-28 15:42:55", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "40.45 S", "begin_time": "2022-12-28 15:44:25", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "40.97 S", "begin_time": "2022-12-28 15:46:12", "pass_rate": "97.40"}, {"success": 73, "all": 77, "fail": 4, "skip": 0, "error": 0, "runtime": "42.81 S", "begin_time": "2022-12-28 15:47:07", "pass_rate": "94.81"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "39.53 S", "begin_time": "2022-12-28 15:50:11", "pass_rate": "100.00"}, {"success": 74, "all": 77, "fail": 3, "skip": 0, "error": 0, "runtime": "43.91 S", "begin_time": "2022-12-28 16:12:34", "pass_rate": "96.10"}, {"success": 74, "all": 77, "fail": 3, "skip": 0, "error": 0, "runtime": "42.36 S", "begin_time": "2022-12-28 16:13:35", "pass_rate": "96.10"}, {"success": 74, "all": 77, "fail": 3, "skip": 0, "error": 0, "runtime": "42.94 S", "begin_time": "2022-12-28 16:14:59", "pass_rate": "96.10"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "46.91 S", "begin_time": "2022-12-28 16:25:35", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "40.87 S", "begin_time": "2022-12-28 16:33:19", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "39.74 S", "begin_time": "2022-12-28 16:39:59", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "47.71 S", "begin_time": "2022-12-28 16:41:45", "pass_rate": "100.00"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "41.14 S", "begin_time": "2022-12-28 16:46:12", "pass_rate": "97.40"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "39.60 S", "begin_time": "2022-12-28 17:10:55", "pass_rate": "100.00"}, {"success": 76, "all": 77, "fail": 1, "skip": 0, "error": 0, "runtime": "44.19 S", "begin_time": "2022-12-28 17:37:41", "pass_rate": "98.70"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "42.35 S", "begin_time": "2022-12-28 17:38:44", "pass_rate": "100.00"}, {"success": 19, "all": 19, "fail": 0, "skip": 0, "error": 0, "runtime": "14.00 S", "begin_time": "2022-12-28 21:58:24", "pass_rate": "100.00"}, {"success": 11, "all": 11, "fail": 0, "skip": 0, "error": 0, "runtime": "11.19 S", "begin_time": "2022-12-28 22:00:20", "pass_rate": "100.00"}, {"success": 23, "all": 23, "fail": 0, "skip": 0, "error": 0, "runtime": "10.85 S", "begin_time": "2022-12-28 22:02:52", "pass_rate": "100.00"}, {"success": 15, "all": 15, "fail": 0, "skip": 0, "error": 0, "runtime": "7.90 S", "begin_time": "2022-12-28 22:05:34", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "41.16 S", "begin_time": "2022-12-29 10:31:09", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "41.76 S", "begin_time": "2022-12-29 11:06:47", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "43.37 S", "begin_time": "2022-12-29 11:36:25", "pass_rate": "100.00"}, {"success": 0, "all": 0, "fail": 0, "skip": 0, "error": 0, "runtime": "1.41 S", "begin_time": "2022-12-29 13:47:58", "pass_rate": 0}, {"success": 0, "all": 1, "fail": 0, "skip": 0, "error": 1, "runtime": "0.94 S", "begin_time": "2022-12-29 13:48:47", "pass_rate": "0.00"}, {"success": 0, "all": 1, "fail": 0, "skip": 0, "error": 1, "runtime": "0.94 S", "begin_time": "2022-12-29 13:49:44", "pass_rate": "0.00"}, {"success": 8, "all": 10, "fail": 2, "skip": 0, "error": 0, "runtime": "4.75 S", "begin_time": "2022-12-29 13:51:43", "pass_rate": "80.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "4.52 S", "begin_time": "2022-12-29 13:53:28", "pass_rate": "90.00"}, {"success": 5, "all": 5, "fail": 0, "skip": 0, "error": 0, "runtime": "1.63 S", "begin_time": "2022-12-29 13:58:16", "pass_rate": "100.00"}, {"success": 0, "all": 1, "fail": 0, "skip": 0, "error": 1, "runtime": "1.02 S", "begin_time": "2022-12-29 14:03:56", "pass_rate": "0.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "4.69 S", "begin_time": "2022-12-29 14:06:30", "pass_rate": "90.00"}, {"success": 0, "all": 1, "fail": 0, "skip": 0, "error": 1, "runtime": "0.01 S", "begin_time": "2022-12-29 14:11:02", "pass_rate": "0.00"}, {"success": 8, "all": 10, "fail": 1, "skip": 0, "error": 1, "runtime": "4.29 S", "begin_time": "2022-12-29 14:11:56", "pass_rate": "80.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "6.62 S", "begin_time": "2022-12-29 14:13:24", "pass_rate": "90.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "6.26 S", "begin_time": "2022-12-29 14:15:09", "pass_rate": "90.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "6.22 S", "begin_time": "2022-12-29 14:19:08", "pass_rate": "90.00"}, {"success": 83, "all": 84, "fail": 1, "skip": 0, "error": 0, "runtime": "47.59 S", "begin_time": "2022-12-29 14:20:20", "pass_rate": "98.81"}, {"success": 83, "all": 84, "fail": 1, "skip": 0, "error": 0, "runtime": "47.76 S", "begin_time": "2022-12-29 14:35:17", "pass_rate": "98.81"}, {"success": 81, "all": 84, "fail": 3, "skip": 0, "error": 0, "runtime": "47.89 S", "begin_time": "2022-12-29 15:32:18", "pass_rate": "96.43"}, {"success": 82, "all": 84, "fail": 2, "skip": 0, "error": 0, "runtime": "50.49 S", "begin_time": "2022-12-29 17:06:12", "pass_rate": "97.62"}] | ||
| 1 | +[{"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "12.67 S", "begin_time": "2022-12-19 17:56:09", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.87 S", "begin_time": "2022-12-19 17:58:06", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.24 S", "begin_time": "2022-12-19 18:17:28", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.45 S", "begin_time": "2022-12-19 18:19:47", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "7.72 S", "begin_time": "2022-12-19 19:32:22", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "103.32 S", "begin_time": "2022-12-19 20:35:55", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.95 S", "begin_time": "2022-12-20 12:06:06", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.92 S", "begin_time": "2022-12-20 21:34:11", "pass_rate": "37.50"}, {"success": 9, "all": 24, "fail": 15, "skip": 0, "error": 0, "runtime": "6.77 S", "begin_time": "2022-12-20 21:35:13", "pass_rate": "37.50"}, {"success": 8, "all": 25, "fail": 12, "skip": 0, "error": 5, "runtime": "14.41 S", "begin_time": "2022-12-21 22:40:23", "pass_rate": "32.00"}, {"success": 8, "all": 25, "fail": 12, "skip": 0, "error": 5, "runtime": "14.73 S", "begin_time": "2022-12-21 22:52:34", "pass_rate": "32.00"}, {"success": 9, "all": 25, "fail": 12, "skip": 0, "error": 4, "runtime": "14.49 S", "begin_time": "2022-12-21 22:55:57", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 12, "skip": 0, "error": 4, "runtime": "14.04 S", "begin_time": "2022-12-21 22:57:36", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.09 S", "begin_time": "2022-12-21 23:02:18", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.30 S", "begin_time": "2022-12-21 23:10:55", "pass_rate": "36.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "14.19 S", "begin_time": "2022-12-22 00:05:50", "pass_rate": "36.00"}, {"success": 5, "all": 25, "fail": 16, "skip": 0, "error": 4, "runtime": "13.92 S", "begin_time": "2022-12-22 00:26:21", "pass_rate": "20.00"}, {"success": 9, "all": 25, "fail": 16, "skip": 0, "error": 0, "runtime": "15.25 S", "begin_time": "2022-12-22 00:32:39", "pass_rate": "36.00"}, {"success": 0, "all": 8, "fail": 0, "skip": 0, "error": 8, "runtime": "0.71 S", "begin_time": "2022-12-22 00:47:52", "pass_rate": "0.00"}, {"success": 8, "all": 25, "fail": 17, "skip": 0, "error": 0, "runtime": "12.65 S", "begin_time": "2022-12-22 00:54:19", "pass_rate": "32.00"}, {"success": 4, "all": 15, "fail": 11, "skip": 0, "error": 0, "runtime": "10.52 S", "begin_time": "2022-12-22 15:54:09", "pass_rate": "26.67"}, {"success": 4, "all": 15, "fail": 11, "skip": 0, "error": 0, "runtime": "10.60 S", "begin_time": "2022-12-22 15:59:15", "pass_rate": "26.67"}, {"success": 7, "all": 26, "fail": 9, "skip": 0, "error": 10, "runtime": "13.48 S", "begin_time": "2022-12-22 23:03:40", "pass_rate": "26.92"}, {"success": 6, "all": 16, "fail": 10, "skip": 0, "error": 0, "runtime": "11.90 S", "begin_time": "2022-12-22 23:08:12", "pass_rate": "37.50"}, {"success": 10, "all": 26, "fail": 16, "skip": 0, "error": 0, "runtime": "15.15 S", "begin_time": "2022-12-22 23:09:09", "pass_rate": "38.46"}, {"success": 11, "all": 26, "fail": 15, "skip": 0, "error": 0, "runtime": "17.06 S", "begin_time": "2022-12-23 11:04:53", "pass_rate": "42.31"}, {"success": 15, "all": 26, "fail": 11, "skip": 0, "error": 0, "runtime": "16.82 S", "begin_time": "2022-12-23 11:10:29", "pass_rate": "57.69"}, {"success": 14, "all": 31, "fail": 14, "skip": 0, "error": 3, "runtime": "16.68 S", "begin_time": "2022-12-23 11:24:23", "pass_rate": "45.16"}, {"success": 14, "all": 31, "fail": 14, "skip": 0, "error": 3, "runtime": "15.31 S", "begin_time": "2022-12-23 11:50:26", "pass_rate": "45.16"}, {"success": 14, "all": 31, "fail": 17, "skip": 0, "error": 0, "runtime": "19.41 S", "begin_time": "2022-12-23 11:53:02", "pass_rate": "45.16"}, {"success": 19, "all": 32, "fail": 13, "skip": 0, "error": 0, "runtime": "18.26 S", "begin_time": "2022-12-23 13:56:17", "pass_rate": "59.38"}, {"success": 21, "all": 32, "fail": 11, "skip": 0, "error": 0, "runtime": "19.63 S", "begin_time": "2022-12-23 14:54:12", "pass_rate": "65.62"}, {"success": 25, "all": 32, "fail": 7, "skip": 0, "error": 0, "runtime": "18.92 S", "begin_time": "2022-12-23 15:00:04", "pass_rate": "78.12"}, {"success": 26, "all": 32, "fail": 6, "skip": 0, "error": 0, "runtime": "18.33 S", "begin_time": "2022-12-23 15:01:19", "pass_rate": "81.25"}, {"success": 7, "all": 16, "fail": 0, "skip": 0, "error": 9, "runtime": "4.59 S", "begin_time": "2022-12-23 15:03:33", "pass_rate": "43.75"}, {"success": 4, "all": 9, "fail": 1, "skip": 0, "error": 4, "runtime": "2.53 S", "begin_time": "2022-12-23 15:04:12", "pass_rate": "44.44"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "19.26 S", "begin_time": "2022-12-23 15:06:22", "pass_rate": "84.38"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "18.92 S", "begin_time": "2022-12-23 15:07:58", "pass_rate": "84.38"}, {"success": 27, "all": 32, "fail": 5, "skip": 0, "error": 0, "runtime": "18.01 S", "begin_time": "2022-12-23 15:10:26", "pass_rate": "84.38"}, {"success": 28, "all": 32, "fail": 4, "skip": 0, "error": 0, "runtime": "19.33 S", "begin_time": "2022-12-23 15:31:35", "pass_rate": "87.50"}, {"success": 28, "all": 32, "fail": 4, "skip": 0, "error": 0, "runtime": "18.24 S", "begin_time": "2022-12-23 15:36:47", "pass_rate": "87.50"}, {"success": 29, "all": 32, "fail": 3, "skip": 0, "error": 0, "runtime": "21.94 S", "begin_time": "2022-12-23 16:20:37", "pass_rate": "90.62"}, {"success": 29, "all": 32, "fail": 3, "skip": 0, "error": 0, "runtime": "20.53 S", "begin_time": "2022-12-23 16:21:09", "pass_rate": "90.62"}, {"success": 31, "all": 32, "fail": 1, "skip": 0, "error": 0, "runtime": "19.00 S", "begin_time": "2022-12-23 16:25:20", "pass_rate": "96.88"}, {"success": 32, "all": 32, "fail": 0, "skip": 0, "error": 0, "runtime": "18.70 S", "begin_time": "2022-12-23 16:26:19", "pass_rate": "100.00"}, {"success": 32, "all": 32, "fail": 0, "skip": 0, "error": 0, "runtime": "18.82 S", "begin_time": "2022-12-23 16:43:23", "pass_rate": "100.00"}, {"success": 30, "all": 31, "fail": 0, "skip": 0, "error": 1, "runtime": "53.09 S", "begin_time": "2022-12-23 19:05:51", "pass_rate": "96.77"}, {"success": 31, "all": 31, "fail": 0, "skip": 0, "error": 0, "runtime": "18.21 S", "begin_time": "2022-12-23 19:09:09", "pass_rate": "100.00"}, {"success": 30, "all": 31, "fail": 1, "skip": 0, "error": 0, "runtime": "15.82 S", "begin_time": "2022-12-23 19:09:46", "pass_rate": "96.77"}, {"success": 3, "all": 3, "fail": 0, "skip": 0, "error": 0, "runtime": "1.54 S", "begin_time": "2022-12-24 17:34:33", "pass_rate": "100.00"}, {"success": 3, "all": 3, "fail": 0, "skip": 0, "error": 0, "runtime": "2.35 S", "begin_time": "2022-12-24 17:36:32", "pass_rate": "100.00"}, {"success": 5, "all": 5, "fail": 0, "skip": 0, "error": 0, "runtime": "8.45 S", "begin_time": "2022-12-24 20:26:29", "pass_rate": "100.00"}, {"success": 32, "all": 33, "fail": 1, "skip": 0, "error": 0, "runtime": "24.90 S", "begin_time": "2022-12-24 20:29:36", "pass_rate": "96.97"}, {"success": 33, "all": 33, "fail": 0, "skip": 0, "error": 0, "runtime": "24.88 S", "begin_time": "2022-12-24 20:30:36", "pass_rate": "100.00"}, {"success": 33, "all": 33, "fail": 0, "skip": 0, "error": 0, "runtime": "23.42 S", "begin_time": "2022-12-27 10:13:10", "pass_rate": "100.00"}, {"success": 1, "all": 1, "fail": 0, "skip": 0, "error": 0, "runtime": "3.69 S", "begin_time": "2022-12-27 11:04:21", "pass_rate": "100.00"}, {"success": 1, "all": 15, "fail": 0, "skip": 0, "error": 14, "runtime": "6.81 S", "begin_time": "2022-12-27 11:24:50", "pass_rate": "6.67"}, {"success": 7, "all": 15, "fail": 4, "skip": 0, "error": 4, "runtime": "6.84 S", "begin_time": "2022-12-27 11:29:52", "pass_rate": "46.67"}, {"success": 8, "all": 15, "fail": 5, "skip": 0, "error": 2, "runtime": "7.09 S", "begin_time": "2022-12-27 11:30:59", "pass_rate": "53.33"}, {"success": 9, "all": 15, "fail": 5, "skip": 0, "error": 1, "runtime": "7.83 S", "begin_time": "2022-12-27 11:35:03", "pass_rate": "60.00"}, {"success": 10, "all": 15, "fail": 5, "skip": 0, "error": 0, "runtime": "7.92 S", "begin_time": "2022-12-27 11:36:43", "pass_rate": "66.67"}, {"success": 10, "all": 15, "fail": 5, "skip": 0, "error": 0, "runtime": "7.43 S", "begin_time": "2022-12-27 11:38:30", "pass_rate": "66.67"}, {"success": 15, "all": 20, "fail": 5, "skip": 0, "error": 0, "runtime": "17.49 S", "begin_time": "2022-12-27 13:13:59", "pass_rate": "75.00"}, {"success": 15, "all": 20, "fail": 5, "skip": 0, "error": 0, "runtime": "18.16 S", "begin_time": "2022-12-27 13:14:25", "pass_rate": "75.00"}, {"success": 48, "all": 77, "fail": 10, "skip": 0, "error": 19, "runtime": "164.06 S", "begin_time": "2022-12-27 14:17:07", "pass_rate": "62.34"}, {"success": 48, "all": 77, "fail": 10, "skip": 0, "error": 19, "runtime": "34.83 S", "begin_time": "2022-12-27 14:27:15", "pass_rate": "62.34"}, {"success": 16, "all": 45, "fail": 8, "skip": 0, "error": 21, "runtime": "16.68 S", "begin_time": "2022-12-27 14:37:20", "pass_rate": "35.56"}, {"success": 4, "all": 14, "fail": 3, "skip": 0, "error": 7, "runtime": "4.64 S", "begin_time": "2022-12-27 14:38:18", "pass_rate": "28.57"}, {"success": 4, "all": 14, "fail": 3, "skip": 0, "error": 7, "runtime": "4.41 S", "begin_time": "2022-12-27 14:38:36", "pass_rate": "28.57"}, {"success": 5, "all": 14, "fail": 3, "skip": 0, "error": 6, "runtime": "4.97 S", "begin_time": "2022-12-27 14:40:10", "pass_rate": "35.71"}, {"success": 5, "all": 14, "fail": 4, "skip": 0, "error": 5, "runtime": "5.20 S", "begin_time": "2022-12-27 14:41:31", "pass_rate": "35.71"}, {"success": 5, "all": 14, "fail": 9, "skip": 0, "error": 0, "runtime": "6.57 S", "begin_time": "2022-12-27 14:43:50", "pass_rate": "35.71"}, {"success": 20, "all": 45, "fail": 13, "skip": 0, "error": 12, "runtime": "19.22 S", "begin_time": "2022-12-27 14:45:55", "pass_rate": "44.44"}, {"success": 1, "all": 13, "fail": 1, "skip": 0, "error": 11, "runtime": "3.10 S", "begin_time": "2022-12-27 14:48:00", "pass_rate": "7.69"}, {"success": 1, "all": 13, "fail": 1, "skip": 0, "error": 11, "runtime": "3.07 S", "begin_time": "2022-12-27 14:48:31", "pass_rate": "7.69"}, {"success": 2, "all": 13, "fail": 11, "skip": 0, "error": 0, "runtime": "6.09 S", "begin_time": "2022-12-27 14:49:43", "pass_rate": "15.38"}, {"success": 21, "all": 45, "fail": 24, "skip": 0, "error": 0, "runtime": "25.36 S", "begin_time": "2022-12-27 14:51:21", "pass_rate": "46.67"}, {"success": 51, "all": 77, "fail": 26, "skip": 0, "error": 0, "runtime": "39.21 S", "begin_time": "2022-12-27 14:52:13", "pass_rate": "66.23"}, {"success": 50, "all": 77, "fail": 26, "skip": 0, "error": 1, "runtime": "38.96 S", "begin_time": "2022-12-27 15:07:27", "pass_rate": "64.94"}, {"success": 51, "all": 77, "fail": 26, "skip": 0, "error": 0, "runtime": "79.21 S", "begin_time": "2022-12-27 15:10:37", "pass_rate": "66.23"}, {"success": 53, "all": 77, "fail": 24, "skip": 0, "error": 0, "runtime": "76.66 S", "begin_time": "2022-12-27 15:15:12", "pass_rate": "68.83"}, {"success": 54, "all": 77, "fail": 23, "skip": 0, "error": 0, "runtime": "61.72 S", "begin_time": "2022-12-27 15:17:59", "pass_rate": "70.13"}, {"success": 53, "all": 77, "fail": 23, "skip": 0, "error": 1, "runtime": "39.40 S", "begin_time": "2022-12-27 15:38:19", "pass_rate": "68.83"}, {"success": 34, "all": 77, "fail": 42, "skip": 0, "error": 1, "runtime": "38.39 S", "begin_time": "2022-12-27 18:24:36", "pass_rate": "44.16"}, {"success": 35, "all": 77, "fail": 39, "skip": 0, "error": 3, "runtime": "36.32 S", "begin_time": "2022-12-27 18:30:32", "pass_rate": "45.45"}, {"success": 35, "all": 77, "fail": 42, "skip": 0, "error": 0, "runtime": "73.32 S", "begin_time": "2022-12-27 18:32:59", "pass_rate": "45.45"}, {"success": 63, "all": 77, "fail": 14, "skip": 0, "error": 0, "runtime": "66.47 S", "begin_time": "2022-12-28 09:43:06", "pass_rate": "81.82"}, {"success": 67, "all": 77, "fail": 10, "skip": 0, "error": 0, "runtime": "51.57 S", "begin_time": "2022-12-28 09:53:52", "pass_rate": "87.01"}, {"success": 4, "all": 5, "fail": 1, "skip": 0, "error": 0, "runtime": "7.77 S", "begin_time": "2022-12-28 10:21:49", "pass_rate": "80.00"}, {"success": 68, "all": 77, "fail": 9, "skip": 0, "error": 0, "runtime": "57.32 S", "begin_time": "2022-12-28 10:23:02", "pass_rate": "88.31"}, {"success": 0, "all": 5, "fail": 5, "skip": 0, "error": 0, "runtime": "8.49 S", "begin_time": "2022-12-28 11:00:34", "pass_rate": "0.00"}, {"success": 71, "all": 77, "fail": 6, "skip": 0, "error": 0, "runtime": "54.60 S", "begin_time": "2022-12-28 11:01:43", "pass_rate": "92.21"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "47.77 S", "begin_time": "2022-12-28 11:05:20", "pass_rate": "97.40"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "49.33 S", "begin_time": "2022-12-28 11:40:16", "pass_rate": "100.00"}, {"success": 76, "all": 77, "fail": 1, "skip": 0, "error": 0, "runtime": "40.79 S", "begin_time": "2022-12-28 15:13:17", "pass_rate": "98.70"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "41.11 S", "begin_time": "2022-12-28 15:18:51", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "40.24 S", "begin_time": "2022-12-28 15:21:34", "pass_rate": "100.00"}, {"success": 76, "all": 77, "fail": 1, "skip": 0, "error": 0, "runtime": "40.87 S", "begin_time": "2022-12-28 15:23:06", "pass_rate": "98.70"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "41.54 S", "begin_time": "2022-12-28 15:24:48", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "42.31 S", "begin_time": "2022-12-28 15:28:12", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "40.92 S", "begin_time": "2022-12-28 15:33:51", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "42.46 S", "begin_time": "2022-12-28 15:35:37", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "42.98 S", "begin_time": "2022-12-28 15:39:15", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "41.36 S", "begin_time": "2022-12-28 15:40:57", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "41.38 S", "begin_time": "2022-12-28 15:42:55", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "40.45 S", "begin_time": "2022-12-28 15:44:25", "pass_rate": "97.40"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "40.97 S", "begin_time": "2022-12-28 15:46:12", "pass_rate": "97.40"}, {"success": 73, "all": 77, "fail": 4, "skip": 0, "error": 0, "runtime": "42.81 S", "begin_time": "2022-12-28 15:47:07", "pass_rate": "94.81"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "39.53 S", "begin_time": "2022-12-28 15:50:11", "pass_rate": "100.00"}, {"success": 74, "all": 77, "fail": 3, "skip": 0, "error": 0, "runtime": "43.91 S", "begin_time": "2022-12-28 16:12:34", "pass_rate": "96.10"}, {"success": 74, "all": 77, "fail": 3, "skip": 0, "error": 0, "runtime": "42.36 S", "begin_time": "2022-12-28 16:13:35", "pass_rate": "96.10"}, {"success": 74, "all": 77, "fail": 3, "skip": 0, "error": 0, "runtime": "42.94 S", "begin_time": "2022-12-28 16:14:59", "pass_rate": "96.10"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "46.91 S", "begin_time": "2022-12-28 16:25:35", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "40.87 S", "begin_time": "2022-12-28 16:33:19", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "39.74 S", "begin_time": "2022-12-28 16:39:59", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "47.71 S", "begin_time": "2022-12-28 16:41:45", "pass_rate": "100.00"}, {"success": 75, "all": 77, "fail": 2, "skip": 0, "error": 0, "runtime": "41.14 S", "begin_time": "2022-12-28 16:46:12", "pass_rate": "97.40"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "39.60 S", "begin_time": "2022-12-28 17:10:55", "pass_rate": "100.00"}, {"success": 76, "all": 77, "fail": 1, "skip": 0, "error": 0, "runtime": "44.19 S", "begin_time": "2022-12-28 17:37:41", "pass_rate": "98.70"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "42.35 S", "begin_time": "2022-12-28 17:38:44", "pass_rate": "100.00"}, {"success": 19, "all": 19, "fail": 0, "skip": 0, "error": 0, "runtime": "14.00 S", "begin_time": "2022-12-28 21:58:24", "pass_rate": "100.00"}, {"success": 11, "all": 11, "fail": 0, "skip": 0, "error": 0, "runtime": "11.19 S", "begin_time": "2022-12-28 22:00:20", "pass_rate": "100.00"}, {"success": 23, "all": 23, "fail": 0, "skip": 0, "error": 0, "runtime": "10.85 S", "begin_time": "2022-12-28 22:02:52", "pass_rate": "100.00"}, {"success": 15, "all": 15, "fail": 0, "skip": 0, "error": 0, "runtime": "7.90 S", "begin_time": "2022-12-28 22:05:34", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "41.16 S", "begin_time": "2022-12-29 10:31:09", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "41.76 S", "begin_time": "2022-12-29 11:06:47", "pass_rate": "100.00"}, {"success": 77, "all": 77, "fail": 0, "skip": 0, "error": 0, "runtime": "43.37 S", "begin_time": "2022-12-29 11:36:25", "pass_rate": "100.00"}, {"success": 0, "all": 0, "fail": 0, "skip": 0, "error": 0, "runtime": "1.41 S", "begin_time": "2022-12-29 13:47:58", "pass_rate": 0}, {"success": 0, "all": 1, "fail": 0, "skip": 0, "error": 1, "runtime": "0.94 S", "begin_time": "2022-12-29 13:48:47", "pass_rate": "0.00"}, {"success": 0, "all": 1, "fail": 0, "skip": 0, "error": 1, "runtime": "0.94 S", "begin_time": "2022-12-29 13:49:44", "pass_rate": "0.00"}, {"success": 8, "all": 10, "fail": 2, "skip": 0, "error": 0, "runtime": "4.75 S", "begin_time": "2022-12-29 13:51:43", "pass_rate": "80.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "4.52 S", "begin_time": "2022-12-29 13:53:28", "pass_rate": "90.00"}, {"success": 5, "all": 5, "fail": 0, "skip": 0, "error": 0, "runtime": "1.63 S", "begin_time": "2022-12-29 13:58:16", "pass_rate": "100.00"}, {"success": 0, "all": 1, "fail": 0, "skip": 0, "error": 1, "runtime": "1.02 S", "begin_time": "2022-12-29 14:03:56", "pass_rate": "0.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "4.69 S", "begin_time": "2022-12-29 14:06:30", "pass_rate": "90.00"}, {"success": 0, "all": 1, "fail": 0, "skip": 0, "error": 1, "runtime": "0.01 S", "begin_time": "2022-12-29 14:11:02", "pass_rate": "0.00"}, {"success": 8, "all": 10, "fail": 1, "skip": 0, "error": 1, "runtime": "4.29 S", "begin_time": "2022-12-29 14:11:56", "pass_rate": "80.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "6.62 S", "begin_time": "2022-12-29 14:13:24", "pass_rate": "90.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "6.26 S", "begin_time": "2022-12-29 14:15:09", "pass_rate": "90.00"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "6.22 S", "begin_time": "2022-12-29 14:19:08", "pass_rate": "90.00"}, {"success": 83, "all": 84, "fail": 1, "skip": 0, "error": 0, "runtime": "47.59 S", "begin_time": "2022-12-29 14:20:20", "pass_rate": "98.81"}, {"success": 83, "all": 84, "fail": 1, "skip": 0, "error": 0, "runtime": "47.76 S", "begin_time": "2022-12-29 14:35:17", "pass_rate": "98.81"}, {"success": 81, "all": 84, "fail": 3, "skip": 0, "error": 0, "runtime": "47.89 S", "begin_time": "2022-12-29 15:32:18", "pass_rate": "96.43"}, {"success": 82, "all": 84, "fail": 2, "skip": 0, "error": 0, "runtime": "50.49 S", "begin_time": "2022-12-29 17:06:12", "pass_rate": "97.62"}, {"success": 82, "all": 84, "fail": 2, "skip": 0, "error": 0, "runtime": "54.94 S", "begin_time": "2022-12-29 17:43:04", "pass_rate": "97.62"}, {"success": 9, "all": 10, "fail": 1, "skip": 0, "error": 0, "runtime": "6.58 S", "begin_time": "2022-12-29 17:51:39", "pass_rate": "90.00"}, {"success": 83, "all": 84, "fail": 1, "skip": 0, "error": 0, "runtime": "48.80 S", "begin_time": "2022-12-29 17:52:42", "pass_rate": "98.81"}, {"success": 83, "all": 84, "fail": 1, "skip": 0, "error": 0, "runtime": "47.63 S", "begin_time": "2022-12-29 17:54:56", "pass_rate": "98.81"}, {"success": 83, "all": 84, "fail": 1, "skip": 0, "error": 0, "runtime": "47.44 S", "begin_time": "2022-12-29 17:56:51", "pass_rate": "98.81"}, {"success": 90, "all": 91, "fail": 1, "skip": 0, "error": 0, "runtime": "50.78 S", "begin_time": "2022-12-29 18:06:22", "pass_rate": "98.90"}, {"success": 1, "all": 2, "fail": 1, "skip": 0, "error": 0, "runtime": "5.88 S", "begin_time": "2022-12-30 13:53:38", "pass_rate": "50.00"}, {"success": 1, "all": 2, "fail": 1, "skip": 0, "error": 0, "runtime": "5.85 S", "begin_time": "2022-12-30 13:53:54", "pass_rate": "50.00"}, {"success": 0, "all": 2, "fail": 0, "skip": 0, "error": 2, "runtime": "5.14 S", "begin_time": "2022-12-30 14:03:29", "pass_rate": "0.00"}, {"success": 1, "all": 2, "fail": 1, "skip": 0, "error": 0, "runtime": "6.51 S", "begin_time": "2022-12-30 14:05:52", "pass_rate": "50.00"}, {"success": 9, "all": 30, "fail": 14, "skip": 0, "error": 7, "runtime": "14.13 S", "begin_time": "2022-12-30 15:04:47", "pass_rate": "30.00"}, {"success": 9, "all": 30, "fail": 14, "skip": 0, "error": 7, "runtime": "13.47 S", "begin_time": "2022-12-30 15:10:08", "pass_rate": "30.00"}, {"success": 13, "all": 30, "fail": 10, "skip": 0, "error": 7, "runtime": "13.12 S", "begin_time": "2022-12-30 15:19:55", "pass_rate": "43.33"}, {"success": 13, "all": 30, "fail": 10, "skip": 0, "error": 7, "runtime": "13.59 S", "begin_time": "2022-12-30 15:23:43", "pass_rate": "43.33"}, {"success": 14, "all": 30, "fail": 16, "skip": 0, "error": 0, "runtime": "15.90 S", "begin_time": "2022-12-30 15:31:30", "pass_rate": "46.67"}, {"success": 4, "all": 30, "fail": 26, "skip": 0, "error": 0, "runtime": "13.36 S", "begin_time": "2022-12-30 15:53:15", "pass_rate": "13.33"}, {"success": 97, "all": 121, "fail": 24, "skip": 0, "error": 0, "runtime": "97.81 S", "begin_time": "2022-12-30 15:59:28", "pass_rate": "80.17"}, {"success": 9, "all": 30, "fail": 21, "skip": 0, "error": 0, "runtime": "19.76 S", "begin_time": "2022-12-30 16:21:24", "pass_rate": "30.00"}, {"success": 9, "all": 30, "fail": 21, "skip": 0, "error": 0, "runtime": "16.73 S", "begin_time": "2022-12-30 16:23:19", "pass_rate": "30.00"}, {"success": 9, "all": 30, "fail": 21, "skip": 0, "error": 0, "runtime": "12.78 S", "begin_time": "2022-12-30 16:25:42", "pass_rate": "30.00"}, {"success": 99, "all": 121, "fail": 22, "skip": 0, "error": 0, "runtime": "67.08 S", "begin_time": "2022-12-30 17:11:04", "pass_rate": "81.82"}, {"success": 9, "all": 30, "fail": 21, "skip": 0, "error": 0, "runtime": "12.29 S", "begin_time": "2022-12-30 17:21:00", "pass_rate": "30.00"}, {"success": 24, "all": 30, "fail": 6, "skip": 0, "error": 0, "runtime": "18.88 S", "begin_time": "2022-12-30 17:35:31", "pass_rate": "80.00"}, {"success": 27, "all": 30, "fail": 3, "skip": 0, "error": 0, "runtime": "15.16 S", "begin_time": "2022-12-30 17:39:14", "pass_rate": "90.00"}] |
此 diff 太大无法显示。
| @@ -12,26 +12,28 @@ from common.handle_config import conf | @@ -12,26 +12,28 @@ from common.handle_config import conf | ||
| 12 | from testcase.test_01_login import TestLogin | 12 | from testcase.test_01_login import TestLogin |
| 13 | from testcase.test_02_system_management import Test01Department, Test02Specialty, Test03Year | 13 | from testcase.test_02_system_management import Test01Department, Test02Specialty, Test03Year |
| 14 | from testcase.test_03_teaching_affairs import Test01Teacher, Test02Class, Test03Course, Test04Student | 14 | from testcase.test_03_teaching_affairs import Test01Teacher, Test02Class, Test03Course, Test04Student |
| 15 | +from testcase.test_04_Internship_preparation import Test01InternshipPlan | ||
| 16 | + | ||
| 15 | 17 | ||
| 16 | 18 | ||
| 17 | """ | 19 | """ |
| 18 | 执行所有用例 | 20 | 执行所有用例 |
| 19 | """ | 21 | """ |
| 20 | -# 创建测试套件 | ||
| 21 | -suite = unittest.TestSuite() | ||
| 22 | -# 加载用例 | ||
| 23 | -# ---创建加载器 | ||
| 24 | -load = unittest.TestLoader() | ||
| 25 | -# ---用例放到加载器 | ||
| 26 | -suite.addTest(load.discover(TestCase_Path)) | 22 | +# # 创建测试套件 |
| 23 | +# suite = unittest.TestSuite() | ||
| 24 | +# # 加载用例 | ||
| 25 | +# # ---创建加载器 | ||
| 26 | +# load = unittest.TestLoader() | ||
| 27 | +# # ---用例放到加载器 | ||
| 28 | +# suite.addTest(load.discover(TestCase_Path)) | ||
| 27 | """ | 29 | """ |
| 28 | 执行单独模块用例 | 30 | 执行单独模块用例 |
| 29 | """ | 31 | """ |
| 30 | -# a = unittest.TestLoader().loadTestsFromTestCase(Test01Teacher) | ||
| 31 | -# # b = unittest.TestLoader().loadTestsFromTestCase(Test03Year) | ||
| 32 | -# suite = unittest.TestSuite([a]) | 32 | +a = unittest.TestLoader().loadTestsFromTestCase(Test01InternshipPlan) |
| 33 | +# b = unittest.TestLoader().loadTestsFromTestCase(Test03Year) | ||
| 34 | +suite = unittest.TestSuite([a]) | ||
| 33 | 35 | ||
| 34 | -# 运行 | 36 | +# # 运行 |
| 35 | runner = TestRunner(suite=suite, | 37 | runner = TestRunner(suite=suite, |
| 36 | filename=conf.get("report", "filename"), | 38 | filename=conf.get("report", "filename"), |
| 37 | report_dir=Report_Path, | 39 | report_dir=Report_Path, |
| @@ -40,9 +42,9 @@ runner = TestRunner(suite=suite, | @@ -40,9 +42,9 @@ runner = TestRunner(suite=suite, | ||
| 40 | desc=conf.get("report", "desc"), | 42 | desc=conf.get("report", "desc"), |
| 41 | templates=conf.getint("report", "templates") | 43 | templates=conf.getint("report", "templates") |
| 42 | ) | 44 | ) |
| 43 | -# runner.run() | 45 | +runner.run() |
| 44 | # 执行失败重新运行机制 | 46 | # 执行失败重新运行机制 |
| 45 | -runner.rerun_run(count=3, interval=0.2) | 47 | +# runner.rerun_run(count=3, interval=0.2) |
| 46 | 48 | ||
| 47 | """ | 49 | """ |
| 48 | 发送钉钉 | 50 | 发送钉钉 |
| @@ -16,15 +16,12 @@ import time | @@ -16,15 +16,12 @@ import time | ||
| 16 | from common import myddt | 16 | from common import myddt |
| 17 | from common.handle_excel import Excel | 17 | from common.handle_excel import Excel |
| 18 | from common.handle_log import HandleLog | 18 | from common.handle_log import HandleLog |
| 19 | -from common.handle_path import DataExcel_Path | 19 | +from common.handle_path import DataExcel_Path, System_path |
| 20 | from common.handle_config import conf | 20 | from common.handle_config import conf |
| 21 | from tools.handle_token import LoginToken | 21 | from tools.handle_token import LoginToken |
| 22 | from tools.fixture import SelectData | 22 | from tools.fixture import SelectData |
| 23 | from jsonpath import jsonpath | 23 | from jsonpath import jsonpath |
| 24 | 24 | ||
| 25 | -# 系统管理相关的用例目录 | ||
| 26 | -System_path = os.path.join(DataExcel_Path, "system") | ||
| 27 | - | ||
| 28 | 25 | ||
| 29 | # ==================院系相关的用例================== | 26 | # ==================院系相关的用例================== |
| 30 | @myddt.ddt | 27 | @myddt.ddt |
| @@ -15,7 +15,7 @@ import os | @@ -15,7 +15,7 @@ import os | ||
| 15 | import requests | 15 | import requests |
| 16 | from jsonpath import jsonpath | 16 | from jsonpath import jsonpath |
| 17 | from common.handle_log import HandleLog | 17 | from common.handle_log import HandleLog |
| 18 | -from common.handle_path import DataExcel_Path | 18 | +from common.handle_path import DataExcel_Path, TeachingAffairs_path, System_path |
| 19 | from common.myddt import ddt, data | 19 | from common.myddt import ddt, data |
| 20 | from common.handle_excel import Excel | 20 | from common.handle_excel import Excel |
| 21 | from common.handle_config import conf | 21 | from common.handle_config import conf |
| @@ -23,9 +23,6 @@ from tools.fixture import SelectData | @@ -23,9 +23,6 @@ from tools.fixture import SelectData | ||
| 23 | from tools.handle_token import LoginToken | 23 | from tools.handle_token import LoginToken |
| 24 | from tools.fixture import RandomPhone, RandomIdentification, RandomEmail | 24 | from tools.fixture import RandomPhone, RandomIdentification, RandomEmail |
| 25 | 25 | ||
| 26 | -TeachingAffairs_path = os.path.join(DataExcel_Path, "teaching_affairs") # 教务系统管理列表 | ||
| 27 | -System_path = os.path.join(DataExcel_Path, "system") # 系统管理列表 | ||
| 28 | - | ||
| 29 | 26 | ||
| 30 | # ==================教师相关的用例================== | 27 | # ==================教师相关的用例================== |
| 31 | @ddt | 28 | @ddt |
| @@ -58,8 +55,6 @@ class Test01Teacher(unittest.TestCase): | @@ -58,8 +55,6 @@ class Test01Teacher(unittest.TestCase): | ||
| 58 | new_time = time.strftime("%Y%m%d_%H:%M:%S") | 55 | new_time = time.strftime("%Y%m%d_%H:%M:%S") |
| 59 | # 随机教师名称 | 56 | # 随机教师名称 |
| 60 | self.teacher_name = "py自动化教师" + new_time | 57 | self.teacher_name = "py自动化教师" + new_time |
| 61 | - # # 随机院系代码 | ||
| 62 | - # self.department_code = "py_code" + new_time | ||
| 63 | 58 | ||
| 64 | # ==================================================================== | 59 | # ==================================================================== |
| 65 | # 新增教师 | 60 | # 新增教师 |
| @@ -240,8 +235,7 @@ class Test03Course(unittest.TestCase): | @@ -240,8 +235,7 @@ class Test03Course(unittest.TestCase): | ||
| 240 | read_term_excel = select_term_excel.read_excel_location("C2") | 235 | read_term_excel = select_term_excel.read_excel_location("C2") |
| 241 | term_list = SelectData(str(read_term_excel)) | 236 | term_list = SelectData(str(read_term_excel)) |
| 242 | term_json = term_list.select_list() | 237 | term_json = term_list.select_list() |
| 243 | - terms_id = term_json["data"]["records"][0]["terms"][0]["id"] | ||
| 244 | - cls.terms_id = terms_id # 获取学年学期id | 238 | + cls.termsId = term_json["data"]["records"][0]["terms"][0]["id"] # 获取学年学期id |
| 245 | 239 | ||
| 246 | def setUp(self): | 240 | def setUp(self): |
| 247 | """单条用例执行前执行的函数""" | 241 | """单条用例执行前执行的函数""" |
| @@ -261,7 +255,7 @@ class Test03Course(unittest.TestCase): | @@ -261,7 +255,7 @@ class Test03Course(unittest.TestCase): | ||
| 261 | if "#professionalId#" in case["data"]: | 255 | if "#professionalId#" in case["data"]: |
| 262 | case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) | 256 | case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) |
| 263 | if "#termIds#" in case["data"]: | 257 | if "#termIds#" in case["data"]: |
| 264 | - case["data"] = case["data"].replace("#termIds#", str(self.terms_id)) | 258 | + case["data"] = case["data"].replace("#termIds#", str(self.termsId)) |
| 265 | 259 | ||
| 266 | data = json.loads(case["data"]) | 260 | data = json.loads(case["data"]) |
| 267 | expected = json.loads(case["expected"]) | 261 | expected = json.loads(case["expected"]) |
| @@ -317,27 +311,27 @@ class Test04Student(unittest.TestCase): | @@ -317,27 +311,27 @@ class Test04Student(unittest.TestCase): | ||
| 317 | department_list = SelectData(str(read_department_excel)) | 311 | department_list = SelectData(str(read_department_excel)) |
| 318 | department_json = department_list.select_list_positive() | 312 | department_json = department_list.select_list_positive() |
| 319 | cls.department_id = jsonpath(department_json, "$..id")[-1] # 获取院系id | 313 | cls.department_id = jsonpath(department_json, "$..id")[-1] # 获取院系id |
| 320 | - # 获取查看专业id | 314 | + # ---获取查看专业id |
| 321 | select_specialty_excel = Excel(os.path.join(System_path, "test_02_specialty.xlsx"), | 315 | select_specialty_excel = Excel(os.path.join(System_path, "test_02_specialty.xlsx"), |
| 322 | "select_specialty") | 316 | "select_specialty") |
| 323 | read_specialty_excel = select_specialty_excel.read_excel_location("C2") | 317 | read_specialty_excel = select_specialty_excel.read_excel_location("C2") |
| 324 | specialty_list = SelectData(str(read_specialty_excel)) | 318 | specialty_list = SelectData(str(read_specialty_excel)) |
| 325 | specialty_json = specialty_list.select_list() | 319 | specialty_json = specialty_list.select_list() |
| 326 | cls.professionalId = jsonpath(specialty_json, "$..id")[0] # 获取专业id | 320 | cls.professionalId = jsonpath(specialty_json, "$..id")[0] # 获取专业id |
| 327 | - # 获取查看班级id | 321 | + # ---获取查看班级id |
| 328 | select_class_excel = Excel(os.path.join(TeachingAffairs_path, "test_03_class.xlsx"), | 322 | select_class_excel = Excel(os.path.join(TeachingAffairs_path, "test_03_class.xlsx"), |
| 329 | "select_class") | 323 | "select_class") |
| 330 | read_class_excel = select_class_excel.read_excel_location("C2") | 324 | read_class_excel = select_class_excel.read_excel_location("C2") |
| 331 | class_list = SelectData(str(read_class_excel)) | 325 | class_list = SelectData(str(read_class_excel)) |
| 332 | class_json = class_list.select_list() | 326 | class_json = class_list.select_list() |
| 333 | cls.classId = jsonpath(class_json, "$..id")[0] # 获取班级id | 327 | cls.classId = jsonpath(class_json, "$..id")[0] # 获取班级id |
| 334 | - # 获取查看学期id | 328 | + # ---获取查看学期id |
| 335 | select_term_excel = Excel(os.path.join(System_path, "test_02_term.xlsx"), | 329 | select_term_excel = Excel(os.path.join(System_path, "test_02_term.xlsx"), |
| 336 | "select_term") | 330 | "select_term") |
| 337 | read_term_excel = select_term_excel.read_excel_location("C2") | 331 | read_term_excel = select_term_excel.read_excel_location("C2") |
| 338 | term_list = SelectData(str(read_term_excel)) | 332 | term_list = SelectData(str(read_term_excel)) |
| 339 | term_json = term_list.select_list() | 333 | term_json = term_list.select_list() |
| 340 | - cls.terms_id = jsonpath(term_json, "$..id")[0] # 获取学年学期id | 334 | + cls.termsId = term_json["data"]["records"][0]["terms"][0]["id"] # 获取学年学期id |
| 341 | 335 | ||
| 342 | def setUp(self): | 336 | def setUp(self): |
| 343 | """单条用例执行前执行的函数""" | 337 | """单条用例执行前执行的函数""" |
| @@ -2,10 +2,133 @@ | @@ -2,10 +2,133 @@ | ||
| 2 | # ====================================== | 2 | # ====================================== |
| 3 | # @Software: PyCharm | 3 | # @Software: PyCharm |
| 4 | # @Author : Shitou ✊ | 4 | # @Author : Shitou ✊ |
| 5 | -# @Time : 2022/12/29 11:19 | 5 | +# @Time : 2022/12/29 21:19 |
| 6 | # @FileName: test_04_Internship_preparation.py | 6 | # @FileName: test_04_Internship_preparation.py |
| 7 | # ====================================== | 7 | # ====================================== |
| 8 | """ | 8 | """ |
| 9 | 实习准备模块 | 9 | 实习准备模块 |
| 10 | """ | 10 | """ |
| 11 | -# 实习计划 | 11 | +import json |
| 12 | +import time | ||
| 13 | +import unittest | ||
| 14 | +import os | ||
| 15 | +import requests | ||
| 16 | +from jsonpath import jsonpath | ||
| 17 | +from common.handle_config import conf | ||
| 18 | +from common.handle_excel import Excel | ||
| 19 | +from common.handle_log import HandleLog | ||
| 20 | +from common.handle_path import DataExcel_Path, System_path, TeachingAffairs_path, Internship_path | ||
| 21 | +from common.myddt import ddt, data | ||
| 22 | +from tools.fixture import SelectData | ||
| 23 | +from tools.handle_token import LoginToken | ||
| 24 | + | ||
| 25 | + | ||
| 26 | +# ==================实习计划相关的用例================== | ||
| 27 | +@ddt | ||
| 28 | +class Test01InternshipPlan(unittest.TestCase): | ||
| 29 | + add_plan = Excel(os.path.join(Internship_path, "test_04_internship_plan.xlsx"), "add_internship_plan") | ||
| 30 | + add_plan_case = add_plan.read_excel() | ||
| 31 | + | ||
| 32 | + @classmethod | ||
| 33 | + def setUpClass(cls): | ||
| 34 | + # 获取登陆token | ||
| 35 | + cls.token = LoginToken.login_token() | ||
| 36 | + # ---获取添加院系id | ||
| 37 | + select_department_excel = Excel(os.path.join(System_path, "test_02_department.xlsx"), | ||
| 38 | + "select_department") | ||
| 39 | + read_department_excel = select_department_excel.read_excel_location("C2") | ||
| 40 | + department_list = SelectData(str(read_department_excel)) | ||
| 41 | + department_json = department_list.select_list_positive() | ||
| 42 | + cls.department_id = jsonpath(department_json, "$..id")[-1] # 获取院系id | ||
| 43 | + # ---获取查看专业id | ||
| 44 | + select_specialty_excel = Excel(os.path.join(System_path, "test_02_specialty.xlsx"), | ||
| 45 | + "select_specialty") | ||
| 46 | + read_specialty_excel = select_specialty_excel.read_excel_location("C2") | ||
| 47 | + specialty_list = SelectData(str(read_specialty_excel)) | ||
| 48 | + specialty_json = specialty_list.select_list() | ||
| 49 | + cls.professionalId = jsonpath(specialty_json, "$..id")[0] # 获取专业id | ||
| 50 | + # ---获取查看班级id | ||
| 51 | + select_class_excel = Excel(os.path.join(TeachingAffairs_path, "test_03_class.xlsx"), | ||
| 52 | + "select_class") | ||
| 53 | + read_class_excel = select_class_excel.read_excel_location("C2") | ||
| 54 | + class_list = SelectData(str(read_class_excel)) | ||
| 55 | + class_json = class_list.select_list() | ||
| 56 | + cls.classId = jsonpath(class_json, "$..id")[0] # 获取班级id | ||
| 57 | + # ---获取课程id | ||
| 58 | + select_course_excel = Excel(os.path.join(TeachingAffairs_path, "test_03_course.xlsx"), | ||
| 59 | + "select_course") | ||
| 60 | + read_course_excel = select_course_excel.read_excel_location("C2") | ||
| 61 | + course_list = SelectData(str(read_course_excel)) | ||
| 62 | + course_json = course_list.select_list() | ||
| 63 | + cls.courseId = jsonpath(course_json, "$..id")[0] # 获取课程id | ||
| 64 | + # ---获取教师id | ||
| 65 | + select_teacher_excel = Excel(os.path.join(TeachingAffairs_path, "test_03_teacher.xlsx"), | ||
| 66 | + "select_teacher") | ||
| 67 | + read_teacher_excel = select_teacher_excel.read_excel_location("C2") | ||
| 68 | + teacher_list = SelectData(str(read_teacher_excel)) | ||
| 69 | + teacher_json = teacher_list.select_list() | ||
| 70 | + cls.teacherId = jsonpath(teacher_json, "$..id")[0] # 获取教师id | ||
| 71 | + # ---获取查看学期id | ||
| 72 | + select_term_excel = Excel(os.path.join(System_path, "test_02_term.xlsx"), | ||
| 73 | + "select_term") | ||
| 74 | + read_term_excel = select_term_excel.read_excel_location("C2") | ||
| 75 | + term_list = SelectData(str(read_term_excel)) | ||
| 76 | + term_json = term_list.select_list() | ||
| 77 | + cls.termsId = term_json["data"]["records"][0]["terms"][0]["id"] # 获取学年学期id | ||
| 78 | + | ||
| 79 | + def setUp(self): | ||
| 80 | + """单条用例执行前执行的函数""" | ||
| 81 | + new_time = time.strftime("%Y%m%d_%H:%M:%S") | ||
| 82 | + # 随机计划名称 | ||
| 83 | + self.name = "py自动化计划" + new_time | ||
| 84 | + | ||
| 85 | + # ==================================================================== | ||
| 86 | + # 新增计划 | ||
| 87 | + # ==================================================================== | ||
| 88 | + @data(*add_plan_case) | ||
| 89 | + def test_add_plan(self, case): | ||
| 90 | + """新增计划用例""" | ||
| 91 | + url = conf.get("url", "url_ip") + case["url"] | ||
| 92 | + # 准备数据 | ||
| 93 | + if "#name#" in case["data"]: | ||
| 94 | + case["data"] = case["data"].replace("#name#", str(self.name + "_" + str(case["id"]))) # 名称 | ||
| 95 | + if "#courseId#" in case["data"]: | ||
| 96 | + case["data"] = case["data"].replace("#courseId#", str(self.courseId)) # 课程 | ||
| 97 | + if "#departmentId#" in case["data"]: | ||
| 98 | + case["data"] = case["data"].replace("#departmentId#", str(self.department_id)) # 院系id | ||
| 99 | + if "#professionalId#" in case["data"]: | ||
| 100 | + case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) # 专业id | ||
| 101 | + if "#classInfoId#" in case["data"]: | ||
| 102 | + case["data"] = case["data"].replace("#classInfoId#", str(self.classId)) # 班级id | ||
| 103 | + if "#teacherIds#" in case["data"]: | ||
| 104 | + case["data"] = case["data"].replace("#teacherIds#", str(self.teacherId)) # 教师id | ||
| 105 | + if "#termId#" in case["data"]: | ||
| 106 | + case["data"] = case["data"].replace("#termId#", str(self.termsId)) # 学期id | ||
| 107 | + | ||
| 108 | + # 准备数据 | ||
| 109 | + data = json.loads(case["data"]) | ||
| 110 | + expected = json.loads(case["expected"]) | ||
| 111 | + # 调用接口 | ||
| 112 | + herders = {} | ||
| 113 | + herders["Authorization"] = self.token | ||
| 114 | + # 调用接口 | ||
| 115 | + response = requests.request(url=url, method=case["method"], json=data, headers=herders) | ||
| 116 | + res = response.json() | ||
| 117 | + print("用例入参:{}".format(data)) | ||
| 118 | + print("预期结果:", expected) | ||
| 119 | + print("实际结果:", res) | ||
| 120 | + # 断言 | ||
| 121 | + try: | ||
| 122 | + self.assertEqual(expected['msg'], res['msg']) | ||
| 123 | + self.assertEqual(expected['code'], res['code']) | ||
| 124 | + except AssertionError as e: | ||
| 125 | + # 写入Excel | ||
| 126 | + self.add_plan.write_excel(row=case["id"] + 1, column=7, value="不通过") | ||
| 127 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | ||
| 128 | + HandleLog.log.exception(e) | ||
| 129 | + raise e | ||
| 130 | + else: | ||
| 131 | + self.add_plan.write_excel(row=case["id"] + 1, column=7, value="通过") | ||
| 132 | + # 将创建使用的数据写入到excel表格中 | ||
| 133 | + self.add_plan.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | ||
| 134 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) |
请
注册
或
登录
后发表评论