我正在尝试找到一个正确的脚本来调用我的bash文件,在运行我的剧作家之前有一个经过认证的组织可以登录(自动化工具)脚本。我目前正在利用codegen工具从我的UI生成javascript代码。目前,我所有的登录凭据都集成在该脚本中。我有一个bash文件,可以运行并自动登录到我的组织(不需要凭据)。我遇到的问题是尝试在登录之前调用bash,然后继续运行我的剧作家脚本。这是可以做到的吗?有人知道我应该采取什么步骤来完成这件事吗?如果有更好的方法(不使用bash文件),请让我知道。
我希望运行bash登录,并希望使用相同的登录令牌保持打开状态,以便在该环境中执行脚本进行测试。
1条答案
按热度按时间dgiusagp1#
是的,可以在运行JavaScript脚本之前运行bash脚本。您可以使用Node.js中的
child_process
模块生成新进程并运行bash脚本。下面是一个示例,说明如何在运行名为
myjs.js
的JavaScript脚本之前运行名为myscript.sh
的bash脚本:在本例中,
execSync
用于同步运行bash脚本(即,在bash脚本运行完成之前,JavaScript脚本不会运行)。stdio
选项设置为'inherit'
,以便将bash脚本的任何输出发送到与JavaScript脚本的输出相同的位置。或者,您可以使用
spawnSync
、exec
或spawn
异步运行bash脚本。如果要同时运行两个脚本,还可以使用
&
运算符。示例:bashmyscript.sh
&
节点myjs.js
在运行用于自动化测试的Playwright脚本之前,先运行bash脚本,以便通过您的组织进行身份验证。实现此目的的一种方法是使用Node.js
child_process
模块生成新进程,然后运行bash脚本,以便通过您的组织进行身份验证。一旦bash脚本成功完成并且组织通过身份验证,您就可以使用该经过身份验证的会话运行您的Playwright脚本。下面是一个示例,说明如何执行此操作:
在此示例中,
./authenticate.sh
是向您的org进行身份验证的bash脚本。stdio
选项设置为'inherit'
,以便将bash脚本的任何输出发送到与JavaScript脚本的输出相同的位置。另一种方法是使用
shelljs
之类的库,它允许您像在常规shell中一样在node.js中执行shell命令您还可以从bash登录脚本中提取令牌(如果它导出了令牌),并将其附加到剧作家脚本,这样剧作家脚本就不需要登录和使用已经通过身份验证的会话。
或者,如果您不想使用bash脚本,可以使用为Salesforce REST API提供客户端的JavaScript库(如
jsforce
或salesforce-js-client
),以便在运行Playwright脚本之前在JavaScript脚本中向您的组织进行身份验证。在任何情况下,请确保您调用的用于身份验证的脚本或命令不需要任何用户交互,并且以无头模式运行,否则在自动化模式下运行时可能会导致问题。