提交 d6fdf0b9 编写于 作者: P Ping Xiao

test: add test cases for OpenTSDB line and json protocol

上级 0839e57d
......@@ -52,7 +52,7 @@ class TDTestCase:
tdSql.checkRows(0)
tdSql.query("show create database `Db`")
tdSql.checkRows(1)
tdSql.checkData(0, 1, "CREATE DATABASE `Db` REPLICA 1 QUORUM 1 DAYS 10 KEEP 3650 CACHE 16 BLOCKS 6 MINROWS 100 MAXROWS 4096 WAL 2 FSYNC 1000 COMP 2 CACHELAST 0 PRECISION 'ms' UPDATE 0")
tdSql.checkData(0, 1, "CREATE DATABASE `Db` REPLICA 1 QUORUM 1 DAYS 10 KEEP 3650 CACHE 16 BLOCKS 6 MINROWS 100 MAXROWS 4096 WAL 2 FSYNC 1000 COMP 2 CACHELAST 1 PRECISION 'ms' UPDATE 0")
tdSql.execute("drop database db")
......
......@@ -15,6 +15,7 @@ from util.log import *
from util.cases import *
from util.sql import *
from util.types import TDSmlProtocolType, TDSmlTimestampType
import json
class TDTestCase:
def init(self, conn, logSql):
......@@ -24,9 +25,19 @@ class TDTestCase:
def run(self):
# schemaless
tdSql.execute("create database line_insert precision 'ns' ")
tdSql.execute("use line_insert")
# influxDB Line Protocol
self.influxDBLineProtocol()
# OpenTSDB Line Protocol
self.openTSDBLineProtocol()
# OpenTSDB JSON Protocol
self.openTSDBJSONProtocol()
def influxDBLineProtocol(self):
print("===== influxDB Line Protocol Case Sensitive Test =====\n")
tdSql.execute("create database influxdb precision 'ns' ")
tdSql.execute("use influxdb")
lines = [
"St,deviceId=1i voltage=1,phase=\"Test\" 1626006833639000000",
"St,DeviceId=3i voltage=2,phase=\"Test\" 1626006833639000000",
......@@ -41,7 +52,7 @@ class TDTestCase:
"超级表,deviceId=\"sensor0\" 电压=3i 1646053743694400035",
]
code = self._conn.schemaless_insert(lines, TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
self._conn.schemaless_insert(lines, TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
tdSql.query("show stables")
tdSql.checkRows(3)
......@@ -60,6 +71,74 @@ class TDTestCase:
tdSql.query("select * from `超级表`")
tdSql.checkRows(1)
def openTSDBLineProtocol(self):
print("===== OpenTSDB Line Protocol Case Sensitive Test =====\n")
tdSql.execute("create database opentsdbline")
tdSql.execute("use opentsdbline")
# format: <metric> <timestamp> <value> <tagk_1>=<tagv_1>[ <tagk_n>=<tagv_n>]
lines = [
"meters.current 1648432611249 10.3 location=California.SanFrancisco groupid=2",
"meters.Current 1648432611250 12.6 location=California.SanFrancisco groupid=2",
"meters.Current 1648432611249 10.8 Location=California.LosAngeles groupid=3",
"Meters.current 1648432611250 11.3 location=California.LosAngeles Groupid=3",
"电表 1648432611250 11.3 位置=California.LosAngeles Groupid=3"
]
self._conn.schemaless_insert(lines, TDSmlProtocolType.TELNET.value, None)
tdSql.query("show stables")
tdSql.checkRows(4)
tdSql.query("show tables")
tdSql.checkRows(5)
tdSql.query("describe `meters.Current`")
tdSql.checkRows(5)
tdSql.checkData(2, 0, "groupid")
tdSql.checkData(3, 0, "location")
tdSql.checkData(4, 0, "Location")
tdSql.query("describe `Meters.current`")
tdSql.checkRows(4)
tdSql.checkData(2, 0, "Groupid")
tdSql.checkData(3, 0, "location")
tdSql.query("describe `电表`")
tdSql.checkRows(4)
tdSql.checkData(2, 0, "Groupid")
tdSql.checkData(3, 0, "位置")
def openTSDBJSONProtocol(self):
print("===== OpenTSDB JSON Protocol Case Sensitive Test =====\n")
tdSql.execute("create database opentsdbjson")
tdSql.execute("use opentsdbjson")
lines = [
{"metric": "meters.current", "timestamp": 1648432611249, "value": 10.3, "tags": {"location": "California.SanFrancisco", "groupid": 2}},
{"metric": "meters.voltage", "timestamp": 1648432611249, "value": 219, "tags": {"Location": "California.LosAngeles", "groupid": 1}},
{"metric": "meters.Current", "timestamp": 1648432611250, "value": 12.6, "tags": {"location": "California.SanFrancisco", "groupid": 2}},
{"metric": "meters.voltage", "timestamp": 1648432611250, "value": 221, "tags": {"location": "California.LosAngeles", "groupid": 1}},
{"metric": "电压", "timestamp": 1648432611250, "value": 221, "tags": {"位置": "California.LosAngeles", "groupid": 1}}
]
self._conn.schemaless_insert([json.dumps(lines)], TDSmlProtocolType.JSON.value, None)
tdSql.query("show stables")
tdSql.checkRows(4)
tdSql.query("show tables")
tdSql.checkRows(5)
tdSql.query("describe `meters.Current`")
tdSql.checkRows(4)
tdSql.query("describe `meters.voltage`")
tdSql.checkRows(5)
tdSql.checkData(3, 0, "Location")
tdSql.checkData(4, 0, "location")
tdSql.query("describe `电压`")
tdSql.checkRows(4)
tdSql.checkData(3, 0, "位置")
def stop(self):
tdSql.close()
......
......@@ -118,7 +118,7 @@ class TDTestCase:
tdSql.query("show tables")
tdSql.checkRows(8)
tdSql.query("show create table `普通表`")
tdSql.checkData(0, 0, "CREATE TABLE `普通表` (`ts` TIMESTAMP,`c1` INT)")
tdSql.checkData(0, 1, "CREATE TABLE `普通表` (`ts` TIMESTAMP,`c1` INT)")
def stop(self):
tdSql.close()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册