通过Squish(python)访问远程Oracle数据库

时间:2017-11-17 11:38:19

标签: python oracle11g squish

我需要在使用Squish(Python)的自动化过程中访问远程Oracle数据库。作为一个独立的python使用cx_oracle来访问Oracle数据库。

2 个答案:

答案 0 :(得分:2)

  1. 重定向Squish使用外部安装的Python文件夹(将python地址编辑到两个位置的' etc'文件夹中的path.ini文件中的外部python文件夹 -LibraryPath -Scripting / PythonHome)。 一定要使用外部python应该与你的squish中安装的版本完全相同

  2. 安装了Oracle客户端64位(从oracle下载并将Lib路径添加到环境变量中)。

  3. 从此处安装cx_oracle' https://pypi.python.org/pypi/cx_Oracle/5.2.1'

  4. 使用以下脚本

  5. import cx_Oracle
    def main():
    
        ip = 'xxxxx.xxx.xxxx.xxx'
        port = xxxx
        SID = 'xxxxxx'
        dsn_tns = cx_Oracle.makedsn(ip, port, SID)
        conn = cx_Oracle.connect('username', 'password', dsn_tns)
        curs = conn.cursor()
        curs.arraysize=50
        curs.execute('SELECT * from tablename')
        print "Student No\tModule\tMarks\n"
        for column_1, column_2, column_3 in curs.fetchall():
            print column_1, "\t", column_2, "\t", column_3
        curs.close()
        conn.close()
    main()
    

    此外,在Squish中将SQUISH_DIR/lib/python*.dll更改为SQUISH_DIR/lib/python*_off.dll

答案 1 :(得分:0)

如果你的目的是执行查询/验证AUT已经访问的数据库中的值,你可以插入一个新的专用方法来执行SQL(插入/更新/删除,选择等)到您的AUT的源代码。然后,您可以通过创建对它的引用来调用这些方法。

例如,getSQLResult(sql_as_a_string)将结果集作为数组返回,以便您可以在脚本中验证它。