diff --git a/tests/pytest/concurrent_inquiry.py b/tests/pytest/concurrent_inquiry.py new file mode 100644 index 0000000000000000000000000000000000000000..faefc8a1c296c10e8b4fc18c2e72a6b0ff8fda44 --- /dev/null +++ b/tests/pytest/concurrent_inquiry.py @@ -0,0 +1,146 @@ +################################################################### +# 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 threading +import taos + +import json +import time +import random +# query sql +query_sql = [ +# first supertable +"select count(*) from test.meters where c1 > 50;", +"select count(*) from test.meters where c2 >= 50 and c2 < 100;", +"select count(*) from test.meters where c3 != 5;", +"select count(*) from test.meters where t3 > 2;", +"select count(*) from test.meters where ts <> '2020-05-13 10:00:00.002';", +"select count(*) from test.meters where t7 like 'fi%';", +"select count(*) from test.meters where t7 like '_econd';", +"select count(*) from test.meters interval(1n) order by ts desc;", +"select first(*) from test.meters;", +"select last(*) from test.meters;", +"select last_row(*) from test.meters;", +"select twa(c1) from test.t1 where ts > 1500000001000 and ts < 1500000101000" , +"select avg(c1) from test.meters;", +"select bottom(c1, 2) from test.t1;", +"select diff(c1) from test.t1;", +"select leastsquares(c1, 1, 1) from test.t1 ;", +"select max(c1) from test.meters;", +"select min(c1) from test.meters;", +"select c1 + c2 * c3 + c1 / c5 + c4 + c2 from test.t1;", +"select percentile(c1, 50) from test.t1;", +"select spread(c1) from test.t1 ;", +"select stddev(c1) from test.t1;", +"select sum(c1) from test.meters;", +"select top(c1, 2) from test.meters;" +"select twa(c6) from test.t1 where ts > 1500000001000 and ts < 1500000101000" , +"select avg(c6) from test.meters;", +"select bottom(c6, 2) from test.t1;", +"select diff(c6) from test.t1;", +"select leastsquares(c6, 1, 1) from test.t1 ;", +"select max(c6) from test.meters;", +"select min(c6) from test.meters;", +"select c6 + c2 * c3 + c6 / c5 + c4 + c2 from test.t1;", +"select percentile(c6, 50) from test.t1;", +"select spread(c6) from test.t1 ;", +"select stddev(c6) from test.t1;", +"select sum(c6) from test.meters;", +"select top(c6, 2) from test.meters;", +# second supertable +"select count(*) from test.meters1 where c1 > 50;", +"select count(*) from test.meters1 where c2 >= 50 and c2 < 100;", +"select count(*) from test.meters1 where c3 != 5;", +"select count(*) from test.meters1 where t3 > 2;", +"select count(*) from test.meters1 where ts <> '2020-05-13 10:00:00.002';", +"select count(*) from test.meters1 where t7 like 'fi%';", +"select count(*) from test.meters1 where t7 like '_econd';", +"select count(*) from test.meters1 interval(1n) order by ts desc;", +"select first(*) from test.meters1;", +"select last(*) from test.meters1;", +"select last_row(*) from test.meters1;", +"select twa(c1) from test.m1 where ts > 1500000001000 and ts < 1500000101000" , +"select avg(c1) from test.meters1;", +"select bottom(c1, 2) from test.m1;", +"select diff(c1) from test.m1;", +"select leastsquares(c1, 1, 1) from test.m1 ;", +"select max(c1) from test.meters1;", +"select min(c1) from test.meters1;", +"select c1 + c2 * c3 + c1 / c5 + c3 + c2 from test.m1;", +"select percentile(c1, 50) from test.m1;", +"select spread(c1) from test.m1 ;", +"select stddev(c1) from test.m1;", +"select sum(c1) from test.meters1;", +"select top(c1, 2) from test.meters1;", +"select twa(c6) from test.m1 where ts > 1500000001000 and ts < 1500000101000" , +"select avg(c6) from test.meters1;", +"select bottom(c6, 2) from test.m1;", +"select diff(c6) from test.m1;", +"select leastsquares(c6, 1, 1) from test.m1 ;", +"select max(c6) from test.meters1;", +"select min(c6) from test.meters1;", +"select c6 + c2 * c3 + c6 / c5 + c3 + c2 from test.m1;", +"select percentile(c6, 50) from test.m1;", +"select spread(c6) from test.m1 ;", +"select stddev(c6) from test.m1;", +"select sum(c6) from test.meters1;", +"select top(c6, 2) from test.meters1;" +] + +class ConcurrentInquiry: + def initConnection(self): + self.numOfTherads = 50 + self.ts=1500000001000 + + + def query_thread(self,threadID): + host = "10.211.55.14" + user = "root" + password = "taosdata" + conn = taos.connect( + host, + user, + password, + ) + cl = conn.cursor() + + print("Thread %d: starting" % threadID) + + while True: + ran_query_sql=query_sql + random.shuffle(ran_query_sql) + for i in ran_query_sql: + print("Thread %d : %s"% (threadID,i)) + try: + cl.execute(i) + cl.fetchall + except Exception as e: + print( + "Failure thread%d, sql: %s,exception: %s" % + (threadID, str(i),str(e))) + + + print("Thread %d: finishing" % threadID) + + + + def run(self): + + threads = [] + for i in range(50): + thread = threading.Thread(target=self.query_thread, args=(i,)) + threads.append(thread) + thread.start() + +q = ConcurrentInquiry() +q.initConnection() +q.run()