Merge pull request #2584 from taosdata/feature/sangshuduo/add-pytest-to-test-client
add python test to cover "alter dnode"
This commit is contained in:
commit
1c0f981c4e
|
@ -78,5 +78,6 @@ class TDTestCase:
|
|||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
||||
|
|
|
@ -40,6 +40,9 @@ class TDTestCase:
|
|||
ret = tdSql.query('select server_status() as result')
|
||||
tdSql.checkData(0, 0, 1)
|
||||
|
||||
ret = tdSql.execute('alter dnode 127.0.0.1 debugFlag 135')
|
||||
tdLog.info("alter dnode ret: %d" % ret)
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/bin/bash
|
||||
ulimit -c unlimited
|
||||
|
||||
python3 ./test.py -f client/client.py
|
||||
python3 ./test.py -f insert/basic.py
|
||||
python3 ./test.py -f insert/int.py
|
||||
python3 ./test.py -f insert/float.py
|
||||
|
@ -151,3 +150,6 @@ python3 ./test.py -f stream/stream2.py
|
|||
|
||||
#alter table
|
||||
python3 ./test.py -f alter/alter_table_crash.py
|
||||
|
||||
# client
|
||||
python3 ./test.py -f client/client.py
|
||||
|
|
|
@ -75,6 +75,7 @@ class DBWriteNonStop:
|
|||
self.cursor.close()
|
||||
self.conn.close()
|
||||
|
||||
|
||||
test = DBWriteNonStop()
|
||||
test.connectDB()
|
||||
test.createTable()
|
||||
|
|
|
@ -89,16 +89,24 @@ class TDTestCase:
|
|||
tdSql.checkRows(101)
|
||||
|
||||
# range for int type on column
|
||||
tdSql.query("select * from st%s where num > 50 and num < 100" % curType)
|
||||
tdSql.query(
|
||||
"select * from st%s where num > 50 and num < 100" %
|
||||
curType)
|
||||
tdSql.checkRows(49)
|
||||
|
||||
tdSql.query("select * from st%s where num >= 50 and num < 100" % curType)
|
||||
tdSql.query(
|
||||
"select * from st%s where num >= 50 and num < 100" %
|
||||
curType)
|
||||
tdSql.checkRows(50)
|
||||
|
||||
tdSql.query("select * from st%s where num > 50 and num <= 100" % curType)
|
||||
tdSql.query(
|
||||
"select * from st%s where num > 50 and num <= 100" %
|
||||
curType)
|
||||
tdSql.checkRows(50)
|
||||
|
||||
tdSql.query("select * from st%s where num >= 50 and num <= 100" % curType)
|
||||
tdSql.query(
|
||||
"select * from st%s where num >= 50 and num <= 100" %
|
||||
curType)
|
||||
tdSql.checkRows(51)
|
||||
|
||||
# > for int type on tag
|
||||
|
@ -137,13 +145,19 @@ class TDTestCase:
|
|||
tdSql.query("select * from st%s where id > 5 and id < 7" % curType)
|
||||
tdSql.checkRows(10)
|
||||
|
||||
tdSql.query("select * from st%s where id >= 5 and id < 7" % curType)
|
||||
tdSql.query(
|
||||
"select * from st%s where id >= 5 and id < 7" %
|
||||
curType)
|
||||
tdSql.checkRows(20)
|
||||
|
||||
tdSql.query("select * from st%s where id > 5 and id <= 7" % curType)
|
||||
tdSql.query(
|
||||
"select * from st%s where id > 5 and id <= 7" %
|
||||
curType)
|
||||
tdSql.checkRows(20)
|
||||
|
||||
tdSql.query("select * from st%s where id >= 5 and id <= 7" % curType)
|
||||
tdSql.query(
|
||||
"select * from st%s where id >= 5 and id <= 7" %
|
||||
curType)
|
||||
tdSql.checkRows(30)
|
||||
|
||||
print(
|
||||
|
|
|
@ -57,7 +57,7 @@ class MetadataQuery:
|
|||
cursor = self.connectDB()
|
||||
cursor.execute("use test")
|
||||
|
||||
tablesPerThread = int (self.tables / self.numOfTherads)
|
||||
tablesPerThread = int(self.tables / self.numOfTherads)
|
||||
base = threadID * tablesPerThread
|
||||
for i in range(tablesPerThread):
|
||||
cursor.execute(
|
||||
|
@ -68,13 +68,61 @@ class MetadataQuery:
|
|||
%d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d',
|
||||
%d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d',
|
||||
%d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')''' %
|
||||
(base + i + 1,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100))
|
||||
(base + i + 1, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100))
|
||||
|
||||
cursor.execute(
|
||||
"insert into t%d values(%d, 1) (%d, 2) (%d, 3) (%d, 4) (%d, 5)" %
|
||||
|
|
|
@ -19,6 +19,7 @@ import time
|
|||
from datetime import datetime
|
||||
import numpy as np
|
||||
|
||||
|
||||
class MyThread(threading.Thread):
|
||||
|
||||
def __init__(self, func, args=()):
|
||||
|
@ -35,17 +36,23 @@ class MyThread(threading.Thread):
|
|||
except Exception:
|
||||
return None
|
||||
|
||||
|
||||
class MetadataQuery:
|
||||
def initConnection(self):
|
||||
self.tables = 100
|
||||
self.records = 10
|
||||
self.numOfTherads =5
|
||||
self.numOfTherads = 5
|
||||
self.ts = 1537146000000
|
||||
self.host = "127.0.0.1"
|
||||
self.user = "root"
|
||||
self.password = "taosdata"
|
||||
self.config = "/etc/taos"
|
||||
self.conn = taos.connect( self.host, self.user, self.password, self.config)
|
||||
self.conn = taos.connect(
|
||||
self.host,
|
||||
self.user,
|
||||
self.password,
|
||||
self.config)
|
||||
|
||||
def connectDB(self):
|
||||
return self.conn.cursor()
|
||||
|
||||
|
@ -69,7 +76,7 @@ class MetadataQuery:
|
|||
cursor.execute("use test")
|
||||
base = threadID * self.tables
|
||||
|
||||
tablesPerThread = int (self.tables / self.numOfTherads)
|
||||
tablesPerThread = int(self.tables / self.numOfTherads)
|
||||
for i in range(tablesPerThread):
|
||||
cursor.execute(
|
||||
'''create table t%d using meters tags(
|
||||
|
@ -79,20 +86,69 @@ class MetadataQuery:
|
|||
%d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d',
|
||||
%d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d',
|
||||
%d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d')''' %
|
||||
(base + i + 1,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100,
|
||||
(base + i) %100, (base + i) %10000, (base + i) %1000000, (base + i) %100000000, (base + i) %100 * 1.1, (base + i) %100 * 2.3, (base + i) %2, (base + i) %100, (base + i) %100))
|
||||
(base + i + 1, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
100, (base + i) %
|
||||
10000, (base + i) %
|
||||
1000000, (base + i) %
|
||||
100000000, (base + i) %
|
||||
100 * 1.1, (base + i) %
|
||||
100 * 2.3, (base + i) %
|
||||
2, (base + i) %
|
||||
100, (base + i) %
|
||||
100))
|
||||
for j in range(self.records):
|
||||
cursor.execute(
|
||||
"insert into t%d values(%d, %d)" %
|
||||
(base + i + 1, self.ts + j, j))
|
||||
cursor.close()
|
||||
|
||||
def queryWithTagId(self, threadId, tagId, queryNum):
|
||||
print("---------thread%d start-----------"%threadId)
|
||||
print("---------thread%d start-----------" % threadId)
|
||||
query = '''select tgcol1, tgcol2, tgcol3, tgcol4, tgcol5, tgcol6, tgcol7, tgcol8, tgcol9,
|
||||
tgcol10, tgcol11, tgcol12, tgcol13, tgcol14, tgcol15, tgcol16, tgcol17, tgcol18,
|
||||
tgcol19, tgcol20, tgcol21, tgcol22, tgcol23, tgcol24, tgcol25, tgcol26, tgcol27,
|
||||
|
@ -105,11 +161,12 @@ class MetadataQuery:
|
|||
cursor.execute("use test")
|
||||
for i in range(queryNum):
|
||||
startTime = time.time()
|
||||
cursor.execute(query.format(id = tagId, condition = i))
|
||||
cursor.execute(query.format(id=tagId, condition=i))
|
||||
cursor.fetchall()
|
||||
latancy.append((time.time() - startTime))
|
||||
print("---------thread%d end-----------"%threadId)
|
||||
print("---------thread%d end-----------" % threadId)
|
||||
return latancy
|
||||
|
||||
def queryData(self, query):
|
||||
cursor = self.connectDB()
|
||||
cursor.execute("use test")
|
||||
|
@ -124,7 +181,7 @@ class MetadataQuery:
|
|||
(endTime - startTime).seconds)
|
||||
|
||||
cursor.close()
|
||||
#self.conn.close()
|
||||
# self.conn.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -137,13 +194,28 @@ if __name__ == '__main__':
|
|||
tagId = 1
|
||||
queryNum = 1000
|
||||
for i in range(t.numOfTherads):
|
||||
thread = MyThread(t.queryWithTagId, args = (i, tagId, queryNum))
|
||||
thread = MyThread(t.queryWithTagId, args=(i, tagId, queryNum))
|
||||
threads.append(thread)
|
||||
thread.start()
|
||||
for i in range(t.numOfTherads):
|
||||
threads[i].join()
|
||||
latancys.extend(threads[i].get_result())
|
||||
print("Total query: %d"%(queryNum * t.numOfTherads))
|
||||
print("statistic(s): mean= %f, P50 = %f, P75 = %f, P95 = %f, P99 = %f"
|
||||
%(sum(latancys)/(queryNum * t.numOfTherads), np.percentile(latancys, 50), np.percentile(latancys, 75), np.percentile(latancys, 95), np.percentile(latancys, 99)))
|
||||
|
||||
print("Total query: %d" % (queryNum * t.numOfTherads))
|
||||
print(
|
||||
"statistic(s): mean= %f, P50 = %f, P75 = %f, P95 = %f, P99 = %f" %
|
||||
(sum(latancys) /
|
||||
(
|
||||
queryNum *
|
||||
t.numOfTherads),
|
||||
np.percentile(
|
||||
latancys,
|
||||
50),
|
||||
np.percentile(
|
||||
latancys,
|
||||
75),
|
||||
np.percentile(
|
||||
latancys,
|
||||
95),
|
||||
np.percentile(
|
||||
latancys,
|
||||
99)))
|
||||
|
|
|
@ -23,7 +23,6 @@ class TDTestCase:
|
|||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor())
|
||||
|
||||
|
||||
self.rowNum = 5000
|
||||
self.ts = 1537146000000
|
||||
|
||||
|
@ -36,7 +35,9 @@ class TDTestCase:
|
|||
"create table t1 using st tags('dev_001')")
|
||||
|
||||
for i in range(self.rowNum):
|
||||
tdSql.execute("insert into t1 values(%d, 'taosdata%d', %d)" % (self.ts + i, i + 1, i + 1))
|
||||
tdSql.execute(
|
||||
"insert into t1 values(%d, 'taosdata%d', %d)" %
|
||||
(self.ts + i, i + 1, i + 1))
|
||||
|
||||
tdSql.query("select last(*) from st")
|
||||
tdSql.checkRows(1)
|
||||
|
|
|
@ -330,7 +330,6 @@ class Test (Thread):
|
|||
self.q.put(-1)
|
||||
tdLog.exit("second thread failed, first thread exit too")
|
||||
|
||||
|
||||
elif (self.threadId == 2):
|
||||
while True:
|
||||
self.dbEvent.wait()
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/bin/bash
|
||||
ulimit -c unlimited
|
||||
|
||||
python3 ./test.py -f client/client.py
|
||||
python3 ./test.py -f insert/basic.py
|
||||
python3 ./test.py -f insert/int.py
|
||||
python3 ./test.py -f insert/float.py
|
||||
|
@ -146,4 +145,5 @@ python3 ./test.py -f stream/stream2.py
|
|||
#alter table
|
||||
python3 ./test.py -f alter/alter_table_crash.py
|
||||
|
||||
|
||||
# client
|
||||
python3 ./test.py -f client/client.py
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
#!/bin/bash
|
||||
ulimit -c unlimited
|
||||
|
||||
# client
|
||||
python3 ./test.py $1 -f client/client.py
|
||||
python3 ./test.py $1 -s && sleep 1
|
||||
|
||||
# insert
|
||||
python3 ./test.py $1 -f insert/basic.py
|
||||
python3 ./test.py $1 -s && sleep 1
|
||||
|
@ -35,3 +31,7 @@ python3 ./test.py $1 -s && sleep 1
|
|||
python3 ./test.py $1 -f query/filter.py
|
||||
python3 ./test.py $1 -s && sleep 1
|
||||
|
||||
# client
|
||||
python3 ./test.py $1 -f client/client.py
|
||||
python3 ./test.py $1 -s && sleep 1
|
||||
|
||||
|
|
Loading…
Reference in New Issue