作者 bianxinhua

add README

@@ -3,18 +3,12 @@ @@ -3,18 +3,12 @@
3 <component name="ChangeListManager"> 3 <component name="ChangeListManager">
4 <list default="true" id="d6814b48-28ec-40b6-bcea-dcd9b8613715" name="Default Changelist" comment=""> 4 <list default="true" id="d6814b48-28ec-40b6-bcea-dcd9b8613715" name="Default Changelist" comment="">
5 <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$/api/m_api/admin/m_admin_api.yml" beforeDir="false" />  
7 - <change beforePath="$PROJECT_DIR$/api/m_api/admin/m_admin_detail_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/m_api/admin/m_admin_detail_api.yml" afterDir="false" />  
8 - <change beforePath="$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_api.yml" beforeDir="false" />  
9 - <change beforePath="$PROJECT_DIR$/api/m_api/admin/m_admin_list_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/m_api/admin/m_admin_list_api.yml" afterDir="false" />  
10 - <change beforePath="$PROJECT_DIR$/api/m_api/m_partner_add_api.yml" beforeDir="false" /> 6 + <change beforePath="$PROJECT_DIR$/api/m_api/partners/m_partner_add_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/m_api/partners/m_partner_add_api.yml" afterDir="false" />
11 <change beforePath="$PROJECT_DIR$/config/m_accessToken.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/m_accessToken.csv" afterDir="false" /> 7 <change beforePath="$PROJECT_DIR$/config/m_accessToken.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/m_accessToken.csv" afterDir="false" />
12 <change beforePath="$PROJECT_DIR$/debugtalk.py" beforeDir="false" afterPath="$PROJECT_DIR$/debugtalk.py" afterDir="false" /> 8 <change beforePath="$PROJECT_DIR$/debugtalk.py" beforeDir="false" afterPath="$PROJECT_DIR$/debugtalk.py" afterDir="false" />
13 - <change beforePath="$PROJECT_DIR$/logs/testsuites/partner_testsuite.parse_failed.json" beforeDir="false" afterPath="$PROJECT_DIR$/logs/testsuites/partner_testsuite.parse_failed.json" afterDir="false" /> 9 + <change beforePath="$PROJECT_DIR$/helpfunc/db_pg_func.py" beforeDir="false" afterPath="$PROJECT_DIR$/helpfunc/db_pg_func.py" afterDir="false" />
14 <change beforePath="$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml" afterDir="false" /> 10 <change beforePath="$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml" afterDir="false" />
15 - <change beforePath="$PROJECT_DIR$/testcases/admin/ADMIN002_edit_admin_testcases.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/admin/ADMIN002_edit_admin_testcases.yml" afterDir="false" />  
16 - <change beforePath="$PROJECT_DIR$/testcases/admin/ADMIN003_list_admin_testcases.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/admin/ADMIN003_list_admin_testcases.yml" afterDir="false" />  
17 - <change beforePath="$PROJECT_DIR$/testcases/m_admin_login_testcases.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/m_login_testcases.yml" afterDir="false" /> 11 + <change beforePath="$PROJECT_DIR$/testcases/partners/PARTNERS001_add_partner_testcases.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/partners/PARTNERS001_add_partner_testcases.yml" afterDir="false" />
18 <change beforePath="$PROJECT_DIR$/testcases_excel/partner_api.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/testcases_excel/partner_api.xlsx" afterDir="false" /> 12 <change beforePath="$PROJECT_DIR$/testcases_excel/partner_api.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/testcases_excel/partner_api.xlsx" afterDir="false" />
19 <change beforePath="$PROJECT_DIR$/testsuites/partner_testsuite.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testsuites/partner_testsuite.yml" afterDir="false" /> 13 <change beforePath="$PROJECT_DIR$/testsuites/partner_testsuite.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testsuites/partner_testsuite.yml" afterDir="false" />
20 </list> 14 </list>
@@ -25,15 +19,15 @@ @@ -25,15 +19,15 @@
25 <option name="LAST_RESOLUTION" value="IGNORE" /> 19 <option name="LAST_RESOLUTION" value="IGNORE" />
26 </component> 20 </component>
27 <component name="CoverageDataManager"> 21 <component name="CoverageDataManager">
28 - <SUITE FILE_PATH="coverage/partner_api$debugtalk.coverage" NAME="debugtalk Coverage Results" MODIFIED="1594396508244" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />  
29 - <SUITE FILE_PATH="coverage/partner_api$db_pg_func.coverage" NAME="db_pg_func Coverage Results" MODIFIED="1594287508392" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" /> 22 + <SUITE FILE_PATH="coverage/partner_api$debugtalk.coverage" NAME="debugtalk Coverage Results" MODIFIED="1594439962224" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
  23 + <SUITE FILE_PATH="coverage/partner_api$db_pg_func.coverage" NAME="db_pg_func Coverage Results" MODIFIED="1594485069390" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" />
30 </component> 24 </component>
31 <component name="FileEditorManager"> 25 <component name="FileEditorManager">
32 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> 26 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
33 <file pinned="false" current-in-tab="false"> 27 <file pinned="false" current-in-tab="false">
34 <entry file="file://$PROJECT_DIR$/debugtalk.py"> 28 <entry file="file://$PROJECT_DIR$/debugtalk.py">
35 <provider selected="true" editor-type-id="text-editor"> 29 <provider selected="true" editor-type-id="text-editor">
36 - <state relative-caret-position="123"> 30 + <state relative-caret-position="308">
37 <caret line="21" column="19" selection-start-line="21" selection-start-column="19" selection-end-line="21" selection-end-column="19" /> 31 <caret line="21" column="19" selection-start-line="21" selection-start-column="19" selection-end-line="21" selection-end-column="19" />
38 <folding> 32 <folding>
39 <element signature="e#0#13#0" expanded="true" /> 33 <element signature="e#0#13#0" expanded="true" />
@@ -45,49 +39,53 @@ @@ -45,49 +39,53 @@
45 <file pinned="false" current-in-tab="false"> 39 <file pinned="false" current-in-tab="false">
46 <entry file="file://$PROJECT_DIR$/api/m_api/partners/m_partner_add_api.yml"> 40 <entry file="file://$PROJECT_DIR$/api/m_api/partners/m_partner_add_api.yml">
47 <provider selected="true" editor-type-id="text-editor"> 41 <provider selected="true" editor-type-id="text-editor">
48 - <state relative-caret-position="295">  
49 - <caret line="14" column="37" selection-start-line="14" selection-start-column="37" selection-end-line="14" selection-end-column="37" /> 42 + <state relative-caret-position="244">
  43 + <caret line="19" selection-start-line="19" selection-end-line="22" selection-end-column="12" />
50 </state> 44 </state>
51 </provider> 45 </provider>
52 </entry> 46 </entry>
53 </file> 47 </file>
54 <file pinned="false" current-in-tab="false"> 48 <file pinned="false" current-in-tab="false">
55 - <entry file="file://$PROJECT_DIR$/api/m_api/m_order_actual_api.yml"> 49 + <entry file="file://$PROJECT_DIR$/api/m_api/partners/m_partner_edit_api.yml">
56 <provider selected="true" editor-type-id="text-editor"> 50 <provider selected="true" editor-type-id="text-editor">
57 - <state relative-caret-position="-264" /> 51 + <state relative-caret-position="638">
  52 + <caret line="29" column="12" selection-start-line="29" selection-start-column="12" selection-end-line="29" selection-end-column="12" />
  53 + </state>
58 </provider> 54 </provider>
59 </entry> 55 </entry>
60 </file> 56 </file>
61 - <file pinned="false" current-in-tab="false">  
62 - <entry file="file://$PROJECT_DIR$/api/m_api/m_order_purpose_add_api.yml"> 57 + <file pinned="false" current-in-tab="true">
  58 + <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS002_edit_partner_testcases.yml">
63 <provider selected="true" editor-type-id="text-editor"> 59 <provider selected="true" editor-type-id="text-editor">
64 - <state relative-caret-position="-289" /> 60 + <state relative-caret-position="26">
  61 + <caret line="12" column="19" selection-start-line="12" selection-start-column="19" selection-end-line="12" selection-end-column="19" />
  62 + </state>
