taosdemoTestInsertWithJsonSml.py 12.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
###################################################################
#           Copyright (c) 2016 by TAOS Technologies, Inc.
#                     All rights reserved.
#
#  This file is proprietary and confidential to TAOS Technologies.
#  No part of this file may be reproduced, stored, transmitted,
#  disclosed or used in any form or by any means other than as
#  expressly provided by the written permission from Jianhui Tao
#
###################################################################

# -*- coding: utf-8 -*-

import sys
import os
from util.log import *
from util.cases import *
from util.sql import *
from util.dnodes import *


class TDTestCase:
    def init(self, conn, logSql):
        tdLog.debug("start to execute %s" % __file__)
        tdSql.init(conn.cursor(), logSql)
        
    def getBuildPath(self):
        selfPath = os.path.dirname(os.path.realpath(__file__))

        if ("community" in selfPath):
            projPath = selfPath[:selfPath.find("community")]
        else:
            projPath = selfPath[:selfPath.find("tests")]

        for root, dirs, files in os.walk(projPath):
            if ("taosd" in files):
                rootRealPath = os.path.dirname(os.path.realpath(root))
                if ("packaging" not in rootRealPath):
                    buildPath = root[:len(root)-len("/build/bin")]
                    break
        return buildPath
        
    def run(self):
        buildPath = self.getBuildPath()
        if (buildPath == ""):
            tdLog.exit("taosd not found!")
        else:
            tdLog.info("taosd found in %s" % buildPath)
        binPath = buildPath+ "/build/bin/"

        # insert: create one  or mutiple tables per sql and insert multiple rows per sql 
52
        # line_protocol——telnet and json
53
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-1s1tnt1r-sml.json -y " % binPath)
54 55
        tdSql.execute("use db")
        tdSql.query("select count (tbname) from stb0")
56
        tdSql.checkData(0, 0, 10)
57
        tdSql.query("select count (tbname) from stb1")
58
        tdSql.checkData(0, 0, 20)
59
        tdSql.query("select count(*) from stb0")
60
        tdSql.checkData(0, 0, 1000)
61
        tdSql.query("select count(*) from stb1")
62
        tdSql.checkData(0, 0, 4000)        
63 64 65


        # insert: create  mutiple tables per sql and insert one rows per sql . 
66
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-1s1tntmr-sml.json -y " % binPath)
67 68 69 70
        tdSql.execute("use db")
        tdSql.query("select count (tbname) from stb0")
        tdSql.checkData(0, 0, 10)
        tdSql.query("select count (tbname) from stb1")
71
        tdSql.checkData(0, 0, 15)
72
        tdSql.query("select count(*) from stb0")
73
        tdSql.checkData(0, 0, 1500) 
74
        tdSql.query("select count(*) from stb1")
75
        tdSql.checkData(0, 0, 3000) 
76

77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
        # # insert: using parament "insert_interval to controls spped  of insert. 
        # # but We need to have accurate methods to control the speed, such as getting the speed value, checking the count and so on。
        # os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-interval-speed-sml.json -y" % binPath)
        # tdSql.execute("use db")
        # tdSql.query("select tbname from  db.stb0")
        # tdSql.checkRows(100 )
        # # tdSql.query("select count(*) from stb00_0")
        # # tdSql.checkData(0, 0, 20)   
        # tdSql.query("select count(*) from stb0")
        # tdSql.checkData(0, 0, 2000) 
        # tdSql.query("show stables")
        # tdSql.checkData(1, 4, 20)
        # # tdSql.query("select count(*) from stb01_0")
        # # tdSql.checkData(0, 0, 35)   
        # tdSql.query("select count(*) from stb1")
        # tdSql.checkData(0, 0, 700)           
93 94
        
        # spend 2min30s for 3 testcases.
95 96 97
        # insert: drop and child_table_exists combination test 
        # insert: sml can't support parament "childtable_offset and childtable_limit" \ drop=no or child_table_exists = yes

98
        # os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-nodbnodrop-sml.json -y" % binPath)
99
        # tdSql.error("show dbno.stables")
