• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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