65 </provider> 63 </provider>
66 </entry> 64 </entry>
67 </file> 65 </file>
68 <file pinned="false" current-in-tab="false"> 66 <file pinned="false" current-in-tab="false">
69 - <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_update(edit)_api.yml"> 67 + <entry file="file://$PROJECT_DIR$/helpfunc/db_pg_func.py">
70 <provider selected="true" editor-type-id="text-editor"> 68 <provider selected="true" editor-type-id="text-editor">
71 - <state relative-caret-position="374">  
72 - <caret line="17" selection-start-line="17" selection-end-line="20" selection-end-column="8" /> 69 + <state relative-caret-position="126">
  70 + <caret line="88" column="27" selection-start-line="88" selection-start-column="4" selection-end-line="88" selection-end-column="27" />
73 </state> 71 </state>
74 </provider> 72 </provider>
75 </entry> 73 </entry>
76 </file> 74 </file>
77 - <file pinned="false" current-in-tab="true">  
78 - <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_update(new)_api.yml"> 75 + <file pinned="false" current-in-tab="false">
  76 + <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_update(edit)_api.yml">
79 <provider selected="true" editor-type-id="text-editor"> 77 <provider selected="true" editor-type-id="text-editor">
80 - <state relative-caret-position="198">  
81 - <caret line="9" column="45" selection-start-line="9" selection-start-column="37" selection-end-line="9" selection-end-column="45" /> 78 + <state relative-caret-position="242">
  79 + <caret line="11" column="17" selection-start-line="11" selection-start-column="17" selection-end-line="11" selection-end-column="25" />
82 </state> 80 </state>
83 </provider> 81 </provider>
84 </entry> 82 </entry>
85 </file> 83 </file>
86 <file pinned="false" current-in-tab="false"> 84 <file pinned="false" current-in-tab="false">
87 - <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS001_add_partner_testcases.yml"> 85 + <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_0_api.yml">
88 <provider selected="true" editor-type-id="text-editor"> 86 <provider selected="true" editor-type-id="text-editor">
89 - <state relative-caret-position="154">  
90 - <caret line="10" column="25" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="25" /> 87 + <state relative-caret-position="286">
  88 + <caret line="13" column="18" selection-start-line="13" selection-start-column="18" selection-end-line="13" selection-end-column="27" />
91 </state> 89 </state>
92 </provider> 90 </provider>
93 </entry> 91 </entry>
@@ -95,8 +93,8 @@ @@ -95,8 +93,8 @@
95 <file pinned="false" current-in-tab="false"> 93 <file pinned="false" current-in-tab="false">
96 <entry file="file://$PROJECT_DIR$/testsuites/partner_testsuite.yml"> 94 <entry file="file://$PROJECT_DIR$/testsuites/partner_testsuite.yml">
97 <provider selected="true" editor-type-id="text-editor"> 95 <provider selected="true" editor-type-id="text-editor">
98 - <state relative-caret-position="129">  
99 - <caret line="31" column="70" selection-start-line="31" selection-start-column="70" selection-end-line="31" selection-end-column="70" /> 96 + <state relative-caret-position="158">
  97 + <caret line="36" column="71" selection-start-line="36" selection-start-column="71" selection-end-line="36" selection-end-column="71" />
100 </state> 98 </state>
101 </provider> 99 </provider>
102 </entry> 100 </entry>
@@ -113,24 +111,26 @@ @@ -113,24 +111,26 @@
113 <option value="$PROJECT_DIR$/.env" /> 111 <option value="$PROJECT_DIR$/.env" />
114 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_update(new)_api.yml" /> 112 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_update(new)_api.yml" />
115 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_update(edit)_api.yml" /> 113 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_update(edit)_api.yml" />
116 - <option value="$PROJECT_DIR$/helpfunc/db_pg_func.py" />  
117 <option value="$PROJECT_DIR$/testcases/admin/ADMIN002_list_admin_testcases.yml" /> 114 <option value="$PROJECT_DIR$/testcases/admin/ADMIN002_list_admin_testcases.yml" />
118 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_list_api.yml" /> 115 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_list_api.yml" />
119 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_detail_api.yml" /> 116 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_detail_api.yml" />
120 <option value="$PROJECT_DIR$/testcases/admin/ADMIN003_list_admin_testcases.yml" /> 117 <option value="$PROJECT_DIR$/testcases/admin/ADMIN003_list_admin_testcases.yml" />
121 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_1_api.yml" /> 118 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_1_api.yml" />
122 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_0_api.yml" /> 119 <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_0_api.yml" />
123 - <option value="$PROJECT_DIR$/testcases/partners/PARTNERS001_add_partner_testcases.yml" />  
124 <option value="$PROJECT_DIR$/testcases/admin/ADMIN006_forbidden_admin_testcases.yml" /> 120 <option value="$PROJECT_DIR$/testcases/admin/ADMIN006_forbidden_admin_testcases.yml" />
125 <option value="$PROJECT_DIR$/testcases/admin/ADMIN005_forbidden_admin_testcases.yml" /> 121 <option value="$PROJECT_DIR$/testcases/admin/ADMIN005_forbidden_admin_testcases.yml" />
126 <option value="$PROJECT_DIR$/testcases/admin/ADMIN004_detail_admin_testcases.yml" /> 122 <option value="$PROJECT_DIR$/testcases/admin/ADMIN004_detail_admin_testcases.yml" />
127 <option value="$PROJECT_DIR$/testcases/admin/ADMIN002_edit_admin_testcases.yml" /> 123 <option value="$PROJECT_DIR$/testcases/admin/ADMIN002_edit_admin_testcases.yml" />
128 - <option value="$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml" />  
129 <option value="$PROJECT_DIR$/testcases/m_login_testcases.yml" /> 124 <option value="$PROJECT_DIR$/testcases/m_login_testcases.yml" />
130 - <option value="$PROJECT_DIR$/testsuites/partner_testsuite.yml" /> 125 + <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_api.yml" />
131 <option value="$PROJECT_DIR$/debugtalk.py" /> 126 <option value="$PROJECT_DIR$/debugtalk.py" />
  127 + <option value="$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml" />
  128 + <option value="$PROJECT_DIR$/helpfunc/db_pg_func.py" />
132 <option value="$PROJECT_DIR$/api/m_api/partners/m_partner_add_api.yml" /> 129 <option value="$PROJECT_DIR$/api/m_api/partners/m_partner_add_api.yml" />
133 - <option value="$PROJECT_DIR$/api/m_api/admin/m_admin_api.yml" /> 130 + <option value="$PROJECT_DIR$/api/m_api/partners/m_partner_edit_api.yml" />
  131 + <option value="$PROJECT_DIR$/testcases/partners/PARTNERS001_add_partner_testcases.yml" />
  132 + <option value="$PROJECT_DIR$/testsuites/partner_testsuite.yml" />
  133 + <option value="$PROJECT_DIR$/testcases/partners/PARTNERS002_edit_partner_testcases.yml" />
134 </list> 134 </list>
135 </option> 135 </option>
136 </component> 136 </component>
@@ -145,6 +145,7 @@ @@ -145,6 +145,7 @@
145 <foldersAlwaysOnTop value="true" /> 145 <foldersAlwaysOnTop value="true" />
146 </navigator> 146 </navigator>
147 <panes> 147 <panes>
  148 + <pane id="Scope" />
148 <pane id="ProjectPane"> 149 <pane id="ProjectPane">
149 <subPane> 150 <subPane>
150 <expand> 151 <expand>
@@ -185,13 +186,13 @@ @@ -185,13 +186,13 @@
185 <path> 186 <path>
186 <item name="partner_api" type="b2602c69:ProjectViewProjectNode" /> 187 <item name="partner_api" type="b2602c69:ProjectViewProjectNode" />
187 <item name="partner_api" type="462c0819:PsiDirectoryNode" /> 188 <item name="partner_api" type="462c0819:PsiDirectoryNode" />
188 - <item name="testcases" type="462c0819:PsiDirectoryNode" /> 189 + <item name="helpfunc" type="462c0819:PsiDirectoryNode" />
  190 + <item name="db_pg_func.py" type="8704e2dd:PyFileNode" />