100
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-newdb-sml.json -y" % binPath)
101 102 103 104 105 106 107 108 109 110 111
        tdSql.execute("use db")
        tdSql.query("select count (tbname) from stb0")
        tdSql.checkData(0, 0, 5)
        tdSql.query("select count (tbname) from stb1")
        tdSql.checkData(0, 0, 6)
        tdSql.query("select count (tbname) from stb2")
        tdSql.checkData(0, 0, 7)
        tdSql.query("select count (tbname) from stb3")
        tdSql.checkData(0, 0, 8)        
        tdSql.query("select count (tbname) from stb4")
        tdSql.checkData(0, 0, 8)  
112
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-renewdb-sml.json -y" % binPath)
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
        tdSql.execute("use db")             
        tdSql.query("select count(*) from stb0")
        tdSql.checkData(0, 0, 50) 
        tdSql.query("select count(*) from stb1")
        tdSql.checkData(0, 0, 120) 
        tdSql.query("select count(*) from stb2")
        tdSql.checkData(0, 0, 140) 
        tdSql.query("select count(*) from stb3")
        tdSql.checkData(0, 0, 160)
        tdSql.query("select count(*) from stb4")
        tdSql.checkData(0, 0, 160)


        # insert:  let parament in json file  is illegal, it'll expect error.
        tdSql.execute("drop database if exists db") 
128
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertColumnsAndTagNumLarge4096-sml.json -y " % binPath)
129 130
        tdSql.error("use db")
        tdSql.execute("drop database if exists db") 
131
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertSigcolumnsNum4096-sml.json -y " % binPath)
132 133
        tdSql.error("select * from db.stb0")
        # tdSql.execute("drop database if exists db") 
134
        # os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertColumnsAndTagNum4096-sml.json -y " % binPath)
135 136
        # tdSql.query("select count(*) from db.stb0")
        # tdSql.checkData(0, 0, 10000) 
137 138 139 140
        # tdSql.execute("drop database if exists db")
        # os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertInterlaceRowsLarge1M-sml.json -y " % binPath)
        # tdSql.query("select count(*) from db.stb0")
        # tdSql.checkRows(0)
141
        tdSql.execute("drop database if exists db") 
142
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertColumnsNum0-sml.json -y " % binPath)
143 144 145 146
        tdSql.execute("use db") 
        tdSql.query("show stables like 'stb0%' ")
        tdSql.checkData(0, 2, 11)
        tdSql.execute("drop database if exists db") 
147
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertTagsNumLarge128-sml.json -y " % binPath)   
148 149
        tdSql.error("use db1") 
        tdSql.execute("drop database if exists db") 
150
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertBinaryLenLarge16374AllcolLar49151-sml.json -y " % binPath)   
151 152 153 154 155 156 157
        tdSql.query("select count(*) from db.stb0") 
        tdSql.checkRows(1)
        tdSql.query("select count(*) from db.stb1") 
        tdSql.checkRows(1)
        tdSql.query("select count(*) from db.stb3") 
        tdSql.checkRows(1)
        tdSql.execute("drop database if exists db") 
158 159 160 161
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertBinaryLenLarge16374AllcolLar49151-error-sml.json -y " % binPath)   
        tdSql.error("select * from db.stb4")
        tdSql.error("select * from db.stb2")
        tdSql.execute("drop database if exists db") 
162
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertNumOfrecordPerReq0-sml.json -y " % binPath)   
163 164
        tdSql.error("select count(*) from db.stb0") 
        tdSql.execute("drop database if exists db") 
165
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertNumOfrecordPerReqless0-sml.json -y " % binPath)   
166 167
        tdSql.error("use db") 
        tdSql.execute("drop database if exists db") 
168
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertChildTab0-sml.json -y " % binPath)   
169 170
        tdSql.error("use db") 
        tdSql.execute("drop database if exists db") 
171
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertChildTabLess0-sml.json -y " % binPath)   
172 173
        tdSql.error("use db") 
        tdSql.execute("drop database if exists blf") 
174 175

        # child table name is invalid reading,so 
176
        # os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertTimestepMulRowsLargeint16-sml.json -y " % binPath)   
