runner-runtime 1.0.72 → 1.0.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/events/api.js CHANGED
@@ -614,7 +614,7 @@ const convert2PostmanOptions = (request, option, variables) => {
614
614
  values: globalsVariables,
615
615
  });
616
616
 
617
- const protocolVersion = requestJson?.protocol == 'http/1.1' ? 'http1' : (requestJson?.protocol == 'auto' ? 'auto' : 'http2');
617
+ const protocolVersion = (requestJson?.protocol == 'http/1.1' || _.includes(['sse'], requestJson?.target_type) || _.isEmpty(requestJson?.target_type)) ? 'http1' : (requestJson?.protocol == 'auto' ? 'auto' : 'http2');
618
618
  const requester = {
619
619
  strictSSL: false,
620
620
  protocolVersion,
@@ -893,10 +893,9 @@ const convert2PostmanEvent = (request, listen, option) => {
893
893
  }
894
894
  };
895
895
 
896
- // pm.execute
897
- pm.execute = async (file, args, option) => {
898
- const { createUnixClient } = require('net'),
899
- socketPath = getMainProcessSocketPath();
896
+ // pm.execute/Async
897
+ pm.executeAsync = pm.execute = async (file, args, option) => {
898
+ const { createUnixClient } = require('net'), socketPath = getMainProcessSocketPath();
900
899
 
901
900
  try {
902
901
  const result = await createUnixClient(socketPath, JSON.stringify({
@@ -912,8 +911,7 @@ const convert2PostmanEvent = (request, listen, option) => {
912
911
  console.error("pm.execute error: " + String(resultObj?.result))
913
912
  throw new Error(resultObj?.result);
914
913
  }
915
- }
916
- catch (e) {
914
+ }catch (e) {
917
915
  console.error("pm.execute error: " + String(e))
918
916
  throw new Error(e);
919
917
  }
@@ -2243,8 +2241,31 @@ module.exports = (event, option, callback, eventRuntimeData, eventResultList) =>
2243
2241
  _.forEach(results, (result) => {
2244
2242
  _.forEach(['_variables', 'environment', 'globals'], (varType) => {
2245
2243
  const currentVar = _.get(result, `result.${varType}`);
2244
+ const currentVarObject = {};
2245
+
2246
2246
  try {
2247
- _.forEach(currentVar.toObject(), (val, key) => {
2247
+ _.forEach(_.get(currentVar.toJSON(), 'values'), (item) => {
2248
+ currentVarObject[item?.key] = item?.value;
2249
+ })
2250
+ } catch (e) { }
2251
+
2252
+ try {
2253
+ // Delete the variables that have been destroyed
2254
+ const unsetKeys = _.difference(_.keys(_.get(eventRuntimeData, ['variables', varType])), _.keys(currentVarObject));
2255
+
2256
+ _.forEach(unsetKeys, (unsetKey) => {
2257
+ if (varType == 'globals' && !_.includes(_.keys(getInsideVariables()), unsetKey)) {
2258
+ _.unset(eventRuntimeData, ['variables', '_globals', unsetKey])
2259
+ _.unset(eventRuntimeData, ['variables', varType, unsetKey])
2260
+ } else if (varType == '_variables') {
2261
+ _.unset(eventRuntimeData, ['variables', 'variables', unsetKey])
2262
+ } else {
2263
+ _.unset(eventRuntimeData, ['variables', varType, unsetKey])
2264
+ }
2265
+ })
2266
+
2267
+ // Set new variable values for the undestroyed ones
2268
+ _.forEach(currentVarObject, (val, key) => {
2248
2269
  let setPath = varType;
2249
2270
  if (varType === '_variables') {
2250
2271
  setPath = 'variables';
@@ -2320,9 +2341,31 @@ module.exports = (event, option, callback, eventRuntimeData, eventResultList) =>
2320
2341
  _.forEach(results, (result) => {
2321
2342
  _.forEach(['_variables', 'environment', 'globals'], (varType) => {
2322
2343
  const currentVar = _.get(result, `result.${varType}`);
2344
+ const currentVarObject = {};
2345
+
2346
+ try {
2347
+ _.forEach(_.get(currentVar.toJSON(), 'values'), (item) => {
2348
+ currentVarObject[item?.key] = item?.value;
2349
+ })
2350
+ } catch (e) { }
2323
2351
 
2324
2352
  try {
2325
- _.forEach(currentVar.toObject(), (val, key) => {
2353
+ // Delete the variables that have been destroyed
2354
+ const unsetKeys = _.difference(_.keys(_.get(eventRuntimeData, ['variables', varType])), _.keys(currentVarObject));
2355
+
2356
+ _.forEach(unsetKeys, (unsetKey) => {
2357
+ if (varType == 'globals' && !_.includes(_.keys(getInsideVariables()), unsetKey)) {
2358
+ _.unset(eventRuntimeData, ['variables', '_globals', unsetKey])
2359
+ _.unset(eventRuntimeData, ['variables', varType, unsetKey])
2360
+ } else if (varType == '_variables') {
2361
+ _.unset(eventRuntimeData, ['variables', 'variables', unsetKey])
2362
+ } else {
2363
+ _.unset(eventRuntimeData, ['variables', varType, unsetKey])
2364
+ }
2365
+ })
2366
+
2367
+ // Set new variable values for the undestroyed ones
2368
+ _.forEach(currentVarObject, (val, key) => {
2326
2369
  let setPath = varType;
2327
2370
  if (varType === '_variables') {
2328
2371
  setPath = 'variables';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runner-runtime",
3
- "version": "1.0.72",
3
+ "version": "1.0.74",
4
4
  "description": "runner-runtime.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -25,18 +25,18 @@
25
25
  "atomic-sleep": "^1.0.0",
26
26
  "content-disposition": "^0.5.4",
27
27
  "database-query": "^1.1.12",
28
- "exp-mock": "^2.0.15",
29
28
  "file-type": "^16.5.4",
30
29
  "is-image": "^3.0.0",
31
30
  "is-svg": "^4.3.2",
32
31
  "json-bigint": "^1.0.0",
33
- "json-schema-faker-pro": "^0.5.24",
34
32
  "json5": "^2.2.3",
35
33
  "jsonpath": "^1.1.1",
36
34
  "lodash": "^4.17.21",
37
35
  "mime": "^3.0.0",
38
36
  "minimatch": "^9.0.4",
39
- "mockjs5-pro": "^1.0.3",
37
+ "mockjs5-pro": "^1.0.5",
38
+ "json-schema-faker-pro": "^0.5.25",
39
+ "exp-mock": "^2.0.16",
40
40
  "msgpack5": "^6.0.2",
41
41
  "net": "^1.0.2",
42
42
  "postman-collection": "^5.0.2",
package/tmp/request.js CHANGED
@@ -1,25 +1,13 @@
1
- module.exports ={
1
+ module.exports = {
2
2
  "option": {
3
- "scene": "auto_test",
3
+ "scene": "http_request",
4
4
  "globals": {
5
- "userlist": "[1,2,3,4,5,6]"
5
+ "variable_key": "variable_value"
6
6
  },
7
7
  "project": {
8
8
  "request": {
9
9
  "header": {
10
10
  "parameter": [
11
- {
12
- "param_id": "29f000c66464000",
13
- "description": "",
14
- "field_type": "string",
15
- "is_checked": 1,
16
- "key": "haha",
17
- "value": "123",
18
- "not_null": 1,
19
- "schema": {
20
- "type": "string"
21
- }
22
- },
23
11
  {
24
12
  "key": "Accept",
25
13
  "value": "*/*",
@@ -82,28 +70,19 @@ module.exports ={
82
70
  "name": "默认服务",
83
71
  "sort": 1000,
84
72
  "uri": ""
73
+ },
74
+ "467939876001000": {
75
+ "server_id": "467939876001000",
76
+ "name": "服务01",
77
+ "sort": 2000,
78
+ "uri": "cc.apipost.cc:6001"
85
79
  }
86
80
  },
87
- "environment": {
88
- "account": "123456",
89
- "baseUrl": "https://echo.apipost.cn/",
90
- "key": "value"
91
- }
81
+ "environment": {}
92
82
  },
93
83
  "cookies": {
94
84
  "switch": 1,
95
85
  "data": [
96
- {
97
- "key": "aliyungf_tc",
98
- "value": "9349f07976a4f959a65c2c0d715f1695b6de2d722fe97c08bb23d8452ef5d151",
99
- "path": "/",
100
- "httpOnly": true,
101
- "creation": "2025-05-09T08:17:28.907Z",
102
- "name": "aliyungf_tc",
103
- "cookie_id": "212f6549b643f2",
104
- "domain": "op.juhe.cn",
105
- "project_id": "26623ba1a864000"
106
- },
107
86
  {
108
87
  "key": "liveCookie",
109
88
  "value": "gin",
@@ -112,11 +91,11 @@ module.exports ={
112
91
  "path": "/",
113
92
  "secure": true,
114
93
  "httpOnly": true,
115
- "creation": "2025-05-14T06:45:42.930Z",
94
+ "creation": "2025-05-15T10:38:57.212Z",
116
95
  "name": "liveCookie",
117
- "cookie_id": "27803afb76400a",
118
- "expires": "Wed, 14 May 2025 06:47:43 GMT",
119
- "project_id": "26623ba1a864000"
96
+ "cookie_id": "275fc00b7ae05a",
97
+ "expires": "Thu, 15 May 2025 10:41:01 GMT",
98
+ "project_id": "4660e6894001000"
120
99
  },
121
100
  {
122
101
  "key": "loseCookie",
@@ -126,71 +105,106 @@ module.exports ={
126
105
  "path": "/",
127
106
  "secure": true,
128
107
  "httpOnly": true,
129
- "creation": "2025-05-14T06:45:42.930Z",
108
+ "creation": "2025-05-15T10:38:57.212Z",
130
109
  "name": "loseCookie",
131
- "cookie_id": "27803afb76400b",
132
- "expires": "Wed, 14 May 2025 06:45:43 GMT",
133
- "project_id": "26623ba1a864000"
110
+ "cookie_id": "275fc00b7ae05b",
111
+ "expires": "Thu, 15 May 2025 10:39:01 GMT",
112
+ "project_id": "4660e6894001000"
113
+ },
114
+ {
115
+ "key": "HWWAFSESID",
116
+ "value": "58238825d84d632420",
117
+ "path": "/",
118
+ "creation": "2025-05-14T03:49:53.061Z",
119
+ "name": "HWWAFSESID",
120
+ "cookie_id": "2762194efae080",
121
+ "domain": "api.deepseek.com",
122
+ "project_id": "4660e6894001000"
123
+ },
124
+ {
125
+ "key": "HWWAFSESTIME",
126
+ "value": "1747194592164",
127
+ "path": "/",
128
+ "creation": "2025-05-14T03:49:53.061Z",
129
+ "name": "HWWAFSESTIME",
130
+ "cookie_id": "2762194efae081",
131
+ "domain": "api.deepseek.com",
132
+ "project_id": "4660e6894001000"
133
+ },
134
+ {
135
+ "key": "security_session_verify",
136
+ "value": "50b7079424eebfb269f14efdd7081939",
137
+ "expires": "2025-05-18T18:29:27.000Z",
138
+ "path": "/",
139
+ "httpOnly": true,
140
+ "creation": "2025-05-15T10:29:28.804Z",
141
+ "name": "security_session_verify",
142
+ "cookie_id": "290728687aef2d",
143
+ "domain": "echo.apipost.cn",
144
+ "project_id": "4660e6894001000"
145
+ },
146
+ {
147
+ "key": "security_session_verify",
148
+ "value": "50b7079424eebfb269f14efdd7081939",
149
+ "expires": "2025-05-18T18:29:27.000Z",
150
+ "path": "/",
151
+ "httpOnly": true,
152
+ "creation": "2025-05-15T10:29:28.805Z",
153
+ "name": "security_session_verify",
154
+ "cookie_id": "29072868baef2e",
155
+ "domain": "echo.apipost.cn",
156
+ "project_id": "4660e6894001000"
157
+ },
158
+ {
159
+ "key": "security_session_verify",
160
+ "value": "50b7079424eebfb269f14efdd7081939",
161
+ "expires": "2025-05-18T18:29:27.000Z",
162
+ "path": "/",
163
+ "httpOnly": true,
164
+ "creation": "2025-05-15T10:29:28.805Z",
165
+ "name": "security_session_verify",
166
+ "cookie_id": "29072868baef2f",
167
+ "domain": "echo.apipost.cn",
168
+ "project_id": "4660e6894001000"
134
169
  }
135
170
  ]
136
171
  },
137
172
  "system_configs": {
138
173
  "send_timeout": 0,
139
- "auto_redirect": 1,
174
+ "auto_redirect": -1,
140
175
  "max_redirect_time": 5,
141
- "auto_gen_mock_url": -1,
142
- "request_param_auto_json": 1,
176
+ "auto_gen_mock_url": 1,
177
+ "request_param_auto_json": -1,
143
178
  "proxy": {
144
- "type": -1,
145
- "envfirst": -1,
146
- "bypass": [
147
- "export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890"
148
- ],
179
+ "type": 2,
180
+ "envfirst": 1,
181
+ "bypass": [],
149
182
  "protocols": [
150
- "https",
151
183
  "http"
152
184
  ],
153
185
  "auth": {
154
186
  "authenticate": -1,
155
- "host": "127.0.0.1:7890",
187
+ "host": "",
156
188
  "username": "",
157
189
  "password": ""
158
190
  }
159
191
  },
160
192
  "ca_cert": {
161
- "open": 1,
162
- "path": ""
193
+ "open": -1,
194
+ "path": "",
195
+ "base64": ""
163
196
  },
164
197
  "client_cert": {
165
- "https://apipost.cn:443": {
198
+ "https://cc.apipost.cc:6003": {
166
199
  "crt": {
200
+ "file_base64": "data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURuVENDQW9VQ0ZFcDd4Z3J2VVhteWEzTEdmcEFpenRNUkJvN3ZNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1JR0sKTVFzd0NRWURWUVFHRXdKRFRqRVFNQTRHQTFVRUNBd0hRbVZwYW1sdVp6RVFNQTRHQTFVRUJ3d0hRbVZwYW1sdQpaekVRTUE0R0ExVUVDZ3dIWVhCcGNHOXpkREVNTUFvR0ExVUVDd3dEWVhCME1SWXdGQVlEVlFRRERBMWpZeTVoCmNHbHdiM04wTG1Oak1SOHdIUVlKS29aSWh2Y05BUWtCRmhCaFpHMXBia0JoY0dsd2IzTjBMbU5qTUI0WERUSXoKTVRJeE1UQTVOREl4TmxvWERUTXpNVEl3T0RBNU5ESXhObG93Z1lveEN6QUpCZ05WQkFZVEFrTk9NUkF3RGdZRApWUVFJREFkQ1pXbHFhVzVuTVJBd0RnWURWUVFIREFkQ1pXbHFhVzVuTVE4d0RRWURWUVFLREFaaGNHbHZjM1F4CkREQUtCZ05WQkFzTUEyRndkREVXTUJRR0ExVUVBd3dOWTJNdVlYQnBjRzl6ZEM1all6RWdNQjRHQ1NxR1NJYjMKRFFFSkFSWVJZMnhwWlc1MFFHRndhWEJ2YzNRdVkyTXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBdwpnZ0VLQW9JQkFRRG5DalNwV2MvVEovcXg2ZHRCRUlKeHhpME0wTWc1M091U0lNK2dMVnNseTl4SVFTTndGWGhrCi8vRzhTOVl0d2lnMHpwZVNLUlhyNi9tdklQcjlsY3RBakRrZzQ4Q1BQSk5YYVo1RTdQVkRYbThtTXhhS2RBeXEKZVBkT2w2bGJ0a0pWRTB0cElWTFo4UkhEOWU4VFdiNENMNFBUSzkrNFhVSElEUU1FTUdNbWFnRUVRd3ordDdSTQpMZDVvcVAxdHVUdlhBbmlUbmU4TnZhYVQ3NDlqcFhYb3lnV29FaVcwOGJ3NmI2TmZwVVEyeFBsSkdrc2tiblRhCisyTWVqb1ZrSlpDbDFlOUhOYXV2a085WjhQamRYMG9nZTM0OE5pZW83amNDWWhBUmttanVJanhiMU1kU3dPdjcKMTVWS3EwcFFwbjNzVHJrWTVqdjZEeis3dWhSaXVnN2pBZ01CQUFFd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBRGFCdG10NHVPaVpoVlpHdmo1Tko2RUhUUFNGZGxBaVd6U2tiSWllV2RIY1NhK0J3K2xBM1kyalJsYnZNUVVaCndiL21jaFRtNjFJRmlKbnYvN1h2MGtmMkJxUzkyMURXenJHa3FWQk5zRUdIMEdhWGVHMVMwL1pkNXg1RE4zMlEKRW9IRE95K2lOeDlwRzA2cy8ybUlGY1E3eXQ0cW9acXFQZUg4U3VIamZOanlnZnZFUGxiYUJHb0Y4V1dneFluLwp3TzlFK2pYN3VvdlZDWXVrY3NyaEprZzJwK3o5MUFVU3p2NlpTbHlnK3pGM2kyM1Q0ZXA5VDhwRTV2eXE3UlFnClNPT3BQd25uN0d5UWd2UzREbU5LMHkyazc5ZUdGb3VnTWxnS3g1Um5nMUQxNEd0ZFcvMlE0WGxNa2tHZ1ZsR2IKRVRkcGlES1JKWjNTTDJPZ1RsSFpibWM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
167
201
  "file_name": "client (1).crt",
168
- "file_url": "",
169
- "file_base64": "data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURuVENDQW9VQ0ZFcDd4Z3J2VVhteWEzTEdmcEFpenRNUkJvN3ZNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1JR0sKTVFzd0NRWURWUVFHRXdKRFRqRVFNQTRHQTFVRUNBd0hRbVZwYW1sdVp6RVFNQTRHQTFVRUJ3d0hRbVZwYW1sdQpaekVRTUE0R0ExVUVDZ3dIWVhCcGNHOXpkREVNTUFvR0ExVUVDd3dEWVhCME1SWXdGQVlEVlFRRERBMWpZeTVoCmNHbHdiM04wTG1Oak1SOHdIUVlKS29aSWh2Y05BUWtCRmhCaFpHMXBia0JoY0dsd2IzTjBMbU5qTUI0WERUSXoKTVRJeE1UQTVOREl4TmxvWERUTXpNVEl3T0RBNU5ESXhObG93Z1lveEN6QUpCZ05WQkFZVEFrTk9NUkF3RGdZRApWUVFJREFkQ1pXbHFhVzVuTVJBd0RnWURWUVFIREFkQ1pXbHFhVzVuTVE4d0RRWURWUVFLREFaaGNHbHZjM1F4CkREQUtCZ05WQkFzTUEyRndkREVXTUJRR0ExVUVBd3dOWTJNdVlYQnBjRzl6ZEM1all6RWdNQjRHQ1NxR1NJYjMKRFFFSkFSWVJZMnhwWlc1MFFHRndhWEJ2YzNRdVkyTXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBdwpnZ0VLQW9JQkFRRG5DalNwV2MvVEovcXg2ZHRCRUlKeHhpME0wTWc1M091U0lNK2dMVnNseTl4SVFTTndGWGhrCi8vRzhTOVl0d2lnMHpwZVNLUlhyNi9tdklQcjlsY3RBakRrZzQ4Q1BQSk5YYVo1RTdQVkRYbThtTXhhS2RBeXEKZVBkT2w2bGJ0a0pWRTB0cElWTFo4UkhEOWU4VFdiNENMNFBUSzkrNFhVSElEUU1FTUdNbWFnRUVRd3ordDdSTQpMZDVvcVAxdHVUdlhBbmlUbmU4TnZhYVQ3NDlqcFhYb3lnV29FaVcwOGJ3NmI2TmZwVVEyeFBsSkdrc2tiblRhCisyTWVqb1ZrSlpDbDFlOUhOYXV2a085WjhQamRYMG9nZTM0OE5pZW83amNDWWhBUmttanVJanhiMU1kU3dPdjcKMTVWS3EwcFFwbjNzVHJrWTVqdjZEeis3dWhSaXVnN2pBZ01CQUFFd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBRGFCdG10NHVPaVpoVlpHdmo1Tko2RUhUUFNGZGxBaVd6U2tiSWllV2RIY1NhK0J3K2xBM1kyalJsYnZNUVVaCndiL21jaFRtNjFJRmlKbnYvN1h2MGtmMkJxUzkyMURXenJHa3FWQk5zRUdIMEdhWGVHMVMwL1pkNXg1RE4zMlEKRW9IRE95K2lOeDlwRzA2cy8ybUlGY1E3eXQ0cW9acXFQZUg4U3VIamZOanlnZnZFUGxiYUJHb0Y4V1dneFluLwp3TzlFK2pYN3VvdlZDWXVrY3NyaEprZzJwK3o5MUFVU3p2NlpTbHlnK3pGM2kyM1Q0ZXA5VDhwRTV2eXE3UlFnClNPT3BQd25uN0d5UWd2UzREbU5LMHkyazc5ZUdGb3VnTWxnS3g1Um5nMUQxNEd0ZFcvMlE0WGxNa2tHZ1ZsR2IKRVRkcGlES1JKWjNTTDJPZ1RsSFpibWM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
170
- },
171
- "key": {
172
- "file_url": "",
173
- "file_base64": "data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR0VENDQXAyZ0F3SUJBZ0lKQU9ueUNxV09FeCtsTUEwR0NTcUdTSWIzRFFFQkJRVUFNRVV4Q3pBSkJnTlYKQkFZVEFrRlZNUk13RVFZRFZRUUlFd3BUYjIxbExWTjBZWFJsTVNFd0h3WURWUVFLRXhoSmJuUmxjbTVsZENCWAphV1JuYVhSeklGQjBlU0JNZEdRd0hoY05NVFV3TnpFek1UUTFNRE16V2hjTk1UVXdPREV5TVRRMU1ETXpXakJGCk1Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQk1LVTI5dFpTMVRkR0YwWlRFaE1COEdBMVVFQ2hNWVNXNTAKWlhKdVpYUWdWMmxrWjJsMGN5QlFkSGtnVEhSa01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQgpDZ0tDQVFFQTB1cVdPWUF1ZmgxSHZkNUw0WE8zUEZOZituZE8vVGczUGJEcWl4UTZEYUpqcUw2ZWh6eFJYeHJyCmR6U0N6RlN2b2FPRzFNaUpyazlIdUYvYUVyZ0ExdHFnb0crSmx1VVlKOG9VNzRtVFk3Zmt3dHhPUnpoT2JkSmoKbFoxNm5jNGVEaXBjVWtjUFluY0tQSGxsbnR1MXVDSUNNMkl5TmprcUFNd3lPSERrTGNFY0VyQ1F3YVdlSi80VgpGS3NVdndwbTR0cmRwWVcrelUwWkhUdWtuWkhybERrY1l2ZlE2VSt5bjI3ZEZBUWRwb3A5Q0FyNjdsL2Ftd01RCm9ZT1hqVGx6bWFZOURvRHRVazlCY0tGSUhhVDQwbGJFSDV2OTlXeDNaNE1MQ2JhNHRuQ2oyRTFzZ2UrUWFWcEEKck1aazNDTjN0amM5VUlWa2JGdUZmeUNaK1owSlpRSURBUUFCbzRHbk1JR2tNQjBHQTFVZERnUVdCQlNzandwVAp6Q2YzOGhUQmNsRFNvWEFNSkp6Q1NEQjFCZ05WSFNNRWJqQnNnQlNzandwVHpDZjM4aFRCY2xEU29YQU1KSnpDClNLRkpwRWN3UlRFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbE52YldVdFUzUmhkR1V4SVRBZkJnTlYKQkFvVEdFbHVkR1Z5Ym1WMElGZHBaR2RwZEhNZ1VIUjVJRXgwWklJSkFPbnlDcVdPRXgrbE1Bd0dBMVVkRXdRRgpNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFJSk52M3cza0VqSGt5QkNiaURwcFFBczdDU2s1SGJzCisrV0EyZm9sdzZaM3I2SUxHWEpVYmhwaitQZ0V1YTVUTW5ja2VEL0lvMXViYnNqaWZ2eHo1UUJrTDIySHQwdkIKTFJpR1FkMGt2TTFUUkFTUyt2UFk1L096Q2hkUVFPamh0UG5Vc0h2dEVwTHV5SkRlV2QyZTV5cFoveDdmMTZRVApwRG16ajRLNG00YkZPUitSWlQxUkN2SjFDclU1VWR0UzBpWVoyczJmVVJJclQ3Qmo5dDhhdmpReTFxQnNzd1E1CkdFUERTRWVoRC96QzkzMlJsSUw4cGhja05kTHRvZGlMaVlSRU8rTGt6MHdDeWpVTG0vYXVMeWlrNzZ1WlZaR3gKTEJwRUp4WU81bmQvYVViYjNsS3liSXJZYXlkSWJBVk5CcWR1SWxaV3M1cmgwclJFOUZNaDcrbz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
174
- "file_name": "cert.pem"
175
- },
176
- "password": "1234",
177
- "pfx": {
178
- "file_base64": "data:application/x-iwork-keynote-sffkey;base64,LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBNXdvMHFWblAweWY2c2VuYlFSQ0NjY1l0RE5ESU9kenJraURQb0MxYkpjdmNTRUVqCmNCVjRaUC94dkV2V0xjSW9OTTZYa2lrVjYrdjVyeUQ2L1pYTFFJdzVJT1BBanp5VFYybWVST3oxUTE1dkpqTVcKaW5RTXFuajNUcGVwVzdaQ1ZSTkxhU0ZTMmZFUncvWHZFMW0rQWkrRDB5dmZ1RjFCeUEwREJEQmpKbW9CQkVNTQovcmUwVEMzZWFLajliYms3MXdKNGs1M3ZEYjJtaysrUFk2VjE2TW9GcUJJbHRQRzhPbStqWDZWRU5zVDVTUnBMCkpHNTAydnRqSG82RlpDV1FwZFh2UnpXcnI1RHZXZkQ0M1Y5S0lIdCtQRFlucU80M0FtSVFFWkpvN2lJOFc5VEgKVXNEcis5ZVZTcXRLVUtaOTdFNjVHT1k3K2c4L3U3b1VZcm9PNHdJREFRQUJBb0lCQUNXckQwenhIS1lqcFlidQpSdFlEMkJDdXE5ZWtEcEVJaU12SlY3Q1kxSHlFRVVVaWdhR2Jqb2FCQ0N1WC9iSjJMbEgxd05hT3BrbFJydUt6CnNOZzVYT3NJTWFSQUhidjh0MVVRSGtMRWszUkphRHZGSm82cVB3cG9NSUg2emh6cXlVUFBvb0xnY1A2aGhERDcKM3QrN3lQUFlSVmpmbFZrY3MwWG5nUzlrcURXeDBXZStWOGFJMVJCOXVIbUdDcmo4djFZaHFSRWl2dXl4eUVXQwpZSkowVFRqSVhtMC92OVNJRE5FTjJKVExkYmlIdDBvQm9PZk1CWk5MSmhjSWI4cHkvTW5SYW9IN1EvN2VZQllQClNnMzJycXYvZlNjZGhWakltbTNyWEtaclV5NlErcUpNNGp1MCtpV0E4MzRzd2NiaGZhbU5XR2tLcUYzVmo4WEEKendGbkVjRUNnWUVBK056RHpxb3Vlbk9iZE5ORTdFa2FaTDc4TFFlL0VhTkYycHlhS2IvWTFac2F5U2ozSUMxbAp2RCs0V1hQamZJVWl3SldGeEtONGZyVnlldCtZWGhOZ0p3eU9wb2gyZmlaNzExR0paSWRudGFDV3lmRnpGVS8rClZQUm1yUUxIWS9MNHRhdnByTzlhTHBYVWVSYlc0NXVBbUZ5YUtJck1qSkFzMnFpeitKYUxGbUVDZ1lFQTdhcVUKOEE5SHpkVDFsQzB1ZlRoNG1Cdm43enpvSXJHNmY3amhvRVZuazEwWmozKy9pNEFmWEw3VHRuQmtXaTJvZElKbApDb2ZXdGRWbUxvTkhpOER0ZldyWFkzOWhra0ZSSEo5Y01qNEozcEJmaVp0ZUJyaFhucDg1c0xDS0pnWGVNZDNEClhkZVl1TERuczR3Y3FZTnpkbDRQL2cvRGl5RFB5Y29tc3NmdzQ4TUNnWUVBc2pUVWVwOWZIUXpBRzQ1V1lxV08Kb3Vvb2hzNXZRbUFhMjRzYzBoeXhWM1QwWDJ4WVd0Qm5jOEJsY0prT0k5THFxZUhvb29FMC9mZE0vVFEwVmRtbQpGeEJrN2xmMkVpdllycjJTbDB4bk5hYkRrK1MwdG1STUNlWGh5SzZldmJIMTY1SXBpVTcwMHpzenBXcDNneEdOCnFvMVZUd2JscHhwdkpEMStjdHJLeXNFQ2dZRUFyMlo0T3Q4Y0lCVnVGS2h2cWV5Mlc1UWt6UlJIUWV1bTkwSU0KQ2t1T2tGeGlVOXgxRWRCQjFTSGtmNzFjNG96VnlQNis4VkdsTFZkTDdVSG4ySVZQQUlPTWFKc0crSGlLRXpTdApSMHN2MzNqdmVWQVh5Wi9jMG0weWwyc0MyZUwweEJxbFo2bUl4YTJSb3BuaVFWeUpKeTl1WUJOa1BsYTk0Mi8wCnRYY0lHaDhDZ1lCbHJBaVdIOGU4aEhkWjdxTjNOTk51cVkvQjdJWFNPdzFIMEVKbjd3Ui9tZElzalFRYkJGL3gKa05YNndvZDVFeHBzRkVER2lJQ0RiQm1FbW5oaU1TWFBXREhoalZKSkFSUG5sL2Fxc0tNemt0dXdic29DbGQ2OApkT1hkbHNtbGhYZVdrcGp5ZUdCREZ5Y3hPdW80M3F6VzdOOUNpQ285dXBuNGZrSEg3Si95Znc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=",
179
- "file_name": "client (1).key",
180
202
  "file_url": ""
181
203
  },
182
- "HOST": "https://apipost.cn:443"
183
- },
184
- "https://*:443": {
185
- "crt": {
186
- "file_name": "client (1).crt",
187
- "file_url": "",
188
- "file_base64": "data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURuVENDQW9VQ0ZFcDd4Z3J2VVhteWEzTEdmcEFpenRNUkJvN3ZNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1JR0sKTVFzd0NRWURWUVFHRXdKRFRqRVFNQTRHQTFVRUNBd0hRbVZwYW1sdVp6RVFNQTRHQTFVRUJ3d0hRbVZwYW1sdQpaekVRTUE0R0ExVUVDZ3dIWVhCcGNHOXpkREVNTUFvR0ExVUVDd3dEWVhCME1SWXdGQVlEVlFRRERBMWpZeTVoCmNHbHdiM04wTG1Oak1SOHdIUVlKS29aSWh2Y05BUWtCRmhCaFpHMXBia0JoY0dsd2IzTjBMbU5qTUI0WERUSXoKTVRJeE1UQTVOREl4TmxvWERUTXpNVEl3T0RBNU5ESXhObG93Z1lveEN6QUpCZ05WQkFZVEFrTk9NUkF3RGdZRApWUVFJREFkQ1pXbHFhVzVuTVJBd0RnWURWUVFIREFkQ1pXbHFhVzVuTVE4d0RRWURWUVFLREFaaGNHbHZjM1F4CkREQUtCZ05WQkFzTUEyRndkREVXTUJRR0ExVUVBd3dOWTJNdVlYQnBjRzl6ZEM1all6RWdNQjRHQ1NxR1NJYjMKRFFFSkFSWVJZMnhwWlc1MFFHRndhWEJ2YzNRdVkyTXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBdwpnZ0VLQW9JQkFRRG5DalNwV2MvVEovcXg2ZHRCRUlKeHhpME0wTWc1M091U0lNK2dMVnNseTl4SVFTTndGWGhrCi8vRzhTOVl0d2lnMHpwZVNLUlhyNi9tdklQcjlsY3RBakRrZzQ4Q1BQSk5YYVo1RTdQVkRYbThtTXhhS2RBeXEKZVBkT2w2bGJ0a0pWRTB0cElWTFo4UkhEOWU4VFdiNENMNFBUSzkrNFhVSElEUU1FTUdNbWFnRUVRd3ordDdSTQpMZDVvcVAxdHVUdlhBbmlUbmU4TnZhYVQ3NDlqcFhYb3lnV29FaVcwOGJ3NmI2TmZwVVEyeFBsSkdrc2tiblRhCisyTWVqb1ZrSlpDbDFlOUhOYXV2a085WjhQamRYMG9nZTM0OE5pZW83amNDWWhBUmttanVJanhiMU1kU3dPdjcKMTVWS3EwcFFwbjNzVHJrWTVqdjZEeis3dWhSaXVnN2pBZ01CQUFFd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBRGFCdG10NHVPaVpoVlpHdmo1Tko2RUhUUFNGZGxBaVd6U2tiSWllV2RIY1NhK0J3K2xBM1kyalJsYnZNUVVaCndiL21jaFRtNjFJRmlKbnYvN1h2MGtmMkJxUzkyMURXenJHa3FWQk5zRUdIMEdhWGVHMVMwL1pkNXg1RE4zMlEKRW9IRE95K2lOeDlwRzA2cy8ybUlGY1E3eXQ0cW9acXFQZUg4U3VIamZOanlnZnZFUGxiYUJHb0Y4V1dneFluLwp3TzlFK2pYN3VvdlZDWXVrY3NyaEprZzJwK3o5MUFVU3p2NlpTbHlnK3pGM2kyM1Q0ZXA5VDhwRTV2eXE3UlFnClNPT3BQd25uN0d5UWd2UzREbU5LMHkyazc5ZUdGb3VnTWxnS3g1Um5nMUQxNEd0ZFcvMlE0WGxNa2tHZ1ZsR2IKRVRkcGlES1JKWjNTTDJPZ1RsSFpibWM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
189
- },
190
204
  "key": {
191
- "file_name": "",
205
+ "file_name": "client (1).key",
192
206
  "file_url": "",
193
- "file_base64": ""
207
+ "file_base64": "data:application/x-iwork-keynote-sffkey;base64,LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBNXdvMHFWblAweWY2c2VuYlFSQ0NjY1l0RE5ESU9kenJraURQb0MxYkpjdmNTRUVqCmNCVjRaUC94dkV2V0xjSW9OTTZYa2lrVjYrdjVyeUQ2L1pYTFFJdzVJT1BBanp5VFYybWVST3oxUTE1dkpqTVcKaW5RTXFuajNUcGVwVzdaQ1ZSTkxhU0ZTMmZFUncvWHZFMW0rQWkrRDB5dmZ1RjFCeUEwREJEQmpKbW9CQkVNTQovcmUwVEMzZWFLajliYms3MXdKNGs1M3ZEYjJtaysrUFk2VjE2TW9GcUJJbHRQRzhPbStqWDZWRU5zVDVTUnBMCkpHNTAydnRqSG82RlpDV1FwZFh2UnpXcnI1RHZXZkQ0M1Y5S0lIdCtQRFlucU80M0FtSVFFWkpvN2lJOFc5VEgKVXNEcis5ZVZTcXRLVUtaOTdFNjVHT1k3K2c4L3U3b1VZcm9PNHdJREFRQUJBb0lCQUNXckQwenhIS1lqcFlidQpSdFlEMkJDdXE5ZWtEcEVJaU12SlY3Q1kxSHlFRVVVaWdhR2Jqb2FCQ0N1WC9iSjJMbEgxd05hT3BrbFJydUt6CnNOZzVYT3NJTWFSQUhidjh0MVVRSGtMRWszUkphRHZGSm82cVB3cG9NSUg2emh6cXlVUFBvb0xnY1A2aGhERDcKM3QrN3lQUFlSVmpmbFZrY3MwWG5nUzlrcURXeDBXZStWOGFJMVJCOXVIbUdDcmo4djFZaHFSRWl2dXl4eUVXQwpZSkowVFRqSVhtMC92OVNJRE5FTjJKVExkYmlIdDBvQm9PZk1CWk5MSmhjSWI4cHkvTW5SYW9IN1EvN2VZQllQClNnMzJycXYvZlNjZGhWakltbTNyWEtaclV5NlErcUpNNGp1MCtpV0E4MzRzd2NiaGZhbU5XR2tLcUYzVmo4WEEKendGbkVjRUNnWUVBK056RHpxb3Vlbk9iZE5ORTdFa2FaTDc4TFFlL0VhTkYycHlhS2IvWTFac2F5U2ozSUMxbAp2RCs0V1hQamZJVWl3SldGeEtONGZyVnlldCtZWGhOZ0p3eU9wb2gyZmlaNzExR0paSWRudGFDV3lmRnpGVS8rClZQUm1yUUxIWS9MNHRhdnByTzlhTHBYVWVSYlc0NXVBbUZ5YUtJck1qSkFzMnFpeitKYUxGbUVDZ1lFQTdhcVUKOEE5SHpkVDFsQzB1ZlRoNG1Cdm43enpvSXJHNmY3amhvRVZuazEwWmozKy9pNEFmWEw3VHRuQmtXaTJvZElKbApDb2ZXdGRWbUxvTkhpOER0ZldyWFkzOWhra0ZSSEo5Y01qNEozcEJmaVp0ZUJyaFhucDg1c0xDS0pnWGVNZDNEClhkZVl1TERuczR3Y3FZTnpkbDRQL2cvRGl5RFB5Y29tc3NmdzQ4TUNnWUVBc2pUVWVwOWZIUXpBRzQ1V1lxV08Kb3Vvb2hzNXZRbUFhMjRzYzBoeXhWM1QwWDJ4WVd0Qm5jOEJsY0prT0k5THFxZUhvb29FMC9mZE0vVFEwVmRtbQpGeEJrN2xmMkVpdllycjJTbDB4bk5hYkRrK1MwdG1STUNlWGh5SzZldmJIMTY1SXBpVTcwMHpzenBXcDNneEdOCnFvMVZUd2JscHhwdkpEMStjdHJLeXNFQ2dZRUFyMlo0T3Q4Y0lCVnVGS2h2cWV5Mlc1UWt6UlJIUWV1bTkwSU0KQ2t1T2tGeGlVOXgxRWRCQjFTSGtmNzFjNG96VnlQNis4VkdsTFZkTDdVSG4ySVZQQUlPTWFKc0crSGlLRXpTdApSMHN2MzNqdmVWQVh5Wi9jMG0weWwyc0MyZUwweEJxbFo2bUl4YTJSb3BuaVFWeUpKeTl1WUJOa1BsYTk0Mi8wCnRYY0lHaDhDZ1lCbHJBaVdIOGU4aEhkWjdxTjNOTk51cVkvQjdJWFNPdzFIMEVKbjd3Ui9tZElzalFRYkJGL3gKa05YNndvZDVFeHBzRkVER2lJQ0RiQm1FbW5oaU1TWFBXREhoalZKSkFSUG5sL2Fxc0tNemt0dXdic29DbGQ2OApkT1hkbHNtbGhYZVdrcGp5ZUdCREZ5Y3hPdW80M3F6VzdOOUNpQ285dXBuNGZrSEg3Si95Znc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
194
208
  },
195
209
  "password": "",
196
210
  "pfx": {
@@ -198,56 +212,39 @@ module.exports ={
198
212
  "file_name": "",
199
213
  "file_url": ""
200
214
  },
201
- "HOST": "https://*:443"
215
+ "HOST": "https://cc.apipost.cc:6003"
202
216
  }
203
217
  }
204
218
  },
205
219
  "custom_functions": {},
206
220
  "collection": [
207
221
  {
208
- "target_id": "4651a1e0e06e000",
222
+ "target_id": "28e606147ae00b",
209
223
  "target_type": "api",
210
- "parent_id": "4651a1dffc6e000",
211
- "name": "测试接口",
224
+ "parent_id": "0",
225
+ "name": "11683",
212
226
  "request": {
213
227
  "auth": {
214
228
  "type": "inherit"
215
229
  },
216
230
  "body": {
217
- "mode": "urlencoded",
218
- "parameter": [
219
- {
220
- "description": "",
221
- "field_type": "string",
222
- "is_checked": 1,
223
- "key": "name",
224
- "value": "",
225
- "not_null": 1,
226
- "schema": {
227
- "type": "string",
228
- "enum": [
229
- "11",
230
- "22"
231
- ]
232
- },
233
- "param_id": "2780323bb71007"
234
- }
235
- ],
231
+ "mode": "json",
232
+ "parameter": [],
236
233
  "raw": "",
237
234
  "raw_parameter": [],
238
235
  "raw_schema": {
239
236
  "type": "object"
240
237
  },
241
- "binary": {}
238
+ "binary": null
242
239
  },
243
240
  "pre_tasks": [],
244
241
  "post_tasks": [
245
242
  {
246
243
  "type": "customScript",
247
- "id": "2789708c764018",
244
+ "id": "29077d8a7ae006",
248
245
  "name": "自定义脚本",
249
246
  "enabled": 1,
250
- "data": ""
247
+ "data": "var jsonData = apt.response.json();\n//从响应数据中获取childList\nconst List = jsonData.data.list[0];\nconsole.log(List)\n//设置环境变量\napt.environment.set(\"childlist02\", List);\napt.environment.set(\"childlist\", jsonData.data.list[0]);\napt.environment.set(\"childlist01\",111);\napt.environment.set(\"设置环境无效\", \"设置环境无效\");\n\napt.globals.set(\"variable_key\", \"variable_value\");\napt.globals.set(\"childlist02\", List);"
251
248
  }
252
249
  ],
253
250
  "header": {
@@ -265,124 +262,20 @@ module.exports ={
265
262
  "parameter": []
266
263
  }
267
264
  },
268
- "parents": [
269
- {
270
- "target_id": "4651a1dffc6e000",
271
- "target_type": "folder"
272
- },
273
- {
274
- "target_id": "4651a1dfdc6e000",
275
- "target_type": "folder"
276
- }
277
- ],
265
+ "parents": [],
278
266
  "method": "GET",
279
267
  "protocol": "http/1.1",
280
- "url": "http://cc.apipost.cc:6002/httpcode/201",
281
- "pre_url": ""
282
- },
283
- {
284
- "target_id": "4651a1dffc6e000",
285
- "target_type": "folder",
286
- "parent_id": "4651a1dfdc6e000",
287
- "name": "测试Controller",
288
- "request": {
289
- "auth": {
290
- "type": "inherit"
291
- },
292
- "pre_tasks": [],
293
- "post_tasks": [],
294
- "body": {
295
- "parameter": []
296
- },
297
- "header": {
298
- "parameter": []
299
- },
300
- "query": {
301
- "parameter": []
302
- },
303
- "cookie": {
304
- "parameter": []
305
- }
306
- },
307
- "parents": [
308
- {
309
- "target_id": "4651a1dfdc6e000",
310
- "target_type": "folder"
311
- }
312
- ],
313
- "server_id": "0",
314
- "pre_url": ""
315
- },
316
- {
317
- "target_id": "4651a1dfdc6e000",
318
- "target_type": "folder",
319
- "parent_id": "0",
320
- "name": "security-ljk",
321
- "request": {
322
- "auth": {
323
- "type": "inherit"
324
- },
325
- "pre_tasks": [],
326
- "post_tasks": [],
327
- "body": {
328
- "parameter": []
329
- },
330
- "header": {
331
- "parameter": []
332
- },
333
- "query": {
334
- "parameter": []
335
- },
336
- "cookie": {
337
- "parameter": []
338
- }
339
- },
340
- "parents": [],
341
- "server_id": "0",
268
+ "url": "https://echo.apipost.cn/userlist.php",
342
269
  "pre_url": ""
343
270
  }
344
271
  ],
345
- "database_configs": {
346
- "29bc16819464000": {
347
- "type": "mysql",
348
- "ssh": {
349
- "enable": -1,
350
- "host": "",
351
- "port": 22,
352
- "auth_type": 1,
353
- "username": "",
354
- "password": "",
355
- "private_key": "",
356
- "passphrase": ""
357
- },
358
- "dbconfig": {
359
- "host": "10.10.10.20",
360
- "port": 1521,
361
- "user": "root",
362
- "password": "12333333333",
363
- "database": "apipost",
364
- "auth_source": ""
365
- }
366
- }
367
- },
368
- "name": "未命名测试用例",
369
- "ignore_error": -1,
370
- "enable_sandbox": -1,
371
- "iterationCount": 1,
372
- "sleep": 0,
373
- "testing_id": "27896681f64013",
374
- "iterates_data_id": "0",
375
- "iterationData": []
272
+ "database_configs": {}
376
273
  },
377
274
  "test_events": [
378
275
  {
379
276
  "type": "api",
380
- "auto_sync": true,
381
- "test_id": "27896681f64013",
382
- "event_id": "27896af9764014",
383
- "enabled": 1,
384
277
  "data": {
385
- "target_id": "4651a1e0e06e000",
278
+ "target_id": "28e606147ae00b",
386
279
  "project_id": "26623ba1a864000",
387
280
  "parent_id": "4651a1dffc6e000",
388
281
  "target_type": "api"
package/test.js DELETED
@@ -1,125 +0,0 @@
1
- const _ = require('lodash');
2
- const { run, request2HAR } = require('./index');
3
-
4
- // 以下为调用示例
5
- const callback = (res) => {
6
- // console.warn("callback", JSON.stringify(res, null, 2))
7
- }
8
-
9
-
10
- /// pip start
11
- (function () {
12
- const net = require('net');
13
- const fs = require('fs');
14
- const path = require('path');
15
- const mainProcessSocketPath = path.join(__dirname, 'my_socket.sock');
16
- const { DatabaseQuery } = require('database-query');
17
- _.set(process, 'env.main_process_socket_path', mainProcessSocketPath);
18
-
19
- // 如果套接字文件已存在,删除它
20
- if (fs.existsSync(mainProcessSocketPath)) {
21
- fs.unlinkSync(mainProcessSocketPath);
22
- }
23
-
24
- const server = net.createServer((socket) => {
25
- socket.on('data', async (stream) => {
26
- const { action, data } = JSON.parse(String(Buffer.from(stream)));
27
- try {
28
- switch (action) {
29
- case 'queryDatabase':
30
- const { dbconfig, query } = data;
31
- const result = await DatabaseQuery(dbconfig, query);
32
- socket.write(JSON.stringify(result));
33
- break;
34
- case 'execute':
35
- const { execSync } = require('child_process');
36
- const { file, args, option } = data;
37
- const ext = file.split('.').pop().toLowerCase();
38
- let command;
39
- try {
40
- switch (ext) {
41
- case 'jar':
42
- const jarPath = path.resolve(__dirname, `jar-main-1.0-SNAPSHOT.jar`);
43
- const { className, method } = option || {};
44
- if (_.isObject(option)) {
45
- if (_.isString(className) && _.isString(method)) {
46
- let para = new Buffer(JSON.stringify({ methodName: method, args: args })).toString("base64");
47
- command = `java -jar ${jarPath} ${file} ${className} '${para}'`;
48
- }
49
- } else {
50
- command = `java -jar ${file} ${_.join(_.map(args, JSON.stringify), " ")}`;
51
- }
52
-
53
- break;
54
- case 'php':
55
- command = `php -f ${file} ${args.join(' ')}`;
56
- break;
57
- case 'js':
58
- command = `node ${file} ${args.join(' ')}`;
59
- break;
60
- case 'py':
61
- command = `python ${file} ${args.join(' ')}`;
62
- break;
63
- case 'py3':
64
- command = `python3 ${file} ${args.join(' ')}`;
65
- break;
66
- case 'bsh':
67
- command = `bsh ${file} ${args.join(' ')}`;
68
- break;
69
- case 'go':
70
- command = `go run ${file} ${args.join(' ')}`;
71
- break;
72
- case 'sh':
73
- command = `sh ${file} ${args.join(' ')}`;
74
- break;
75
- case 'rb':
76
- case 'ruby':
77
- command = `ruby ${file} ${args.join(' ')}`;
78
- break;
79
- case 'lua':
80
- command = `lua ${file} ${args.join(' ')}`;
81
- break;
82
- case 'rs':
83
- command = `rustc ${file} && ./${file.replace(/\.rs$/, '')} ${args.join(' ')}`;
84
- break;
85
- case 'bat':
86
- command = `${file} ${args.join(' ')}`;
87
- break;
88
- case 'ps1':
89
- command = `powershell -File ${file} ${args.join(' ')}`;
90
- break;
91
- default:
92
- throw new Error(`Unsupported file suffixes <${ext}>`);
93
- }
94
-
95
- const isWindows = process.platform === 'win32';
96
- const options = _.assign(isWindows ? { encoding: 'cp936' } : { encoding: 'utf8' }, option);
97
- const output = execSync(command, options);
98
- socket.write(JSON.stringify({
99
- err: 'success',
100
- result: String(output)
101
- }));
102
- } catch (e) {
103
- socket.write(JSON.stringify({
104
- err: 'error',
105
- result: String(e)
106
- }));
107
- }
108
- break;
109
- }
110
-
111
- } catch (e) {
112
- socket.write(JSON.stringify(e));
113
- }
114
-
115
- });
116
- });
117
-
118
- server.listen(mainProcessSocketPath, () => {
119
- // console.log(`服务器已启动,监听路径 ${mainProcessSocketPath}`);
120
- });
121
- })();
122
- //pip end
123
- const { option, test_events } = require('./tmp/request'); // tmp todo...
124
- run(test_events, option, callback);
125
- // request2HAR(test_events, option)