1、接口自动化使用数据库的场景:
(1)从数据库读取数据,作为接口参数 >>> 当然更多的我们是直接调用写好的接口用例,来作为测试前置生成我们需要的测试数据。
(2)用例后置:清理测试脏数据 >>> 当然,我们可以再httprunner里面调用清理数据的用例来实现后置。
2、结合项目,还待优先的代码:
config.ini
[mysql]
user_name = select account_to from dict_user_org_info where user_base_id = "10100"
[DATABASE]
host = xx.xx.xx.xx
user = admin
password = xxxx
port = 3306
database = oc
readConfig.py
import os
import codecs
import configparser
class ReadConfig:
def __init__(self):
self.cf = configparser.ConfigParser
self.path = os.path.dirname(os.path.dirname(__file__))
self.file_path = os.path.join(self.path, 'config', 'config.ini')
self.cf.read(self.file_path, encoding='utf-8')
def Mysql(self, name):
value = self.cf.get("Mysql", name)
return value
def Database(self, name):
value = self.cf.get("DATABASE", name)
return value
debugtalk.py
from mysqlDB import MysqlDb
mysqlDB = MysqlDb()
def get_user_name():
user_name = mysqlDB.user_name()
return user_name[0]
mysqlDB.py
import pymysql
from config.readConfig import ReadConfig
mysql = ReadConfig()
class MysqlDb:
def __init__(self):
self.host = mysql.Database("host")
self.user = mysql.Database("user")
self.password = mysql.Database("password")
self.port = mysql.Database("port")
self.database = mysql.Database("database")
self.db = pymysql.connect(self.host, self.user, self.password, self.database, charset="utf-8")
def excute(self, sql, data):
connect = self.db
cursor = connect.cursor()
cursor.execute(sql % data)
connect.commit()
def execute_read(self, sql, data):
connect = self.db
cursor = connect.cursor()
cursor.execute(sql % data)
for row in cursor.fetchall():
return row
def user_name(self):
sql = mysql.Mysql("user_name")
data = self.execute_read(sql, ())
return data