189 </path> 191 </path>
190 <path> 192 <path>
191 <item name="partner_api" type="b2602c69:ProjectViewProjectNode" /> 193 <item name="partner_api" type="b2602c69:ProjectViewProjectNode" />
192 <item name="partner_api" type="462c0819:PsiDirectoryNode" /> 194 <item name="partner_api" type="462c0819:PsiDirectoryNode" />
193 <item name="testcases" type="462c0819:PsiDirectoryNode" /> 195 <item name="testcases" type="462c0819:PsiDirectoryNode" />
194 - <item name="admin" type="462c0819:PsiDirectoryNode" />  
195 </path> 196 </path>
196 <path> 197 <path>
197 <item name="partner_api" type="b2602c69:ProjectViewProjectNode" /> 198 <item name="partner_api" type="b2602c69:ProjectViewProjectNode" />
@@ -208,7 +209,6 @@ @@ -208,7 +209,6 @@
208 <select /> 209 <select />
209 </subPane> 210 </subPane>
210 </pane> 211 </pane>
211 - <pane id="Scope" />  
212 </panes> 212 </panes>
213 </component> 213 </component>
214 <component name="PropertiesComponent"> 214 <component name="PropertiesComponent">
@@ -230,7 +230,7 @@ @@ -230,7 +230,7 @@
230 </list> 230 </list>
231 </option> 231 </option>
232 </component> 232 </component>
233 - <component name="RunManager" selected="Python.debugtalk"> 233 + <component name="RunManager" selected="Python.db_pg_func">
234 <configuration name="db_pg_func" type="PythonConfigurationType" factoryName="Python" temporary="true"> 234 <configuration name="db_pg_func" type="PythonConfigurationType" factoryName="Python" temporary="true">
235 <module name="partner_api" /> 235 <module name="partner_api" />
236 <option name="INTERPRETER_OPTIONS" value="" /> 236 <option name="INTERPRETER_OPTIONS" value="" />
@@ -277,8 +277,8 @@ @@ -277,8 +277,8 @@
277 </configuration> 277 </configuration>
278 <recent_temporary> 278 <recent_temporary>
279 <list> 279 <list>
280 - <item itemvalue="Python.debugtalk" />  
281 <item itemvalue="Python.db_pg_func" /> 280 <item itemvalue="Python.db_pg_func" />
  281 + <item itemvalue="Python.debugtalk" />
282 </list> 282 </list>
283 </recent_temporary> 283 </recent_temporary>
284 </component> 284 </component>
@@ -296,27 +296,29 @@ @@ -296,27 +296,29 @@
296 <workItem from="1594223232686" duration="1195000" /> 296 <workItem from="1594223232686" duration="1195000" />
297 <workItem from="1594261507053" duration="21762000" /> 297 <workItem from="1594261507053" duration="21762000" />
298 <workItem from="1594352160255" duration="8702000" /> 298 <workItem from="1594352160255" duration="8702000" />
  299 + <workItem from="1594436598031" duration="2974000" />
  300 + <workItem from="1594481917603" duration="2344000" />
299 </task> 301 </task>
300 <servers /> 302 <servers />
301 </component> 303 </component>
302 <component name="TimeTrackingManager"> 304 <component name="TimeTrackingManager">
303 - <option name="totallyTimeSpent" value="36661000" /> 305 + <option name="totallyTimeSpent" value="41979000" />
304 </component> 306 </component>
305 <component name="ToolWindowManager"> 307 <component name="ToolWindowManager">
306 <frame x="-8" y="-8" width="1382" height="744" extended-state="6" /> 308 <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
307 <editor active="true" /> 309 <editor active="true" />
308 <layout> 310 <layout>
309 <window_info id="Favorites" order="0" side_tool="true" /> 311 <window_info id="Favorites" order="0" side_tool="true" />
310 - <window_info active="true" content_ui="combo" id="Project" order="1" visible="true" weight="0.2677761" /> 312 + <window_info active="true" content_ui="combo" id="Project" order="1" visible="true" weight="0.2753404" />
311 <window_info id="Structure" order="2" side_tool="true" weight="0.25" /> 313 <window_info id="Structure" order="2" side_tool="true" weight="0.25" />
312 <window_info anchor="bottom" id="Docker" order="0" show_stripe_button="false" /> 314 <window_info anchor="bottom" id="Docker" order="0" show_stripe_button="false" />
313 - <window_info anchor="bottom" id="Terminal" order="1" visible="true" weight="0.39523" /> 315 + <window_info anchor="bottom" id="Terminal" order="1" visible="true" weight="0.42078364" />
314 <window_info anchor="bottom" id="Message" order="2" /> 316 <window_info anchor="bottom" id="Message" order="2" />
315 <window_info anchor="bottom" id="Event Log" order="3" side_tool="true" /> 317 <window_info anchor="bottom" id="Event Log" order="3" side_tool="true" />
316 <window_info anchor="bottom" id="Find" order="4" /> 318 <window_info anchor="bottom" id="Find" order="4" />
317 <window_info anchor="bottom" id="Python Console" order="5" weight="0.32879046" /> 319 <window_info anchor="bottom" id="Python Console" order="5" weight="0.32879046" />
318 <window_info anchor="bottom" id="Database Changes" order="6" /> 320 <window_info anchor="bottom" id="Database Changes" order="6" />
319 - <window_info anchor="bottom" id="Run" order="7" weight="0.40545145" /> 321 + <window_info anchor="bottom" id="Run" order="7" weight="0.2879046" />
320 <window_info anchor="bottom" id="Version Control" order="8" weight="0.32879046" /> 322 <window_info anchor="bottom" id="Version Control" order="8" weight="0.32879046" />
321 <window_info anchor="bottom" id="Debug" order="9" weight="0.4" /> 323 <window_info anchor="bottom" id="Debug" order="9" weight="0.4" />
322 <window_info anchor="bottom" id="Cvs" order="10" weight="0.25" /> 324 <window_info anchor="bottom" id="Cvs" order="10" weight="0.25" />
@@ -352,13 +354,6 @@ @@ -352,13 +354,6 @@
352 </state> 354 </state>
353 </provider> 355 </provider>
354 </entry> 356 </entry>
355 - <entry file="file://$PROJECT_DIR$/helpfunc/db_func.py">  
356 - <provider selected="true" editor-type-id="text-editor">  
357 - <state relative-caret-position="145">  
358 - <caret line="15" column="32" selection-start-line="15" selection-start-column="4" selection-end-line="15" selection-end-column="32" />  
359 - </state>  
360 - </provider>  
361 - </entry>  
362 <entry file="file://$PROJECT_DIR$/helpfunc/login_func.py"> 357 <entry file="file://$PROJECT_DIR$/helpfunc/login_func.py">
363 <provider selected="true" editor-type-id="text-editor"> 358 <provider selected="true" editor-type-id="text-editor">
364 <state relative-caret-position="396"> 359 <state relative-caret-position="396">
@@ -373,13 +368,6 @@ @@ -373,13 +368,6 @@
373 </state> 368 </state>
374 </provider> 369 </provider>
375 </entry> 370 </entry>
376 - <entry file="file://$PROJECT_DIR$/helpfunc/db_pg_func.py">  
377 - <provider selected="true" editor-type-id="text-editor">  
378 - <state relative-caret-position="-135">  
379 - <caret line="21" column="53" selection-start-line="21" selection-start-column="53" selection-end-line="21" selection-end-column="53" />  
380 - </state>  
381 - </provider>  
382 - </entry>  
383 <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_list_api.yml"> 371 <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_list_api.yml">
384 <provider selected="true" editor-type-id="text-editor"> 372 <provider selected="true" editor-type-id="text-editor">
385 <state relative-caret-position="66"> 373 <state relative-caret-position="66">
@@ -387,9 +375,7 @@ @@ -387,9 +375,7 @@
387 </state> 375 </state>
388 </provider> 376 </provider>
389 </entry> 377 </entry>
390 - <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_api.yml">  
391 - <provider selected="true" editor-type-id="text-editor" />  
392 - </entry> 378 + <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_api.yml" />
393 <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_detail_api.yml"> 379 <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_detail_api.yml">
394 <provider selected="true" editor-type-id="text-editor"> 380 <provider selected="true" editor-type-id="text-editor">
395 <state relative-caret-position="41"> 381 <state relative-caret-position="41">
@@ -397,13 +383,6 @@ @@ -397,13 +383,6 @@
397 </state> 383 </state>
398 </provider> 384 </provider>
399 </entry> 385 </entry>
400 - <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_0_api.yml">  
401 - <provider selected="true" editor-type-id="text-editor">  
402 - <state relative-caret-position="173">  
403 - <caret line="13" column="18" selection-start-line="13" selection-start-column="18" selection-end-line="13" selection-end-column="27" />  
404 - </state>  
405 - </provider>  
406 - </entry>  
407 <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_1_api.yml"> 386 <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_1_api.yml">
408 <provider selected="true" editor-type-id="text-editor"> 387 <provider selected="true" editor-type-id="text-editor">
409 <state relative-caret-position="-132"> 388 <state relative-caret-position="-132">
@@ -411,13 +390,6 @@ @@ -411,13 +390,6 @@
411 </state> 390 </state>
412 </provider> 391 </provider>
413 </entry> 392 </entry>
414 - <entry file="file://$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml">  
415 - <provider selected="true" editor-type-id="text-editor">  
416 - <state relative-caret-position="154">  
417 - <caret line="10" column="25" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="25" />  
418 - </state>  
419 - </provider>  
420 - </entry>  
421 <entry file="file://$PROJECT_DIR$/testcases/admin/ADMIN004_detail_admin_testcases.yml"> 393 <entry file="file://$PROJECT_DIR$/testcases/admin/ADMIN004_detail_admin_testcases.yml">
422 <provider selected="true" editor-type-id="text-editor"> 394 <provider selected="true" editor-type-id="text-editor">
423 <state relative-caret-position="129"> 395 <state relative-caret-position="129">
@@ -439,44 +411,62 @@ @@ -439,44 +411,62 @@
439 </state> 411 </state>
440 </provider> 412 </provider>
441 </entry> 413 </entry>
442 - <entry file="file://$PROJECT_DIR$/testcases/admin/ADMIN002_edit_admin_testcases.yml"> 414 + <entry file="file://$PROJECT_DIR$/testcases/m_login_testcases.yml">
  415 + <provider selected="true" editor-type-id="text-editor">
  416 + <state relative-caret-position="330">
  417 + <caret line="15" selection-start-line="15" selection-end-line="15" />
  418 + </state>
  419 + </provider>
  420 + </entry>
  421 + <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_api.yml" />
  422 + <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_update(new)_api.yml">
