我需要在使用Squish(Python)的自动化过程中访问远程Oracle数据库。作为一个独立的python使用cx_oracle来访问Oracle数据库。
答案 0 :(得分:2)
重定向Squish使用外部安装的Python文件夹(将python地址编辑到两个位置的' etc'文件夹中的path.ini文件中的外部python文件夹 -LibraryPath -Scripting / PythonHome)。 一定要使用外部python应该与你的squish中安装的版本完全相同
安装了Oracle客户端64位(从oracle下载并将Lib路径添加到环境变量中)。
从此处安装cx_oracle' https://pypi.python.org/pypi/cx_Oracle/5.2.1'
使用以下脚本
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)将结果集作为数组返回,以便您可以在脚本中验证它。