在使用变量时使用 RobotFramework 和 Curl 响应
Working with RobotFramework and Curl responses while using Variables
我正在尝试使用良性 url 和网络钓鱼 url 测试网关。
我正在使用 SSHLibrary 连接到一台机器,curl URL 然后检查“应该包含”是否输出包含页面标题或连接被重置。
测试良性 URL 时,它有效。 curl 命令的输出如下所示 -
curl 良性输出 url:
我使用${variable} = execute command curl url 然后
应包含 ${variable} 提交
而且有效。
当我测试网络钓鱼 URL 时,变量不包含任何输出,因为连接已被网关重置。
当我 运行 带有网络钓鱼 URL 的 curl 命令时,我得到 -
curl: (56) Recv failure: Connection was reset
当我使用 should contain with ${variable}
Connection was reset 时,它不起作用。
我也试过 ${variable.stdout}
但变量每次都是空的。
如何处理连接已重置响应并验证它确实已重置?
问题出在 curl 命令上的流 return。
虽然 stdout 没有信息,但 stderr 有关于“连接已重置”的信息。
即使我将 return_stderr=True 添加到“执行命令”,它也不起作用。
“执行命令”关键字有多个 return 选项,标准输出默认启用。
当同时使用 stdout 和 stderr 时,我的变量变成了一个列表,“应该包含”关键字只检查了列表 [0] 的第一条记录。
如果我们想使用一个变量或使用多个变量,解决方案是禁用默认的标准输出并启用标准错误。
${variable} = 执行命令 curl -v example.com return_stdout=False return_stderr=True
${stdout} ${stderr} ${rc} = 执行命令 curl -v example.com return_stderr=True return_rc=True
我正在尝试使用良性 url 和网络钓鱼 url 测试网关。 我正在使用 SSHLibrary 连接到一台机器,curl URL 然后检查“应该包含”是否输出包含页面标题或连接被重置。
测试良性 URL 时,它有效。 curl 命令的输出如下所示 - curl 良性输出 url:
我使用${variable} = execute command curl url 然后 应包含 ${variable} 提交
而且有效。
当我测试网络钓鱼 URL 时,变量不包含任何输出,因为连接已被网关重置。
当我 运行 带有网络钓鱼 URL 的 curl 命令时,我得到 -
curl: (56) Recv failure: Connection was reset
当我使用 should contain with ${variable}
Connection was reset 时,它不起作用。
我也试过 ${variable.stdout}
但变量每次都是空的。
如何处理连接已重置响应并验证它确实已重置?
问题出在 curl 命令上的流 return。
虽然 stdout 没有信息,但 stderr 有关于“连接已重置”的信息。
即使我将 return_stderr=True 添加到“执行命令”,它也不起作用。
“执行命令”关键字有多个 return 选项,标准输出默认启用。
当同时使用 stdout 和 stderr 时,我的变量变成了一个列表,“应该包含”关键字只检查了列表 [0] 的第一条记录。 如果我们想使用一个变量或使用多个变量,解决方案是禁用默认的标准输出并启用标准错误。
${variable} = 执行命令 curl -v example.com return_stdout=False return_stderr=True
${stdout} ${stderr} ${rc} = 执行命令 curl -v example.com return_stderr=True return_rc=True