443 <provider selected="true" editor-type-id="text-editor"> 423 <provider selected="true" editor-type-id="text-editor">
444 <state relative-caret-position="220"> 424 <state relative-caret-position="220">
445 - <caret line="10" column="25" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="25" /> 425 + <caret line="10" column="17" lean-forward="true" selection-start-line="10" selection-start-column="17" selection-end-line="10" selection-end-column="17" />
446 </state> 426 </state>
447 </provider> 427 </provider>
448 </entry> 428 </entry>
449 - <entry file="file://$PROJECT_DIR$/testcases/m_login_testcases.yml"> 429 + <entry file="file://$PROJECT_DIR$/helpfunc/db_func.py">
450 <provider selected="true" editor-type-id="text-editor"> 430 <provider selected="true" editor-type-id="text-editor">
451 - <state relative-caret-position="330">  
452 - <caret line="15" selection-start-line="15" selection-end-line="15" /> 431 + <state relative-caret-position="145">
  432 + <caret line="15" column="32" selection-start-line="15" selection-start-column="4" selection-end-line="15" selection-end-column="32" />
  433 + </state>
  434 + </provider>
  435 + </entry>
  436 + <entry file="file://$PROJECT_DIR$/api/m_api/m_order_purpose_add_api.yml">
  437 + <provider selected="true" editor-type-id="text-editor">
  438 + <state relative-caret-position="176">
  439 + <caret line="8" column="32" selection-start-line="8" selection-start-column="32" selection-end-line="8" selection-end-column="32" />
453 </state> 440 </state>
454 </provider> 441 </provider>
455 </entry> 442 </entry>
456 <entry file="file://$PROJECT_DIR$/testcases/admin/ADMIN003_list_admin_testcases.yml"> 443 <entry file="file://$PROJECT_DIR$/testcases/admin/ADMIN003_list_admin_testcases.yml">
457 <provider selected="true" editor-type-id="text-editor"> 444 <provider selected="true" editor-type-id="text-editor">
458 - <state relative-caret-position="132">  
459 - <caret line="12" column="22" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="22" /> 445 + <state relative-caret-position="44">
  446 + <caret line="14" selection-start-line="14" selection-end-line="17" selection-end-column="16" />
460 </state> 447 </state>
461 </provider> 448 </provider>
462 </entry> 449 </entry>
463 - <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS001_add_partner_testcases.yml"> 450 + <entry file="file://$PROJECT_DIR$/testcases/admin/ADMIN002_edit_admin_testcases.yml">
464 <provider selected="true" editor-type-id="text-editor"> 451 <provider selected="true" editor-type-id="text-editor">
465 - <state relative-caret-position="154"> 452 + <state relative-caret-position="-32">
466 <caret line="10" column="25" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="25" /> 453 <caret line="10" column="25" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="25" />
467 </state> 454 </state>
468 </provider> 455 </provider>
469 </entry> 456 </entry>
470 - <entry file="file://$PROJECT_DIR$/testsuites/partner_testsuite.yml"> 457 + <entry file="file://$PROJECT_DIR$/api/m_api/m_order_actual_api.yml">
  458 + <provider selected="true" editor-type-id="text-editor" />
  459 + </entry>
  460 + <entry file="file://$PROJECT_DIR$/testcases/admin/ADMIN001_add_admin_testcases.yml">
471 <provider selected="true" editor-type-id="text-editor"> 461 <provider selected="true" editor-type-id="text-editor">
472 - <state relative-caret-position="129">  
473 - <caret line="31" column="70" selection-start-line="31" selection-start-column="70" selection-end-line="31" selection-end-column="70" /> 462 + <state relative-caret-position="135">
  463 + <caret line="17" column="16" selection-start-line="17" selection-start-column="16" selection-end-line="17" selection-end-column="16" />
474 </state> 464 </state>
475 </provider> 465 </provider>
476 </entry> 466 </entry>
477 <entry file="file://$PROJECT_DIR$/debugtalk.py"> 467 <entry file="file://$PROJECT_DIR$/debugtalk.py">
478 <provider selected="true" editor-type-id="text-editor"> 468 <provider selected="true" editor-type-id="text-editor">
479 - <state relative-caret-position="123"> 469 + <state relative-caret-position="308">
480 <caret line="21" column="19" selection-start-line="21" selection-start-column="19" selection-end-line="21" selection-end-column="19" /> 470 <caret line="21" column="19" selection-start-line="21" selection-start-column="19" selection-end-line="21" selection-end-column="19" />
481 <folding> 471 <folding>
482 <element signature="e#0#13#0" expanded="true" /> 472 <element signature="e#0#13#0" expanded="true" />
@@ -484,41 +474,59 @@ @@ -484,41 +474,59 @@
484 </state> 474 </state>
485 </provider> 475 </provider>
486 </entry> 476 </entry>
487 - <entry file="file://$PROJECT_DIR$/api/m_api/partners/m_partner_add_api.yml"> 477 + <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_forbidden_0_api.yml">
488 <provider selected="true" editor-type-id="text-editor"> 478 <provider selected="true" editor-type-id="text-editor">
489 - <state relative-caret-position="295">  
490 - <caret line="14" column="37" selection-start-line="14" selection-start-column="37" selection-end-line="14" selection-end-column="37" /> 479 + <state relative-caret-position="286">
  480 + <caret line="13" column="18" selection-start-line="13" selection-start-column="18" selection-end-line="13" selection-end-column="27" />
