一 简介:今天咱们来聊聊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界面化有很多开源项目,但是如何将它融入你的平台,就看你开发的功底了
---恢复内容结束---