From 45a729f14735d56775c958c9057fae5540a56f8b Mon Sep 17 00:00:00 2001 From: tomchon Date: Sat, 11 Jun 2022 22:10:04 +0800 Subject: [PATCH] test:modify testcase of muti-mnode --- tests/system-test/6-cluster/5dnode1mnode.py | 7 +- tests/system-test/6-cluster/5dnode2mnode.py | 23 +- .../system-test/6-cluster/5dnode3mnodeDrop.py | 258 +++++++++++------- .../system-test/6-cluster/5dnode3mnodeStop.py | 53 ++-- .../6-cluster/5dnode3mnodeStopInsert.py | 10 +- 5 files changed, 214 insertions(+), 137 deletions(-) diff --git a/tests/system-test/6-cluster/5dnode1mnode.py b/tests/system-test/6-cluster/5dnode1mnode.py index 96a50589d1..7c3715cd0b 100644 --- a/tests/system-test/6-cluster/5dnode1mnode.py +++ b/tests/system-test/6-cluster/5dnode1mnode.py @@ -26,6 +26,7 @@ class TDTestCase: self.TDDnodes = None self.depoly_cluster(5) self.master_dnode = self.TDDnodes.dnodes[0] + self.host=self.master_dnode.cfgDict["fqdn"] conn1 = taos.connect(self.master_dnode.cfgDict["fqdn"] , config=self.master_dnode.cfgDir) tdSql.init(conn1.cursor()) @@ -89,12 +90,12 @@ class TDTestCase: def five_dnode_one_mnode(self): tdSql.query("show dnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') - tdSql.checkData(4,1,'chenhaoran02:6430') + tdSql.checkData(0,1,'%s:6030'%self.host) + tdSql.checkData(4,1,'%s:6430'%self.host) tdSql.checkData(0,4,'ready') tdSql.checkData(4,4,'ready') tdSql.query("show mnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'leader') tdSql.checkData(0,3,'ready') diff --git a/tests/system-test/6-cluster/5dnode2mnode.py b/tests/system-test/6-cluster/5dnode2mnode.py index 437bbae4fd..9d9cc9c0d6 100644 --- a/tests/system-test/6-cluster/5dnode2mnode.py +++ b/tests/system-test/6-cluster/5dnode2mnode.py @@ -26,6 +26,7 @@ class TDTestCase: self.TDDnodes = None self.depoly_cluster(5) self.master_dnode = self.TDDnodes.dnodes[0] + self.host=self.master_dnode.cfgDict["fqdn"] conn1 = taos.connect(self.master_dnode.cfgDict["fqdn"] , config=self.master_dnode.cfgDir) tdSql.init(conn1.cursor()) @@ -89,12 +90,12 @@ class TDTestCase: def five_dnode_one_mnode(self): tdSql.query("show dnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') - tdSql.checkData(4,1,'chenhaoran02:6430') + tdSql.checkData(0,1,'%s:6030'%self.host) + tdSql.checkData(4,1,'%s:6430'%self.host) tdSql.checkData(0,4,'ready') tdSql.checkData(4,4,'ready') tdSql.query("show mnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'leader') tdSql.checkData(0,3,'ready') @@ -122,12 +123,12 @@ class TDTestCase: def five_dnode_two_mnode(self): tdSql.query("show dnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') - tdSql.checkData(4,1,'chenhaoran02:6430') + tdSql.checkData(0,1,'%s:6030'%self.host) + tdSql.checkData(4,1,'%s:6430'%self.host) tdSql.checkData(0,4,'ready') tdSql.checkData(4,4,'ready') tdSql.query("show mnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'leader') tdSql.checkData(0,3,'ready') @@ -152,10 +153,10 @@ class TDTestCase: # fisrt check statut ready - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'leader') tdSql.checkData(0,3,'ready') - tdSql.checkData(1,1,'chenhaoran02:6130') + tdSql.checkData(1,1,'%s:6130'%self.host) tdSql.checkData(1,2,'follower') tdSql.checkData(1,3,'ready') @@ -187,7 +188,7 @@ class TDTestCase: # tdSql.execute("drop mnode on dnode 2") # tdSql.query("show mnodes;") # tdSql.checkRows(1) - # tdSql.checkData(0,1,'chenhaoran02:6030') + # tdSql.checkData(0,1,'%s:6030'%self.host) # tdSql.checkData(0,2,'leader') # tdSql.checkData(0,3,'ready') @@ -207,10 +208,10 @@ class TDTestCase: # tdSql.query("show mnodes;") # tdSql.checkRows(2) - # tdSql.checkData(0,1,'chenhaoran02:6030') + # tdSql.checkData(0,1,'%s:6030'%self.host) # tdSql.checkData(0,2,'leader') # tdSql.checkData(0,3,'ready') - # tdSql.checkData(1,1,'chenhaoran02:6130') + # tdSql.checkData(1,1,'%s:6130'%self.host) # tdSql.checkData(1,2,'follower') # tdSql.checkData(2,3,'ready') diff --git a/tests/system-test/6-cluster/5dnode3mnodeDrop.py b/tests/system-test/6-cluster/5dnode3mnodeDrop.py index c1fa2c62d7..1512fc9897 100644 --- a/tests/system-test/6-cluster/5dnode3mnodeDrop.py +++ b/tests/system-test/6-cluster/5dnode3mnodeDrop.py @@ -1,4 +1,5 @@ from ssl import ALERT_DESCRIPTION_CERTIFICATE_UNOBTAINABLE +from paramiko import HostKeys import taos import sys import time @@ -12,7 +13,7 @@ from util.dnodes import TDDnode import time import socket import subprocess - +from multiprocessing import Process class MyDnodes(TDDnodes): def __init__(self ,dnodes_lists): super(MyDnodes,self).__init__() @@ -24,11 +25,13 @@ class TDTestCase: def init(self,conn ,logSql): tdLog.debug(f"start to excute {__file__}") self.TDDnodes = None - self.depoly_cluster(5) + + def buildcluster(self,dnodenumber): + self.depoly_cluster(dnodenumber) self.master_dnode = self.TDDnodes.dnodes[0] + self.host=self.master_dnode.cfgDict["fqdn"] conn1 = taos.connect(self.master_dnode.cfgDict["fqdn"] , config=self.master_dnode.cfgDir) tdSql.init(conn1.cursor()) - def getBuildPath(self): selfPath = os.path.dirname(os.path.realpath(__file__)) @@ -46,12 +49,33 @@ class TDTestCase: break return buildPath + def insert_data(self,count): + # fisrt add data : db\stable\childtable\general table + for couti in count: + tdSql.execute("drop database if exists db%d" %couti) + tdSql.execute("create database if not exists db%d replica 1 days 300" %couti) + tdSql.execute("use db%d" %couti) + tdSql.execute( + '''create table stb1 + (ts timestamp, c1 int, c2 bigint, c3 smallint, c4 tinyint, c5 float, c6 double, c7 bool, c8 binary(16),c9 nchar(32), c10 timestamp) + tags (t1 int) + ''' + ) + tdSql.execute( + ''' + create table t1 + (ts timestamp, c1 int, c2 bigint, c3 smallint, c4 tinyint, c5 float, c6 double, c7 bool, c8 binary(16),c9 nchar(32), c10 timestamp) + ''' + ) + for i in range(4): + tdSql.execute(f'create table ct{i+1} using stb1 tags ( {i+1} )') def depoly_cluster(self ,dnodes_nums): testCluster = False valgrind = 0 hostname = socket.gethostname() + print(hostname) dnodes = [] start_port = 6030 for num in range(1, dnodes_nums+1): @@ -85,128 +109,161 @@ class TDTestCase: os.system(cmd) time.sleep(2) - tdLog.info(" create cluster done! ") + tdLog.info(" create cluster with %d dnode done! " %dnodes_nums) + + def check3mnode(self): + count=0 + while count < 10: + time.sleep(1) + tdSql.query("show mnodes;") + if tdSql.checkRows(3) : + if tdSql.queryResult[0][2]=='leader' : + if tdSql.queryResult[1][2]=='follower': + if tdSql.queryResult[2][2]=='follower': + print("three mnodes is ready in 10s") + break + elif tdSql.queryResult[0][2]=='follower' : + if tdSql.queryResult[1][2]=='leader': + if tdSql.queryResult[2][2]=='follower': + print("three mnodes is ready in 10s") + break + elif tdSql.queryResult[0][2]=='follower' : + if tdSql.queryResult[1][2]=='follower': + if tdSql.queryResult[2][2]=='leader': + print("three mnodes is ready in 10s") + break + count+=1 + else: + print("three mnodes is not ready in 10s ") - def five_dnode_three_mnode(self): - tdSql.query("show dnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') - tdSql.checkData(4,1,'chenhaoran02:6430') - tdSql.checkData(0,4,'ready') - tdSql.checkData(4,4,'ready') tdSql.query("show mnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') - tdSql.checkData(0,2,'leader') + tdSql.checkRows(3) + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,3,'ready') + tdSql.checkData(1,1,'%s:6130'%self.host) + tdSql.checkData(1,3,'ready') + tdSql.checkData(2,1,'%s:6230'%self.host) + tdSql.checkData(2,3,'ready') - # fisr add three mnodes; - tdSql.execute("create mnode on dnode 2") - tdSql.execute("create mnode on dnode 3") + def check3mnode1off(self): + count=0 + while count < 10: + time.sleep(1) + tdSql.query("show mnodes;") + if tdSql.checkRows(3) : + if tdSql.queryResult[0][2]=='offline' : + if tdSql.queryResult[1][2]=='leader': + if tdSql.queryResult[2][2]=='follower': + print("stop mnodes on dnode 2 successfully in 10s") + break + elif tdSql.queryResult[1][2]=='follower': + if tdSql.queryResult[2][2]=='leader': + print("stop mnodes on dnode 2 successfully in 10s") + break + count+=1 + else: + print("stop mnodes on dnode 2 failed in 10s ") + + tdSql.query("show mnodes;") + tdSql.checkRows(3) + tdSql.checkData(0,1,'%s:6030'%self.host) + tdSql.checkData(0,2,'offline') + tdSql.checkData(0,3,'ready') + tdSql.checkData(1,1,'%s:6130'%self.host) + tdSql.checkData(1,3,'ready') + tdSql.checkData(2,1,'%s:6230'%self.host) + tdSql.checkData(2,3,'ready') + def check3mnode2drop(self): count=0 while count < 10: time.sleep(1) tdSql.query("show mnodes;") - tdSql.checkRows(3) - if tdSql.queryResult[0][2]=='leader' : - if tdSql.queryResult[1][2]=='follower': - if tdSql.queryResult[2][2]=='follower': - print("three mnodes is ready in 10s") - break + if tdSql.checkRows(3) : + if tdSql.queryResult[0][2]=='leader' : + if tdSql.queryResult[1][2]=='offline': + if tdSql.queryResult[2][2]=='follower': + print("stop mnodes on dnode 2 successfully in 10s") + break count+=1 else: - print("three mnodes is not ready in 10s ") + print("stop mnodes on dnode 2 failed in 10s ") - # fisrt check statut ready - tdSql.query("show mnodes;") + tdSql.query("show mnodes;") tdSql.checkRows(3) - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'leader') tdSql.checkData(0,3,'ready') - tdSql.checkData(1,1,'chenhaoran02:6130') - tdSql.checkData(1,2,'follower') + tdSql.checkData(1,1,'%s:6130'%self.host) + tdSql.checkData(1,2,'offline') tdSql.checkData(1,3,'ready') - tdSql.checkData(2,1,'chenhaoran02:6230') + tdSql.checkData(2,1,'%s:6230') tdSql.checkData(2,2,'follower') tdSql.checkData(2,3,'ready') - # fisrt add data : db\stable\childtable\general table + def check3mnode3off(self): + count=0 + while count < 10: + time.sleep(1) + tdSql.query("show mnodes;") + if tdSql.checkRows(3) : + if tdSql.queryResult[0][2]=='leader' : + if tdSql.queryResult[2][2]=='offline': + if tdSql.queryResult[1][2]=='follower': + print("stop mnodes on dnode 3 successfully in 10s") + break + count+=1 + else: + print("stop mnodes on dnode 3 failed in 10s") + + tdSql.query("show mnodes;") + tdSql.checkRows(3) + tdSql.checkData(0,1,'%s:6030'%self.host) + tdSql.checkData(0,2,'leader') + tdSql.checkData(0,3,'ready') + tdSql.checkData(1,1,'%s:6130'%self.host) + tdSql.checkData(1,2,'follower') + tdSql.checkData(1,3,'ready') + tdSql.checkData(2,1,'%s:6230'%self.host) + tdSql.checkData(2,2,'offline') + tdSql.checkData(2,3,'ready') - tdSql.execute("drop database if exists db2") - tdSql.execute("create database if not exists db2 replica 1 days 300") - tdSql.execute("use db2") - tdSql.execute( - '''create table stb1 - (ts timestamp, c1 int, c2 bigint, c3 smallint, c4 tinyint, c5 float, c6 double, c7 bool, c8 binary(16),c9 nchar(32), c10 timestamp) - tags (t1 int) - ''' - ) - tdSql.execute( - ''' - create table t1 - (ts timestamp, c1 int, c2 bigint, c3 smallint, c4 tinyint, c5 float, c6 double, c7 bool, c8 binary(16),c9 nchar(32), c10 timestamp) - ''' - ) - for i in range(4): - tdSql.execute(f'create table ct{i+1} using stb1 tags ( {i+1} )') + + + def five_dnode_three_mnode(self,dnodenumber): + tdSql.query("show dnodes;") + tdSql.checkData(0,1,'%s:6030'%self.host) + tdSql.checkData(4,1,'%s:6430'%self.host) + tdSql.checkData(0,4,'ready') + tdSql.checkData(4,4,'ready') + tdSql.query("show mnodes;") + tdSql.checkRows(1) + tdSql.checkData(0,1,'%s:6030'%self.host) + tdSql.checkData(0,2,'leader') + tdSql.checkData(0,3,'ready') + + # fisr add three mnodes; + tdSql.execute("create mnode on dnode 2") + tdSql.execute("create mnode on dnode 3") + + # fisrt check statut ready + self.check3mnode() tdSql.error("create mnode on dnode 2") + tdSql.error("create mnode on dnode 1") + tdSql.error("create mnode on dnode 3") + + tdSql.error("drop mnode on dnode 1") + tdSql.query("show dnodes;") print(tdSql.queryResult) - # drop and follower of mnode dropcount =0 while dropcount <= 10: - tdSql.execute("drop mnode on dnode 2") - - count=0 - while count < 10: - time.sleep(1) - tdSql.query("show mnodes;") - tdSql.checkRows(2) - if tdSql.queryResult[0][2]=='leader' : - if tdSql.queryResult[1][2]=='follower': - print("drop mnodes on dnone 2 successfully") - break - count+=1 - else: - print("drop mnodes on dnone 2 failed") - # check statut ready - - tdSql.query("show mnodes;") - tdSql.checkRows(2) - tdSql.checkData(0,1,'chenhaoran02:6030') - tdSql.checkData(0,2,'leader') - tdSql.checkData(0,3,'ready') - tdSql.checkData(1,1,'chenhaoran02:6230') - tdSql.checkData(1,2,'follower') - tdSql.checkData(1,3,'ready') - - tdSql.execute("create mnode on dnode 2") - - count=0 - while count < 10: - time.sleep(1) - tdSql.query("show mnodes;") - tdSql.checkRows(3) - if tdSql.queryResult[0][2]=='leader' : - if tdSql.queryResult[1][2]=='follower': - if tdSql.queryResult[2][2]=='follower': - print("three mnodes is ready in 10s") - break - count+=1 - else: - print("three mnodes is not ready in 10s ") - - tdSql.query("show mnodes;") - tdSql.checkRows(3) - tdSql.checkData(0,1,'chenhaoran02:6030') - tdSql.checkData(0,2,'leader') - tdSql.checkData(0,3,'ready') - tdSql.checkData(1,1,'chenhaoran02:6130') - tdSql.checkData(1,2,'follower') - tdSql.checkData(1,3,'ready') - tdSql.checkData(2,1,'chenhaoran02:6230') - tdSql.checkData(2,2,'follower') - tdSql.checkData(2,3,'ready') + for i in range(1,3): + tdSql.execute("drop mnode on dnode %d"%(i+1)) + tdSql.execute("create mnode on dnode %d"%(i+1)) + dropcount+=1 + self.check3mnode() def getConnection(self, dnode): @@ -218,7 +275,8 @@ class TDTestCase: def run(self): # print(self.master_dnode.cfgDict) - self.five_dnode_three_mnode() + self.buildcluster(5) + self.five_dnode_three_mnode(5) def stop(self): tdSql.close() diff --git a/tests/system-test/6-cluster/5dnode3mnodeStop.py b/tests/system-test/6-cluster/5dnode3mnodeStop.py index 60c6844d83..a9784f2d0f 100644 --- a/tests/system-test/6-cluster/5dnode3mnodeStop.py +++ b/tests/system-test/6-cluster/5dnode3mnodeStop.py @@ -28,6 +28,7 @@ class TDTestCase: def buildcluster(self,dnodenumber): self.depoly_cluster(dnodenumber) self.master_dnode = self.TDDnodes.dnodes[0] + self.host=self.master_dnode.cfgDict["fqdn"] conn1 = taos.connect(self.master_dnode.cfgDict["fqdn"] , config=self.master_dnode.cfgDir) tdSql.init(conn1.cursor()) @@ -136,11 +137,11 @@ class TDTestCase: tdSql.query("show mnodes;") tdSql.checkRows(3) - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,3,'ready') - tdSql.checkData(1,1,'chenhaoran02:6130') + tdSql.checkData(1,1,'%s:6130'%self.host) tdSql.checkData(1,3,'ready') - tdSql.checkData(2,1,'chenhaoran02:6230') + tdSql.checkData(2,1,'%s:6230'%self.host) tdSql.checkData(2,3,'ready') def check3mnode1off(self): @@ -164,12 +165,12 @@ class TDTestCase: tdSql.query("show mnodes;") tdSql.checkRows(3) - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'offline') tdSql.checkData(0,3,'ready') - tdSql.checkData(1,1,'chenhaoran02:6130') + tdSql.checkData(1,1,'%s:6130'%self.host) tdSql.checkData(1,3,'ready') - tdSql.checkData(2,1,'chenhaoran02:6230') + tdSql.checkData(2,1,'%s:6230'%self.host) tdSql.checkData(2,3,'ready') def check3mnode2off(self): @@ -189,13 +190,13 @@ class TDTestCase: tdSql.query("show mnodes;") tdSql.checkRows(3) - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'leader') tdSql.checkData(0,3,'ready') - tdSql.checkData(1,1,'chenhaoran02:6130') + tdSql.checkData(1,1,'%s:6130'%self.host) tdSql.checkData(1,2,'offline') tdSql.checkData(1,3,'ready') - tdSql.checkData(2,1,'chenhaoran02:6230') + tdSql.checkData(2,1,'%s:6230'%self.host) tdSql.checkData(2,2,'follower') tdSql.checkData(2,3,'ready') @@ -216,13 +217,13 @@ class TDTestCase: tdSql.query("show mnodes;") tdSql.checkRows(3) - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'leader') tdSql.checkData(0,3,'ready') - tdSql.checkData(1,1,'chenhaoran02:6130') + tdSql.checkData(1,1,'%s:6130'%self.host) tdSql.checkData(1,2,'follower') tdSql.checkData(1,3,'ready') - tdSql.checkData(2,1,'chenhaoran02:6230') + tdSql.checkData(2,1,'%s:6230'%self.host) tdSql.checkData(2,2,'offline') tdSql.checkData(2,3,'ready') @@ -230,13 +231,13 @@ class TDTestCase: def five_dnode_three_mnode(self,dnodenumber): tdSql.query("show dnodes;") - tdSql.checkData(0,1,'chenhaoran02:6030') - tdSql.checkData(4,1,'chenhaoran02:6430') + tdSql.checkData(0,1,'%s:6030'%self.host) + tdSql.checkData(4,1,'%s:6430'%self.host) tdSql.checkData(0,4,'ready') tdSql.checkData(4,4,'ready') tdSql.query("show mnodes;") tdSql.checkRows(1) - tdSql.checkData(0,1,'chenhaoran02:6030') + tdSql.checkData(0,1,'%s:6030'%self.host) tdSql.checkData(0,2,'leader') tdSql.checkData(0,3,'ready') @@ -252,9 +253,23 @@ class TDTestCase: tdSql.query("show dnodes;") print(tdSql.queryResult) - # drop and follower of mnode - dropcount =0 - while dropcount <= 2: + + tdLog.debug("stop and follower of mnode") + # self.TDDnodes.stoptaosd(2) + # self.check3mnode2off() + # self.TDDnodes.starttaosd(2) + + # self.TDDnodes.stoptaosd(3) + # self.check3mnode3off() + # self.TDDnodes.starttaosd(2) + + # self.TDDnodes.stoptaosd(1) + # self.check3mnode1off() + # self.TDDnodes.starttaosd(1) + + # self.check3mnode() + stopcount =0 + while stopcount <= 2: for i in range(dnodenumber): self.TDDnodes.stoptaosd(i+1) # if i == 1 : @@ -266,7 +281,7 @@ class TDTestCase: self.TDDnodes.starttaosd(i+1) # self.check3mnode() - dropcount+=1 + stopcount+=1 self.check3mnode() diff --git a/tests/system-test/6-cluster/5dnode3mnodeStopInsert.py b/tests/system-test/6-cluster/5dnode3mnodeStopInsert.py index 60c6844d83..95cd26dedc 100644 --- a/tests/system-test/6-cluster/5dnode3mnodeStopInsert.py +++ b/tests/system-test/6-cluster/5dnode3mnodeStopInsert.py @@ -28,6 +28,8 @@ class TDTestCase: def buildcluster(self,dnodenumber): self.depoly_cluster(dnodenumber) self.master_dnode = self.TDDnodes.dnodes[0] + self.host=self.master_dnode.cfgDict["fqdn"] + conn1 = taos.connect(self.master_dnode.cfgDict["fqdn"] , config=self.master_dnode.cfgDir) tdSql.init(conn1.cursor()) @@ -252,9 +254,9 @@ class TDTestCase: tdSql.query("show dnodes;") print(tdSql.queryResult) - # drop and follower of mnode - dropcount =0 - while dropcount <= 2: + # stop and follower of mnode + stopcount =0 + while stopcount <= 2: for i in range(dnodenumber): self.TDDnodes.stoptaosd(i+1) # if i == 1 : @@ -266,7 +268,7 @@ class TDTestCase: self.TDDnodes.starttaosd(i+1) # self.check3mnode() - dropcount+=1 + stopcount+=1 self.check3mnode() -- GitLab