接口自动化测试框架编写之路(2):封装数据库之oracle

1.python安装第三方库cx_Oracle;

2.下载轻量级oracle客户端(版本根据oracle版本来定);

2.1 下载地址:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html(需要登录oracle)

2.2 解压instantclient-basic-windows.x64-11.2.0.4.0.zip,获得解压文件夹的路径oraclepath

3.在instantclient_11_2中新增文件tnsnames.ora;

3.1 为tnsnames.ora新增内容:(其中【数据库名,ip,端口,服务名】根据自己的数据库联机)

数据库名 =

(DESCRIPTION =

(ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = ip)(PORT = 端口))

)

(CONNECT_DATA =

  (SERVICE_NAME = 服务名)

)

)

4.编写oracle数据库连接类:

import os
import cx_Oracle
from config.database_config import oracle_config

# 需要配置的环境变量
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
# 下面两个的值对应2.2中的oraclepath
os.environ['TNS_ADMIN'] = 'C:\\Users\\instantclient_11_2'
os.environ['Path'] = 'C:\\Users\\instantclient_11_2'


class oracle:
    def __init__(self):
        self.oracle_info = oracle_config
        self.conn = self.__connect()

    def __connect(self):
        try:
            conn = cx_Oracle.connect(self.oracle_info['user'], self.oracle_info['pwd'],
                                     self.oracle_info['dsn'])
            return conn
        except Exception as a:
            print('数据库连接异常: {}'.format(a))

    def getrows(self, sql):
        """
        function: 执行sql获取查询结果
        paras: sql
        return: rows
        """
        try:
            cursor = self.conn.cursor()
            cursor.execute(sql)
            rows = cursor.fetchall()
            cursor.close()
            return rows
        except Exception as a:
            print('数据库操作s异常: {}'.format(a))

    def sql(self, sql):
        """
        function: 执行sql
        paras: sql
        return:
        """
        try:
            cursor = self.conn.cursor()
            cursor.execute(sql)
            self.conn.commit()
            cursor.close()
        except Exception as a:
            print('数据库操作s异常: {}'.format(a))


if __name__ == '__main__':
    sql1 = 'SELECT * from dbname'
    count = 0
    for x in oracle().getrows(sql1):
        print(x)
        count += 1
    print(count)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值