zoukankan      html  css  js  c++  java
  • python接口测试操作myslq

    一、在配置文件中,配置好mysql信息:

    cfg.ini中mysql内容如下:

    [DATABASE]
    host = 50.23.190.57
    username = xxxxxx
    password = ******
    port = 3306
    database = databasename
    View Code

    二、读取cfg.ini中的内容:

    readCfg.py内容如下:

    import os
    import codecs
    import configparser
    
    proDir = os.path.split(os.path.realpath(__file__))[0]
    configPath = os.path.join(proDir, "config.ini")
    
    class ReadConfig:
        def __init__(self):
            fd = open(configPath)
            data = fd.read()
    
            #  remove BOM
            if data[:3] == codecs.BOM_UTF8:
                data = data[3:]
                file = codecs.open(configPath, "w")
                file.write(data)
                file.close()
            fd.close()
    
            self.cf = configparser.ConfigParser()
            self.cf.read(configPath)
    
        def get_email(self, name):
            value = self.cf.get("EMAIL", name)
            return value
    
        def get_http(self, name):
            value = self.cf.get("HTTP", name)
            return value
    
        def get_db(self, name):
            value = self.cf.get("DATABASE", name)
            return value
    View Code

    三、封装需要操作的mysql脚本:

    configdb.py内容如下:

    import pymysql
    import readConfig as readConfig
    from common.Log import MyLog as Log
    
    localReadConfig = readConfig.ReadConfig()
    
    class MyDB:
        global host, username, password, port, database, config
        host = localReadConfig.get_db("host")
        username = localReadConfig.get_db("username")
        password = localReadConfig.get_db("password")
        port = localReadConfig.get_db("port")
        database = localReadConfig.get_db("database")
        config = {
            'host': str(host),
            'user': username,
            'passwd': password,
            'port': int(port),
            'db': database
        }
    
        def __init__(self):
            self.log = Log.get_log()
            self.logger = self.log.get_logger()
            self.db = None
            self.cursor = None
    
        def connectDB(self):
            try:
                # connect to DB
                self.db = pymysql.connect(**config)
                # create cursor
                self.cursor = self.db.cursor()
                print("Connect DB successfully!")
            except ConnectionError as ex:
                self.logger.error(str(ex))
    
        def executeSQL(self, sql, params):
            self.connectDB()
            # executing sql
            self.cursor.execute(sql, params)
            # executing by committing to DB
            self.db.commit()
            return self.cursor
    
        def get_all(self, cursor):
            value = cursor.fetchall()
            return value
    
        def get_one(self, cursor):
            value = cursor.fetchone()
            return value
    
        def closeDB(self):
            self.db.close()
            print("Database closed!")
    View Code

    四、封装调用configdb.py的脚本

    common.py内容如下:

    import os
    from xlrd import open_workbook
    from xml.etree import ElementTree as ElementTree
    from common.Log import MyLog as Log
    
    localConfigHttp = configHttp.ConfigHttp()
    log = Log.get_log()
    logger = log.get_logger()
    
    # 从excel文件中读取测试用例
    def get_xls(xls_name, sheet_name):
        cls = []
        # get xls file's path
        xlsPath = os.path.join(proDir, "testFile", xls_name)
        # open xls file
        file = open_workbook(xlsPath)
        # get sheet by name
        sheet = file.sheet_by_name(sheet_name)
        # get one sheet's rows
        nrows = sheet.nrows
        for i in range(nrows):
            if sheet.row_values(i)[0] != u'case_name':
                cls.append(sheet.row_values(i))
        return cls
    
    # 从xml文件中读取sql语句
    database = {}
    def set_xml():
        if len(database) == 0:
            sql_path = os.path.join(proDir, "testFile", "SQL.xml")
            tree = ElementTree.parse(sql_path)
            for db in tree.findall("database"):
                db_name = db.get("name")
                # print(db_name)
                table = {}
                for tb in db.getchildren():
                    table_name = tb.get("name")
                    # print(table_name)
                    sql = {}
                    for data in tb.getchildren():
                        sql_id = data.get("id")
                        # print(sql_id)
                        sql[sql_id] = data.text
                    table[table_name] = sql
                database[db_name] = table
    
    def get_xml_dict(database_name, table_name):
        set_xml()
        database_dict = database.get(database_name).get(table_name)
        return database_dict
    
    def get_sql(database_name, table_name, sql_id):
        db = get_xml_dict(database_name, table_name)
        sql = db.get(sql_id)
        return sql
    View Code

    附上:python远程操作Linux系统中myslq服务器的操作

    请尊重笔者的劳动成果哦,转载请说明出处哦
  • 相关阅读:
    elementUI table中的button 操作
    数组
    数组,字符串,数字之间的相互转换
    Element upload
    Vue中涉及到的三目运算与v-if结合
    ElementUI的input用法
    javascript的正则表达式
    Vue表单+Vue全局指令 v-focus 的引用
    ztree 异步加载大数据(一)
    vue mixins 混入项目实例
  • 原文地址:https://www.cnblogs.com/gufengchen/p/13865992.html
Copyright © 2011-2022 走看看