491 </state> 481 </state>
492 </provider> 482 </provider>
493 </entry> 483 </entry>
494 - <entry file="file://$PROJECT_DIR$/api/m_api/m_order_actual_api.yml"> 484 + <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_update(edit)_api.yml">
495 <provider selected="true" editor-type-id="text-editor"> 485 <provider selected="true" editor-type-id="text-editor">
496 - <state relative-caret-position="-264" /> 486 + <state relative-caret-position="242">
  487 + <caret line="11" column="17" selection-start-line="11" selection-start-column="17" selection-end-line="11" selection-end-column="25" />
  488 + </state>
497 </provider> 489 </provider>
498 </entry> 490 </entry>
499 - <entry file="file://$PROJECT_DIR$/api/m_api/m_order_purpose_add_api.yml"> 491 + <entry file="file://$PROJECT_DIR$/helpfunc/db_pg_func.py">
  492 + <provider selected="true" editor-type-id="text-editor">
  493 + <state relative-caret-position="126">
  494 + <caret line="88" column="27" selection-start-line="88" selection-start-column="4" selection-end-line="88" selection-end-column="27" />
  495 + </state>
  496 + </provider>
  497 + </entry>
  498 + <entry file="file://$PROJECT_DIR$/api/m_api/partners/m_partner_add_api.yml">
500 <provider selected="true" editor-type-id="text-editor"> 499 <provider selected="true" editor-type-id="text-editor">
501 - <state relative-caret-position="-289" /> 500 + <state relative-caret-position="244">
  501 + <caret line="19" selection-start-line="19" selection-end-line="22" selection-end-column="12" />
  502 + </state>
502 </provider> 503 </provider>
503 </entry> 504 </entry>
504 - <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_api.yml"> 505 + <entry file="file://$PROJECT_DIR$/api/m_api/partners/m_partner_edit_api.yml">
505 <provider selected="true" editor-type-id="text-editor"> 506 <provider selected="true" editor-type-id="text-editor">
506 - <state relative-caret-position="-132">  
507 - <caret column="11" selection-start-column="11" selection-end-column="11" /> 507 + <state relative-caret-position="638">
  508 + <caret line="29" column="12" selection-start-line="29" selection-start-column="12" selection-end-line="29" selection-end-column="12" />
508 </state> 509 </state>
509 </provider> 510 </provider>
510 </entry> 511 </entry>
511 - <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_update(edit)_api.yml"> 512 + <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS001_add_partner_testcases.yml">
512 <provider selected="true" editor-type-id="text-editor"> 513 <provider selected="true" editor-type-id="text-editor">
513 - <state relative-caret-position="374">  
514 - <caret line="17" selection-start-line="17" selection-end-line="20" selection-end-column="8" /> 514 + <state relative-caret-position="264">
  515 + <caret line="12" column="20" selection-start-line="12" selection-start-column="20" selection-end-line="12" selection-end-column="20" />
515 </state> 516 </state>
516 </provider> 517 </provider>
517 </entry> 518 </entry>
518 - <entry file="file://$PROJECT_DIR$/api/m_api/admin/m_admin_update(new)_api.yml"> 519 + <entry file="file://$PROJECT_DIR$/testsuites/partner_testsuite.yml">
  520 + <provider selected="true" editor-type-id="text-editor">
  521 + <state relative-caret-position="158">
  522 + <caret line="36" column="71" selection-start-line="36" selection-start-column="71" selection-end-line="36" selection-end-column="71" />
  523 + </state>
  524 + </provider>
  525 + </entry>
  526 + <entry file="file://$PROJECT_DIR$/testcases/partners/PARTNERS002_edit_partner_testcases.yml">
519 <provider selected="true" editor-type-id="text-editor"> 527 <provider selected="true" editor-type-id="text-editor">
520 - <state relative-caret-position="198">  
521 - <caret line="9" column="45" selection-start-line="9" selection-start-column="37" selection-end-line="9" selection-end-column="45" /> 528 + <state relative-caret-position="26">
  529 + <caret line="12" column="19" selection-start-line="12" selection-start-column="19" selection-end-line="12" selection-end-column="19" />
522 </state> 530 </state>
523 </provider> 531 </provider>
524 </entry> 532 </entry>
@@ -10,10 +10,14 @@ request: @@ -10,10 +10,14 @@ request:
10 partnerName: '卞信华' 10 partnerName: '卞信华'
11 partnerType: 3 11 partnerType: 3
12 area: '福建省福州市XXXXX区' 12 area: '福建省福州市XXXXX区'
13 - account: ${convert_to_string($account)} 13 + account: $account
14 state: 1 14 state: 1
15 - cooperationTime: '2020-07-30' 15 + cooperationTime: ${get_today()}
16 salesmanName: '小小' 16 salesmanName: '小小'
17 phone: ${convert_to_string($account)} 17 phone: ${convert_to_string($account)}
18 method: POST 18 method: POST
19 url: v1/partners/add 19 url: v1/partners/add
  20 +validate:
  21 + - eq:
  22 + - content.msg
  23 + - ok
  1 +name: 合伙人编辑
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 + account: ${get_admin_account_from_database(partner_info)}
  5 + id: ${get_admin_id_from_database(partner_info)}
  6 + partnerName: ${get_partnername_from_database(partner_info)}
  7 + area: ${get_area_from_database(partner_info)}
  8 + salesmanName: ${get_salesman_from_database(partner_info)}
  9 + phone: ${get_phone_from_database(partner_info)}
  10 +request:
  11 + headers:
  12 + Content-Type: application/json;charset=utf-8
  13 + User-Agent: okhttp/3.12.3
  14 + Authorization: Bearer ${get_m_accesstoken()}
  15 + json:
  16 + partnerName: $partnerName
  17 + partnerType: 1
  18 + area: $area
  19 + account: $account
  20 + state: 1
  21 + cooperationTime: ${get_today()}
  22 + salesmanName: $salesmanName
  23 + phone: $phone
  24 + id: $id
  25 + method: POST
  26 + url: v1/partners/edit
  27 +validate:
  28 + - eq:
  29 + - content.msg
  30 + - ok
1 -eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTQ0NDA5MzAsImlhdCI6MTU5NDM5NzczMCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5NDM5NzczMCwidWlkIjoxOH0.ntMqxX3LGGsMEm4LxmBi5wjcIFZ47B_FcfUBDKp3-JY  
  1 +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTQ1Mjg2NzAsImlhdCI6MTU5NDQ4NTQ3MCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5NDQ4NTQ3MCwidWlkIjoxOH0.xQZCkxPOLzLxTd5sKsVXVA3QeHYZNzFyM1gO6-4XQkc
@@ -18,7 +18,7 @@ def get_nowtime(): @@ -18,7 +18,7 @@ def get_nowtime():
18 18
19 def get_today(): 19 def get_today():
20 now_today = datetime.datetime.now() 20 now_today = datetime.datetime.now()
21 - str_time = now_today.strftime(" %Y-%m-%d ") 21 + str_time = now_today.strftime("%Y-%m-%d")
22 return str_time 22 return str_time
23 def get_second(): 23 def get_second():
24 curr_time = datetime.datetime.now() 24 curr_time = datetime.datetime.now()
@@ -33,5 +33,6 @@ def create_channel(num): @@ -33,5 +33,6 @@ def create_channel(num):
33 def create_phone_number(num): 33 def create_phone_number(num):
34 phone_number = [] 34 phone_number = []
35 for i in range(num): 35 for i in range(num):
36 - phone_number.append('18%d%08d'%(i,i)) 36 + number = random.randint(0,9)
  37 + phone_number.append('18%d%08d'%(number,number+1))
