2017-08-07 71 views
0

我试图登录到运行有应用程序的数据库服务器。我可以登录没有任何问题,但是当我尝试登录服务器上的工作目录时,它显示登录后的默认目录,而不是我更改的那个。记录服务器上的位置 - Robot Framework/CMD

所有的测试用例是这样的:

*** Settings *** 
Library SSHLibrary 

*** Variables *** 
${IP} IP 
${user} user 
${password} password 
*** Test Cases *** 
CMD 
    Open connection ${IP} 
    login ${user} ${password} 
    execute command cd gtms/bin 
    ${pwd} execute commanrd pwd 
    log ${pwd} 

而且我期待着得到有关我在当我使用PWD的目录信息,但它不工作。我得到这在日志中:

KEYWORD BuiltIn . Log ${pwd} 
Documentation: 
Logs the given message with the given level. 
Start/End/Elapsed: 20170807 16:07:14.266/20170807 16:07:14.267/  
00:00:00.001 
16:07:14.267 INFO /home/ollie 

谁能告诉我我做错了什么?

在此先感谢。

+1

那是什么'cd'命令的结果代码?你可以用'return_rc = True'作为'Execute Command'。 –

+0

这是你的实际码吗?我问这是因为'执行commanrd'拼写错误,应该抛出一个错误。 –

+0

增加了return_rc = True,并在LOG: KEYWORD SSHLibrary中获得。执行命令cd gtms/bin, return_rc = True 文档:\t 在远程机器上执行'command'并返回其输出。 开始/结束/经过:\t 20170808 08:51:19.274/20170808 08:51:19.305/00:00:00.031 08:51:19.274 \t \t INFO命令执行 'CD GTMS/bin' 的。 \t 08:51:19.305 \t信息\t返回代码为1的命令。 – Qucu

回答

0

Execute Command总是在新外壳中运行指定的命令 - 因此第一次调用中的cd未被保留,如第二次调用中的pwd所示。这实际上是在其documentation的例子:

The command is always executed in a new shell. Thus possible changes to the environment (e.g. changing working directory) are not visible to the later keywords: 
${pwd}= Execute Command pwd 
Should Be Equal ${pwd} /home/johndoe 
Execute Command cd /tmp 
${pwd}= Execute Command pwd 
Should Be Equal ${pwd} /home/johndoe 

为了达到你想要什么,只是链中的目标命令和执行一次:

${output}= Execute Command cd gtms/bin; pwd 
Log ${output} # will log the output of the executed command(s) - in this case, pwd 
+0

这真的很有帮助。我怎么才能从链式命令中记录pwd以检查它是否真的有效? – Qucu

+0

这不仅是有用的,这是答案;)Execute Command返回任何执行的输出 - 在这种情况下,链接的命令,所以你只要将它分配给一个变量,并做任何需要的。我已经更新了包含它的答案。 – Todor

+0

添加了您建议的内容,但输出仍然是错误的: KEYWORD $ {output} = SSHLibrary。执行命令cd gtms/bin; pwd 在远程机器上执行'command'并返回其输出。 开始/结束/已经:\t 20170809 13:14:24.004 13:14:24.004 \t信息\t执行命令'cd gtms/bin; PWD”。 \t 13:14:24.280 \t \t INFO命令退出,返回代码0 \t 13:14:24.280 \t \t INFO $ {输出} = /家庭/奥利\t 00:00:00.000KEYWORD内建。 Log $ {output} 以给定的级别记录给定的消息。 开始/结束/已经:\t 20170809 13:14:24.281 13:14:24。281 \t信息\t/home/ollie – Qucu