HttpRunner3.X - 连接数据库实践

时间:2021-08-19
本文章向大家介绍HttpRunner3.X - 连接数据库实践,主要包括HttpRunner3.X - 连接数据库实践使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、前言

做自动化测试的时候,有时要跟数据库有交互,经常遇到的场景有:

  • 从数据库中读取数据,并将这些数据作为接口参数使用
  • 从数据库中读取数据,并断言接口返回的数据与落表的数据是否一致

二、文件目录框架如下

三、创建数据库配置文件 config/config.ini

输入自己用的数据库的相关信息即可,这里我给 user_name 赋值了一个 SQL语句,可以根据需求调整。

[Mysql]
user_name = select room_name from clothim where created_name="李白"

[DATABASE]
host = 192.8.0.2
user = doud
passwd = Oc0C&=3a
port = 13306
database = croom

四、创建读取数据库配置文件 readConfig.py

import os,codecs,configparser
#创建读取数据库配置文件
class ReadConfig:
    def __init__(self):
        self.cf = configparser.ConfigParser() #实例化configparser对象
        #获取当前文件夹的父目录绝对路径
        self.path = os.path.dirname(os.path.dirname(__file__))
        #获取config文件夹中的ini文件
        self.file_path = os.path.join(self.path,'config','config.ini')
        #读取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

五、连接数据库及执行数据库文件 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.passwd = mysql.DataBase("passwd")
        self.port = mysql.DataBase("port")
        self.database = mysql.DataBase("database")
        self.db = pymysql.connect(host=self.host,user=self.user,password=self.passwd,database=self.database,port=13306,charset="utf8")

    def execute(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

    def user_code(self):
        sql = mysql.Mysql("user_code")
        data = self.execute_read(sql,())
        return data

六、在 debugtalk.py(必须是这里)中写一个查询数据 sql 的方法

import time

from httprunner import __version__
from mysqlDB import MysqlDb

#定义查询数据 sql 的方法
mysqlDB = MysqlDb()

def get_user_name():
    user_name = mysqlDB.user_name()
    return user_name[0]

七、在测试用例中调用该方法

用 $ 符号即可

"username": "${get_user_name()}"

 八、运行脚本即可

原文地址:https://www.cnblogs.com/Chilam007/p/15161517.html