37 return phone_number 38 return phone_number
@@ -43,3 +43,60 @@ def get_admin_account_from_database(tbl): @@ -43,3 +43,60 @@ def get_admin_account_from_database(tbl):
43 print(err) 43 print(err)
44 db.rollback() 44 db.rollback()
45 db.close() 45 db.close()
  46 +
  47 +def get_partnername_from_database(tbl):
  48 + db = GetConnect()
  49 + cursor = db.cursor()
  50 + sql= "select partner_name from " + tbl + ' ' + 'order by id desc '
  51 + try:
  52 + cursor.execute(sql)
  53 + result = cursor.fetchone()
  54 + return result[0]
  55 + except Exception as err:
  56 + # 发生错误时回滚
  57 + print(err)
  58 + db.rollback()
  59 + db.close()
  60 +
  61 +def get_area_from_database(tbl):
  62 + db = GetConnect()
  63 + cursor = db.cursor()
  64 + sql= "select region_info from " + tbl + ' ' + 'order by id desc '
  65 + try:
  66 + cursor.execute(sql)
  67 + result = cursor.fetchone()
  68 + return result[0]['regionName']
  69 + except Exception as err:
  70 + # 发生错误时回滚
  71 + print(err)
  72 + db.rollback()
  73 + db.close()
  74 +
  75 +def get_salesman_from_database(tbl):
  76 + db = GetConnect()
  77 + cursor = db.cursor()
  78 + sql= "select salesman from " + tbl + ' ' + 'order by id desc '
  79 + try:
  80 + cursor.execute(sql)
  81 + result = cursor.fetchone()
  82 + return result[0][0]['name']
  83 + except Exception as err:
  84 + # 发生错误时回滚
  85 + print(err)
  86 + db.rollback()
  87 + db.close()
  88 +
  89 +def get_phone_from_database(tbl):
  90 + db = GetConnect()
  91 + cursor = db.cursor()
  92 + sql= "select salesman from " + tbl + ' ' + 'order by id desc '
  93 + try:
  94 + cursor.execute(sql)
  95 + result = cursor.fetchone()
  96 + return result[0][0]['telephone']
  97 + except Exception as err:
  98 + # 发生错误时回滚
  99 + print(err)
  100 + db.rollback()
  101 + db.close()
  102 +print(get_phone_from_database('partner_info'))
  1 +<head>
  2 + <meta content="text/html; charset=utf-8" http-equiv="content-type" />
  3 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4 + <title> - TestReport</title>
  5 + <style>
  6 + body {
  7 + background-color: #f2f2f2;
  8 + color: #333;
  9 + margin: 0 auto;
  10 + width: 960px;
  11 + }
  12 + #summary {
  13 + width: 960px;
  14 + margin-bottom: 20px;
  15 + }
  16 + #summary th {
  17 + background-color: skyblue;
  18 + padding: 5px 12px;
  19 + }
  20 + #summary td {
  21 + background-color: lightblue;
  22 + text-align: center;
  23 + padding: 4px 8px;
  24 + }
  25 + .details {
  26 + width: 960px;
  27 + margin-bottom: 20px;
  28 + }
  29 + .details th {
  30 + background-color: skyblue;
  31 + padding: 5px 12px;
  32 + }
  33 + .details tr .passed {
  34 + background-color: lightgreen;
  35 + }
  36 + .details tr .failed {
  37 + background-color: red;
  38 + }
  39 + .details tr .unchecked {
  40 + background-color: gray;
  41 + }
  42 + .details td {
  43 + background-color: lightblue;
  44 + padding: 5px 12px;
  45 + }
  46 + .details .detail {
  47 + background-color: lightgrey;
  48 + font-size: smaller;
  49 + padding: 5px 10px;
  50 + line-height: 20px;
  51 + text-align: left;
  52 + }
  53 + .details .success {
  54 + background-color: greenyellow;
  55 + }
  56 + .details .error {
  57 + background-color: red;
  58 + }
  59 + .details .failure {
  60 + background-color: salmon;
  61 + }
  62 + .details .skipped {
  63 + background-color: gray;
  64 + }
  65 +
  66 + .button {
  67 + font-size: 1em;
  68 + padding: 6px;
  69 + width: 4em;
  70 + text-align: center;
  71 + background-color: #06d85f;
  72 + border-radius: 20px/50px;
  73 + cursor: pointer;
  74 + transition: all 0.3s ease-out;
  75 + }
  76 + a.button{
  77 + color: gray;
  78 + text-decoration: none;
  79 + display: inline-block;
  80 + }
  81 + .button:hover {
  82 + background: #2cffbd;
  83 + }
  84 +
  85 + .overlay {
  86 + position: fixed;
  87 + top: 0;
  88 + bottom: 0;
  89 + left: 0;
  90 + right: 0;
  91 + background: rgba(0, 0, 0, 0.7);
  92 + transition: opacity 500ms;
  93 + visibility: hidden;
  94 + opacity: 0;
  95 + line-height: 25px;
  96 + }
  97 + .overlay:target {
  98 + visibility: visible;
  99 + opacity: 1;
  100 + }
  101 +
  102 + .popup {
  103 + margin: 70px auto;
  104 + padding: 20px;
  105 + background: #fff;
  106 + border-radius: 10px;
  107 + width: 50%;
  108 + position: relative;
  109 + transition: all 3s ease-in-out;
  110 + }
  111 +
  112 + .popup h2 {
  113 + margin-top: 0;
  114 + color: #333;
  115 + font-family: Tahoma, Arial, sans-serif;
  116 + }
  117 + .popup .close {
  118 + position: absolute;
  119 + top: 20px;
  120 + right: 30px;
  121 + transition: all 200ms;
  122 + font-size: 30px;
  123 + font-weight: bold;
  124 + text-decoration: none;
  125 + color: #333;
  126 + }
  127 + .popup .close:hover {
  128 + color: #06d85f;
  129 + }
  130 + .popup .content {
  131 + max-height: 80%;
  132 + overflow: auto;
  133 + text-align: left;
  134 + }
  135 + .popup .separator {
  136 + color:royalblue
  137 + }
  138 +
  139 + @media screen and (max-width: 700px) {
  140 + .box {
  141 + width: 70%;
  142 + }
  143 + .popup {
  144 + width: 70%;
  145 + }
  146 + }
  147 +
  148 + </style>
  149 +</head>
  150 +
  151 +<body>
  152 + <h1>Test Report: </h1>
  153 +
  154 + <h2>Summary</h2>
  155 + <table id="summary">
  156 + <tr>
  157 + <th>START AT</th>
  158 + <td colspan="4">2020-07-11T16:37:48.576936</td>
  159 + </tr>
  160 + <tr>
  161 + <th>DURATION</th>
  162 + <td colspan="4">0.978 seconds</td>
  163 + </tr>
  164 + <tr>
  165 + <th>PLATFORM</th>
  166 + <td>HttpRunner 2.5.7 </td>
  167 + <td>CPython 3.8.1 </td>
  168 + <td colspan="2">Windows-7-6.1.7601-SP1</td>
  169 + </tr>
  170 + <tr>
  171 + <th>STAT</th>
  172 + <th colspan="2">TESTCASES (success/fail)</th>
  173 + <th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
  174 + </tr>
  175 + <tr>
  176 + <td>total (details) =></td>
  177 + <td colspan="2">1 (1/0)</td>
  178 + <td colspan="2">2 (2/0/0/0)</td>
  179 + </tr>
  180 + </table>
  181 +
  182 + <h2>Details</h2>
  183 +
  184 +
  185 +
  186 + <h3>PARTNERS002:编辑管理员</h3>
  187 + <table id="suite_1" class="details">
  188 + <tr>
  189 + <td>TOTAL: 2</td>
  190 + <td>SUCCESS: 2</td>
  191 + <td>FAILED: 0</td>
  192 + <td>ERROR: 0</td>
  193 + <td>SKIPPED: 0</td>
  194 + </tr>
  195 + <tr>
  196 + <th>Status</th>
  197 + <th colspan="2">Name</th>
  198 + <th>Response Time</th>
  199 + <th>Detail</th>
  200 + </tr>
  201 +
  202 +
  203 +
  204 +
  205 + <tr id="record_1_1">
  206 + <th class="success" style="width:5em;">success</th>
  207 + <td colspan="2">10000000001 登录系统</td>
  208 + <td style="text-align:center;width:6em;">142.01 ms</td>
  209 + <td class="detail">
  210 +
  211 +
  212 +
  213 + <a class="button" href="#popup_log_1_1_1">log-1</a>
  214 + <div id="popup_log_1_1_1" class="overlay">
  215 + <div class="popup">
  216 + <h2>Request and Response data</h2>
  217 + <a class="close" href="#record_1_1_1">&times;</a>
  218 +
  219 + <div class="content">
  220 + <h3>Name: 10000000001 登录系统</h3>
  221 +
  222 +
  223 +
  224 +
  225 +
  226 + <h3>Request:</h3>
  227 + <div style="overflow: auto">
  228 + <table>
  229 +
  230 + <tr>
  231 + <th>url</th>
  232 + <td>
  233 +
  234 + https://public-interface-test.fjmaimaimai.com/partnermg/v1/auth/login
  235 +
  236 + </td>
  237 + </tr>
  238 +
  239 + <tr>
  240 + <th>method</th>
  241 + <td>
  242 +
  243 + POST
  244 +
  245 + </td>
  246 + </tr>
  247 +
  248 + <tr>
  249 + <th>headers</th>
  250 + <td>
  251 +
  252 + <pre>{
  253 + &#34;User-Agent&#34;: &#34;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36&#34;,
  254 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  255 + &#34;Accept&#34;: &#34;*/*&#34;,
  256 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  257 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  258 + &#34;Content-Length&#34;: &#34;83&#34;
  259 +}</pre>
  260 +
  261 + </td>
  262 + </tr>
  263 +
  264 + <tr>
  265 + <th>body</th>
  266 + <td>
  267 +
  268 + <pre>{
  269 + &#34;password&#34;: &#34;7c4a8d09ca3762af61e59520943dc26494f8941b&#34;,
  270 + &#34;username&#34;: &#34;10000000001&#34;
  271 +}</pre>
  272 +
  273 + </td>
  274 + </tr>
  275 +
  276 + </table>
  277 + </div>
  278 +
  279 + <h3>Response:</h3>
  280 + <div style="overflow: auto">
  281 + <table>
  282 +
  283 + <tr>
  284 + <th>ok</th>
  285 + <td>
  286 +
  287 + True
  288 +
  289 + </td>
  290 + </tr>
  291 +
  292 + <tr>
  293 + <th>url</th>
  294 + <td>
  295 +
  296 + https://public-interface-test.fjmaimaimai.com/partnermg/v1/auth/login
  297 +
  298 + </td>
  299 + </tr>
  300 +
  301 + <tr>
  302 + <th>status_code</th>
  303 + <td>
  304 +
  305 + 200
  306 +
  307 + </td>
  308 + </tr>
  309 +
  310 + <tr>
  311 + <th>reason</th>
  312 + <td>
  313 +
  314 + OK
  315 +
  316 + </td>
  317 + </tr>
  318 +
  319 + <tr>
  320 + <th>cookies</th>
  321 + <td>
  322 +
  323 + {}
  324 +
  325 + </td>
  326 + </tr>
  327 +
  328 + <tr>
  329 + <th>encoding</th>
  330 + <td>
  331 +
  332 + utf-8
  333 +
  334 + </td>
  335 + </tr>
  336 +
  337 + <tr>
  338 + <th>headers</th>
  339 + <td>
  340 +
  341 + <pre>{
  342 + &#34;Date&#34;: &#34;Sat, 11 Jul 2020 16:37:50 GMT&#34;,
  343 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  344 + &#34;Transfer-Encoding&#34;: &#34;chunked&#34;,
  345 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  346 + &#34;Vary&#34;: &#34;Accept-Encoding, Accept-Encoding&#34;,
  347 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  348 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  349 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  350 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  351 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  352 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;,
  353 + &#34;Content-Encoding&#34;: &#34;gzip&#34;
  354 +}</pre>
  355 +
  356 + </td>
  357 + </tr>
  358 +
  359 + <tr>
  360 + <th>content_type</th>
  361 + <td>
  362 +
  363 + application/json; charset=utf-8
  364 +
  365 + </td>
  366 + </tr>
  367 +
  368 + <tr>
  369 + <th>body</th>
  370 + <td>
  371 +
  372 +
  373 + <pre>{
  374 + &#34;code&#34;: 0,
  375 + &#34;msg&#34;: &#34;ok&#34;,
  376 + &#34;data&#34;: {
  377 + &#34;access&#34;: {
  378 + &#34;accessToken&#34;: &#34;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTQ1Mjg2NzAsImlhdCI6MTU5NDQ4NTQ3MCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5NDQ4NTQ3MCwidWlkIjoxOH0.xQZCkxPOLzLxTd5sKsVXVA3QeHYZNzFyM1gO6-4XQkc&#34;,
  379 + &#34;expiresIn&#34;: 43200
  380 + }
  381 + }
  382 +}</pre>
  383 +
  384 +
  385 + </td>
  386 + </tr>
  387 +
  388 + </table>
  389 + </div>
  390 +
  391 +
  392 + <h3>Validators:</h3>
  393 + <div style="overflow: auto">
  394 +
  395 +
  396 + <table>
  397 + <tr>
  398 + <th>check</th>
  399 + <th>comparator</th>
  400 + <th>expect value</th>
  401 + <th>actual value</th>
  402 + </tr>
  403 +
  404 + <tr>
  405 +
  406 + <td class="passed">
  407 +
  408 + content.msg
  409 + </td>
  410 + <td>equals</td>
  411 + <td>ok</td>
  412 + <td>ok</td>
  413 + </tr>
  414 +
  415 + </table>
  416 +
  417 +
  418 +
  419 +
  420 + </div>
  421 +
  422 + <h3>Statistics:</h3>
  423 + <div style="overflow: auto">
  424 + <table>
  425 + <tr>
  426 + <th>content_size(bytes)</th>
  427 + <td>311</td>
  428 + </tr>
  429 + <tr>
  430 + <th>response_time(ms)</th>
  431 + <td>142.01</td>
  432 + </tr>
  433 + <tr>
  434 + <th>elapsed(ms)</th>
  435 + <td>130.386</td>
  436 + </tr>
  437 + </table>
  438 + </div>
  439 +
  440 + </div>
  441 + </div>
  442 + </div>
  443 +
  444 +
  445 +
  446 +
  447 + </td>
  448 + </tr>
  449 +
  450 +
  451 +
  452 + <tr id="record_1_2">
  453 + <th class="success" style="width:5em;">success</th>
  454 + <td colspan="2">10000000001 合伙人编辑</td>
  455 + <td style="text-align:center;width:6em;">45.00 ms</td>
  456 + <td class="detail">
  457 +
  458 +
  459 +
  460 + <a class="button" href="#popup_log_1_2_1">log-1</a>
  461 + <div id="popup_log_1_2_1" class="overlay">
  462 + <div class="popup">
  463 + <h2>Request and Response data</h2>
  464 + <a class="close" href="#record_1_2_1">&times;</a>
  465 +
  466 + <div class="content">
  467 + <h3>Name: 10000000001 合伙人编辑</h3>
  468 +
  469 +
  470 +
  471 +
  472 +
  473 + <h3>Request:</h3>
  474 + <div style="overflow: auto">
  475 + <table>
  476 +
  477 + <tr>
  478 + <th>url</th>
  479 + <td>
  480 +
  481 + https://public-interface-test.fjmaimaimai.com/partnermg/v1/partners/edit
  482 +
  483 + </td>
  484 + </tr>
  485 +
  486 + <tr>
  487 + <th>method</th>
  488 + <td>
  489 +
  490 + POST
  491 +
  492 + </td>
  493 + </tr>
  494 +
  495 + <tr>
  496 + <th>headers</th>
  497 + <td>
  498 +
  499 + <pre>{
  500 + &#34;User-Agent&#34;: &#34;okhttp/3.12.3&#34;,
  501 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  502 + &#34;Accept&#34;: &#34;*/*&#34;,
  503 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  504 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  505 + &#34;Authorization&#34;: &#34;Bearer bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTQ1Mjg2NzAsImlhdCI6MTU5NDQ4NTQ3MCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5NDQ4NTQ3MCwidWlkIjoxOH0.xQZCkxPOLzLxTd5sKsVXVA3QeHYZNzFyM1gO6-4XQkc&#34;,
  506 + &#34;Content-Length&#34;: &#34;252&#34;
  507 +}</pre>
  508 +
  509 + </td>
  510 + </tr>
  511 +
  512 + <tr>
  513 + <th>body</th>
  514 + <td>
  515 +
  516 + <pre>{
  517 + &#34;partnerName&#34;: &#34;卞信华&#34;,
  518 + &#34;partnerType&#34;: 1,
  519 + &#34;area&#34;: &#34;福建省福州市XXXXX区&#34;,
  520 + &#34;account&#34;: &#34;18100000002&#34;,
  521 + &#34;state&#34;: 1,
  522 + &#34;cooperationTime&#34;: &#34;2020-07-12&#34;,
  523 + &#34;salesmanName&#34;: &#34;小小&#34;,
  524 + &#34;phone&#34;: &#34;10000000001&#34;,
  525 + &#34;id&#34;: 172
  526 +}</pre>
  527 +
  528 + </td>
  529 + </tr>
  530 +
  531 + </table>
  532 + </div>
  533 +
  534 + <h3>Response:</h3>
  535 + <div style="overflow: auto">
  536 + <table>
  537 +
  538 + <tr>
  539 + <th>ok</th>
  540 + <td>
  541 +
  542 + True
  543 +
  544 + </td>
  545 + </tr>
  546 +
  547 + <tr>
  548 + <th>url</th>
  549 + <td>
  550 +
  551 + https://public-interface-test.fjmaimaimai.com/partnermg/v1/partners/edit
  552 +
  553 + </td>
  554 + </tr>
  555 +
  556 + <tr>
  557 + <th>status_code</th>
  558 + <td>
  559 +
  560 + 200
  561 +
  562 + </td>
  563 + </tr>
  564 +
  565 + <tr>
  566 + <th>reason</th>
  567 + <td>
  568 +
  569 + OK
  570 +
  571 + </td>
  572 + </tr>
  573 +
  574 + <tr>
  575 + <th>cookies</th>
  576 + <td>
  577 +
  578 + {}
  579 +
  580 + </td>
  581 + </tr>
  582 +
  583 + <tr>
  584 + <th>encoding</th>
  585 + <td>
  586 +
  587 + utf-8
  588 +
  589 + </td>
  590 + </tr>
  591 +
  592 + <tr>
  593 + <th>headers</th>
  594 + <td>
  595 +
  596 + <pre>{
  597 + &#34;Date&#34;: &#34;Sat, 11 Jul 2020 16:37:51 GMT&#34;,
  598 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  599 + &#34;Content-Length&#34;: &#34;44&#34;,
  600 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  601 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  602 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  603 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  604 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  605 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  606 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;
  607 +}</pre>
  608 +
  609 + </td>
  610 + </tr>
  611 +
  612 + <tr>
  613 + <th>content_type</th>
  614 + <td>
  615 +
  616 + application/json; charset=utf-8
  617 +
  618 + </td>
  619 + </tr>
  620 +
  621 + <tr>
  622 + <th>body</th>
  623 + <td>
  624 +
  625 +
  626 + <pre>{
  627 + &#34;code&#34;: 0,
  628 + &#34;msg&#34;: &#34;ok&#34;,
  629 + &#34;data&#34;: {}
  630 +}</pre>
  631 +
  632 +
  633 + </td>
  634 + </tr>
  635 +
  636 + </table>
  637 + </div>
  638 +
  639 +
  640 + <h3>Validators:</h3>
  641 + <div style="overflow: auto">
  642 +
  643 +
  644 + <table>
  645 + <tr>
  646 + <th>check</th>
  647 + <th>comparator</th>
  648 + <th>expect value</th>
  649 + <th>actual value</th>
  650 + </tr>
  651 +
  652 + <tr>
  653 +
  654 + <td class="passed">
  655 +
  656 + content.msg
  657 + </td>
  658 + <td>equals</td>
  659 + <td>ok</td>
  660 + <td>ok</td>
  661 + </tr>
  662 +
  663 + </table>
  664 +
  665 +
  666 +
  667 +
  668 + </div>
  669 +
  670 + <h3>Statistics:</h3>
  671 + <div style="overflow: auto">
  672 + <table>
  673 + <tr>
  674 + <th>content_size(bytes)</th>
  675 + <td>44</td>
  676 + </tr>
  677 + <tr>
  678 + <th>response_time(ms)</th>
  679 + <td>45.0</td>
  680 + </tr>
  681 + <tr>
  682 + <th>elapsed(ms)</th>
  683 + <td>40.066</td>
  684 + </tr>
  685 + </table>
  686 + </div>
  687 +
  688 + </div>
  689 + </div>
  690 + </div>
  691 +
  692 +
  693 +
  694 +
  695 + </td>
  696 + </tr>
  697 +
  698 + </table>
  699 +
  700 +</body>
