zoukankan      html  css  js  c++  java
  • 使用python读取配置文件并从mysql数据库中获取数据进行传参(基于Httprunner)

             最近在使用httprunner进行接口测试,在传参时,用到了三种方法:(1)从csv文件中获取;(2)在config中声名然后进行引用;(3)从函数中获取。在测试过程中,往往有些参数是需要从数据库中获取的,然后考虑到Httprunner提供的debugtalk.py插件,决定试试编写一个从数据库读取值的方法,在经过调试后,最后终于成功了,今天在这里记录下。

             连接mysql数据库使用的是python的MySQLdb库,读取配置文件使用的是configparser库。debugtalk.py同级目录下包含文件有:

            (1)mysqlDB.py

            (2)readConfig.py

            (3)config.ini

            分别内容如下

             一、配置文件config.ini内容如下:

    [Mysql]
    
    user_id = select id from user where name="root"
    
    [DATABASE]
    host = x.x.x.x
    user = test
    passwd = 123456
    port = 3306
    database = rbac
       二、readConfig.py(读取config.ini)
    import os
    import codecs
    import configparser
    
    proDir = os.path.split(os.path.realpath(__file__))[0]
    configPath = os.path.join(proDir, "config.ini")
    print configPath
    
    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 Mysql(self, name):
            value = self.cf.get("Mysql", name)
            return value
    
        def Database(self, name):
            value = self.cf.get("DATABASE", name)
            return value
       三、mysqlDB.py
    #  -*- coding:utf-8 -*-
    import MySQLdb
    from readConfig import ReadConfig
    
    
    mysql = ReadConfig()
    
    
    #db = MySQLdb.connect(host,user,passwd,database,charset="utf8")
    
    class MysqlDb:
        def __init__(self):
            self.host = mysql.Database("host")
            self.user = mysql.Database("user")
            self.passwd = mysql.Database("passwd")
            self.database = mysql.Database("database")
            self.db = MySQLdb.connect(self.host,self.user,self.passwd,self.database,charset="utf8")
    
        def user_id(self):
            cursor = self.db.cursor()
            sql = mysql.Mysql("user_id")
            cursor.execute(sql)                    #db.commit()提交到数据库执行
            data = cursor.fetchone()               #cursor
            return data  
       四、debugtalk.py(提供给httprunnertest函数)
    # -*- coding:utf-8
    from mysqlDB import MysqlDb
    
    test = MysqlDb()
    
    
    def UserId():
        User_Id = test.user_id()
        return int(User_Id[0])
       五.在test.yml中引用
    -   config:
            name: 'dashboard'
            request:
            variables:
                - user_id: ${UserId()}

    然后就可以跑test脚本了。

  • 相关阅读:
    2015-03-20——移动端UC浏览器、QQ浏览器自动全屏
    2015-03-18——mongodb的简单配置
    2015-03-12——简析DOM2级样式
    2015-03-12——简析DOM2级事件
    2015-03-11——简析DOM规范
    2015-03-10——简析javascript对象
    分页控件的编写
    Jquery添加掩盖层的插件
    正则表达式/g/i/d
    MVC请求生命周期
  • 原文地址:https://www.cnblogs.com/python-kp/p/9660926.html
Copyright © 2011-2022 走看看