正在显示
26 个修改的文件
包含
598 行增加
和
93 行删除
| 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.13 1.封装生成身份证"年""> | |
| 4 | + <list default="true" id="129454fc-5415-4c7e-9855-d0293355ede5" name="Default Changelist" comment="1.项目维护"> | |
| 5 | + <change afterPath="$PROJECT_DIR$/data/Internship_manage/test_08_log_marking.xlsx" afterDir="false" /> | |
| 6 | + <change afterPath="$PROJECT_DIR$/data/Internship_manage/test_09_leave_record.xlsx" afterDir="false" /> | |
| 5 | 7 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |
| 8 | + <change beforePath="$PROJECT_DIR$/conf/config.ini" beforeDir="false" afterPath="$PROJECT_DIR$/conf/config.ini" afterDir="false" /> | |
| 6 | 9 | <change beforePath="$PROJECT_DIR$/data/Internship_manage/test_07_apply_audit.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_manage/test_07_apply_audit.xlsx" afterDir="false" /> |
| 7 | 10 | <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" /> |
| 8 | 11 | <change beforePath="$PROJECT_DIR$/data/Internship_preparation/test_05_internship_project.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/Internship_preparation/test_05_internship_project.xlsx" afterDir="false" /> |
| ... | ... | @@ -15,9 +18,16 @@ |
| 15 | 18 | <change beforePath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/teaching_affairs/test_03_student.xlsx" afterDir="false" /> |
| 16 | 19 | <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" /> |
| 17 | 20 | <change beforePath="$PROJECT_DIR$/data/test_01_login.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/data/test_01_login.xlsx" afterDir="false" /> |
| 18 | - <change beforePath="$PROJECT_DIR$/logs/log.log.2022-12-24" beforeDir="false" /> | |
| 19 | 21 | <change beforePath="$PROJECT_DIR$/report/history.json" beforeDir="false" afterPath="$PROJECT_DIR$/report/history.json" afterDir="false" /> |
| 22 | + <change beforePath="$PROJECT_DIR$/report/report2.html" beforeDir="false" afterPath="$PROJECT_DIR$/report/report2.html" afterDir="false" /> | |
| 23 | + <change beforePath="$PROJECT_DIR$/run.py" beforeDir="false" afterPath="$PROJECT_DIR$/run.py" afterDir="false" /> | |
| 24 | + <change beforePath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_03_teaching_affairs.py" afterDir="false" /> | |
| 25 | + <change beforePath="$PROJECT_DIR$/testcase/test_04_Internship_preparation.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_04_Internship_preparation.py" afterDir="false" /> | |
| 26 | + <change beforePath="$PROJECT_DIR$/testcase/test_05_student_practice.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_05_student_practice.py" afterDir="false" /> | |
| 20 | 27 | <change beforePath="$PROJECT_DIR$/testcase/test_06_internship_manage.py" beforeDir="false" afterPath="$PROJECT_DIR$/testcase/test_06_internship_manage.py" afterDir="false" /> |
| 28 | + <change beforePath="$PROJECT_DIR$/tools/fixture.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/fixture.py" afterDir="false" /> | |
| 29 | + <change beforePath="$PROJECT_DIR$/tools/function.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/function.py" afterDir="false" /> | |
| 30 | + <change beforePath="$PROJECT_DIR$/tools/handle_token.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/handle_token.py" afterDir="false" /> | |
| 21 | 31 | </list> |
| 22 | 32 | <option name="SHOW_DIALOG" value="false" /> |
| 23 | 33 | <option name="HIGHLIGHT_CONFLICTS" value="true" /> |
| ... | ... | @@ -68,19 +78,19 @@ |
| 68 | 78 | <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> |
| 69 | 79 | <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> |
| 70 | 80 | <property name="WebServerToolWindowFactoryState" value="false" /> |
| 71 | - <property name="last_opened_file_path" value="$PROJECT_DIR$/data/Internship_manage" /> | |
| 81 | + <property name="last_opened_file_path" value="$PROJECT_DIR$/data/Internship_preparation" /> | |
| 72 | 82 | <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> |
| 73 | 83 | </component> |
| 74 | 84 | <component name="RecentsManager"> |
| 75 | 85 | <key name="CopyFile.RECENT_KEYS"> |
| 86 | + <recent name="$PROJECT_DIR$/data/Internship_preparation" /> | |
| 76 | 87 | <recent name="$PROJECT_DIR$/data/Internship_manage" /> |
| 77 | 88 | <recent name="$PROJECT_DIR$/data/student_practice" /> |
| 78 | - <recent name="$PROJECT_DIR$/data/Internship_preparation" /> | |
| 79 | 89 | <recent name="$PROJECT_DIR$/data/teaching_affairs" /> |
| 80 | 90 | <recent name="$PROJECT_DIR$/tools" /> |
| 81 | 91 | </key> |
| 82 | 92 | </component> |
| 83 | - <component name="RunManager" selected="Python tests.Unittests in test_06_internship_manage.py"> | |
| 93 | + <component name="RunManager" selected="Python.run"> | |
| 84 | 94 | <configuration name="aaa" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true"> |
| 85 | 95 | <module name="yxly2" /> |
| 86 | 96 | <option name="INTERPRETER_OPTIONS" value="" /> |
| ... | ... | @@ -186,11 +196,11 @@ |
| 186 | 196 | </list> |
| 187 | 197 | <recent_temporary> |
| 188 | 198 | <list> |
| 189 | - <item itemvalue="Python tests.Unittests in test_06_internship_manage.py" /> | |
| 190 | 199 | <item itemvalue="Python.run" /> |
| 191 | - <item itemvalue="Python.aaa" /> | |
| 192 | 200 | <item itemvalue="Python.handle_token" /> |
| 201 | + <item itemvalue="Python tests.Unittests in test_06_internship_manage.py" /> | |
| 193 | 202 | <item itemvalue="Python tests.Unittests in test_04_Internship_preparation.py" /> |
| 203 | + <item itemvalue="Python.aaa" /> | |
| 194 | 204 | </list> |
| 195 | 205 | </recent_temporary> |
| 196 | 206 | </component> |
| ... | ... | @@ -239,7 +249,44 @@ |
| 239 | 249 | <workItem from="1675923047370" duration="1840000" /> |
| 240 | 250 | <workItem from="1675993944948" duration="19838000" /> |
| 241 | 251 | <workItem from="1676352585519" duration="649000" /> |
| 242 | - <workItem from="1676429711639" duration="13811000" /> | |
| 252 | + <workItem from="1676429711639" duration="16558000" /> | |
| 253 | + <workItem from="1676533277102" duration="8356000" /> | |
| 254 | + <workItem from="1676598554552" duration="16514000" /> | |
| 255 | + <workItem from="1676857239215" duration="17927000" /> | |
| 256 | + <workItem from="1676943889754" duration="23167000" /> | |
| 257 | + <workItem from="1677465101095" duration="3714000" /> | |
| 258 | + <workItem from="1678066872906" duration="15833000" /> | |
| 259 | + <workItem from="1678342329058" duration="349000" /> | |
| 260 | + <workItem from="1678440283423" duration="3522000" /> | |
| 261 | + <workItem from="1678670968785" duration="30552000" /> | |
| 262 | + <workItem from="1679049143003" duration="2741000" /> | |
| 263 | + <workItem from="1679302047492" duration="3219000" /> | |
| 264 | + <workItem from="1679463110512" duration="4971000" /> | |
| 265 | + <workItem from="1679635698276" duration="13882000" /> | |
| 266 | + <workItem from="1679999876828" duration="52000" /> | |
| 267 | + <workItem from="1680076840448" duration="16953000" /> | |
| 268 | + <workItem from="1683256734428" duration="58000" /> | |
| 269 | + <workItem from="1683265845967" duration="968000" /> | |
| 270 | + <workItem from="1686724205755" duration="3232000" /> | |
| 271 | + <workItem from="1686792679924" duration="2619000" /> | |
| 272 | + <workItem from="1687138769856" duration="7331000" /> | |
| 273 | + <workItem from="1687656975195" duration="6855000" /> | |
| 274 | + <workItem from="1687743036927" duration="4715000" /> | |
| 275 | + <workItem from="1687830426053" duration="2545000" /> | |
| 276 | + <workItem from="1687847849541" duration="1370000" /> | |
| 277 | + <workItem from="1687852053143" duration="1661000" /> | |
| 278 | + <workItem from="1687855288373" duration="2781000" /> | |
| 279 | + <workItem from="1687916234000" duration="3333000" /> | |
| 280 | + <workItem from="1688003499790" duration="3404000" /> | |
| 281 | + <workItem from="1688104723785" duration="2859000" /> | |
| 282 | + <workItem from="1688362204086" duration="2377000" /> | |
| 283 | + <workItem from="1689561559287" duration="2760000" /> | |
| 284 | + <workItem from="1689644168358" duration="6421000" /> | |
| 285 | + <workItem from="1689674572646" duration="1719000" /> | |
| 286 | + <workItem from="1689730508198" duration="11129000" /> | |
| 287 | + <workItem from="1689816981406" duration="4617000" /> | |
| 288 | + <workItem from="1689903460923" duration="538000" /> | |
| 289 | + <workItem from="1690180441280" duration="301000" /> | |
| 243 | 290 | </task> |
| 244 | 291 | <task id="LOCAL-00001" summary="1.0.0 首次提交"> |
| 245 | 292 | <created>1671544396986</created> |
| ... | ... | @@ -395,7 +442,14 @@ |
| 395 | 442 | <option name="project" value="LOCAL" /> |
| 396 | 443 | <updated>1675679274029</updated> |
| 397 | 444 | </task> |
| 398 | - <option name="localTasksCounter" value="23" /> | |
| 445 | + <task id="LOCAL-00023" summary="版本:1.0.14 1.学生端进行选择开始实习时间 2.生成实习单,当前学生进入实习中"> | |
| 446 | + <created>1676453939322</created> | |
| 447 | + <option name="number" value="00023" /> | |
| 448 | + <option name="presentableId" value="LOCAL-00023" /> | |
| 449 | + <option name="project" value="LOCAL" /> | |
| 450 | + <updated>1676453939322</updated> | |
| 451 | + </task> | |
| 452 | + <option name="localTasksCounter" value="24" /> | |
| 399 | 453 | <servers /> |
| 400 | 454 | </component> |
| 401 | 455 | <component name="TypeScriptGeneratedFilesManager"> |
| ... | ... | @@ -446,7 +500,8 @@ |
| 446 | 500 | <MESSAGE value="版本:1.0.11 1.新增学校审核用例逻辑判断" /> |
| 447 | 501 | <MESSAGE value="版本:1.0.12 1.优化hr登陆问题" /> |
| 448 | 502 | <MESSAGE value="版本:1.0.13 1.封装生成身份证"年"" /> |
| 449 | - <option name="LAST_COMMIT_MESSAGE" value="版本:1.0.13 1.封装生成身份证"年"" /> | |
| 503 | + <MESSAGE value="版本:1.0.14 1.学生端进行选择开始实习时间 2.生成实习单,当前学生进入实习中" /> | |
| 504 | + <option name="LAST_COMMIT_MESSAGE" value="版本:1.0.14 1.学生端进行选择开始实习时间 2.生成实习单,当前学生进入实习中" /> | |
| 450 | 505 | </component> |
| 451 | 506 | <component name="XDebuggerManager"> |
| 452 | 507 | <breakpoint-manager> |
| ... | ... | @@ -503,17 +558,17 @@ |
| 503 | 558 | </line-breakpoint> |
| 504 | 559 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 505 | 560 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
| 506 | - <line>291</line> | |
| 561 | + <line>294</line> | |
| 507 | 562 | <option name="timeStamp" value="35" /> |
| 508 | 563 | </line-breakpoint> |
| 509 | 564 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 510 | 565 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
| 511 | - <line>319</line> | |
| 566 | + <line>322</line> | |
| 512 | 567 | <option name="timeStamp" value="37" /> |
| 513 | 568 | </line-breakpoint> |
| 514 | 569 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 515 | 570 | <url>file://$PROJECT_DIR$/testcase/test_03_teaching_affairs.py</url> |
| 516 | - <line>363</line> | |
| 571 | + <line>366</line> | |
| 517 | 572 | <option name="timeStamp" value="38" /> |
| 518 | 573 | </line-breakpoint> |
| 519 | 574 | <line-breakpoint suspend="THREAD" type="python-line"> |
| ... | ... | @@ -562,23 +617,13 @@ |
| 562 | 617 | <option name="timeStamp" value="78" /> |
| 563 | 618 | </line-breakpoint> |
| 564 | 619 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 565 | - <url>file://$PROJECT_DIR$/testcase/test_04_Internship_preparation.py</url> | |
| 566 | - <line>323</line> | |
| 567 | - <option name="timeStamp" value="79" /> | |
| 568 | - </line-breakpoint> | |
| 569 | - <line-breakpoint suspend="THREAD" type="python-line"> | |
| 570 | - <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | |
| 571 | - <line>52</line> | |
| 572 | - <option name="timeStamp" value="80" /> | |
| 573 | - </line-breakpoint> | |
| 574 | - <line-breakpoint suspend="THREAD" type="python-line"> | |
| 575 | 620 | <url>file://$PROJECT_DIR$/testcase/test_05_student_practice.py</url> |
| 576 | - <line>109</line> | |
| 621 | + <line>110</line> | |
| 577 | 622 | <option name="timeStamp" value="98" /> |
| 578 | 623 | </line-breakpoint> |
| 579 | 624 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 580 | 625 | <url>file://$PROJECT_DIR$/testcase/test_05_student_practice.py</url> |
| 581 | - <line>101</line> | |
| 626 | + <line>102</line> | |
| 582 | 627 | <option name="timeStamp" value="99" /> |
| 583 | 628 | </line-breakpoint> |
| 584 | 629 | <line-breakpoint suspend="THREAD" type="python-line"> |
| ... | ... | @@ -588,27 +633,27 @@ |
| 588 | 633 | </line-breakpoint> |
| 589 | 634 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 590 | 635 | <url>file://$PROJECT_DIR$/run.py</url> |
| 591 | - <line>56</line> | |
| 636 | + <line>60</line> | |
| 592 | 637 | <option name="timeStamp" value="101" /> |
| 593 | 638 | </line-breakpoint> |
| 594 | 639 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 595 | 640 | <url>file://$PROJECT_DIR$/run.py</url> |
| 596 | - <line>52</line> | |
| 641 | + <line>56</line> | |
| 597 | 642 | <option name="timeStamp" value="102" /> |
| 598 | 643 | </line-breakpoint> |
| 599 | 644 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 600 | 645 | <url>file://$PROJECT_DIR$/run.py</url> |
| 601 | - <line>50</line> | |
| 646 | + <line>54</line> | |
| 602 | 647 | <option name="timeStamp" value="103" /> |
| 603 | 648 | </line-breakpoint> |
| 604 | 649 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 605 | 650 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 606 | - <line>51</line> | |
| 651 | + <line>52</line> | |
| 607 | 652 | <option name="timeStamp" value="106" /> |
| 608 | 653 | </line-breakpoint> |
| 609 | 654 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 610 | 655 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 611 | - <line>83</line> | |
| 656 | + <line>84</line> | |
| 612 | 657 | <option name="timeStamp" value="111" /> |
| 613 | 658 | </line-breakpoint> |
| 614 | 659 | <line-breakpoint suspend="THREAD" type="python-line"> |
| ... | ... | @@ -618,7 +663,7 @@ |
| 618 | 663 | </line-breakpoint> |
| 619 | 664 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 620 | 665 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> |
| 621 | - <line>49</line> | |
| 666 | + <line>50</line> | |
| 622 | 667 | <option name="timeStamp" value="116" /> |
| 623 | 668 | </line-breakpoint> |
| 624 | 669 | <line-breakpoint suspend="THREAD" type="python-line"> |
| ... | ... | @@ -628,27 +673,27 @@ |
| 628 | 673 | </line-breakpoint> |
| 629 | 674 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 630 | 675 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> |
| 631 | - <line>85</line> | |
| 676 | + <line>86</line> | |
| 632 | 677 | <option name="timeStamp" value="122" /> |
| 633 | 678 | </line-breakpoint> |
| 634 | 679 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 635 | 680 | <url>file://$PROJECT_DIR$/tools/handle_token.py</url> |
| 636 | - <line>92</line> | |
| 681 | + <line>93</line> | |
| 637 | 682 | <option name="timeStamp" value="123" /> |
| 638 | 683 | </line-breakpoint> |
| 639 | 684 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 640 | 685 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 641 | - <line>205</line> | |
| 686 | + <line>208</line> | |
| 642 | 687 | <option name="timeStamp" value="124" /> |
| 643 | 688 | </line-breakpoint> |
| 644 | 689 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 645 | 690 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 646 | - <line>208</line> | |
| 691 | + <line>211</line> | |
| 647 | 692 | <option name="timeStamp" value="125" /> |
| 648 | 693 | </line-breakpoint> |
| 649 | 694 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 650 | 695 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 651 | - <line>50</line> | |
| 696 | + <line>51</line> | |
| 652 | 697 | <option name="timeStamp" value="126" /> |
| 653 | 698 | </line-breakpoint> |
| 654 | 699 | <line-breakpoint suspend="THREAD" type="python-line"> |
| ... | ... | @@ -658,12 +703,12 @@ |
| 658 | 703 | </line-breakpoint> |
| 659 | 704 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 660 | 705 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 661 | - <line>153</line> | |
| 706 | + <line>156</line> | |
| 662 | 707 | <option name="timeStamp" value="129" /> |
| 663 | 708 | </line-breakpoint> |
| 664 | 709 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 665 | 710 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 666 | - <line>210</line> | |
| 711 | + <line>213</line> | |
| 667 | 712 | <option name="timeStamp" value="130" /> |
| 668 | 713 | </line-breakpoint> |
| 669 | 714 | <line-breakpoint suspend="THREAD" type="python-line"> |
| ... | ... | @@ -673,22 +718,12 @@ |
| 673 | 718 | </line-breakpoint> |
| 674 | 719 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 675 | 720 | <url>file://$PROJECT_DIR$/tools/fixture.py</url> |
| 676 | - <line>38</line> | |
| 677 | - <option name="timeStamp" value="138" /> | |
| 678 | - </line-breakpoint> | |
| 679 | - <line-breakpoint suspend="THREAD" type="python-line"> | |
| 680 | - <url>file://$PROJECT_DIR$/tools/fixture.py</url> | |
| 681 | - <line>36</line> | |
| 682 | - <option name="timeStamp" value="139" /> | |
| 683 | - </line-breakpoint> | |
| 684 | - <line-breakpoint suspend="THREAD" type="python-line"> | |
| 685 | - <url>file://$PROJECT_DIR$/tools/fixture.py</url> | |
| 686 | 721 | <line>35</line> |
| 687 | 722 | <option name="timeStamp" value="140" /> |
| 688 | 723 | </line-breakpoint> |
| 689 | 724 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 690 | 725 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 691 | - <line>249</line> | |
| 726 | + <line>253</line> | |
| 692 | 727 | <option name="timeStamp" value="142" /> |
| 693 | 728 | </line-breakpoint> |
| 694 | 729 | <line-breakpoint suspend="THREAD" type="python-line"> |
| ... | ... | @@ -698,38 +733,113 @@ |
| 698 | 733 | </line-breakpoint> |
| 699 | 734 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 700 | 735 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 701 | - <line>274</line> | |
| 702 | - <option name="timeStamp" value="148" /> | |
| 736 | + <line>279</line> | |
| 737 | + <option name="timeStamp" value="149" /> | |
| 703 | 738 | </line-breakpoint> |
| 704 | 739 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 705 | 740 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 706 | 741 | <line>275</line> |
| 707 | - <option name="timeStamp" value="149" /> | |
| 742 | + <option name="timeStamp" value="150" /> | |
| 708 | 743 | </line-breakpoint> |
| 709 | 744 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 710 | 745 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 711 | - <line>271</line> | |
| 712 | - <option name="timeStamp" value="150" /> | |
| 746 | + <line>241</line> | |
| 747 | + <option name="timeStamp" value="162" /> | |
| 748 | + </line-breakpoint> | |
| 749 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 750 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | |
| 751 | + <line>239</line> | |
| 752 | + <option name="timeStamp" value="163" /> | |
| 713 | 753 | </line-breakpoint> |
| 714 | 754 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 715 | 755 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 756 | + <line>434</line> | |
| 757 | + <option name="timeStamp" value="165" /> | |
| 758 | + </line-breakpoint> | |
| 759 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 760 | + <url>file://$PROJECT_DIR$/tools/fixture.py</url> | |
| 761 | + <line>49</line> | |
| 762 | + <option name="timeStamp" value="166" /> | |
| 763 | + </line-breakpoint> | |
| 764 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 765 | + <url>file://$PROJECT_DIR$/tools/fixture.py</url> | |
| 766 | + <line>50</line> | |
| 767 | + <option name="timeStamp" value="167" /> | |
| 768 | + </line-breakpoint> | |
| 769 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 770 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | |
| 771 | + <line>443</line> | |
| 772 | + <option name="timeStamp" value="169" /> | |
| 773 | + </line-breakpoint> | |
| 774 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 775 | + <url>file://$PROJECT_DIR$/tools/fixture.py</url> | |
| 776 | + <line>38</line> | |
| 777 | + <option name="timeStamp" value="171" /> | |
| 778 | + </line-breakpoint> | |
| 779 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 780 | + <url>file://$PROJECT_DIR$/testcase/test_04_Internship_preparation.py</url> | |
| 781 | + <line>323</line> | |
| 782 | + <option name="timeStamp" value="174" /> | |
| 783 | + </line-breakpoint> | |
| 784 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 785 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | |
| 786 | + <line>114</line> | |
| 787 | + <option name="timeStamp" value="175" /> | |
| 788 | + </line-breakpoint> | |
| 789 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 790 | + <url>file://$PROJECT_DIR$/testcase/test_05_student_practice.py</url> | |
| 716 | 791 | <line>93</line> |
| 717 | - <option name="timeStamp" value="151" /> | |
| 792 | + <option name="timeStamp" value="177" /> | |
| 718 | 793 | </line-breakpoint> |
| 719 | 794 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 720 | 795 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 721 | - <line>262</line> | |
| 722 | - <option name="timeStamp" value="152" /> | |
| 796 | + <line>314</line> | |
| 797 | + <option name="timeStamp" value="182" /> | |
| 723 | 798 | </line-breakpoint> |
| 724 | 799 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 725 | 800 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 726 | - <line>237</line> | |
| 727 | - <option name="timeStamp" value="162" /> | |
| 801 | + <line>266</line> | |
| 802 | + <option name="timeStamp" value="191" /> | |
| 728 | 803 | </line-breakpoint> |
| 729 | 804 | <line-breakpoint suspend="THREAD" type="python-line"> |
| 730 | 805 | <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> |
| 731 | - <line>235</line> | |
| 732 | - <option name="timeStamp" value="163" /> | |
| 806 | + <line>315</line> | |
| 807 | + <option name="timeStamp" value="193" /> | |
| 808 | + </line-breakpoint> | |
| 809 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 810 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | |
| 811 | + <line>265</line> | |
| 812 | + <option name="timeStamp" value="194" /> | |
| 813 | + </line-breakpoint> | |
| 814 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 815 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | |
| 816 | + <line>268</line> | |
| 817 | + <option name="timeStamp" value="195" /> | |
| 818 | + </line-breakpoint> | |
| 819 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 820 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | |
| 821 | + <line>257</line> | |
| 822 | + <option name="timeStamp" value="198" /> | |
| 823 | + </line-breakpoint> | |
| 824 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 825 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | |
| 826 | + <line>263</line> | |
| 827 | + <option name="timeStamp" value="199" /> | |
| 828 | + </line-breakpoint> | |
| 829 | + <line-breakpoint suspend="THREAD" type="python-line"> | |
| 830 | + <url>file://$PROJECT_DIR$/testcase/test_06_internship_manage.py</url> | |
| 831 | + <line>278</line> | |
| 832 | + <option name="timeStamp" value="201" /> | |
| 833 | + </line-breakpoint> | |
| 834 | + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> | |
| 835 | + <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | |
| 836 | + <line>53</line> | |
| 837 | + <option name="timeStamp" value="203" /> | |
| 838 | + </line-breakpoint> | |
| 839 | + <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> | |
| 840 | + <url>file://$PROJECT_DIR$/tools/handle_token.py</url> | |
| 841 | + <line>51</line> | |
| 842 | + <option name="timeStamp" value="204" /> | |
| 733 | 843 | </line-breakpoint> |
| 734 | 844 | </breakpoints> |
| 735 | 845 | <default-breakpoints> |
| ... | ... | @@ -740,19 +850,24 @@ |
| 740 | 850 | </breakpoint> |
| 741 | 851 | </default-breakpoints> |
| 742 | 852 | </breakpoint-manager> |
| 853 | + <watches-manager> | |
| 854 | + <configuration name="tests"> | |
| 855 | + <watch expression="select_daily_log_excel" /> | |
| 856 | + </configuration> | |
| 857 | + </watches-manager> | |
| 743 | 858 | </component> |
| 744 | 859 | <component name="com.intellij.coverage.CoverageDataManagerImpl"> |
| 745 | 860 | <SUITE FILE_PATH="coverage/yxly$fixture__1_.coverage" NAME="fixture (1) Coverage Results" MODIFIED="1672814917701" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> |
| 746 | - <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_06_internship_manage_py.coverage" NAME="Unittests in test_06_internship_manage.py Coverage Results" MODIFIED="1676453107047" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | |
| 861 | + <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_06_internship_manage_py.coverage" NAME="Unittests in test_06_internship_manage.py Coverage Results" MODIFIED="1678695618207" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | |
| 747 | 862 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_05_student_practice_py.coverage" NAME="Unittests in test_05_student_practice.py Coverage Results" MODIFIED="1673431777836" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
| 748 | 863 | <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" /> |
| 749 | - <SUITE FILE_PATH="coverage/yxly$handle_token.coverage" NAME="handle_token Coverage Results" MODIFIED="1674901030597" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> | |
| 864 | + <SUITE FILE_PATH="coverage/yxly$handle_token.coverage" NAME="handle_token Coverage Results" MODIFIED="1687916804880" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> | |
| 750 | 865 | <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" /> |
| 751 | 866 | <SUITE FILE_PATH="coverage/yxly$aaa.coverage" NAME="aaa Coverage Results" MODIFIED="1675678970517" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tools" /> |
| 752 | - <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1676452765292" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" /> | |
| 867 | + <SUITE FILE_PATH="coverage/yxly$run.coverage" NAME="run Coverage Results" MODIFIED="1689843780840" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" /> | |
| 753 | 868 | <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_02_system_management_py.coverage" NAME="Unittests in test_02_system_management.py Coverage Results" MODIFIED="1672304630144" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> |
| 754 | 869 | <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" /> |
| 755 | - <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_04_Internship_preparation_py.coverage" NAME="Unittests in test_04_Internship_preparation.py Coverage Results" MODIFIED="1674873836789" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | |
| 870 | + <SUITE FILE_PATH="coverage/yxly$Unittests_in_test_04_Internship_preparation_py.coverage" NAME="Unittests in test_04_Internship_preparation.py Coverage Results" MODIFIED="1678692199921" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/testcase" /> | |
| 756 | 871 | <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" /> |
| 757 | 872 | <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" /> |
| 758 | 873 | </component> | ... | ... |
| ... | ... | @@ -43,6 +43,7 @@ phone = 17301249973 |
| 43 | 43 | code = 8888 |
| 44 | 44 | type = student |
| 45 | 45 | way = code |
| 46 | +schoolId = 1519958566130257922 | |
| 46 | 47 | ;============================================================================================ |
| 47 | 48 | ;hr用户数据 |
| 48 | 49 | ;============================================================================================ |
| ... | ... | @@ -55,6 +56,9 @@ password = a123456 |
| 55 | 56 | [hr] |
| 56 | 57 | ;岗位id |
| 57 | 58 | hr_jobid = 1610468861604655106 |
| 59 | +[school] | |
| 60 | +;学校基地岗位id | |
| 61 | +school_base_jobid = 1635095176676659202 | |
| 58 | 62 | ;============================================================================================ |
| 59 | 63 | ;报告的相关配置 |
| 60 | 64 | ;============================================================================================ |
| ... | ... | @@ -78,6 +82,7 @@ templates = 1 |
| 78 | 82 | collect = DEBUG |
| 79 | 83 | ;输出到控制台等级 |
| 80 | 84 | console = CRITICAL |
| 85 | +;console = ERROR | |
| 81 | 86 | ;输出到文件根据时间轮转等级 |
| 82 | 87 | file = DEBUG |
| 83 | 88 | ;文件轮转时长单位 | ... | ... |
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
此 diff 太大无法显示。
此 diff 太大无法显示。
| ... | ... | @@ -20,10 +20,9 @@ from testcase.test_04_Internship_preparation import Test01addInternshipPlan, Tes |
| 20 | 20 | # 学生查看实习、学生报名、 |
| 21 | 21 | from testcase.test_05_student_practice import Test01SelectAllPractice, Test02StudentApply |
| 22 | 22 | # 查看报名审核、报名审核-学校端-进行审核、报名审核-hr端-待审核列表查看(实习申请列表)、 报名审核-hr端-进行审核 |
| 23 | -from testcase.test_06_internship_manage import Test01SelectApplyAuditList, Test02SchoolAudit, Test03HrSelectAuditList, \ | |
| 24 | - Test04HrAudit | |
| 23 | +from testcase.test_06_internship_manage import Test01SelectApplyAuditList, Test02SchoolAudit | |
| 25 | 24 | |
| 26 | -""" | |
| 25 | +""" | |
| 27 | 26 | 执行所有用例 |
| 28 | 27 | """ |
| 29 | 28 | # 创建测试套件 |
| ... | ... | @@ -33,18 +32,23 @@ suite_all = unittest.TestSuite() |
| 33 | 32 | load = unittest.TestLoader() |
| 34 | 33 | # ---用例放到加载器 |
| 35 | 34 | suite_all.addTest(load.discover(TestCase_Path)) |
| 35 | + | |
| 36 | 36 | """ |
| 37 | -执行单独模块用例 | |
| 38 | -""" | |
| 37 | +# 执行单独模块用例 | |
| 38 | +# """ | |
| 39 | 39 | a1 = unittest.TestLoader().loadTestsFromTestCase(TestLogin) |
| 40 | 40 | a2 = unittest.TestLoader().loadTestsFromTestCase(Test01Department) |
| 41 | 41 | a3 = unittest.TestLoader().loadTestsFromTestCase(Test02Specialty) |
| 42 | 42 | a4 = unittest.TestLoader().loadTestsFromTestCase(Test03Year) |
| 43 | 43 | a5 = unittest.TestLoader().loadTestsFromTestCase(Test02Class) |
| 44 | 44 | a6 = unittest.TestLoader().loadTestsFromTestCase(Test04Student) |
| 45 | +bbbbbb = unittest.TestLoader().loadTestsFromTestCase(Test02SchoolAudit) | |
| 46 | +cccc = unittest.TestLoader().loadTestsFromTestCase(Test01addInternshipPlan) | |
| 45 | 47 | suite = unittest.TestSuite([a1, a2, a3, a4, a5, a6]) |
| 48 | +suite_a = unittest.TestSuite([cccc]) | |
| 46 | 49 | |
| 47 | 50 | runner_test(suite_all) # 执行 |
| 51 | +# runner_test(suite_a) # 执行 | |
| 48 | 52 | |
| 49 | 53 | # input_case = input("请输入需要执行的用例:") |
| 50 | 54 | # try: | ... | ... |
| ... | ... | @@ -242,6 +242,8 @@ class Test03Course(unittest.TestCase): |
| 242 | 242 | new_time = time.strftime("%Y%m%d_%H:%M:%S") |
| 243 | 243 | # 随机班级名称 |
| 244 | 244 | self.course_name = "py自动化课程" + new_time |
| 245 | + # 随机课程代码 | |
| 246 | + self.course_code = new_time | |
| 245 | 247 | |
| 246 | 248 | @data(*add_course_case) |
| 247 | 249 | def test_add_course_info(self, case): |
| ... | ... | @@ -256,7 +258,8 @@ class Test03Course(unittest.TestCase): |
| 256 | 258 | case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) |
| 257 | 259 | if "#termIds#" in case["data"]: |
| 258 | 260 | case["data"] = case["data"].replace("#termIds#", str(self.termsId)) |
| 259 | - | |
| 261 | + if "#code#" in case["data"]: | |
| 262 | + case["data"] = case["data"].replace("#code#", str(self.course_code)) | |
| 260 | 263 | data = json.loads(case["data"]) |
| 261 | 264 | expected = json.loads(case["expected"]) |
| 262 | 265 | # 调用接口 | ... | ... |
| ... | ... | @@ -108,8 +108,8 @@ class Test01addInternshipPlan(unittest.TestCase): |
| 108 | 108 | case["data"] = case["data"].replace("#courseId#", str(self.courseId)) # 课程 |
| 109 | 109 | if "#departmentId#" in case["data"]: |
| 110 | 110 | case["data"] = case["data"].replace("#departmentId#", str(self.department_id)) # 院系id |
| 111 | - if "#professionalId#" in case["data"]: | |
| 112 | - case["data"] = case["data"].replace("#professionalId#", str(self.professionalId)) # 专业id | |
| 111 | + if "#professionalIds#" in case["data"]: | |
| 112 | + case["data"] = case["data"].replace("#professionalIds#", str(self.professionalId)) # 专业id | |
| 113 | 113 | if "#classInfoId#" in case["data"]: |
| 114 | 114 | case["data"] = case["data"].replace("#classInfoId#", str(self.classId)) # 班级id |
| 115 | 115 | if "#teacherIds#" in case["data"]: |
| ... | ... | @@ -314,7 +314,7 @@ class Test04publishInternshipProject(unittest.TestCase): |
| 314 | 314 | cls.token = LoginToken.login_token() |
| 315 | 315 | |
| 316 | 316 | def setUp(self): |
| 317 | - # ---获取计划id | |
| 317 | + # ---获取项目id | |
| 318 | 318 | select_project_excel = Excel(os.path.join(Internship_path, "test_05_internship_project.xlsx"), |
| 319 | 319 | "select_internship_project") |
| 320 | 320 | read_project_excel = select_project_excel.read_excel_location("C2") |
| ... | ... | @@ -324,7 +324,7 @@ class Test04publishInternshipProject(unittest.TestCase): |
| 324 | 324 | self.projectId = jsonpath(project_json, "$..id")[0] # 获取待发布项目id |
| 325 | 325 | |
| 326 | 326 | # ==================================================================== |
| 327 | - # 发布计划 | |
| 327 | + # 发布项目 | |
| 328 | 328 | # ==================================================================== |
| 329 | 329 | @data(*publish_project_case) |
| 330 | 330 | def test_publish_plan(self, case): |
| ... | ... | @@ -362,6 +362,3 @@ class Test04publishInternshipProject(unittest.TestCase): |
| 362 | 362 | self.publish_project.write_excel(row=case["id"] + 1, column=9, value=case["data"]) |
| 363 | 363 | HandleLog.log.info("用例{},执行通过".format(case["title"])) |
| 364 | 364 | |
| 365 | - | |
| 366 | -if __name__ == '__main__': | |
| 367 | - Test03addInternshipProject | |
| \ No newline at end of file | ... | ... |
| 1 | 1 | # -*- coding: utf-8 -*- |
| 2 | 2 | # ====================================== |
| 3 | 3 | # @Software: PyCharm |
| 4 | -# @Author : Shitou ✊ | |
| 4 | +# @Author : Shitou ✊、 | |
| 5 | 5 | # @Time : 2023/1/9 16:32 |
| 6 | 6 | # @FileName: test_05_student_practice.py |
| 7 | 7 | # ====================================== |
| ... | ... | @@ -97,7 +97,8 @@ class Test02StudentApply(unittest.TestCase): |
| 97 | 97 | def test01student_apply(self, case): |
| 98 | 98 | # 准备数据 |
| 99 | 99 | if "#jobId#" in case["data"]: |
| 100 | - case["data"] = case["data"].replace("#jobId#", str(conf.get("hr", "hr_jobid"))) | |
| 100 | + # case["data"] = case["data"].replace("#jobId#", str(conf.get("hr", "hr_jobid")))----2023/03/13修改需求,修改为获取基地岗位 | |
| 101 | + case["data"] = case["data"].replace("#jobId#", str(conf.get("school", "school_base_jobid"))) | |
| 101 | 102 | data = json.loads(case["data"]) |
| 102 | 103 | expected = json.loads(case["expected"]) |
| 103 | 104 | if "{id}" in case["url"]: | ... | ... |
| ... | ... | @@ -10,6 +10,7 @@ |
| 10 | 10 | """ |
| 11 | 11 | import json |
| 12 | 12 | import os |
| 13 | +import time | |
| 13 | 14 | import unittest |
| 14 | 15 | |
| 15 | 16 | import requests |
| ... | ... | @@ -27,7 +28,7 @@ from tools.handle_token import LoginToken, HrLoginToken, StudentLoginToken |
| 27 | 28 | # ==================实习管理菜单相关用例================== |
| 28 | 29 | |
| 29 | 30 | # ==================================================================== |
| 30 | -# 报名审核-待审核列表查看 | |
| 31 | +# 报名审核-待审核列表查看--学校 | |
| 31 | 32 | # ==================================================================== |
| 32 | 33 | @ddt |
| 33 | 34 | class Test01SelectApplyAuditList(unittest.TestCase): |
| ... | ... | @@ -97,7 +98,6 @@ class Test02SchoolAudit(unittest.TestCase): |
| 97 | 98 | def test01audit(self, case): |
| 98 | 99 | if "#formIds#" in case["data"]: |
| 99 | 100 | case["data"] = case["data"].replace("#formIds#", str(self.applyId)) # 待审核id |
| 100 | - | |
| 101 | 101 | # 准备数据 |
| 102 | 102 | data = json.loads(case["data"]) |
| 103 | 103 | expected = json.loads(case["expected"]) |
| ... | ... | @@ -127,6 +127,9 @@ class Test02SchoolAudit(unittest.TestCase): |
| 127 | 127 | HandleLog.log.info("用例{},执行通过".format(case["title"])) |
| 128 | 128 | |
| 129 | 129 | |
| 130 | +""" | |
| 131 | +需求改动,无需hr进行审核2023/03/13 | |
| 132 | + | |
| 130 | 133 | # ==================================================================== |
| 131 | 134 | # 报名审核-hr端-待审核列表查看(实习申请列表) |
| 132 | 135 | # ==================================================================== |
| ... | ... | @@ -226,6 +229,7 @@ class Test04HrAudit(unittest.TestCase): |
| 226 | 229 | # 将创建使用的数据写入到excel表格中 |
| 227 | 230 | self.hr_audit.write_excel(row=case["id"] + 1, column=9, value=case["data"]) |
| 228 | 231 | HandleLog.log.info("用例{},执行通过".format(case["title"])) |
| 232 | +""" | |
| 229 | 233 | |
| 230 | 234 | |
| 231 | 235 | # ==================================================================== |
| ... | ... | @@ -234,7 +238,7 @@ class Test04HrAudit(unittest.TestCase): |
| 234 | 238 | @ddt |
| 235 | 239 | class Test05StudentIntenship(unittest.TestCase): |
| 236 | 240 | student_start_internship = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), |
| 237 | - "student_start_internship") | |
| 241 | + "student_start_internshipp") | |
| 238 | 242 | student_start_internship_case = student_start_internship.read_excel() # 学生填写开始时间 |
| 239 | 243 | |
| 240 | 244 | # 登陆前置 |
| ... | ... | @@ -286,6 +290,380 @@ class Test05StudentIntenship(unittest.TestCase): |
| 286 | 290 | HandleLog.log.info("用例{},执行通过".format(case["title"])) |
| 287 | 291 | |
| 288 | 292 | |
| 289 | -if __name__ == '__main__': | |
| 290 | - Test04HrAudit() | |
| 291 | - Test05StudentIntenship() | |
| 293 | +# ==================================================================== | |
| 294 | +# 学校端---实习申请审核通过 | |
| 295 | +# ==================================================================== | |
| 296 | +@ddt | |
| 297 | +class Test06SchoolSelectApply(unittest.TestCase): | |
| 298 | + student_internship_applic = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | |
| 299 | + "school_audit_internship_applic") | |
| 300 | + student_internship_applic_case = student_internship_applic.read_excel() | |
| 301 | + | |
| 302 | + @classmethod | |
| 303 | + def setUpClass(cls): | |
| 304 | + # 获取token | |
| 305 | + cls.token = LoginToken.login_token() | |
| 306 | + | |
| 307 | + def setUp(self): | |
| 308 | + # ---获取实习申请id---待审核 | |
| 309 | + select_internship_applic = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | |
| 310 | + "school_select_internship_applic") | |
| 311 | + read_internship_applic_excel = select_internship_applic.read_excel_location("C2") | |
| 312 | + read_internship_applic_excel_d = select_internship_applic.read_excel_location("E2") # 读取params | |
| 313 | + internship_applic_list = SelectData(str(read_internship_applic_excel), | |
| 314 | + json.loads(read_internship_applic_excel_d)) | |
| 315 | + internship_applic_json = internship_applic_list.select_list() | |
| 316 | + self.internship_applic = jsonpath(internship_applic_json, "$..id")[0] # 获取实习申请待审核id | |
| 317 | + | |
| 318 | + @data(*student_internship_applic_case) | |
| 319 | + def test01audit(self, case): | |
| 320 | + if f"#id#" in case["url"]: | |
| 321 | + case["url"] = case["url"].replace("#id#", str(self.internship_applic)) # 待审核id | |
| 322 | + | |
| 323 | + # 准备数据 | |
| 324 | + data = json.loads(case["data"]) | |
| 325 | + expected = json.loads(case["expected"]) | |
| 326 | + # 调用接口 | |
| 327 | + url = conf.get("url", "url_ip") + case["url"] | |
| 328 | + herders = {} | |
| 329 | + herders["Authorization"] = self.token | |
| 330 | + request = requests.request(url=url, method=case["method"], json=data, headers=herders) | |
| 331 | + res = request.json() | |
| 332 | + print("用例入参:{}".format(data)) | |
| 333 | + print("预期结果:", expected) | |
| 334 | + print("实际结果:", res) | |
| 335 | + # 断言 | |
| 336 | + try: | |
| 337 | + self.assertEqual(expected['msg'], res['msg']) | |
| 338 | + self.assertEqual(expected['code'], res['code']) | |
| 339 | + except AssertionError as e: | |
| 340 | + # 写入Excel | |
| 341 | + self.student_internship_applic.write_excel(row=case["id"] + 1, column=7, value="不通过") | |
| 342 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | |
| 343 | + HandleLog.log.exception(e) | |
| 344 | + raise e | |
| 345 | + else: | |
| 346 | + self.student_internship_applic.write_excel(row=case["id"] + 1, column=7, value="通过") | |
| 347 | + # 将创建使用的数据写入到excel表格中 | |
| 348 | + self.student_internship_applic.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | |
| 349 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | |
| 350 | + | |
| 351 | + | |
| 352 | +# ==================================================================== | |
| 353 | +# 学生端---写周日志 | |
| 354 | +# ==================================================================== | |
| 355 | +@ddt | |
| 356 | +class Test07StudentWriteLog(unittest.TestCase): | |
| 357 | + student_write_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), "write_log") | |
| 358 | + student_write_log_case = student_write_log.read_excel() | |
| 359 | + | |
| 360 | + # 登陆前置 | |
| 361 | + @classmethod | |
| 362 | + def setUpClass(cls): | |
| 363 | + cls.student_token = StudentLoginToken.login_token() | |
| 364 | + | |
| 365 | + def setUp(self): | |
| 366 | + """单条用例执行前执行的函数""" | |
| 367 | + self.new_time = time.strftime("%Y%m%d_%H:%M:%S") | |
| 368 | + # 获取学生端实习中id | |
| 369 | + student_select_intership_running_excle = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | |
| 370 | + "student_select_intership_wait") | |
| 371 | + read_student_intership_excel = student_select_intership_running_excle.read_excel_location("C3") | |
| 372 | + read_student_intership_excel_d = student_select_intership_running_excle.read_excel_location("E3") # 读取params | |
| 373 | + student_intership_list = SelectData(str(read_student_intership_excel), | |
| 374 | + json.loads(read_student_intership_excel_d)) | |
| 375 | + student_intership_json = student_intership_list.student_select_list() # 正序查找 | |
| 376 | + self.student_intership_id = jsonpath(student_intership_json, "$..id")[0] # 获取实习单实习中id | |
| 377 | + | |
| 378 | + @data(*student_write_log_case) | |
| 379 | + def test01student_write_log(self, case): | |
| 380 | + if "#formId#" in case["data"]: | |
| 381 | + case["data"] = case["data"].replace("#formId#", str(self.student_intership_id)) | |
| 382 | + if "#time#" in case["data"]: | |
| 383 | + case["data"] = case["data"].replace("#time#", str(self.new_time)) | |
| 384 | + # 准备数据 | |
| 385 | + data = json.loads(case["data"]) | |
| 386 | + expected = json.loads(case["expected"]) | |
| 387 | + # 调用接口 | |
| 388 | + url = conf.get("url", "url_ip") + case["url"] | |
| 389 | + headers = {} | |
| 390 | + headers["Authorization"] = self.student_token | |
| 391 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | |
| 392 | + res = request.json() | |
| 393 | + print("用例入参:{}".format(data)) | |
| 394 | + print("预期结果:", expected) | |
| 395 | + print("实际结果:", res) | |
| 396 | + # 断言 | |
| 397 | + try: | |
| 398 | + self.assertEqual(expected['msg'], res['msg']) | |
| 399 | + self.assertEqual(expected['code'], res['code']) | |
| 400 | + except AssertionError as e: | |
| 401 | + self.student_write_log.write_excel(row=case['id'] + 1, column=7, value="不通过") | |
| 402 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | |
| 403 | + HandleLog.log.exception(e) | |
| 404 | + raise e | |
| 405 | + else: | |
| 406 | + self.student_write_log.write_excel(row=case["id"] + 1, column=7, value="通过") | |
| 407 | + # 将创建使用的数据写入到excel表格中 | |
| 408 | + self.student_write_log.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | |
| 409 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | |
| 410 | + | |
| 411 | + | |
| 412 | +# ==================================================================== | |
| 413 | +# 教师端---批阅周日志 | |
| 414 | +# ==================================================================== | |
| 415 | +@ddt | |
| 416 | +class Test08ApproveLog(unittest.TestCase): | |
| 417 | + teacher_approve_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), "approve_log") | |
| 418 | + teacher_approve_log_case = teacher_approve_log.read_excel() | |
| 419 | + | |
| 420 | + # 登陆前置 | |
| 421 | + @classmethod | |
| 422 | + def setUpClass(cls): | |
| 423 | + cls.teacher_token = LoginToken.login_token() | |
| 424 | + | |
| 425 | + def setUp(self): | |
| 426 | + # 获取周日志id | |
| 427 | + # ---------------获取日志id | |
| 428 | + select_daily_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), | |
| 429 | + "select_log") | |
| 430 | + select_daily_log_excel = select_daily_log.read_excel_location("C2") | |
| 431 | + select_daily_log_excel_d = select_daily_log.read_excel_location("E2") # 读取params | |
| 432 | + daily_log_list = SelectData(str(select_daily_log_excel), | |
| 433 | + json.loads(select_daily_log_excel_d)) | |
| 434 | + daily_log_json = daily_log_list.select_list() # 正序查找 | |
| 435 | + self.daily_ids = jsonpath(daily_log_json, "$..id")[0] # 获取日志id | |
| 436 | + # ---------------获取周志id | |
| 437 | + select_weekly_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), | |
| 438 | + "select_log") | |
| 439 | + select_weekly_log_excel = select_weekly_log.read_excel_location("C3") | |
| 440 | + select_weekly_log_excel_d = select_weekly_log.read_excel_location("E3") # 读取params | |
| 441 | + weekly_log_list = SelectData(str(select_weekly_log_excel), | |
| 442 | + json.loads(select_weekly_log_excel_d)) | |
| 443 | + weekly_log_json = weekly_log_list.select_list() # 正序查找 | |
| 444 | + self.weekly_ids = jsonpath(weekly_log_json, "$..id")[0] # 获取周志id | |
| 445 | + # ---------------获取月志id | |
| 446 | + select_monthly_log = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), | |
| 447 | + "select_log") | |
| 448 | + select_monthly_log_excel = select_monthly_log.read_excel_location("C4") | |
| 449 | + select_monthly_log_excel_d = select_monthly_log.read_excel_location("E4") # 读取params | |
| 450 | + monthly_log_list = SelectData(str(select_monthly_log_excel), | |
| 451 | + json.loads(select_monthly_log_excel_d)) | |
| 452 | + monthly_log_json = monthly_log_list.select_list() # 正序查找 | |
| 453 | + self.monthly_ids = jsonpath(monthly_log_json, "$..id")[0] # 获取月志id | |
| 454 | + | |
| 455 | + @data(*teacher_approve_log_case) | |
| 456 | + def test01approve_log(self, case): | |
| 457 | + if "#daily_ids#" in case["data"]: | |
| 458 | + case["data"] = case["data"].replace("#daily_ids#", str(self.daily_ids)) # 日志 | |
| 459 | + if "#weekly_ids#" in case["data"]: | |
| 460 | + case["data"] = case["data"].replace("#weekly_ids#", str(self.weekly_ids)) # 周志 | |
| 461 | + if "#monthly_ids#" in case["data"]: | |
| 462 | + case["data"] = case["data"].replace("#monthly_ids#", str(self.monthly_ids)) # 月志 | |
| 463 | + | |
| 464 | + # 准备数据 | |
| 465 | + data = json.loads(case["data"]) | |
| 466 | + expected = json.loads(case["expected"]) | |
| 467 | + # 调用接口 | |
| 468 | + url = conf.get("url", "url_ip") + case["url"] | |
| 469 | + headers = {} | |
| 470 | + headers["Authorization"] = self.teacher_token | |
| 471 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | |
| 472 | + res = request.json() | |
| 473 | + print("用例入参:{}".format(data)) | |
| 474 | + print("预期结果:", expected) | |
| 475 | + print("实际结果:", res) | |
| 476 | + # 断言 | |
| 477 | + try: | |
| 478 | + self.assertEqual(expected['msg'], res['msg']) | |
| 479 | + self.assertEqual(expected['code'], res['code']) | |
| 480 | + except AssertionError as e: | |
| 481 | + self.teacher_approve_log.write_excel(row=case['id'] + 1, column=7, value="不通过") | |
| 482 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | |
| 483 | + HandleLog.log.exception(e) | |
| 484 | + raise e | |
| 485 | + else: | |
| 486 | + self.teacher_approve_log.write_excel(row=case["id"] + 1, column=7, value="通过") | |
| 487 | + # 将创建使用的数据写入到excel表格中 | |
| 488 | + self.teacher_approve_log.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | |
| 489 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | |
| 490 | + | |
| 491 | + | |
| 492 | +# ==================================================================== | |
| 493 | +# 学生端---打卡签到 | |
| 494 | +# ==================================================================== | |
| 495 | +@ddt | |
| 496 | +class Test09Attendance(unittest.TestCase): | |
| 497 | + student_attendance = Excel(os.path.join(Internship_manage, "test_08_log_marking.xlsx"), "student_attendance") | |
| 498 | + student_attendance_case = student_attendance.read_excel() | |
| 499 | + | |
| 500 | + # 登陆前置 | |
| 501 | + @classmethod | |
| 502 | + def setUpClass(cls): | |
| 503 | + cls.student_token = StudentLoginToken.login_token() | |
| 504 | + | |
| 505 | + def setUp(self): | |
| 506 | + # 获取学生端实习中id | |
| 507 | + student_select_intership_running_excle = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | |
| 508 | + "student_select_intership_wait") | |
| 509 | + read_student_intership_excel = student_select_intership_running_excle.read_excel_location("C3") | |
| 510 | + read_student_intership_excel_d = student_select_intership_running_excle.read_excel_location("E3") # 读取params | |
| 511 | + student_intership_list = SelectData(str(read_student_intership_excel), | |
| 512 | + json.loads(read_student_intership_excel_d)) | |
| 513 | + student_intership_json = student_intership_list.student_select_list() # 正序查找 | |
| 514 | + self.student_intership_id = jsonpath(student_intership_json, "$..id")[0] # 获取实习单实习中id | |
| 515 | + | |
| 516 | + @data(*student_attendance_case) | |
| 517 | + def test01student_attendance(self, case): | |
| 518 | + if "#formId#" in case["data"]: | |
| 519 | + case["data"] = case["data"].replace("#formId#", str(self.student_intership_id)) # 实习单 | |
| 520 | + | |
| 521 | + # 准备数据 | |
| 522 | + data = json.loads(case["data"]) | |
| 523 | + expected = json.loads(case["expected"]) | |
| 524 | + # 调用接口 | |
| 525 | + url = conf.get("url", "url_ip") + case["url"] | |
| 526 | + headers = {} | |
| 527 | + headers["Authorization"] = self.student_token | |
| 528 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | |
| 529 | + res = request.json() | |
| 530 | + print("用例入参:{}".format(data)) | |
| 531 | + print("预期结果:", expected) | |
| 532 | + print("实际结果:", res) | |
| 533 | + # 断言 | |
| 534 | + try: | |
| 535 | + self.assertEqual(expected['msg'], res['msg']) | |
| 536 | + self.assertEqual(expected['code'], res['code']) | |
| 537 | + except AssertionError as e: | |
| 538 | + self.student_attendance.write_excel(row=case['id'] + 1, column=7, value="不通过") | |
| 539 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | |
| 540 | + HandleLog.log.exception(e) | |
| 541 | + raise e | |
| 542 | + else: | |
| 543 | + self.student_attendance.write_excel(row=case["id"] + 1, column=7, value="通过") | |
| 544 | + # 将创建使用的数据写入到excel表格中 | |
| 545 | + self.student_attendance.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | |
| 546 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | |
| 547 | + | |
| 548 | + | |
| 549 | +# ==================================================================== | |
| 550 | +# 学生端---请假申请 | |
| 551 | +# ==================================================================== | |
| 552 | + | |
| 553 | +@ddt | |
| 554 | +class Test10LeaveRecord(unittest.TestCase): | |
| 555 | + student_leave_record = Excel(os.path.join(Internship_manage, "test_09_leave_record.xlsx"), "student_leave_record") | |
| 556 | + student_leave_record_case = student_leave_record.read_excel() | |
| 557 | + | |
| 558 | + # 登陆的前置 | |
| 559 | + @classmethod | |
| 560 | + def setUpClass(cls): | |
| 561 | + cls.student_token = StudentLoginToken.login_token() # 获取学生登陆小程序的token | |
| 562 | + | |
| 563 | + def setUp(self): | |
| 564 | + """单条用例执行前执行的函数""" | |
| 565 | + self.new_time = time.strftime("%Y%m%d_%H:%M:%S") | |
| 566 | + # 获取学生端实习中id | |
| 567 | + student_select_intership_running_excle = Excel(os.path.join(Internship_manage, "test_07_apply_audit.xlsx"), | |
| 568 | + "student_select_intership_wait") | |
| 569 | + read_student_intership_excel = student_select_intership_running_excle.read_excel_location("C3") | |
| 570 | + read_student_intership_excel_d = student_select_intership_running_excle.read_excel_location("E3") # 读取params | |
| 571 | + student_intership_list = SelectData(str(read_student_intership_excel), | |
| 572 | + json.loads(read_student_intership_excel_d)) | |
| 573 | + student_intership_json = student_intership_list.student_select_list() # 正序查找 | |
| 574 | + self.student_intership_id = jsonpath(student_intership_json, "$..id")[0] # 获取实习单实习中id | |
| 575 | + | |
| 576 | + @data(*student_leave_record_case) | |
| 577 | + def test01student_leave_record(self, case): | |
| 578 | + if "#formId#" in case["data"]: | |
| 579 | + case["data"] = case["data"].replace("#formId#", str(self.student_intership_id)) # 实习单 | |
| 580 | + if "#time#" in case["data"]: | |
| 581 | + case["data"] = case["data"].replace("#time#", str(self.new_time)) # 请假原因 | |
| 582 | + # 准备数据 | |
| 583 | + data = json.loads(case["data"]) | |
| 584 | + expected = json.loads(case["expected"]) | |
| 585 | + # 调用接口 | |
| 586 | + url = conf.get("url", "url_ip") + case["url"] | |
| 587 | + headers = {} | |
| 588 | + headers["Authorization"] = self.student_token | |
| 589 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | |
| 590 | + res = request.json() | |
| 591 | + print("用例入参:{}".format(data)) | |
| 592 | + print("预期结果:", expected) | |
| 593 | + print("实际结果:", res) | |
| 594 | + # 断言 | |
| 595 | + try: | |
| 596 | + self.assertEqual(expected['msg'], res['msg']) | |
| 597 | + self.assertEqual(expected['code'], res['code']) | |
| 598 | + except AssertionError as e: | |
| 599 | + self.student_leave_record.write_excel(row=case['id'] + 1, column=7, value="不通过") | |
| 600 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | |
| 601 | + HandleLog.log.exception(e) | |
| 602 | + raise e | |
| 603 | + else: | |
| 604 | + self.student_leave_record.write_excel(row=case["id"] + 1, column=7, value="通过") | |
| 605 | + # 将创建使用的数据写入到excel表格中 | |
| 606 | + self.student_leave_record.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | |
| 607 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | |
| 608 | + | |
| 609 | + | |
| 610 | +# ==================================================================== | |
| 611 | +# 教师端---请假审批--通过 | |
| 612 | +# ==================================================================== | |
| 613 | + | |
| 614 | +@ddt | |
| 615 | +class Test11TeacherAprove(unittest.TestCase): | |
| 616 | + teacher_aprove = Excel(os.path.join(Internship_manage, "test_09_leave_record.xlsx"), "tacher_aprove") | |
| 617 | + teacher_aprove_case = teacher_aprove.read_excel() | |
| 618 | + | |
| 619 | + # 登陆的前置 | |
| 620 | + @classmethod | |
| 621 | + def setUpClass(cls): | |
| 622 | + cls.teacher_token = LoginToken.login_token() # 获取web教师端的token | |
| 623 | + | |
| 624 | + def setUp(self): | |
| 625 | + """单条用例执行前执行的函数""" | |
| 626 | + self.new_time = time.strftime("%Y%m%d_%H:%M:%S") | |
| 627 | + # 获取请假批阅列表的id | |
| 628 | + leave_record_excel = Excel(os.path.join(Internship_manage, "test_09_leave_record.xlsx"), | |
| 629 | + "select_tacher_leave_record") | |
| 630 | + read_leave_record = leave_record_excel.read_excel_location("C2") | |
| 631 | + read_leave_record_d = leave_record_excel.read_excel_location("E2") | |
| 632 | + teacher_leave_record_list = SelectData(str(read_leave_record), | |
| 633 | + json.loads(read_leave_record_d)) | |
| 634 | + teacher_leave_record_json = teacher_leave_record_list.select_list() # 正序查找 | |
| 635 | + self.leave_record_id = jsonpath(teacher_leave_record_json, "$..id")[0] # 获取请假审批id | |
| 636 | + | |
| 637 | + @data(*teacher_aprove_case) | |
| 638 | + def test01teacher_aprove(self, case): | |
| 639 | + | |
| 640 | + if "#time#" in case["data"]: | |
| 641 | + case["data"] = case["data"].replace("#time#", str(self.new_time)) # 审批通过的回复 | |
| 642 | + if "{id}" in case["url"]: | |
| 643 | + case["url"] = case["url"].replace("{id}", str(self.leave_record_id)) | |
| 644 | + # 准备数据 | |
| 645 | + data = json.loads(case["data"]) | |
| 646 | + expected = json.loads(case["expected"]) | |
| 647 | + # 调用接口 | |
| 648 | + url = conf.get("url", "url_ip") + case["url"] | |
| 649 | + headers = {} | |
| 650 | + headers["Authorization"] = self.teacher_token | |
| 651 | + request = requests.request(url=url, method=case["method"], json=data, headers=headers) | |
| 652 | + res = request.json() | |
| 653 | + print("用例入参:{}".format(data)) | |
| 654 | + print("预期结果:", expected) | |
| 655 | + print("实际结果:", res) | |
| 656 | + # 断言 | |
| 657 | + try: | |
| 658 | + self.assertEqual(expected['msg'], res['msg']) | |
| 659 | + self.assertEqual(expected['code'], res['code']) | |
| 660 | + except AssertionError as e: | |
| 661 | + self.teacher_aprove.write_excel(row=case['id'] + 1, column=7, value="不通过") | |
| 662 | + HandleLog.log.error("用例标题{},不通过".format(case['title'])) | |
| 663 | + HandleLog.log.exception(e) | |
| 664 | + raise e | |
| 665 | + else: | |
| 666 | + self.teacher_aprove.write_excel(row=case["id"] + 1, column=7, value="通过") | |
| 667 | + # 将创建使用的数据写入到excel表格中 | |
| 668 | + self.teacher_aprove.write_excel(row=case["id"] + 1, column=9, value=case["data"]) | |
| 669 | + HandleLog.log.info("用例{},执行通过".format(case["title"])) | ... | ... |
| ... | ... | @@ -79,7 +79,7 @@ class RandomIdentification(object): |
| 79 | 79 | def ran(self): |
| 80 | 80 | # 随机生成年月日 |
| 81 | 81 | aaa = radar.random_date("1980", "2022") |
| 82 | - yea = aaa.year # 生成年 | |
| 82 | + yea = aaa.year # 生成年 | |
| 83 | 83 | # yea = random.randint(1933, int(time.strftime("%Y"))) # 生成年 |
| 84 | 84 | # 生成月 |
| 85 | 85 | mon = random.randint(1, 12) | ... | ... |
| ... | ... | @@ -24,7 +24,7 @@ def runner_test(suite): |
| 24 | 24 | ) |
| 25 | 25 | # runner.run() |
| 26 | 26 | # 执行失败重新运行机制 |
| 27 | - runner.rerun_run(count=3, interval=0.2) | |
| 27 | + runner.rerun_run(count=2, interval=0.2) | |
| 28 | 28 | """ |
| 29 | 29 | 发送钉钉 |
| 30 | 30 | """ |
| ... | ... | @@ -36,9 +36,9 @@ def runner_test(suite): |
| 36 | 36 | # isatall=False, # 是否@所有人,默认为False,设为True则会@所有人 |
| 37 | 37 | # except_info=True # 是否发送未通过用例的详细信息,默认为False |
| 38 | 38 | # ) |
| 39 | - """ | |
| 40 | - 发送邮件 | |
| 41 | - """ | |
| 39 | + # """ | |
| 40 | + # 发送邮件 | |
| 41 | + # """ | |
| 42 | 42 | # runner.send_email(host="smtp.qq.com", |
| 43 | 43 | # port=465, |
| 44 | 44 | # user="shishut@foxmail.com", | ... | ... |
| ... | ... | @@ -45,7 +45,8 @@ class StudentLoginToken: |
| 45 | 45 | "way": conf.get("student_user_data", "way"), |
| 46 | 46 | "phone": conf.get("student_user_data", "phone"), |
| 47 | 47 | "code": conf.get("student_user_data", "code"), |
| 48 | - "type": conf.get("student_user_data", "type") | |
| 48 | + "type": conf.get("student_user_data", "type"), | |
| 49 | + "schoolId": conf.get("student_user_data", "schoolId") | |
| 49 | 50 | } |
| 50 | 51 | response = requests.request(url=login_url, method="post", json=params, headers=headers) |
| 51 | 52 | res = response.json() |
| ... | ... | @@ -98,5 +99,6 @@ class HrLoginToken: |
| 98 | 99 | |
| 99 | 100 | |
| 100 | 101 | if __name__ == '__main__': |
| 101 | - HrLoginToken.login_token() | |
| 102 | + a = StudentLoginToken.login_token() | |
| 103 | + print(a) | |
| 102 | 104 | # HrLoginToken.login_token() | ... | ... |
请
注册
或
登录
后发表评论