@@ -12,4 +12,7 @@ teststeps: @@ -12,4 +12,7 @@ teststeps:
12 12
13 - name: $phone 管理员新增 13 - name: $phone 管理员新增
14 api: api/m_api/admin/m_admin_update(new)_api.yml 14 api: api/m_api/admin/m_admin_update(new)_api.yml
15 - 15 + validate:
  16 + - eq:
  17 + - content.msg
  18 + - ok
@@ -10,6 +10,9 @@ teststeps: @@ -10,6 +10,9 @@ teststeps:
10 - name: $phone 登录系统 10 - name: $phone 登录系统
11 testcase: testcases/m_login_testcases.yml 11 testcase: testcases/m_login_testcases.yml
12 12
13 -- name: $phone 管理员新增 13 +- name: $phone 合伙人新增
14 api: api/m_api/partners/m_partner_add_api.yml 14 api: api/m_api/partners/m_partner_add_api.yml
15 - 15 + validate:
  16 + - eq:
  17 + - content.msg
  18 + - ok
  1 +config:
  2 + name: 合伙人编辑
  3 + base_url: ${ENV(base_manager_url)}
  4 + variables:
  5 + phone: ${convert_to_string(10000000001)}
  6 + teardown_hooks:
  7 + - ${sleep(2)}
  8 +
  9 +teststeps:
  10 +- name: $phone 登录系统
  11 + testcase: testcases/m_login_testcases.yml
  12 +
  13 +- name: $phone 编辑合伙人
  14 + api: api/m_api/partners/m_partner_edit_api.yml
  15 + validate:
  16 + - eq:
  17 + - content.msg
  18 + - ok
