如何在Windows上通过eggPlant执行shell命令?

时间:2014-01-29 06:39:59

标签: windows shell automation adb eggplant

我正在开发Android应用的测试自动化。我目前正在使用eggPlant for Android。 我目前的情况总结:

  • 我在一台Android设备上成功运行测试,该设备运行eggOn并连接到eggPlant Functional
  • eggPlant Functional正在Windows 7 Pro(SP1,64位)计算机上运行。
  • 我有大约50个手动功能测试,目前需要自动化;其中许多需要一些adb shell脚本以及eggPlant自动化。

eggPlant网站(12)上的文档讨论了eggPlant在本地shell上运行命令的能力。这些例子(在撰写本文时)适用于Mac。我尝试对这些示例进行各种修改,以使它们在Windows上运行,例如:

e.g。 1

put shell("dir")

e.g。 2

set the shellCommand to "ShellExecute"
shell "example.bat" //where example.bat contains "dir"

e.g。 3

shell "C:\Windows\system32\cmd.exe /c dir" 

我的最终目标是从Windows shell运行adb命令。但我面临的问题是:

  • 无任何“原因”的无声失败
  • 无法观察命令的输出

我该如何处理?

1 个答案:

答案 0 :(得分:0)

我能够将其与TestPlant支持结合使用。

  • Windows + eggPlant无法读取控制台输出。您需要将输出转储到文件中,然后将其读回。
  • 首先制作一个处理程序(或简单地说,函数),如下所示。
  • 根据您的Windows系统修改路径sdkPath

在此示例中,我想运行adb shell "df | grep data | awk '{print $4}'",这将基本打印出我的Android设备的/data文件夹中的可用空间。

由于我的代码有引号,我必须将代码括在<<>>

to adb
    set command to <<shell "df | grep data  | awk '{print $4}'">>
    put "D:\adt-bundle\sdk\platform-tools" into sdkPath 
    set cmd to " /c " && sdkPath & "\adb.exe" && command && " > C:\adbOutput.txt"
    put cmd
    shell "C:\Windows\system32\cmd.exe", cmd
end adb

变量cmd的值扩展为/c D:\adt-bundle\sdk\platform-tools\adb.exe shell "df | grep data | awk '{print $4}'" > C:\adbOutput.txt

最终执行的内容相当于

cmd /c D:\adt-bundle\sdk\platform-tools\adb.exe shell "df | grep data  | awk '{print $4}'"  > C:\adbOutput.txt

如果我想让adb处理程序接受参数,我明显会向Params cmd处理程序添加adb行。