0

我正在为 Android 应用程序进行测试自动化。我目前正在使用适用于 Android 的 eggPlant。我现在的情况总结:

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

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

例如 1

put shell("dir")

例如 2

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

例如 3

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

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

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

我该如何进行?

4

1 回答 1

0

我能够与 TestPlant Support 一起工作。

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

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

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

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

于 2014-01-29T07:13:16.523 回答