@@ -13,7 +13,7 @@ testcases: @@ -13,7 +13,7 @@ testcases:
13 # parameters: 13 # parameters:
14 # account: ${create_phone_number(1)} 14 # account: ${create_phone_number(1)}
15 # 15 #
16 -#- name: ADMIN002:修改管理员 16 +#- name: ADMIN002:编辑管理员
17 # testcase: testcases/admin/ADMIN002_edit_admin_testcases.yml 17 # testcase: testcases/admin/ADMIN002_edit_admin_testcases.yml
18 # 18 #
19 #- name: ADMIN003:搜索管理员 19 #- name: ADMIN003:搜索管理员
@@ -28,7 +28,10 @@ testcases: @@ -28,7 +28,10 @@ testcases:
28 #- name: ADMIN006:启用管理员 28 #- name: ADMIN006:启用管理员
29 # testcase: testcases/admin/ADMIN006_forbidden_admin_testcases.yml 29 # testcase: testcases/admin/ADMIN006_forbidden_admin_testcases.yml
30 30
31 -- name: PARTNERS001:新增合伙人  
32 - testcase: testcases/partners/PARTNERS001_add_partner_testcases.yml  
33 - parameters:  
34 - account: ${create_phone_number(1)}  
  31 +#- name: PARTNERS001:新增合伙人
  32 +# testcase: testcases/partners/PARTNERS001_add_partner_testcases.yml
  33 +# parameters:
  34 +# account: ${create_phone_number(1)}
  35 +
  36 +- name: PARTNERS002:编辑管理员
  37 + testcase: testcases/partners/PARTNERS002_edit_partner_testcases.yml