提交代码

This commit is contained in:
halliday 2023-12-11 20:17:26 +08:00
parent e93d5bf046
commit e7da81ca7a
6 changed files with 153 additions and 4 deletions

View File

@ -4,6 +4,7 @@ Resource Element.robot
Resource Common.robot Resource Common.robot
Variables ../config/myConfig.py Variables ../config/myConfig.py
Library DateTime Library DateTime
Library ../Script/mssqlTest.py
*** Keywords *** *** Keywords ***
登录黑方 登录黑方
@ -148,4 +149,37 @@ Library DateTime
Log ${recoveryname} Log ${recoveryname}
作业校验 ${recoveryname} 作业校验 ${recoveryname}
初始化数据库
# 创建数据库
mssqlTest.Create Database
# 创建表
mssqlTest.Create Table
# 插入数据
mssqlTest.Insert Data Table
# 查询插入的结果
${select_result}= mssqlTest.Get Insert Res
Log 查询到的结果是:${select_result}
Set Global Variable ${first_result} ${select_result}
删除表确认该表不存在
# 先确认表是否存在
${table_status1}= mssqlTest.Check Table Exists
Should Be True ${table_status1} 要删除的表不存在
Log TABLE_TEST表存在,开始做删除表操作
mssqlTest.Drop Table
# 删除后检查
${table_status2}= mssqlTest.Check Table Exists
Should Not Be True ${table_status2} 删除失败,删除的表还能查询到
Log TABLE_TEST已删除
校验恢复结果
# 先确认表是否存在
${table_status}= mssqlTest.Check Table Exists
Should Be True ${table_status} 要检查的表不存在,请确认恢复结果
Log 表已经恢复成功,开始检查表结果
# 查询插入的结果
${select_result}= mssqlTest.Get Insert Res
Log 查询到的结果是:${select_result}
# 将其与之前的结果做对比
Should Be Equal As Strings ${first_result} ${select_result} 恢复前后的结果不匹配
Log 恢复成功,恢复结果与预期一致

View File

@ -0,0 +1,115 @@
# encoding=utf-8
from datetime import datetime
from pathlib import Path
import jaydebeapi
class mssqlTest(object):
def __init__(self):
# 公共的
path = Path(__file__).parent
# 数据库连接相关的参数
driver_name = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_url = "jdbc:sqlserver://10.10.13.249:1433"
OAuth = ["sa", "unary@2008"]
driver_jar_path = path / "jdbc-driver" / "mssql-jdbc-9.2.0.jre8.jar"
# 连接数据库
self.conn = jaydebeapi.connect(driver_name,
jdbc_url,
OAuth,
str(driver_jar_path))
# 执行sql
def execute_sql(self, sql):
with self.conn.cursor() as curs:
curs.execute(sql)
# 创建库
def create_database(self):
print("start create databases...")
sql_string = "CREATE DATABASE UNATEST"
try:
self.execute_sql(sql_string)
except:
self.drop_database()
print("start try create databases again")
self.execute_sql(sql_string)
print("CREATE DATABASE UNATEST sucess!")
#创建表
def create_table(self):
print("start create table...")
sql_string = "create table UNATEST.dbo.TABLE_TEST(test char(15))"
try:
self.execute_sql(sql_string)
except:
self.drop_table()
print("start try create table TABLE_TEST again")
self.execute_sql(sql_string)
print("CREATE create TABLE_TEST sucess!")
# 插入数据
def insert_data_table(self):
print("start insert into UNATEST.dbo.TABLE_TEST")
# 插入当前的时间
actime_time = datetime.now().strftime('%Y%m%d%H%M%S')
sql_string ="INSERT INTO UNATEST.dbo.TABLE_TEST (test) VALUES(N'"+ actime_time +"')"
print("insert data is : " + actime_time)
self.execute_sql(sql_string)
# 删除表
def drop_table(self):
print("start drop table TABLE_TEST...")
sql_string = "DROP table UNATEST.dbo.TABLE_TEST"
try:
self.execute_sql(sql_string)
except:
print("TABLE_TEST already drop.")
# 删除库
def drop_database(self):
print("start drop databases...")
sql_string = "DROP DATABASE UNATEST"
try:
self.execute_sql(sql_string)
except:
print("databases already drop.")
# 获取插入的结果
def get_insert_res(self):
sql_string = "select * from UNATEST.dbo.TABLE_TEST"
with self.conn.cursor() as select:
select.execute(sql_string)
res = select.fetchall()
print(res)
# 将第一个结果返回
return res[0]
# 检查表是否存在
def check_table_exists(self):
sql_string = "select * from UNATEST.dbo.sysObjects WHERE name='TABLE_TEST'"
with self.conn.cursor() as select:
select.execute(sql_string)
res = select.fetchall()
# 根据结果数据量来判断表是否存在
if len(res) == 1:
exists = True
else:
exists = False
return exists
# 关闭连接
def close_conn(self):
self.conn.close()

View File

@ -7,10 +7,10 @@ Resource ../Resources/Common.robot
*** Test Cases *** *** Test Cases ***
Sqlserver副本备份恢复 Sqlserver副本备份恢复
[Setup] 登录黑方 # 登录黑方 [Setup] 登录黑方 # 登录黑方
# 初始化数据库 初始化数据库
创建Sqlserver副本备份策略 创建Sqlserver副本备份策略
执行备份任务并校验 执行备份任务并校验
# 删除表确认该表不存在 删除表确认该表不存在
创建恢复任务并校验 创建恢复任务并校验
# 校验恢复结果 校验恢复结果
[Teardown] Close Browser # Close Browser [Teardown] Close Browser # Close Browser

View File

@ -18,5 +18,5 @@ PolicyName = "AutoTest-SQLServerCDM-Backup-" + actime_time
# 代理名称 # 代理名称
hostname = "SqlserverCDM" hostname = "SqlserverCDM"
# 过滤关键词 # 过滤关键词
keyFilter = "test1" keyFilter = "test"
recTargetPath='C:\\data' recTargetPath='C:\\data'