运维数据库平台~inception测试脚本

一 简介:今天咱们来聊聊inception的测试脚本

二 范例:

#!/usr/bin/python

import MySQLdb

sql='/*--user=;--password=;--host=;--execute=1;--port=3306;*/\
  inception_magic_start;\
  use test;\
  select count(*) from mongodb_log where id > 1000 ;\
  inception_magic_commit;'
  try: 
    conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='',port=6669,charset='utf8')
    cur=conn.cursor()
    ret=cur.execute(sql)
    result=cur.fetchall()
    num_fields = len(cur.description)
    field_names = [i[0] for i in cur.description]
    print field_names
    for row in result:
    print row[0], "¦",row[1],"¦",row[2],"¦",row[3],"¦",row[4],"¦",
    row[5],"¦",row[6],"¦",row[7],"¦",row[8],"¦",row[9],"¦",row[10]
   cur.close()
   conn.close()
   except MySQLdb.Error,e: 
   print "Mysql Error %d: %s" % (e.args[0], e.args[1])

三 解析:

第一部分:sql

1 sql=/*user= password= host= inception参数*/ (user等信息是目标数据库的用户名密码等,inception参数可参考官方手册,此处为是否审核(--check=1)和执行(--execute=1))

2 inception_magic_start;

3 use db

4 sqltext(dml操作)

5 inception_magic_commit;

第二部分: execute sql

1 连接本地inception服务(默认为root 无密码)

2 执行sql

3 打印审核和执行信息

四 扩展:

将inception界面化的思路:

1 提供相关参数,第一部分(host,user,password,sqltext,inception参数),进行api传参

2 调用js 返回审核和执行信息,实现结果可视化

五 改装函数一例(只需要改装第一部分)

def table_structure(user,password,sqltext, host, chk)

sqlstart='/*--user=;--password=;--port=3306;'

sqlhost=host

sql2check=chk+';*/'
  sqlcenter='inception_magic_start;'
  sqlend='inception_magic_commit;'
  sql = sqlstart +"host="+sqlhost + sql2check + sqlcenter + sqltext + sqlend

print sql

def main():

sqltext = sys.argv[1]

user= sys.argv[2]

password = sys.argv[3]

  chk = sys.argv[4]//(1仅审核 2审核并执行)

host=sys.arge[6]
  table_structure(user,password,sqltext, host, chk)

六 关于inception web界面化有很多开源项目,但是如何将它融入你的平台,就看你开发的功底了

---恢复内容结束---

上一篇:thinkphp 单字母函数


下一篇:WordPress主题开发:WP_Query使用分页实例