-1

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

4

2 回答 2

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

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

  3. 从这里安装 cx_oracle ' https://pypi.python.org/pypi/cx_Oracle/5.2.1 '

  4. 使用了以下脚本

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*.dllSQUISH_DIR/lib/python*_off.dll

于 2017-11-22T09:10:21.157 回答
0

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

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

于 2018-03-28T02:15:04.317 回答