Playwright脚本连接Vertica DB无查询结果输出问题求助
问题:Playwright中Vertica数据库查询结果日志不显示
我是Playwright新手,需求是连接Vertica数据库、获取所需记录并与UI数值对比。单独使用Node.js代码可成功连接数据库并输出查询结果,但将相同逻辑移入Playwright脚本后,无法看到查询结果的控制台日志,请求协助排查原因。
成功的单独Node.js代码
console.log("Hello") console.log("Entering the test") const {Client} = require('vertica-nodejs') const connectionString = 'vertica://' + 'xxx' + ':' + 'xyz' + '@' + 'abcdefg' + ':' + 5433 + '/' + 'abc'; const client = new Client({ connectionString, }); client.connect() client.query("SELECT 'success' as connectionWithString", (err, res) => { console.log(err || res.rows[0]) client.end() })
输出
PS C:\Stab\Automation\ConnectVertica> node .\temp.js Hello Entering the test { connectionWithString: 'success' } PS C:\Stab\Automation\ConnectVertica>
Playwright脚本代码
import { test, expect } from '@playwright/test'; const {Client} = require('vertica-nodejs') const connectionString = 'vertica://' + 'xxx' + ':' + 'xyz' + '@' + 'abcdefg' + ':' + 5433 + '/' + 'abc'; const client = new Client({ connectionString, }); async function connectAndQuery() { try { console.log("Connecting to Vertica DB") await client.connect(); const res = await client.query("SELECT 'Connection successful' as message"); console.log(res.rows[0]); } catch (err) { console.error(err); } finally { await client.end(); } } test('test db connection', async () => { connectAndQuery(); });
输出
Running 1 test using 1 worker [chromium] › tests\testVertica.spec.js:25:5 › test db connection Connecting to Vertica DB 1 passed (3.9s)
原因分析及解决方案
核心原因
你在Playwright的test函数中调用异步函数connectAndQuery()时没有添加await关键字。Playwright的测试用例本身是异步执行的,如果不等待异步函数完成,测试会直接结束,根本等不到数据库查询完成和日志输出的时机。
修复方案
修改测试用例代码,在调用connectAndQuery()前加上await,确保测试等待数据库操作执行完毕:
test('test db connection', async () => { await connectAndQuery(); // 添加await });
额外优化建议
- 避免全局数据库客户端实例:建议将数据库客户端的初始化放到
test函数内部,或者使用Playwright的test.beforeEach/test.afterEach钩子,防止多个测试用例复用同一个客户端实例引发连接问题。 - 使用Playwright内置日志:如果需要日志和测试报告更好地整合,可以使用
test.info().log()替代console.log(),日志会显示在测试报告的对应测试用例下:test.info().log(res.rows[0]);
内容的提问来源于stack exchange,提问作者MIM
相关产品推荐
相关产品推荐

