首页 > 数据库 >Python脚本连接Oracle数据库并验证成功

Python脚本连接Oracle数据库并验证成功

时间:2023-09-27 09:46:13浏览次数:52  
标签:__ uname Python 数据库 args yaml Oracle data

# yaml文件存储数据->root\Data\oracle_admin_f_shozaiko.yaml

# Test Data for Oracle DB: ADMIN->F_SHOZAIKO
-
name: connect to Oracle
request:
uname: admin
upwd: P823!ApoL
host: rf-oms.cbfvvrud0bld.ap-northeast-1.rds.amazonaws.com:1521/rfoms
query: SELECT * FROM F_SHOZAIKO WHERE COLORCD='01' AND RYOZAIKOSU='10'
validate:
HINBAN: 02494

------------------------------------------------------------------------------------------------------------------------------------------------------------------

# yaml_utils.py方法读取yaml文件的数据->root\utilities\yaml_utils.py

import yaml
import cx_Oracle as oracle

class YamlUtils:

def read_yaml(self, yaml_file):
"""read yaml file data and return content"""
try:
with open(yaml_file, "r", encoding='utf-8') as f:
data = yaml.load(f, Loader=yaml.FullLoader)
# print(data, type(data)) # debug
return data
except:
return None

if __name__ == '__main__':
yaml_utils = YamlUtils()
yaml_utils.read_yaml(yaml_file)

------------------------------------------------------------------------------------------------------------------------------------------------------------------

# test_xx.py->root\TestCases\test_oracle_admin_f_shozaiko.py

import cx_Oracle as oracle
import pytest
from utilities.yaml_utils import YamlUtils

class TestOracleAdminF_SHOZAIKO():

@pytest.mark.parametrize('args', YamlUtils().read_yaml('../Data/oracle_admin_f_shozaiko.yaml'))
def test_admin_f_shozaiko(self, args):
"""This function is aim to connect Oracle DB and execute SQL query then verify the data"""

"""1.parameters group"""
uname = args['request']['uname']
upwd = args['request']['upwd']
host = args['request']['host']
query = args['request']['query']
HINBAN = args['validate']['HINBAN']

"""2.connect to Oracle DB"""
conn = oracle.connect('{uname}'.format(uname=uname), '{upwd}'.format(upwd=upwd), '{host}'.format(host=host))
cursor = conn.cursor()

"""3.execute SQL query to collect data and assert"""
sql = cursor.execute("{}".format(query))
whole_data = sql.fetchall()
list_data = []
for i in whole_data:
for j in i:
list_data.append(j)
assert list_data[0] == HINBAN

if __name__ == '__main__':
to = TestOracleAdminF_SHOZAIKO()
to.test_admin_f_shozaiko()

 

标签:__,uname,Python,数据库,args,yaml,Oracle,data
From: https://www.cnblogs.com/Raul2018/p/17731936.html

相关文章

  • python学习框架
    Python简介与安装Python的历史与特点Python的安装与配置Python基础语法变量与数据类型运算符与表达式控制结构(条件判断与循环)函数与模块错误处理与异常Python数据结构列表(List)元组(Tuple)集合(Set)字典(Dictionary)Python面向对象编程类与对象继承与多态......
  • Python的Selenium库:鼠标滚动和操作弹出窗口
    Selenium是一个用于自动化web应用测试的开源工具。通过Selenium,我们可以模拟真实用户的操作,如点击、输入、滚动页面等,来测试web应用的稳定性和可靠性。PythonSelenium库是Selenium的一个分支,可以方便地与Python语言结合使用。在PythonSelenium库中,元素定位和文本输入是最常用的......
  • 数据库连接池长时间不用,乍一用还用不了,结果是防火墙的锅
    前言我们的程序,在实际的网络部署时,一般比较复杂,会经过很多的网络设备,防火墙就是其中的一种。做开发的同事,一般对这块了解不多,也很可能被防火墙坑到。比如,应用一般需要访问数据库,为了避免频繁建立连接,一般是会提前建立一个连接池,每次来一个请求,就从连接池取一个连接来用,用完再归还......
  • 使用PyCharm敲出你的第一行python代码
    首先安装python解释器国内镜像https://registry.npmmirror.com/binary.html?path=python/   找到软件开始安装   然后下载python开发工具https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC     ......
  • Oracle CloudWorld 2023:Safra Catz主题演讲——把客户的成功放在首要位置
    SafraCatz在OracleCloudWorld2023的开场演讲主题是“把客户的成功放在首要位置”。她强调了客户的重要性,并说大家通过合作和技术可以实现几乎一切。她感谢在场的观众,强调了学习和分享的重要性,以及公司致力于为客户提供更好服务的承诺。在演讲中,她还邀请了来自其他公司的高管......
  • Python datetime 的坑以及时间处理的经验
    最近遇到一个"bug",就是本地datetime的时间上传到数据库,总发现时间显示不对……经过一番痛苦的排查之后,我发现原来是datetime.now()在获取事件信息时,不会添加当前的时区信息。也就是说,获得的结果虽然时分秒和电脑显示一致,但是时区信息为默认的UTC而非我们真正的UTC+8,因此这......
  • MongoDB 解析:灵活文档数据库与 Docker Compose 部署
    MongoDB是一款开源、高性能的NoSQL数据库,以其无模式的文档存储格式(BSON)而著称,广泛应用于众多开源项目,包括但不限于Yapi等。它在大规模数据存储和实时数据处理方面表现出色,因此备受青睐。在本文中,我们将深入探讨MongoDB的特性,并详细阐述如何使用DockerCompose轻松部署Mon......
  • 数据库连接:使用Python连接到MySQL、SQLite和MongoDB
    在现代应用程序和数据科学中,数据库连接是至关重要的一部分。Python提供了丰富的库和驱动程序,可以轻松连接各种数据库,包括MySQL、SQLite和MongoDB。本文将介绍如何使用Python连接到这些不同类型的数据库,并提供相应的代码示例。连接到MySQL数据库MySQL是一个流行的关系型数据库管理系......
  • 爬虫与数据抓取:使用Python进行网络爬虫和数据抓取
    在数字时代,数据是金钱。大量的数据可用于分析、洞察、决策和创新。但是,要获取这些数据,您需要一种强大的工具,这就是网络爬虫。本文将介绍如何使用Python进行网络爬虫和数据抓取,让您能够轻松获取所需的信息。什么是网络爬虫?网络爬虫是一种自动化工具,用于从互联网上的网站上抓取信息。......
  • 亚信科技AntDB数据库 高并发、低延迟、无死锁,深入了解AntDB-M元数据锁的实现
    AntDB-M在架构上分为两层,服务层和存储引擎层。元数据的并发管理集中在服务层,数据的存储访问在存储引擎层。为了保证DDL操作与DML操作之间的一致性,引入了元数据锁(MDL)。AntDB-M提供了丰富的元数据锁功能,然而高并发锁操作很容易出现锁竞争、等待、死锁的问题,AntDB-M具体提供了什么样......