177 178 179 180 181 182 183 184
        # tdSql.execute("use blf") 
        # tdSql.query("select ts from blf.p_0_topics_7 limit 262800,1") 
        # tdSql.checkData(0, 0, "2020-03-31 12:00:00.000")
        # tdSql.query("select first(ts) from blf.p_0_topics_2")
        # tdSql.checkData(0, 0, "2019-10-01 00:00:00")
        # tdSql.query("select last(ts) from blf.p_0_topics_6 ")        
        # tdSql.checkData(0, 0, "2020-09-29 23:59:00")

185
        # it will be commented in ci because it spend too much time to insert data, but when you can excute it when you want to test this case.
186
        # os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertMaxNumPerReq-sml.json -y " % binPath)
187 188 189 190 191
        # tdSql.execute("use db")
        # tdSql.query("select count(*) from stb0")
        # tdSql.checkData(0, 0, 5000000)
        # tdSql.query("select count(*) from stb1")
        # tdSql.checkData(0, 0, 5000000)
192
        # os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insertMaxNumPerReq-sml-telnet.json -y " % binPath)
193 194 195 196 197
        # tdSql.execute("use db")
        # tdSql.query("select count(*) from stb0")
        # tdSql.checkData(0, 0, 5000000)
        # tdSql.query("select count(*) from stb1")
        # tdSql.checkData(0, 0, 5000000)
198 199


200

201
        # insert: timestamp and step 
202
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-timestep-sml.json -y " % binPath)
203 204 205 206 207
        tdSql.execute("use db")
        tdSql.query("select count (tbname) from stb0")
        tdSql.checkData(0, 0, 10)
        tdSql.query("select count (tbname) from stb1")
        tdSql.checkData(0, 0, 20)
208 209
        # tdSql.query("select last(ts) from db.stb00_0")
        # tdSql.checkData(0, 0, "2020-10-01 00:00:00.019000")   
210 211
        tdSql.query("select count(*) from stb0")
        tdSql.checkData(0, 0, 200) 
212 213
        # tdSql.query("select last(ts) from db.stb01_0")
        # tdSql.checkData(0, 0, "2020-11-01 00:00:00.190000")   
214 215 216 217
        tdSql.query("select count(*) from stb1")
        tdSql.checkData(0, 0, 400) 

        # # insert:  disorder_ratio
218
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-disorder-sml.json 2>&1  -y " % binPath)
219 220 221 222 223 224 225 226 227 228
        tdSql.execute("use db")
        tdSql.query("select count (tbname) from stb0")
        tdSql.checkData(0, 0, 1)
        tdSql.query("select count (tbname) from stb1")
        tdSql.checkData(0, 0, 1)
        tdSql.query("select count(*) from stb0")
        tdSql.checkData(0, 0, 10) 
        tdSql.query("select count(*) from stb1")
        tdSql.checkData(0, 0, 10) 

229
        # insert:  doesn‘t currently supported sample json
230
        assert os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-sample-sml.json -y " % binPath) != 0 
231 232 233 234 235 236 237 238 239
        # tdSql.execute("use dbtest123")
        # tdSql.query("select c2 from stb0")
        # tdSql.checkData(0, 0, 2147483647)
        # tdSql.query("select * from stb1 where t1=-127")
        # tdSql.checkRows(20)
        # tdSql.query("select * from stb1 where t2=127")
        # tdSql.checkRows(10)
        # tdSql.query("select * from stb1 where t2=126")
        # tdSql.checkRows(10)
240 241

        # insert: test interlace parament 
242
        os.system("%staosBenchmark -f tools/taosdemoAllTest/sml/insert-interlace-row-sml.json -y " % binPath)
243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
        tdSql.execute("use db")
        tdSql.query("select count (tbname) from stb0")
        tdSql.checkData(0, 0, 100)
        tdSql.query("select count (*) from stb0")
        tdSql.checkData(0, 0, 15000)        


        testcaseFilename = os.path.split(__file__)[-1]
        os.system("rm -rf ./insert_res.txt")
        os.system("rm -rf tools/taosdemoAllTest/%s.sql" % testcaseFilename )     
        
        
        
    def stop(self):
        tdSql.close()
        tdLog.success("%s successfully executed" % __file__)


tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())