1/* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import dataShare from '@ohos.data.dataShare'; 17import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it} from 'deccjsunit/index' 18 19const URI_CALLLOG = "datashare:///com.ohos.calllogability"; 20const calllogUri = "datashare:///com.ohos.calllogability/calls/calllog"; 21 22const URI_VOICEMAIL = "datashare:///com.ohos.voicemailability"; 23const voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail"; 24 25const URI_CONTACTS = "datashare:///com.ohos.contactsdataability"; 26const rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact"; 27const contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data"; 28const deletedUri = "datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact"; 29 30describe('PerformanceTest', function() { 31 console.log(' PerformanceTest is start'); 32 function sleep(numberMillis) 33 { 34 var now = new Date(); 35 var exitTime = now.getTime() + numberMillis; 36 while (true) { 37 now = new Date(); 38 if (now.getTime() > exitTime) 39 return; 40 } 41 } 42 43 /** 44 * @tc.number raw_contact_insert_performance_test_900 45 * @tc.name The raw_contact table adds 10000 pieces of data, and the time consumption is calculated according to 46 * the running time of the use case 47 * @tc.desc Function test 48 */ 49 it("raw_contact_insert_performance_test_900", 0, async function(done) { 50 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 51 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 52 var listAddBluk = []; 53 for (var i = 0; i < 1000; i++) { 54 var add = {"display_name" : "xiaoli" + i, "company" : "testCompany" + i, "position" : "testPosition" + i}; 55 listAddBluk[i] = add; 56 } 57 try { 58 let old = new Date(); 59 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 60 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 61 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 62 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 63 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 64 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 65 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 66 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 67 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 68 var batchInsertCode = await dataShareHelper.batchInsert(rawContactUri, listAddBluk); 69 let now = new Date(); 70 let usedTime = now - old; 71 console.info('raw_contact_insert_performance_test_900 usedTime = ' + usedTime); 72 expect(usedTime < 70000).assertTrue(); 73 sleep(5000); 74 console.info("logMessage raw_contact_insert_performance_test_900: batchInsertCode = " + batchInsertCode); 75 expect(batchInsertCode == 0).assertTrue(); 76 done(); 77 } catch (error) { 78 console.info('logMessage raw_contact_insert_performance_test_900: insert error = ' + error); 79 done(); 80 } 81 }); 82 83 /** 84 * @tc.number raw_contact_update_performance_test_1000 85 * @tc.name The raw_contact table updates data whose ID is not equal to 0, and the time consumption is calculated 86 * according to the running time of the use case 87 * @tc.desc Function test 88 */ 89 it("raw_contact_update_performance_test_1000", 0, async function(done) { 90 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 91 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 92 var updateValues = {"favorite" : 1}; 93 let condition = new dataShare.DataSharePredicates(); 94 condition.greaterThan("id", "0"); 95 condition.and(); 96 condition.equalTo("is_deleted", "0"); 97 try { 98 let old = new Date(); 99 var updateCode = await dataShareHelper.update(rawContactUri, updateValues, condition); 100 let now = new Date(); 101 let usedTime = now - old; 102 console.info('raw_contact_update_performance_test_1000 usedTime = ' + usedTime); 103 expect(usedTime < 2000).assertTrue(); 104 sleep(5000); 105 console.info("logMessage raw_contact_update_performance_test_1000: updateCode = " + updateCode); 106 expect(updateCode == 0).assertTrue(); 107 done(); 108 } catch (error) { 109 console.info("logMessage raw_contact_update_performance_test_1000: update error = " + error); 110 done(); 111 } 112 }); 113 114 /** 115 * @tc.number raw_contact_query_performance_test_1100 116 * @tc.name The raw_ contact table queries 10000 pieces of data and calculates the time consumption according to 117 * the running time of the use case 118 * @tc.desc Function test 119 */ 120 it("raw_contact_query_performance_test_1100", 0, async function(done) { 121 var tag = "raw_contact_query_performance_test_1100"; 122 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 123 console.info(tag + ': start ! dataShareHelper = ' + dataShareHelper); 124 var resultColumns = []; 125 let condition = new dataShare.DataSharePredicates(); 126 condition.greaterThan("id", "0"); 127 condition.and(); 128 condition.equalTo("is_deleted", "0"); 129 try { 130 let old = new Date(); 131 var resultSet = await dataShareHelper.query(rawContactUri, resultColumns, condition); 132 let now = new Date(); 133 let usedTime = now - old; 134 console.info('raw_contact_query_performance_test_1100 usedTime = ' + usedTime); 135 expect(usedTime < 200).assertTrue(); 136 sleep(5000); 137 console.info(tag + ' : logMessage : rowCount' + resultSet.rowCount); 138 expect(resultSet.rowCount == 10000).assertTrue(); 139 resultSet.close(); 140 done(); 141 } catch (error) { 142 console.info(tag + " :logMessage : error = " + error); 143 done(); 144 } 145 }); 146 147 /** 148 * @tc.number raw_contact_delete_performance_test_1200 149 * @tc.name The raw_contact table deletes 10000 pieces of data, and the time consumption is calculated according 150 * to the running time of the use case 151 * @tc.desc Function test 152 */ 153 it("raw_contact_delete_performance_test_1200", 0, async function(done) { 154 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 155 console.info('raw_contact_delete_performance_test_1200 : start ! dataShareHelper = ' + dataShareHelper); 156 let condition = new dataShare.DataSharePredicates(); 157 condition.greaterThan("id", "0"); 158 condition.and(); 159 condition.equalTo("is_deleted", "0"); 160 try { 161 let old = new Date(); 162 var deleteCode = await dataShareHelper.delete(rawContactUri, condition); 163 let now = new Date(); 164 let usedTime = now - old; 165 console.info('raw_contact_delete_performance_test_1200 usedTime = ' + usedTime); 166 expect(usedTime < 7000).assertTrue(); 167 sleep(5000); 168 console.info("logMessage raw_contact_delete_performance_test_1200: deleteCode = " + deleteCode); 169 expect(deleteCode == 0).assertTrue(); 170 done(); 171 } catch (error) { 172 console.info('logMessage raw_contact_delete_performance_test_1200: delete error = ' + error); 173 done(); 174 } 175 }); 176 177 /** 178 * @tc.number contact_data_insert_performance_test_1300 179 * @tc.name The contact_data table adds 10000 pieces of data, and the time consumption is calculated according to 180 * the running time of the use case 181 * @tc.desc Function test 182 */ 183 it("contact_data_insert_performance_test_1300", 0, async function(done) { 184 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 185 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 186 187 var rawContactValues = { 188 "display_name" : "xiaoli", 189 }; 190 try { 191 var rawContactId = await dataShareHelper.insert(rawContactUri, rawContactValues); 192 sleep(1000); 193 console.info("logMessage contact_data_insert_performance_test_1300: rawContactId = " + rawContactId); 194 } catch (error) { 195 console.info("logMessage contact_data_insert_performance_test_1300: raw_contact insert error = " + error); 196 } 197 198 let condition = new dataShare.DataSharePredicates(); 199 condition.equalTo("id", rawContactId.toString()); 200 var deleteCode = await dataShareHelper.delete(rawContactUri, condition); 201 sleep(1000); 202 console.info("logMessage contact_data_insert_performance_test_1300: deleteCode = " + deleteCode); 203 204 var listAddBluk = []; 205 for (var i = 0; i < 1000; i++) { 206 var add = {"raw_contact_id" : rawContactId, "detail_info" : "xxx" + i, "content_type" : "name"}; 207 listAddBluk[i] = add; 208 } 209 try { 210 let old = new Date(); 211 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 212 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 213 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 214 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 215 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 216 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 217 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 218 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 219 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 220 var batchInsertCode = await dataShareHelper.batchInsert(contactDataUri, listAddBluk); 221 let now = new Date(); 222 let usedTime = now - old; 223 console.info('contact_data_insert_performance_test_1300 usedTime = ' + usedTime); 224 expect(usedTime < 70000).assertTrue(); 225 sleep(5000); 226 console.info("logMessage contact_data_insert_performance_test_1300: batchInsertCode = " + batchInsertCode); 227 expect(batchInsertCode == 0).assertTrue(); 228 done(); 229 } catch (error) { 230 console.info('logMessage contact_data_insert_performance_test_1300: insert error = ' + error); 231 done(); 232 } 233 }); 234 235 /** 236 * @tc.number contact_data_update_performance_test_1400 237 * @tc.name The contact_data table updates data whose ID is not equal to 0, and the time consumption is 238 * calculated according to the running time of the use case 239 * @tc.desc Function test 240 */ 241 it("contact_data_update_performance_test_1400", 0, async function(done) { 242 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 243 console.info('logMessage contact_data_update_performance_test_1400 dataShareHelper success! dataShareHelper = ' + dataShareHelper); 244 var updateValues = {"syn_1" : "test"}; 245 let condition = new dataShare.DataSharePredicates(); 246 condition.greaterThan("id", "0"); 247 try { 248 let old = new Date(); 249 var updateCode = await dataShareHelper.update(contactDataUri, updateValues, condition); 250 let now = new Date(); 251 let usedTime = now - old; 252 console.info('contact_data_update_performance_test_1400 usedTime = ' + usedTime); 253 expect(usedTime < 35000).assertTrue(); 254 sleep(8000); 255 console.info("logMessage contact_data_update_performance_test_1400: updateCode = " + updateCode); 256 expect(updateCode == 0).assertTrue(); 257 done(); 258 } catch (error) { 259 console.info("logMessage contact_data_update_performance_test_1400: update error = " + error); 260 done(); 261 } 262 }); 263 264 /** 265 * @tc.number contact_data_query_performance_test_1500 266 * @tc.name The contact_datat table queries 10000 pieces of data and calculates the time consumption according to 267 * the running time of the use case 268 * @tc.desc Function test 269 */ 270 it("contact_data_query_performance_test_1500", 0, async function(done) { 271 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 272 console.info('contact_data_query_performance_test_1500 start ! dataShareHelper = ' + dataShareHelper); 273 var resultColumns = []; 274 let condition = new dataShare.DataSharePredicates(); 275 condition.greaterThan("id", "0"); 276 try { 277 let old = new Date(); 278 var resultSet = await dataShareHelper.query(contactDataUri, resultColumns, condition); 279 let now = new Date(); 280 let usedTime = now - old; 281 console.info('contact_data_query_performance_test_1500 usedTime = ' + usedTime); 282 expect(usedTime < 220).assertTrue(); 283 sleep(5000); 284 console.info('logMessage contact_data_query_performance_test_1500: goToFirstRow' + resultSet.rowCount); 285 expect(resultSet.rowCount == 10000).assertEqual(true); 286 resultSet.close(); 287 done(); 288 } catch (error) { 289 console.info("logMessage contact_data_query_performance_test_1500: error = " + error); 290 done(); 291 } 292 }); 293 294 /** 295 * @tc.number contact_data_delete_performance_test_1600 296 * @tc.name The contact_data table deletes 10000 pieces of data, and the time consumption is calculated according 297 * to the running time of the use case 298 * @tc.desc Function test 299 */ 300 it("contact_data_delete_performance_test_1600", 0, async function(done) { 301 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 302 console.info('contact_data_delete_performance_test_1600 : start ! dataShareHelper = ' + dataShareHelper); 303 let condition = new dataShare.DataSharePredicates(); 304 condition.greaterThan("id", "0"); 305 try { 306 let old = new Date(); 307 var deleteCode = await dataShareHelper.delete(contactDataUri, condition); 308 let now = new Date(); 309 let usedTime = now - old; 310 console.info('contact_data_delete_performance_test_1600 usedTime = ' + usedTime); 311 expect(usedTime < 32000).assertTrue(); 312 sleep(5000); 313 console.info("logMessage contact_data_delete_performance_test_1600: deleteCode = " + deleteCode); 314 expect(deleteCode == 0).assertTrue(); 315 done(); 316 } catch (error) { 317 console.info('logMessage contact_data_delete_performance_test_1600: delete error = ' + error); 318 done(); 319 } 320 }); 321 322 /** 323 * @tc.number calllog_insert_performance_test_100 324 * @tc.name The callog table adds 10000 pieces of data, and the time consumption is calculated according to the 325 * running time of the use case 326 * @tc.desc Function test 327 */ 328 it("calllog_insert_performance_test_100", 0, async function(done) { 329 console.info("---------logMessage calllog_insert_performance_test_100 is starting!----------"); 330 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 331 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 332 var listAddBluk = []; 333 var phoneNumber = randomNum(6); 334 for (var i = 0; i < 1000; i++) { 335 var add = {"phone_number" : phoneNumber + i}; 336 listAddBluk[i] = add; 337 } 338 try { 339 let old = new Date(); 340 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 341 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 342 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 343 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 344 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 345 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 346 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 347 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 348 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 349 var batchInsertCode = await dataShareHelper.batchInsert(calllogUri, listAddBluk); 350 let now = new Date(); 351 let usedTime = now - old; 352 console.info('calllog_insert_performance_test_100 usedTime = ' + usedTime); 353 expect(usedTime < 90000).assertTrue(); 354 sleep(5000); 355 console.info("logMessage calllog_insert_performance_test_100: batchInsertCode = " + batchInsertCode); 356 expect(batchInsertCode == 0).assertTrue(); 357 done(); 358 } catch (error) { 359 console.info("logMessage calllog_insert_performance_test_100: batchInsert error = " + error); 360 done(); 361 } 362 }); 363 364 /** 365 * @tc.number calllog_update_performance_test_200 366 * @tc.name The callog table updates data whose ID is not equal to 0, and the time consumption is calculated 367 * according to the running time of the use case 368 * @tc.desc Function test 369 */ 370 it("calllog_update_performance_test_200", 0, async function(done) { 371 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 372 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 373 var updateValues = {"answer_state" : "1"}; 374 try { 375 let condition = new dataShare.DataSharePredicates(); 376 condition.notEqualTo("id", 0); 377 let old = new Date(); 378 var updateCode = await dataShareHelper.update(calllogUri, updateValues, condition); 379 let now = new Date(); 380 let usedTime = now - old; 381 console.info('calllog_update_performance_test_200 usedTime = ' + usedTime); 382 expect(usedTime < 300).assertTrue(); 383 sleep(5000); 384 console.info("logMessage calllog_update_performance_test_200: updateCode = " + updateCode); 385 expect(updateCode == 0).assertTrue(); 386 done(); 387 } catch (error) { 388 console.info("logMessage calllog_update_performance_test_200: update error = " + error); 389 done(); 390 } 391 }); 392 393 /** 394 * @tc.number calllog_query_performance_test_300 395 * @tc.name The callog table queries 10000 pieces of data to see whether they can be queried successfully 396 * @tc.desc Function test 397 */ 398 it("calllog_query_performance_test_300", 0, async function(done) { 399 var tag = "calllog_query_performance_test_300"; 400 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 401 console.info(tag + ': start ! dataShareHelper = ' + dataShareHelper); 402 var resultColumns = []; 403 let condition = new dataShare.DataSharePredicates(); 404 condition.notEqualTo("id", 0); 405 406 try { 407 let old = new Date(); 408 let resultSet = await dataShareHelper.query(calllogUri, resultColumns, condition); 409 let now = new Date(); 410 let usedTime = now - old; 411 console.info('calllog_query_performance_test_300 usedTime = ' + usedTime); 412 expect(usedTime < 30).assertTrue(); 413 sleep(5000); 414 console.info(tag + ' : logMessage : rowCount' + resultSet.rowCount); 415 expect(resultSet.rowCount == 10000).assertTrue(); 416 resultSet.close(); 417 done(); 418 } catch (error) { 419 console.info("logMessage calllog_query_performance_test_300: error = " + error); 420 done() 421 } 422 }); 423 424 /** 425 * @tc.number calllog_delete_performance_test_400 426 * @tc.name The callog table deletes 10000 pieces of data, and the time consumption is calculated according to 427 * the running time of the use case 428 * @tc.desc Function test 429 */ 430 it("calllog_delete_performance_test_400", 0, async function(done) { 431 var tag = "calllog_delete_performance_test_400"; 432 let dataShareHelper = dataShare.createDataShareHelper(URI_CALLLOG); 433 console.info(tag + ': start ! dataShareHelper = ' + dataShareHelper); 434 let condition = new dataShare.DataSharePredicates(); 435 condition.greaterThan("id", "0"); 436 let old = new Date(); 437 var deleteCode = await dataShareHelper.delete(calllogUri, condition); 438 let now = new Date(); 439 let usedTime = now - old; 440 console.info('calllog_delete_performance_test_400 usedTime = ' + usedTime); 441 expect(usedTime < 200).assertTrue(); 442 sleep(5000); 443 console.info(tag + " : logMessage : deleteCode = " + deleteCode); 444 expect(deleteCode == 0).assertTrue(); 445 done(); 446 }); 447 448 /** 449 * @tc.number voicemail_insert_performance_test_500 450 * @tc.name The voicemail table adds 10000 pieces of data, and the time consumption is calculated according to 451 * the running time of the use case 452 * @tc.desc Function test 453 */ 454 it("voicemail_insert_performance_test_500", 0, async function(done) { 455 console.info("---------logMessage voicemail_insert_performance_test_500 is starting!----------"); 456 let dataShareHelper = dataShare.createDataShareHelper(URI_VOICEMAIL); 457 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 458 459 var listAddBluk = []; 460 var phoneNumber = randomNum(4); 461 for (var i = 0; i < 1000; i++) { 462 var add = {"phone_number" : phoneNumber + i}; 463 listAddBluk[i] = add; 464 } 465 try { 466 let old = new Date(); 467 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 468 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 469 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 470 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 471 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 472 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 473 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 474 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 475 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 476 var batchInsertCode = await dataShareHelper.batchInsert(voicemailUri, listAddBluk); 477 let now = new Date(); 478 let usedTime = now - old; 479 console.info('voicemail_insert_performance_test_500 usedTime = ' + usedTime); 480 expect(usedTime < 90000).assertTrue(); 481 sleep(5000); 482 console.info("logMessage voicemail_insert_performance_test_500: batchInsertCode = " + batchInsertCode); 483 expect(batchInsertCode == 0).assertTrue(); 484 done(); 485 } catch (error) { 486 console.info("logMessage voicemail_insert_performance_test_500: batchInsert error = " + error); 487 done(); 488 } 489 }); 490 491 /** 492 * @tc.number voicemail_update_performance_test_600 493 * @tc.name The voicemail table updates data whose ID is not equal to 0, and the time consumption is calculated 494 * according to the running time of the use case 495 * @tc.desc Function test 496 */ 497 it("voicemail_update_performance_test_600", 0, async function(done) { 498 let dataShareHelper = dataShare.createDataShareHelper(URI_VOICEMAIL); 499 console.info('logMessage get dataShareHelper success! dataShareHelper = ' + dataShareHelper); 500 var updateValues = {"origin_type" : "test"}; 501 try { 502 let condition = new dataShare.DataSharePredicates(); 503 condition.notEqualTo("id", 0); 504 let old = new Date(); 505 var updateCode = await dataShareHelper.update(voicemailUri, updateValues, condition); 506 let now = new Date(); 507 let usedTime = now - old; 508 console.info('voicemail_update_performance_test_600 usedTime = ' + usedTime); 509 expect(usedTime < 250).assertTrue(); 510 sleep(5000); 511 console.info("logMessage voicemail_update_performance_test_600: updateCode = " + updateCode); 512 expect(updateCode == 0).assertTrue(); 513 done(); 514 } catch (error) { 515 console.info("logMessage voicemail_update_performance_test_600: update error = " + error); 516 done(); 517 } 518 }); 519 520 /** 521 * @tc.number voicemail_query_performance_test_700 522 * @tc.name The voicemail table queries 10000 items, and the time consumption is calculated according to the 523 * running time of the use case 524 * @tc.desc Function test 525 */ 526 it("voicemail_query_performance_test_700", 0, async function(done) { 527 var tag = "voicemail_query_performance_test_700"; 528 let dataShareHelper = dataShare.createDataShareHelper(URI_VOICEMAIL); 529 console.info(tag + ': start ! dataShareHelper = ' + dataShareHelper); 530 var resultColumns = []; 531 let condition = new dataShare.DataSharePredicates(); 532 condition.greaterThan("id", "0"); 533 try { 534 let old = new Date(); 535 var resultSet = await dataShareHelper.query(voicemailUri, resultColumns, condition); 536 let now = new Date(); 537 let usedTime = now - old; 538 console.info('voicemail_query_performance_test_700 usedTime = ' + usedTime); 539 expect(usedTime < 20).assertTrue(); 540 sleep(5000); 541 console.info(tag + ' : logMessage : rowCount' + resultSet.rowCount); 542 expect(resultSet.rowCount == 10000).assertTrue(); 543 resultSet.close(); 544 done(); 545 } catch (error) { 546 console.info("logMessage voicemail_query_performance_test_700: error = " + error); 547 done() 548 } 549 }); 550 551 /** 552 * @tc.number voicemail_delete_performance_test_800 553 * @tc.name The voicemail table deletes 10000 pieces of data, and the time consumption is calculated according to 554 * the running time of the use case 555 * @tc.desc Function test 556 */ 557 it("voicemail_delete_performance_test_800", 0, async function(done) { 558 var tag = "voicemail_delete_performance_test_800"; 559 let dataShareHelper = dataShare.createDataShareHelper(URI_VOICEMAIL); 560 console.info(tag + ': start ! dataShareHelper = ' + dataShareHelper); 561 let condition = new dataShare.DataSharePredicates(); 562 condition.greaterThan("id", "0"); 563 try { 564 let old = new Date(); 565 var deleteCode = await dataShareHelper.delete(voicemailUri, condition); 566 let now = new Date(); 567 let usedTime = now - old; 568 console.info('voicemail_delete_performance_test_800 usedTime = ' + usedTime); 569 expect(usedTime < 100).assertTrue(); 570 sleep(5000); 571 console.info(tag + " : logMessage : deleteCode = " + deleteCode); 572 expect(deleteCode == 0).assertTrue(); 573 done(); 574 } catch (error) { 575 console.info("logMessage voicemail_delete_performance_test_800: error = " + error); 576 done(); 577 } 578 }); 579 580 afterAll(async function() { 581 let dataShareHelper = dataShare.createDataShareHelper(URI_CONTACTS); 582 console.info('DeleteContact : start ! dataShareHelper = ' + dataShareHelper); 583 let condition = new dataShare.DataSharePredicates(); 584 condition.notEqualTo("id", "0"); 585 try { 586 var resultColumns = [ "id" ]; 587 var conditionDelete = new dataShare.DataSharePredicates(); 588 conditionDelete.greaterThan("id", "0"); 589 var count = 0; 590 var deleteCount = 9999; 591 while (count < deleteCount) { 592 var result = await dataShareHelper.query(deletedUri, resultColumns, conditionDelete); 593 console.info("performance : result.rowCount = " + result.rowCount); 594 count = result.rowCount; 595 result.close(); 596 sleep(5000); 597 } 598 var deleteCode = await dataShareHelper.delete(deletedUri, condition); 599 console.info("afterAll logMessage DeleteContact: deleteCode = " + deleteCode); 600 } catch (error) { 601 console.info('afterAll logMessage DeleteContact: delete error = ' + error); 602 } 603 }); 604}) 605 606function randomNum (num) { 607 let number = toString(Math.floor(Math.random() * (9 * Math.pow(10, num))) + (1 * Math.pow(10, num))); 608 return number ; 609} 610